From 6bed20753191bd3b8819763284f9f533cfd52b75 Mon Sep 17 00:00:00 2001 From: avirox Date: Thu, 16 Feb 2006 03:17:05 +0000 Subject: [PATCH] - Added disarm ability to spy.c - Fiddled with HUD entities git-svn-id: svn://svn.icculus.org/nexuiz/trunk@1057 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- TeamNexuiz/game/gamec/spy.c | 51 +++++++++++++++++++++++++++++++++-- TeamNexuiz/game/gamec/tfhud.c | 7 ++--- 2 files changed, 53 insertions(+), 5 deletions(-) diff --git a/TeamNexuiz/game/gamec/spy.c b/TeamNexuiz/game/gamec/spy.c index e23594c1a..48bbe8398 100644 --- a/TeamNexuiz/game/gamec/spy.c +++ b/TeamNexuiz/game/gamec/spy.c @@ -27,6 +27,52 @@ void SpyCloak() self.special_time = time; } +// From TF2.5(tm) +float(vector veca, vector vecb) crossproduct = +{ + local float result; + result = veca_x * vecb_y - vecb_x * veca_y; + return result; +}; + +void SpyDisarm () +{ + local vector source; + local vector def; + +// self.currentammo = 0; + makevectors (self.v_angle); + source = (self.origin + '0 0 16'); + traceline (source, (source + (v_forward * 64)), 0, self); + if ((trace_fraction == 1)) + { + return; + } + makevectors (trace_ent.v_angle); + def = v_right; + makevectors (self.v_angle); + if (trace_ent.classname == "player" && trace_ent.health > 0) + { + if (crossproduct (def, v_forward) > 0) + { + other.currentammo = 0; + sprint(other, "You have been disarmed!\n"); + other.ammo_shells = 0; + other.ammo_cells = 0; + other.ammo_rockets = 0; + other.ammo_metal = 0; + other.ammo_nails = 0; + other.no_grenades_1 = 0; + other.no_grenades_2 = 0; + self.grenade_time = time + 10; + } + else + { + sprint(self, "You can only disarm someone from behind\n"); + } + } +}; + void SpySpecial() { if(self.special_active) @@ -42,8 +88,9 @@ void SpyGrenade(float req) SpyDecloak(); if(req == WR_GRENADE1) { - if( W_ThrowGrenade(W_NailGrenade) ) - self.grenade_time = time + cvar("g_balance_grenade_nail_refire"); +// if( W_ThrowGrenade(W_NailGrenade) ) +// self.grenade_time = time + cvar("g_balance_grenade_nail_refire"); + SpyDisarm(); } else if(req == WR_GRENADE2) { diff --git a/TeamNexuiz/game/gamec/tfhud.c b/TeamNexuiz/game/gamec/tfhud.c index 7976b3715..9bf834e65 100644 --- a/TeamNexuiz/game/gamec/tfhud.c +++ b/TeamNexuiz/game/gamec/tfhud.c @@ -13,13 +13,14 @@ void () CL_GrenadeOneEntity_Think = // ok this was a dumb idea >.< lets just use csqc void () TeamNexuiz_HUD_ShowGrenadeOne = { + precache_model("models/hud_nobul.sp2"); self.grenadeoneentity = spawn(); self.grenadeoneentity.solid = SOLID_NOT; self.grenadeoneentity.owner = self; self.grenadeoneentity.grenadeoneentity = self.grenadeoneentity; - setmodel(self.grenadeoneentity, "models/grenades/fragnade.MD3"); - self.grenadeoneentity.scale = .07; - self.grenadeoneentity.origin = '10 9 0'; + setmodel(self.grenadeoneentity, "models/hud_nobul.sp2"); + self.grenadeoneentity.scale = .1; + self.grenadeoneentity.origin = '40 0 0'; self.grenadeoneentity.angles = '0 0 0'; self.grenadeoneentity.viewmodelforclient = self; self.grenadeoneentity.flags = 0; -- 2.39.2