]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/triggers/target/changelevel.qc
Transifex sync.
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / triggers / target / changelevel.qc
1 #ifdef SVQC
2 .string chmap, gametype;
3 .entity chlevel_targ;
4
5
6 void spawnfunc_target_changelevel_use()
7 {
8         if(self.spawnflags & 2)
9         {
10                 // simply don't react if a non-player triggers it
11                 if(!IS_PLAYER(activator)) { return; }
12
13                 activator.chlevel_targ = self;
14
15                 entity head;
16                 int plnum = 0;
17                 int realplnum = 0;
18                 // let's not count bots
19                 FOR_EACH_REALPLAYER(head)
20                 {
21                         ++realplnum;
22                         if(head.chlevel_targ == self)
23                                 ++plnum;
24                 }
25                 if(plnum < ceil(realplnum * min(1, self.count))) // 70% of players
26                         return;
27         }
28
29         if(self.gametype != "")
30                 MapInfo_SwitchGameType(MapInfo_Type_FromString(self.gametype));
31
32         if (self.chmap == "")
33                 localcmd("endmatch\n");
34         else
35                 localcmd(strcat("changelevel ", self.chmap, "\n"));
36 }
37
38 void spawnfunc_target_changelevel()
39 {
40         self.use = spawnfunc_target_changelevel_use;
41
42         if(!self.count) { self.count = 0.7; }
43 }
44 #endif