#include "weapons/weaponsystem.qh"
#include "../common/net_notice.qh"
+#include "../common/net_linked.qh"
#include "../common/physics/player.qh"
#include "../common/items/_mod.qh"
TRANSMUTE(Observer, this);
this.iscreature = false;
this.teleportable = TELEPORT_SIMPLE;
+ if(this.damagedbycontents)
+ IL_REMOVE(g_damagedbycontents, this);
this.damagedbycontents = false;
this.health = FRAGS_SPECTATOR;
SetSpectatee_status(this, etof(this));
this.hook_time = 0;
this.deadflag = DEAD_NO;
this.crouch = false;
+ this.revive_progress = 0;
this.revival_time = 0;
this.items = 0;
this.wasplayer = true;
this.iscreature = true;
this.teleportable = TELEPORT_NORMAL;
+ if(!this.damagedbycontents)
+ IL_PUSH(g_damagedbycontents, this);
this.damagedbycontents = true;
set_movetype(this, MOVETYPE_WALK);
this.solid = SOLID_SLIDEBOX;
this.strength_finished = 0;
this.invincible_finished = 0;
this.fire_endtime = -1;
+ this.revive_progress = 0;
this.revival_time = 0;
this.air_finished = time + 12;
void ClientInit_misc(entity this);
-.float ebouncefactor, ebouncestop; // electro's values
// TODO do we need all these fields, or should we stop autodetecting runtime
// changes and just have a console command to update this?
bool ClientInit_SendEntity(entity this, entity to, int sf)
Called once (not at each match start) when a client begins a connection to the server
=============
*/
-void ClientPreConnect ()
-{ENGINE_EVENT();
+void ClientPreConnect(entity this)
+{
if(autocvar_sv_eventlog)
{
GameLogEcho(sprintf(":connect:%d:%d:%s",
if (IS_REAL_CLIENT(this))
{
- if (!autocvar_g_campaign)
- {
- this.motd_actived_time = -1;
- Send_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CENTER_MOTD, getwelcomemessage(this));
- }
-
if (g_weaponarena_weapons == WEPSET(TUBA))
stuffcmd(this, "cl_cmd settemp chase_active 1\n");
}
});
MUTATOR_CALLHOOK(ClientConnect, this);
+
+ if (IS_REAL_CLIENT(this))
+ {
+ if (!autocvar_g_campaign && !IS_PLAYER(this))
+ {
+ this.motd_actived_time = -1;
+ Send_Notification(NOTIF_ONE_ONLY, this, MSG_CENTER, CENTER_MOTD, getwelcomemessage(this));
+ }
+ }
}
/*
=============
this.playerid = 0;
ReadyCount();
if (vote_called && IS_REAL_CLIENT(this)) VoteCount(false);
+
+ ONREMOVE(this);
}
void ChatBubbleThink(entity this)
}
bool zoomstate_set;
-void SetZoomState(entity this, float z)
+void SetZoomState(entity this, float newzoom)
{
- if(z != this.zoomstate)
+ if(newzoom != this.zoomstate)
{
- this.zoomstate = z;
+ this.zoomstate = newzoom;
ClientData_Touch(this);
}
zoomstate_set = true;