From e545d3ca3edc7ca38cc93195f363241a14e43ca6 Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Tue, 12 Jul 2011 20:31:43 +0300 Subject: [PATCH] Grabber reload particles --- data/effectinfo.txt | 41 ++++++++++++++++++++++++++-- data/qcsrc/server/cl_weaponsystem.qc | 10 +++++-- data/qcsrc/server/g_casings.qc | 5 +--- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/data/effectinfo.txt b/data/effectinfo.txt index 499832fd..b3ba20dc 100644 --- a/data/effectinfo.txt +++ b/data/effectinfo.txt @@ -2060,8 +2060,6 @@ lightradius 160 lightradiusfade 600 lightcolor 1 0.2 0.1 - - // used in qcsrc/server/g_grabber.qc: pointparticles(particleeffectnum("grabber_impact"), self.origin, '0 0 0', 1) // decal effect grabber_impact @@ -2238,6 +2236,45 @@ velocitymultiplier 2.5 airfriction 2 gravity 1 +// used in qcsrc/server/cl_weaponsystem.qc: pointparticles(particleeffectnum("grabber_reload"), org, '0 0 0', 1); +effect grabber_reload +count 10 +type blood +tex 24 32 +size 2 4 +alpha 512 512 128 +color 0xFF9900 0x994400 +bounce -1 +airfriction 1 +liquidfriction 4 +velocityjitter 128 128 32 +velocitymultiplier 5 +color 0xFF9900 0x994400 +staintex 16 24 +//blood mist +effect grabber_reload +countabsolute 5 +type alphastatic +tex 0 8 +size 4 5 +alpha 100 256 400 +color 0xFF9900 0x994400 +originjitter 4 4 4 +// small sparks +effect grabber_reload +count 10 +type spark +tex 41 41 +color 0xFF9900 0xFF0000 +size 1 1 +alpha 255 255 192 +bounce 1.6 +stretchfactor 0.7 +velocityjitter 100 100 250 +velocitymultiplier 2.5 +airfriction 2 +gravity 1 + // used nowhere in code diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc index 465eeaf9..eed6d74c 100644 --- a/data/qcsrc/server/cl_weaponsystem.qc +++ b/data/qcsrc/server/cl_weaponsystem.qc @@ -1690,9 +1690,15 @@ void W_Reload(float sent_ammo_min, float sent_ammo_amount, float sent_time, stri // now begin the reloading process + // weapon reload effects + if(self.weapon == WEP_GRABBER) + { + vector org; + org = self.origin + self.view_ofs + self.weaponentity.spawnorigin_x * v_forward - self.weaponentity.spawnorigin_y * v_right + self.weaponentity.spawnorigin_z * v_up; + SpawnCasing (org, ((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 30) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 1, self); + pointparticles(particleeffectnum("grabber_reload"), org, '0 0 0', 1); + } sound (self, CHAN_WEAPON2, self.reload_sound, VOL_BASE, ATTN_NORM); - if(self.weapon == WEP_GRABBER) // spawn grabber casting - SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 30) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 1, self); // do not set ATTACK_FINISHED in reload code any more. This causes annoying delays if eg: You start reloading a weapon, // then quickly switch to another weapon and back. Reloading is canceled, but the reload delay is still there, diff --git a/data/qcsrc/server/g_casings.qc b/data/qcsrc/server/g_casings.qc index 0deac26e..9726c185 100644 --- a/data/qcsrc/server/g_casings.qc +++ b/data/qcsrc/server/g_casings.qc @@ -12,12 +12,9 @@ float Casing_SendEntity(entity to, float sf) return TRUE; } -void SpawnCasing(vector vel, float randomvel, vector ang, vector avel, float randomavel, float casingtype, entity casingowner) +void SpawnCasing(vector org, vector vel, float randomvel, vector ang, vector avel, float randomavel, float casingtype, entity casingowner) { entity e; - vector org; - - org = self.origin + self.view_ofs + self.weaponentity.spawnorigin_x * v_forward - self.weaponentity.spawnorigin_y * v_right + self.weaponentity.spawnorigin_z * v_up; if(!sound_allowed(MSG_BROADCAST, casingowner)) casingtype |= 0x80; -- 2.39.2