if (have_team_spawns != 0)
if (self.team)
have_team_spawns = 1;
+ have_team_spawns_forteam[self.team] = 1;
if (autocvar_r_showbboxes)
{
replacement = cursor_ent.netname;
if (!replacement || !cursor_ent)
replacement = "nothing";
- } else if (escape == "p") {
- if (self.last_selected_player)
- replacement = self.last_selected_player.netname;
- else
- replacement = "(nobody)";
} else if (escape == "s")
replacement = ftos(vlen(self.velocity - self.velocity_z * '0 0 1'));
else if (escape == "S")
GetCvars_handleFloat(s, f, autoswitch, "cl_autoswitch");
GetCvars_handleFloat(s, f, cvar_cl_playerdetailreduction, "cl_playerdetailreduction");
GetCvars_handleFloat(s, f, cvar_scr_centertime, "scr_centertime");
- GetCvars_handleFloat(s, f, cvar_cl_shownames, "cl_shownames");
GetCvars_handleString(s, f, cvar_g_xonoticversion, "g_xonoticversion");
GetCvars_handleFloat(s, f, cvar_cl_handicap, "cl_handicap");
+ GetCvars_handleFloat(s, f, cvar_cl_noclipspectating, "cl_noclipspectating");
GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriority, "cl_weaponpriority", W_FixWeaponOrder_ForceComplete_AndBuildImpulseList);
GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[0], "cl_weaponpriority0", W_FixWeaponOrder_AllowIncomplete);
GetCvars_handleString_Fixup(s, f, cvar_cl_weaponpriorities[1], "cl_weaponpriority1", W_FixWeaponOrder_AllowIncomplete);
GetCvars_handleFloat(s, f, cvar_cl_noantilag, "cl_noantilag");
GetCvars_handleFloat(s, f, cvar_cl_voice_directional, "cl_voice_directional");
GetCvars_handleFloat(s, f, cvar_cl_voice_directional_taunt_attenuation, "cl_voice_directional_taunt_attenuation");
- GetCvars_handleFloat(s, f, cvar_cl_hitsound, "cl_hitsound");
GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_share, "cl_accuracy_data_share");
GetCvars_handleFloat(s, f, cvar_cl_accuracy_data_receive, "cl_accuracy_data_receive");
#endif
GetCvars_handleFloatOnce(s, f, cvar_cl_gunalign, "cl_gunalign");
GetCvars_handleFloat(s, f, cvar_cl_allow_uid2name, "cl_allow_uid2name");
+ GetCvars_handleFloat(s, f, cvar_cl_allow_uidtracking, "cl_allow_uidtracking");
// fixup of switchweapon (needed for LMS or when spectating is disabled, as PutClientInServer comes too early)
if (f > 0)
}
}
-float fexists(string f)
-{
- float fh;
- fh = fopen(f, FILE_READ);
- if (fh < 0)
- return FALSE;
- fclose(fh);
- return TRUE;
-}
-
void backtrace(string msg)
{
float dev, war;
s = "most";
}
- if (s == "off")
+ if (s == "0" || s == "")
+ {
+ // no arena
+ }
+ else if (s == "off")
{
// forcibly turn off weaponarena
}
}
else if(start_items & IT_UNLIMITED_WEAPON_AMMO)
{
- for (j = WEP_FIRST; j <= WEP_LAST; ++j)
- {
- e = get_weaponinfo(j);
- if(start_weapons & e.weapons)
- {
- if(e.items & IT_ROCKETS)
- start_ammo_rockets = 999;
- if(e.items & IT_SHELLS)
- start_ammo_shells = 999;
- if(e.items & IT_CELLS)
- start_ammo_cells = 999;
- if(e.items & IT_NAILS)
- start_ammo_nails = 999;
- if(e.items & IT_FUEL)
- start_ammo_fuel = 999;
- }
- }
+ start_ammo_rockets = 999;
+ start_ammo_shells = 999;
+ start_ammo_cells = 999;
+ start_ammo_nails = 999;
+ start_ammo_fuel = 999;
}
else
{
{
// gamemode related things
precache_model ("models/misc/chatbubble.spr");
- precache_model ("models/misc/teambubble.spr");
if (g_runematch)
{
precache_model ("models/runematch/curse.mdl");
precache_sound ("misc/gib_splat02.wav");
precache_sound ("misc/gib_splat03.wav");
precache_sound ("misc/gib_splat04.wav");
- precache_sound ("misc/hit.wav");
- precache_sound ("misc/typehit.wav");
PrecacheGlobalSound((globalsound_fall = "misc/hitground 4"));
PrecacheGlobalSound((globalsound_metalfall = "misc/metalhitground 4"));
precache_sound ("misc/null.wav");
precache_model ("models/sprites/10.spr32");
// common weapon precaches
+ precache_sound ("weapons/reload.wav"); // until weapons have individual reload sounds, precache the reload sound here
precache_sound ("weapons/weapon_switch.wav");
precache_sound ("weapons/weaponpickup.wav");
precache_sound ("weapons/unavailable.wav");
// these stop the projectile from moving, so...
if(trace_dphitcontents == 0)
{
- dprint("A hit happened with zero hit contents... DEBUG THIS, this should never happen for projectiles! Projectile will self-destruct.\n");
+ //dprint("A hit happened with zero hit contents... DEBUG THIS, this should never happen for projectiles! Projectile will self-destruct.\n");
+ dprint(sprintf(_("A hit from a projectile happened with no hit contents! DEBUG THIS, this should never happen for projectiles! Profectile will self-destruct. (edict: %d, classname: %s, origin: %s)\n"), num_for_edict(self), self.classname, vtos(self.origin)));
checkclient();
}
if (trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
// rule 6: we must not end up in trigger_hurt
if (tracebox_hits_trigger_hurt(start, e.mins, e.maxs, enddown))
- {
- dprint("trigger_hurt! ouch! and nothing else could find it!\n");
continue;
- }
break;
}
float ParseCommandPlayerSlotTarget_firsttoken;
entity GetCommandPlayerSlotTargetFromTokenizedCommand(float tokens, float idx) // idx = start index
{
- string s;
- entity e, head;
- float n;
+ string s;
+ entity e, head;
+ float n;
- s = string_null;
+ s = string_null;
- ParseCommandPlayerSlotTarget_firsttoken = -1;
+ ParseCommandPlayerSlotTarget_firsttoken = -1;
- if (tokens > idx)
- {
- if (substring(argv(idx), 0, 1) == "#")
- {
- s = substring(argv(idx), 1, -1);
- ++idx;
- if (s == "")
- if (tokens > idx)
- {
- s = argv(idx);
- ++idx;
- }
+ if (tokens > idx)
+ {
+ if (substring(argv(idx), 0, 1) == "#")
+ {
+ s = substring(argv(idx), 1, -1);
+ ++idx;
+ if (s == "") if (tokens > idx)
+ {
+ s = argv(idx);
+ ++idx;
+ }
ParseCommandPlayerSlotTarget_firsttoken = idx;
- if (s == ftos(stof(s)))
- {
- e = edict_num(stof(s));
- if (e.flags & FL_CLIENT)
- return e;
- }
- }
- else
- {
- // it must be a nick name
- s = argv(idx);
- ++idx;
+ n = stof(s);
+ if (s == ftos(n) && n > 0 && n <= maxclients)
+ {
+ e = edict_num(n);
+ if (e.flags & FL_CLIENT)
+ return e;
+ }
+ }
+ else
+ {
+ // it must be a nick name
+ s = argv(idx);
+ ++idx;
ParseCommandPlayerSlotTarget_firsttoken = idx;
- n = 0;
- FOR_EACH_CLIENT(head)
- if (head.netname == s)
- {
- e = head;
- ++n;
- }
- if (n == 1)
- return e;
+ n = 0;
+ FOR_EACH_CLIENT(head)
+ if (head.netname == s)
+ {
+ e = head;
+ ++n;
+ }
+ if (n == 1)
+ return e;
- s = strdecolorize(s);
- n = 0;
- FOR_EACH_CLIENT(head)
- if (strdecolorize(head.netname) == s)
- {
- e = head;
- ++n;
- }
- if (n == 1)
- return e;
- }
- }
+ s = strdecolorize(s);
+ n = 0;
+ FOR_EACH_CLIENT(head)
+ if (strdecolorize(head.netname) == s)
+ {
+ e = head;
+ ++n;
+ }
+ if (n == 1)
+ return e;
+ }
+ }
- return world;
+ return world;
}
.float scale2;