float __engine_check;
#endif
-void precache_playermodel(string m)
-{
- string f;
-
- if(substring(m, -9,5) == "_lod1")
- return;
- if(substring(m, -9,5) == "_lod2")
- return;
- precache_model(m);
- f = strcat(substring(m, 0, -5), "_lod1", substring(m, -4, -1));
- if(fexists(f))
- precache_model(f);
- f = strcat(substring(m, 0, -5), "_lod2", substring(m, -4, -1));
- if(fexists(f))
- precache_model(f);
-
- /*
- float globhandle, i, n;
- globhandle = search_begin(strcat(m, "_*.sounds"), TRUE, FALSE);
- if (globhandle < 0)
- return;
- n = search_getsize(globhandle);
- for (i = 0; i < n; ++i)
- {
- //print(search_getfilename(globhandle, i), "\n");
- f = search_getfilename(globhandle, i);
- PrecachePlayerSounds(f);
- }
- search_end(globhandle);
- */
-}
-void precache_all_playermodels(string pattern)
-{
- float globhandle, i, n;
- string f;
-
- globhandle = search_begin(pattern, TRUE, FALSE);
- if (globhandle < 0)
- return;
- n = search_getsize(globhandle);
- for (i = 0; i < n; ++i)
- {
- //print(search_getfilename(globhandle, i), "\n");
- f = search_getfilename(globhandle, i);
- precache_playermodel(f);
- }
- search_end(globhandle);
-}
-
string forcefog;
void WaypointSprite_Load();
void ConsoleCommand_macro_init();
precache_model("null");
precache_sound("misc/hit.wav");
precache_sound("misc/typehit.wav");
- if (autocvar_cl_precacheplayermodels)
- {
- precache_all_playermodels("models/player/*.zym");
- precache_all_playermodels("models/player/*.dpm");
- precache_all_playermodels("models/player/*.md3");
- precache_all_playermodels("models/player/*.psk");
- precache_all_playermodels("models/player/*.iqm");
- }
Projectile_Precache();
Hook_Precache();
#ifdef DP_CSQC_ENTITY_REMOVE_IS_B0RKED
if(!isNew && n != self.sv_entnum)
{
- //print(_("A CSQC entity changed its owner!\n"));
- print(sprintf(_("A CSQC entity changed its owner! (edict: %d, classname: %s)\n"), num_for_edict(self), self.classname));
+ //print("A CSQC entity changed its owner!\n");
+ print(sprintf("A CSQC entity changed its owner! (edict: %d, classname: %s)\n", num_for_edict(self), self.classname));
isNew = true;
Ent_Remove();
self.enttype = ENT_CLIENT_SCORES;
void Spawn_Draw(void)
{
- pointparticles(self.cnt, self.origin, '0 0 2', bound(0, frametime, 0.1));
+ pointparticles(self.cnt, self.origin + '0 0 28', '0 0 2', bound(0, frametime, 0.1));
}
void Ent_ReadSpawnPoint(float is_new) // entity for spawnpoint
{
- float teamnum = ReadByte();
- self.origin_x = ReadShort();
- self.origin_y = ReadShort();
- self.origin_z = ReadShort();
-
+ float teamnum = (ReadByte() - 1);
+ vector spn_origin;
+ spn_origin_x = ReadShort();
+ spn_origin_y = ReadShort();
+ spn_origin_z = ReadShort();
+
if(is_new)
{
- switch(teamnum)
+ self.origin = spn_origin;
+ setsize(self, PL_MIN, PL_MAX);
+ droptofloor();
+
+ /*if(autocvar_cl_spawn_point_model) // needs a model first
+ {
+ self.mdl = "models/spawnpoint.md3";
+ self.colormod = Team_ColorRGB(teamnum);
+ precache_model(self.mdl);
+ setmodel(self, self.mdl);
+ self.drawmask = MASK_NORMAL;
+ //self.movetype = MOVETYPE_NOCLIP;
+ //self.draw = Spawn_Draw;
+ }*/
+ if(autocvar_cl_spawn_point_particles)
{
- default: self.cnt = particleeffectnum("EF_STARDUST"); break;
+ if((serverflags & SERVERFLAG_TEAMPLAY))
+ {
+ switch(teamnum)
+ {
+ case NUM_TEAM_1: self.cnt = particleeffectnum("spawn_point_red"); break;
+ case NUM_TEAM_2: self.cnt = particleeffectnum("spawn_point_blue"); break;
+ case NUM_TEAM_3: self.cnt = particleeffectnum("spawn_point_yellow"); break;
+ case NUM_TEAM_4: self.cnt = particleeffectnum("spawn_point_pink"); break;
+ default: self.cnt = particleeffectnum("spawn_point_neutral"); break;
+ }
+ }
+ else { self.cnt = particleeffectnum("spawn_point_neutral"); }
+
+ self.draw = Spawn_Draw;
}
-
- //self.colormod = '200 0 0'; //colormapPaletteColor(teamnum - 1, FALSE);
-
- //setsize(self, PL_MIN, PL_MAX);
-
- //droptofloor();
-
- //self.mdl = "models/domination/dom_unclaimed.md3";
- //precache_model(self.mdl);
- //setmodel(self, self.mdl);
- self.drawmask = MASK_NORMAL;
- self.movetype = MOVETYPE_NOCLIP;
- self.draw = Spawn_Draw;
-
}
- print(sprintf("Ent_ReadSpawnPoint(is_new = %d); origin = %s, team = %d (%s)\n", is_new, vtos(self.origin), teamnum, "foobar"));
+ //print(sprintf("Ent_ReadSpawnPoint(is_new = %d); origin = %s, team = %d, effect = %d\n", is_new, vtos(self.origin), teamnum, self.cnt));
}
void Ent_ReadSpawnEvent(float is_new)
if(is_new)
{
float teamnum = GetPlayerColor(entnum - 1);
- //if(autocvar_cl_spawn_event_sound)
- {
- sound(self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
- }
- //if(autocvar_cl_spawn_event_particles)
+
+ if(autocvar_cl_spawn_event_particles)
{
switch(teamnum)
{
- default: pointparticles(particleeffectnum("red_cap"), self.origin, '0 0 0', 1); break;
+ case NUM_TEAM_1: pointparticles(particleeffectnum("spawn_event_red"), self.origin, '0 0 0', 1); break;
+ case NUM_TEAM_2: pointparticles(particleeffectnum("spawn_event_blue"), self.origin, '0 0 0', 1); break;
+ case NUM_TEAM_3: pointparticles(particleeffectnum("spawn_event_yellow"), self.origin, '0 0 0', 1); break;
+ case NUM_TEAM_4: pointparticles(particleeffectnum("spawn_event_pink"), self.origin, '0 0 0', 1); break;
+ default: pointparticles(particleeffectnum("spawn_event_neutral"), self.origin, '0 0 0', 1); break;
}
}
+ if(autocvar_cl_spawn_event_sound)
+ {
+ sound(self, CH_TRIGGER, "misc/spawn.wav", VOL_BASE, ATTN_NORM);
+ }
}
}
}
}
- print(sprintf("Ent_ReadSpawnEvent(is_new = %d); origin = %s, entnum = %d (%s), localentnum = %d\n", is_new, vtos(self.origin), entnum, player_localentnum, "foobar"));
+ //print(sprintf("Ent_ReadSpawnEvent(is_new = %d); origin = %s, entnum = %d, localentnum = %d\n", is_new, vtos(self.origin), entnum, player_localentnum));
}
// CSQC_Ent_Update : Called every frame that the server has indicated an update to the SSQC / CSQC entity has occured.
{
if(t != self.enttype || bIsNewEntity)
{
- //print(_("A CSQC entity changed its type!\n"));
- print(sprintf(_("A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n"), num_for_edict(self), self.entnum, self.enttype, t));
+ //print("A CSQC entity changed its type!\n");
+ print(sprintf("A CSQC entity changed its type! (edict: %d, server: %d, type: %d -> %d)\n", num_for_edict(self), self.entnum, self.enttype, t));
Ent_Remove();
clearentity(self);
bIsNewEntity = 1;
{
if(!bIsNewEntity)
{
- print(sprintf(_("A CSQC entity appeared out of nowhere! (edict: %d, server: %d, type: %d)\n"), num_for_edict(self), self.entnum, t));
+ print(sprintf("A CSQC entity appeared out of nowhere! (edict: %d, server: %d, type: %d)\n", num_for_edict(self), self.entnum, t));
bIsNewEntity = 1;
}
}
armorblockpercent = ReadByte() / 255.0;
- g_weaponswitchdelay = ReadByte() / 255.0;
-
g_balance_grenadelauncher_bouncefactor = ReadCoord();
g_balance_grenadelauncher_bouncestop = ReadCoord();
g_balance_electro_secondary_bouncefactor = ReadCoord();