]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
make the sniper rifle secondary reload. Execute the rifle reload later if it can...
authorFruitieX <fruitiex@gmail.com>
Sun, 9 Jan 2011 01:38:29 +0000 (03:38 +0200)
committerFruitieX <fruitiex@gmail.com>
Sun, 9 Jan 2011 01:38:29 +0000 (03:38 +0200)
balance25.cfg
balanceLeeStricklin.cfg
balanceSamual.cfg
balanceXonotic.cfg
balancetZork.cfg
qcsrc/server/autocvars.qh
qcsrc/server/cl_client.qc
qcsrc/server/cl_weapons.qc
qcsrc/server/defs.qh
qcsrc/server/w_sniperrifle.qc

index bb646c8f7af55b75bbfcab5bd95efb42f375c2b3..95c2f2f1f53180cda4e7073c5b13a7402f58f3b8 100644 (file)
@@ -627,6 +627,7 @@ set g_balance_sniperrifle_primary_bulletconstant 130 // 56.3qu
 set g_balance_sniperrifle_primary_burstcost 0
 set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
 set g_balance_sniperrifle_secondary_damage 35
 set g_balance_sniperrifle_secondary_headshotaddeddamage 15 // 50 damage only on head
index 0ee81798805b6a32f6ff7bf946ee363b55cb4c94..d1b959c3337af32ef860fbc3c0fcd7f1f572d0ea 100644 (file)
@@ -627,6 +627,7 @@ set g_balance_sniperrifle_primary_bulletconstant 130 // 56.3qu
 set g_balance_sniperrifle_primary_burstcost 0 // require same cooldown as secondary, note it's smaller than primary refire time
 set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
 set g_balance_sniperrifle_secondary_damage 40
 set g_balance_sniperrifle_secondary_headshotaddeddamage 20
index 451adf196ef4dd84738c211866ffb7e8d815652e..600f7fb5e276150915c9732d110c45715aa117db 100644 (file)
@@ -627,6 +627,7 @@ set g_balance_sniperrifle_primary_bulletconstant 110 // 62.2qu
 set g_balance_sniperrifle_primary_burstcost 0
 set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
 set g_balance_sniperrifle_secondary_damage 50
 set g_balance_sniperrifle_secondary_headshotaddeddamage 50 // 50 damage only on head
index a16f07ba18feb8704c196771445ee1117a4579a5..1a4001532d87211f15a7a6ad674587dbd61ec141 100644 (file)
@@ -627,6 +627,7 @@ set g_balance_sniperrifle_primary_bulletconstant 110 // 62.2qu
 set g_balance_sniperrifle_primary_burstcost 0
 set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 1
 set g_balance_sniperrifle_secondary_tracer 0
 set g_balance_sniperrifle_secondary_damage 42
 set g_balance_sniperrifle_secondary_headshotaddeddamage 42
index b0b589867b9f6573c845334077add9cb1013fc43..174a5c3dad8c55a8b5aea0d93e8732b67cda2777 100644 (file)
@@ -627,6 +627,7 @@ set g_balance_sniperrifle_primary_bulletconstant 110 // 62.2qu
 set g_balance_sniperrifle_primary_burstcost 0
 set g_balance_sniperrifle_primary_bullethail 0 // empty magazine on shot
 set g_balance_sniperrifle_secondary 1
+set g_balance_sniperrifle_secondary_reload 0
 set g_balance_sniperrifle_secondary_tracer 0
 set g_balance_sniperrifle_secondary_damage 50
 set g_balance_sniperrifle_secondary_headshotaddeddamage 50 // 50 damage only on head
index d8d0c5f82c27da2c17e724097425d49a5c06ac39..07a74d4c668d5ff1a9d93ffc31e9f2b4d2ddc60d 100644 (file)
@@ -109,6 +109,7 @@ float autocvar_g_balance_sniperrifle_secondary_damage;
 float autocvar_g_balance_sniperrifle_secondary_force;
 float autocvar_g_balance_sniperrifle_secondary_headshotaddeddamage;
 float autocvar_g_balance_sniperrifle_secondary_lifetime;
+float autocvar_g_balance_sniperrifle_secondary_reload;
 float autocvar_g_balance_sniperrifle_secondary_refire;
 float autocvar_g_balance_sniperrifle_secondary_speed;
 float autocvar_g_balance_sniperrifle_secondary_spread;
index cb2d2ed3dea2cecefbf54d40905f90ad30954dca..ec89824d80afecca9bc314de12523e58c0809113 100644 (file)
@@ -1065,6 +1065,8 @@ void PutClientInServer (void)
                self.cnt = self.switchweapon;
                self.weapon = 0;
 
