]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/server/monsters/lib/spawn.qc
Allow spawning monsters by ID & remove spawn list
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / monsters / lib / spawn.qc
1 entity spawnmonster (string monster, float mnster, entity spawnedby, entity own, vector orig, float respwn, float moveflag)
2 {
3         if(!spawncode_first_load)
4         {
5                 initialize_field_db();
6                 spawncode_first_load = TRUE;
7         }
8         
9         entity e = spawn();
10         
11         e.spawnflags = MONSTERFLAG_SPAWNED;
12         
13         if not(respwn)
14                 e.spawnflags |= MONSTERFLAG_NORESPAWN;
15         
16         setorigin(e, orig);
17         
18         if(monster != "")
19         if not(monster_string2id(monster))
20                 monster = "bruiser";
21                 
22         if(monster == "")
23         if(mnster)
24                 monster = monster_id2string(mnster);
25         
26         e.realowner = spawnedby;
27         
28         if(moveflag)
29                 e.monster_moveflags = moveflag;
30         
31         if (spawnedby.classname == "td_spawnpoint")
32         {
33                 e.monster_owner = own;
34                 e.team = spawnedby.team;
35         }
36         else if(IS_PLAYER(spawnedby))
37         {
38                 if(teamplay && autocvar_g_monsters_teams)
39                         e.team = spawnedby.team; // colors handled in spawn code
40                         
41                 if(e.team)
42                         e.colormap = 1024;
43                 else
44                         e.colormap = spawnedby.colormap;
45                         
46                 if(autocvar_g_monsters_owners)
47                         e.monster_owner = own; // using .owner makes the monster non-solid for its master
48                         
49                 e.angles = spawnedby.angles;
50         }
51                 
52         monster = strcat("$ spawnfunc_monster_", monster);
53                 
54         target_spawn_edit_entity(e, monster, world, world, world, world, world);
55                 
56         return e;
57 }