Xonotic
sv_spawner.qc
Go to the documentation of this file.
1 #include "sv_spawner.qh"
2 
5 
6 void spawner_use(entity this, entity actor, entity trigger)
7 {
8  int moncount = 0;
9  IL_EACH(g_monsters, it.realowner == this,
10  {
11  ++moncount;
12  });
13 
14  if(moncount >= this.count)
15  return;
16 
17  entity e = spawn();
18  e.noalign = this.noalign;
19  e.angles = this.angles;
20  e.monster_skill = this.monster_skill;
21  e.skin = this.skin;
22  e = spawnmonster(e, this.spawnmob, MON_Null, this, this, this.origin, false, true, this.monster_moveflags);
23 }
24 
25 spawnfunc(monster_spawner)
26 {
27  if(!autocvar_g_monsters || !this.spawnmob || this.spawnmob == "") { delete(this); return; }
28 
29  this.use = spawner_use;
30 }
#define IL_EACH(this, cond, body)
entity spawnmonster(entity e, string monster, Monster monster_id, entity spawnedby, entity own, vector orig, bool respwn, bool removeifinvalid, int moveflag)
Definition: sv_spawn.qc:14
void spawner_use(entity this, entity actor, entity trigger)
Definition: sv_spawner.qc:6
skin
Definition: ent_cs.qc:143
spawnfunc(monster_spawner)
Definition: sv_spawner.qc:25
entity() spawn
origin
Definition: ent_cs.qc:114
string spawnmob
Definition: sv_spawner.qh:3
float noalign
Definition: items.qh:42
int monster_skill
Definition: sv_monsters.qh:96
int monster_moveflags
Definition: sv_monsters.qh:47
float autocvar_g_monsters
Definition: sv_monsters.qh:5
float count
Definition: powerups.qc:22
vector angles
Definition: csprogsdefs.qc:104
#define use
Definition: csprogsdefs.qh:50
IntrusiveList g_monsters
Definition: sv_monsters.qh:144