#include <common/weapons/_all.qh>
#include <common/stats.qh>
#include <server/utils.qh>
+ #include <server/weapons/common.qh>
#endif
#ifdef SVQC
o1 = o1 - v1 * (d / dv);
}
- // put him out of solid
+ // put them out of solid
tracebox(o1 - player.view_ofs, player.mins, player.maxs, o1 - player.view_ofs, MOVE_NOMONSTERS, player);
if(trace_startsolid)
{
if(toucher.move_movetype == MOVETYPE_NONE || toucher.move_movetype == MOVETYPE_FOLLOW || toucher.tag_entity)
return;
- if(WarpZoneLib_ExactTrigger_Touch(this, toucher))
- return;
-
if(WarpZone_PlaneDist(this, toucher.origin + toucher.view_ofs) >= 0) // wrong side of the trigger_warpzone (don't teleport yet)
return;
+ EXACTTRIGGER_TOUCH(this, toucher);
+
float f;
// number of frames we need to go back:
// dist = 16*sqrt(2) qu
this.scale = this.modelscale;
if(!this.scale)
this.scale = 1;
- string m;
- m = this.model;
- WarpZoneLib_ExactTrigger_Init(this);
- if(m != "")
- {
- precache_model(m);
- _setmodel(this, m); // no precision needed
- }
- setorigin(this, this.origin);
- if(this.scale)
- setsize(this, this.mins * this.scale, this.maxs * this.scale);
- else
- setsize(this, this.mins, this.maxs);
+
+ WarpZoneLib_ExactTrigger_Init(this, false);
+
setSendEntity(this, WarpZone_Send);
this.SendFlags = 0xFFFFFF;
BITSET_ASSIGN(this.effects, EF_NODEPTHTEST);
if(warpzone_warpzones_exist)
WarpZone_StoreProjectileData(it); // TODO: not actually needed
- if(IS_OBSERVER(it) || it.solid == SOLID_NOT)
- if(IS_CLIENT(it)) // we don't care about it being a bot
+ if((IS_OBSERVER(it) || it.solid == SOLID_NOT))
{
// warpzones
if (warpzone_warpzones_exist) {
entity e = WarpZone_Find(it.origin + it.mins, it.origin + it.maxs);
if (e)
- if (!WarpZoneLib_ExactTrigger_Touch(e, it))
+ if (WarpZoneLib_ExactTrigger_Touch(e, it, false))
if (WarpZone_PlaneDist(e, it.origin + it.view_ofs) <= 0)
WarpZone_Teleport(e, it, -1, 0); // NOT triggering targets by this!
}
{
entity ent = Teleport_Find(it.origin + it.mins, it.origin + it.maxs);
if (ent)
- if (!WarpZoneLib_ExactTrigger_Touch(ent, it))
+ if (WarpZoneLib_ExactTrigger_Touch(ent, it, false))
Simple_TeleportPlayer(ent, it); // NOT triggering targets by this!
}
}