first commit
This commit is contained in:
58
mod_slipgate/source/server/trigger_changelevel.qc
Normal file
58
mod_slipgate/source/server/trigger_changelevel.qc
Normal file
@@ -0,0 +1,58 @@
|
||||
enumflags { CHANGELEVEL_NO_INTERMISSION };
|
||||
|
||||
void() GotoNextMap;
|
||||
void() StartIntermission;
|
||||
|
||||
/*==========
|
||||
changelevel_touch
|
||||
==========*/
|
||||
void() changelevel_touch =
|
||||
{
|
||||
if (other.classname != "player")
|
||||
return;
|
||||
if (other.health <= 0)
|
||||
return;
|
||||
|
||||
if ((cvar("noexit") && (mapname != "start") && deathmatch))
|
||||
{
|
||||
if (cvar("noexit") == 2)
|
||||
Damage (other, self, self, 50000);
|
||||
return;
|
||||
}
|
||||
|
||||
if (coop || deathmatch)
|
||||
{
|
||||
bprint (other.netname);
|
||||
bprint (" exited the level\n");
|
||||
}
|
||||
|
||||
nextmap = self.map;
|
||||
activator = other;
|
||||
UseTargets();
|
||||
|
||||
if ((self.spawnflags & CHANGELEVEL_NO_INTERMISSION) && (!deathmatch))
|
||||
{
|
||||
GotoNextMap();
|
||||
return;
|
||||
}
|
||||
|
||||
self.touch = SUB_Null;
|
||||
self.think = StartIntermission;
|
||||
self.nextthink = time + 0.1;
|
||||
};
|
||||
|
||||
/*QUAKED trigger_changelevel (0.5 0.5 0.5) ? NO_INTERMISSION X X X X X X X NOT_IN_EASY NOT_IN_NORMAL NOT_IN_HARD NOT_IN_DM
|
||||
When the player touches this trigger, they get sent to the map listed in the "map" key.
|
||||
Unless the NO_INTERMISSION flag is set, the view will go to the info_intermission spot and display the end of level stats.
|
||||
*/
|
||||
void() trigger_changelevel =
|
||||
{
|
||||
if (!self.map)
|
||||
{
|
||||
objerror("no map");
|
||||
remove(self);
|
||||
return;
|
||||
}
|
||||
self.touch = changelevel_touch;
|
||||
InitTrigger();
|
||||
};
|
||||
Reference in New Issue
Block a user