From: Mario Date: Sun, 27 Jan 2013 15:55:13 +0000 (+1100) Subject: Disable vehicles in tower defense X-Git-Tag: xonotic-v0.8.0~241^2^2~549 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c2ff22a102c17c416e574d17c2859e61679d06cf;p=xonotic%2Fxonotic-data.pk3dir.git Disable vehicles in tower defense --- diff --git a/qcsrc/server/mutators/base.qh b/qcsrc/server/mutators/base.qh index 90b376884..0029fb9d7 100644 --- a/qcsrc/server/mutators/base.qh +++ b/qcsrc/server/mutators/base.qh @@ -260,6 +260,9 @@ MUTATOR_HOOKABLE(HelpMePing); // INPUT entity self; // the player who pressed impulse 33 +MUTATOR_HOOKABLE(VehicleSpawn); + // called when a vehicle spawns + MUTATOR_HOOKABLE(VehicleEnter); // called when a player enters a vehicle // allows mutators to set special settings in this event diff --git a/qcsrc/server/mutators/gamemode_td.qc b/qcsrc/server/mutators/gamemode_td.qc index f442067d6..e37b72ecd 100644 --- a/qcsrc/server/mutators/gamemode_td.qc +++ b/qcsrc/server/mutators/gamemode_td.qc @@ -887,6 +887,12 @@ MUTATOR_HOOKFUNCTION(td_TurretSpawn) return FALSE; } +MUTATOR_HOOKFUNCTION(td_DisableVehicles) +{ + // you shall not spawn! + return TRUE; +} + MUTATOR_HOOKFUNCTION(td_PlayerCommand) { if(MUTATOR_RETURNVALUE) { return FALSE; } // command was already handled? @@ -1033,6 +1039,7 @@ MUTATOR_DEFINITION(gamemode_td) MUTATOR_HOOK(PlayerDies, td_PlayerDies, CBC_ORDER_ANY); MUTATOR_HOOK(PlayerDamage_Calculate, td_PlayerDamage_Calculate, CBC_ORDER_ANY); MUTATOR_HOOK(PlayerSpawn, td_PlayerSpawn, CBC_ORDER_ANY); + MUTATOR_HOOK(VehicleSpawn, td_DisableVehicles, CBC_ORDER_ANY); MUTATOR_HOOK(SV_ParseClientCommand, td_PlayerCommand, CBC_ORDER_ANY); MUTATOR_ONADD diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index b7b168eeb..de4e2f71d 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -1315,6 +1315,9 @@ float vehicle_initialize(string net_name, self.pos1 = self.origin; self.pos2 = self.angles; self.tur_head.team = self.team; + + if(MUTATOR_CALLHOOK(VehicleSpawn)) + return FALSE; return TRUE; }