DropAllRunes(self);
MUTATOR_CALLHOOK(MakePlayerObserver);
- if (g_minstagib)
- minstagib_stop_countdown();
+ minstagib_stop_countdown(self);
Portal_ClearAll(self);
if(self.flagcarried)
DropFlag(self.flagcarried, world, world);
- if(self.ballcarried && g_nexball)
- DropBall(self.ballcarried, self.origin + self.ballcarried.origin, self.velocity);
-
WaypointSprite_PlayerDead();
if not(g_ca) // don't reset teams when moving a ca player to the spectators
setorigin (self, (spot.origin + PL_VIEW_OFS)); // offset it so that the spectator spawns higher off the ground, looks better this way
self.prevorigin = self.origin;
self.items = 0;
- self.weapons = 0;
+ WEPSET_CLEAR_E(self);
self.model = "";
FixPlayermodel();
setmodel(self, "null");
vector m1, m2;
defaultmodel = "";
+ defaultskin = 0;
+ chmdl = FALSE;
if(autocvar_sv_defaultcharacter == 1)
{
- defaultskin = 0;
-
if(teamplay)
{
string s;
if(clienttype(self) == CLIENTTYPE_BOT)
{
self.classname = "player";
+ if(g_ca)
+ self.caplayer = 1;
}
else if(clienttype(self) == CLIENTTYPE_REAL)
{
WriteByte(MSG_ONE, SVC_SETVIEW);
WriteEntity(MSG_ONE, self);
}
-
+
// reset player keys
self.itemkeys = 0;
self.classname = "observer";
}
- if(g_arena || (g_ca && !allowed_to_spawn))
- if(!self.spawned)
+ if((g_arena && !self.spawned) || (g_ca && !allowed_to_spawn))
self.classname = "observer";
if(gameover)
self.ammo_fuel = warmup_start_ammo_fuel;
self.health = warmup_start_health;
self.armorvalue = warmup_start_armorvalue;
- self.weapons = warmup_start_weapons;
+ WEPSET_COPY_EA(self, warmup_start_weapons);
}
else
{
self.ammo_fuel = start_ammo_fuel;
self.health = start_health;
self.armorvalue = start_armorvalue;
- self.weapons = start_weapons;
+ WEPSET_COPY_EA(self, start_weapons);
}
- if(self.weapons & WEPBIT_SUPERWEAPONS) // exception for minstagib, as minstanex is a superweapon
+ if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS)) // exception for minstagib, as minstanex is a superweapon
self.superweapons_finished = time + autocvar_g_balance_superweapons_time;
else
self.superweapons_finished = 0;
if(g_weaponarena_random)
{
if(g_weaponarena_random_with_laser)
- self.weapons &~= WEPBIT_LASER;
- self.weapons = randombits(self.weapons, g_weaponarena_random, FALSE);
+ WEPSET_ANDNOT_EW(self, WEP_LASER);
+ W_RandomWeapons(self, g_weaponarena_random);
if(g_weaponarena_random_with_laser)
- self.weapons |= WEPBIT_LASER;
+ WEPSET_OR_EW(self, WEP_LASER);
}
self.items = start_items;
self.lastrocket = world; // stop rocket guiding, no revenge from the grave!
self.lastteleporttime = time; // prevent insane speeds due to changing origin
self.hud = HUD_NORMAL;
-
+
if(g_arena)
{
Spawnqueue_Remove(self);
Spawnqueue_Mark(self);
}
-
else if(g_ca)
self.caplayer = 1;
//stuffcmd(self, "chase_active 0");
//stuffcmd(self, "set viewsize $tmpviewsize \n");
- if (autocvar_g_spawnsound)
- sound (self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
-
if(g_assault) {
if(self.team == assault_attacker_team)
centerprint(self, "You are attacking!");
self.alivetime = time;
antilag_clear(self);
- } else if(self.classname == "observer" || (g_ca && !allowed_to_spawn)) {
+
+ if (autocvar_g_spawnsound)
+ soundat(world, self.origin, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
+ } else if(self.classname == "observer") {
PutObserverInServer ();
}
return;
}
- if(Ban_MaybeEnforceBan(self))
+ if(Ban_MaybeEnforceBanOnce(self))
return;
DecodeLevelParms();
if(clienttype(self) == CLIENTTYPE_REAL)
{
- if(autocvar_g_bugrigs || g_weaponarena == WEPBIT_TUBA)
+ if(autocvar_g_bugrigs || WEPSET_EQ_AW(g_weaponarena_weapons, WEP_TUBA))
stuffcmd(self, "cl_cmd settemp chase_active 1\n");
}
RemoveGrapplingHook(self);
if(self.flagcarried)
DropFlag(self.flagcarried, world, world);
- if(self.ballcarried && g_nexball)
- DropBall(self.ballcarried, self.origin + self.ballcarried.origin, self.velocity);
// Here, everything has been done that requires this player to be a client.
}
if (self.items & IT_SUPERWEAPON)
{
- //if(W_WeaponBit(self.weapon) & WEPBIT_SUPERWEAPONS)
- // self.effects = self.effects | EF_RED;
- if (!(self.weapons & WEPBIT_SUPERWEAPONS))
+ if (!WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
{
self.superweapons_finished = 0;
self.items = self.items - (self.items & IT_SUPERWEAPON);
if (time > self.superweapons_finished)
{
self.items = self.items - (self.items & IT_SUPERWEAPON);
- self.weapons &~= WEPBIT_SUPERWEAPONS;
+ WEPSET_ANDNOT_EA(self, WEPBIT_SUPERWEAPONS);
sprint(self, "^3Superweapons have broken down\n");
}
}
}
- else if(self.weapons & WEPBIT_SUPERWEAPONS)
+ else if(WEPSET_CONTAINS_ANY_EA(self, WEPBIT_SUPERWEAPONS))
{
if (time < self.superweapons_finished || (self.items & IT_UNLIMITED_SUPERWEAPONS))
{
else
{
self.superweapons_finished = 0;
- self.weapons &~= WEPBIT_SUPERWEAPONS; // just in case
+ WEPSET_ANDNOT_EA(self, WEPBIT_SUPERWEAPONS);
}
}
else
self.strength_finished = spectatee.strength_finished;
self.invincible_finished = spectatee.invincible_finished;
self.pressedkeys = spectatee.pressedkeys;
- self.weapons = spectatee.weapons;
+ WEPSET_COPY_EE(self, spectatee);
self.switchweapon = spectatee.switchweapon;
self.switchingweapon = spectatee.switchingweapon;
self.weapon = spectatee.weapon;
// TODO simplify this
entity e;
- float totalClients;
+ float totalClients = 0;
FOR_EACH_CLIENT(e)
if(e != ignore)
totalClients += 1;
if (!autocvar_g_maxplayers)
return maxclients - totalClients;
- float currentlyPlaying;
+ float currentlyPlaying = 0;
FOR_EACH_REALPLAYER(e)
currentlyPlaying += 1;
}
*/
- Arena_Warmup();
-
//pointparticles(particleeffectnum("machinegun_impact"), self.origin + self.view_ofs + '0 0 7', '0 0 0', 1);
if(self.waypointsprite_attachedforcarrier)