+        self.wish_reload = 0;
+
                if(!self.alivetime)
                        self.alivetime = time;
        } else if(self.classname == "observer" || (g_ca && !allowed_to_spawn)) {
index 6de63b9377fd76893498adebe0507247737e3fe1..17190326f85daf322c5ec9ab3aa4dadf77c4b618 100644 (file)
@@ -1,8 +1,6 @@
 void W_Reload()
 {
-       if(self.switchweapon == self.weapon)
-       if(self.weaponentity.state == WS_READY)
-               weapon_action(self.weapon, WR_RELOAD);
+    self.wish_reload = 1;
 }
 
 // switch between weapons
index 8db4849e7816e1a161b9e27375924e22b0d93e12..970c86af429ecf3c4ef267ca4ef62b145e1afcad 100644 (file)
@@ -613,6 +613,7 @@ float client_cefc_accumulatortime;
 #endif
 
 .float sniperrifle_bulletcounter;
+.float wish_reload;
 
 #define PROJECTILE_MAKETRIGGER(e) (e).solid = SOLID_CORPSE; (e).dphitcontentsmask = DPCONTENTS_SOLID | DPCONTENTS_BODY | DPCONTENTS_CORPSE
 // when doing this, hagar can go through clones
index 720ab8f82be4d9a79fe1e7a3d043ddec188e01ff..22992dc3cf7a1342362fbce4d1fcc39f3549a168 100644 (file)
@@ -212,9 +212,7 @@ float w_sniperrifle(float req)
        {
                if(self.sniperrifle_bulletcounter < 0) // forced reload (e.g. because interrupted)
                {
-                       if(self.switchweapon == self.weapon)
-                       if(self.weaponentity.state == WS_READY)
-                               W_SniperRifle_Reload();
+            self.wish_reload = 1;
                }
                else
                {
@@ -231,16 +229,32 @@ float w_sniperrifle(float req)
                        {       
                                if (autocvar_g_balance_sniperrifle_secondary)
                                {
-                                       if (weapon_prepareattack_check(1, autocvar_g_balance_sniperrifle_secondary_refire))
-                                       if (time >= self.sniperrifle_accumulator + autocvar_g_balance_sniperrifle_secondary_burstcost)
-                                       {
-                                               weapon_prepareattack_do(1, autocvar_g_balance_sniperrifle_secondary_refire);
-                                               W_SniperRifle_BulletHail(autocvar_g_balance_sniperrifle_secondary_bullethail, W_SniperRifle_Attack2, WFRAME_FIRE2, autocvar_g_balance_sniperrifle_secondary_animtime, autocvar_g_balance_sniperrifle_primary_refire);
-                                               self.sniperrifle_accumulator += autocvar_g_balance_sniperrifle_secondary_burstcost;
-                                       }
+                    if(autocvar_g_balance_sniperrifle_secondary_reload)
+                        self.wish_reload = 1;
+                    else
+                    {
+                        if (weapon_prepareattack_check(1, autocvar_g_balance_sniperrifle_secondary_refire))
+                        if (time >= self.sniperrifle_accumulator + autocvar_g_balance_sniperrifle_secondary_burstcost)
+                        {
+                            weapon_prepareattack_do(1, autocvar_g_balance_sniperrifle_secondary_refire);
+                            W_SniperRifle_BulletHail(autocvar_g_balance_sniperrifle_secondary_bullethail, W_SniperRifle_Attack2, WFRAME_FIRE2, autocvar_g_balance_sniperrifle_secondary_animtime, autocvar_g_balance_sniperrifle_primary_refire);
+                            self.sniperrifle_accumulator += autocvar_g_balance_sniperrifle_secondary_burstcost;
+                        }
+                    }
                                }
                        }
                }
+        if(self.wish_reload)
+        {
+            if(self.switchweapon == self.weapon)
+            {
+                if(self.weaponentity.state == WS_READY)
+                {
+                    self.wish_reload = 0;
+                    W_SniperRifle_Reload();
+                }
+            }
+        }
        }
        else if (req == WR_PRECACHE)
        {
@@ -266,7 +280,7 @@ float w_sniperrifle(float req)
                return self.ammo_nails >= autocvar_g_balance_sniperrifle_secondary_ammo;
        else if (req == WR_RELOAD)
        {
-               W_SniperRifle_Reload();
+        self.wish_reload = 1;
        }
        else if (req == WR_RESETPLAYER)
        {