r2815 - branches/nexuiz-2.0/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Oct 6 15:27:32 EDT 2007
Author: div0
Date: 2007-10-06 15:27:31 -0400 (Sat, 06 Oct 2007)
New Revision: 2815
Modified:
branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc
branches/nexuiz-2.0/data/qcsrc/server/defs.qh
branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc
branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc
branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc
branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc
branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc
branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc
branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc
branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc
Log:
add bestweapon support using DP_CON_BESTWEAPON
Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -616,6 +616,7 @@
void ClientConnect (void)
{
local string s;
+ float wep;
if(Ban_IsClientBanned(self))
{
@@ -695,6 +696,15 @@
// get version info from player
stuffcmd(self, "cmd clientversion $gameversion\n");
+ // send all weapon info strings
+ stuffcmd(self, "register_bestweapon clear\n"); // clear the Quake stuff
+ wep = WEP_FIRST;
+ while (wep <= WEP_LAST)
+ {
+ weapon_action(wep, WR_REGISTER);
+ wep = wep + 1;
+ }
+
// get other cvars from player
GetCvars(0);
Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_weaponsystem.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -494,4 +494,29 @@
error("Unowned missile");
missile.velocity = W_CalculateProjectileVelocity(missile.owner.velocity, missile.velocity);
+}
+
+void(float wepcode, float minammo) weapon_register =
+{
+ string s;
+ float itemcode;
+ s = strcat("register_bestweapon ", ftos(wepcode), " "); // char for bestweapon
+ s = strcat(s, ftos(wepcode), " "); // impulse
+ s = strcat(s, ftos(W_ItemCode(wepcode)), " "); // item code
+ s = strcat(s, ftos(wepcode), " "); // self.weapon code
+
+ // ammo stat
+ itemcode = W_AmmoItemCode(wepcode);
+ if(itemcode == IT_SHELLS)
+ s = strcat(s, "6 ");
+ else if(itemcode == IT_NAILS)
+ s = strcat(s, "7 ");
+ else if(itemcode == IT_ROCKETS)
+ s = strcat(s, "8 ");
+ else // if(itemcode == IT_CELLS)
+ s = strcat(s, "9 ");
+
+ s = strcat(s, ftos(minammo), "\n");
+ //dprint(s);
+ stuffcmd(self, s);
}
Modified: branches/nexuiz-2.0/data/qcsrc/server/defs.qh
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/defs.qh 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/defs.qh 2007-10-06 19:27:31 UTC (rev 2815)
@@ -138,6 +138,7 @@
float WR_CHECKAMMO2 = 4; // checks ammo for weapon
float WR_AIM = 5; // runs bot aiming code for this weapon
float WR_PRECACHE = 6; // precaches models/sounds used by this weapon
+float WR_REGISTER = 7; // send data about the weapon to the client self (for ClientConnect)
// Weapon indexes
float WEP_LASER = 1; // float IT_LASER = 4096;
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_crylink.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -217,5 +217,7 @@
return self.ammo_cells >= cvar("g_balance_crylink_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_cells >= cvar("g_balance_crylink_secondary_ammo");
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_CRYLINK, min(cvar("g_balance_crylink_primary_ammo"), cvar("g_balance_crylink_secondary_ammo")));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_electro.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -212,5 +212,7 @@
return self.ammo_cells >= cvar("g_balance_electro_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_cells >= cvar("g_balance_electro_secondary_ammo");
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_ELECTRO, min(cvar("g_balance_electro_primary_ammo"), cvar("g_balance_electro_secondary_ammo")));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_grenadelauncher.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -201,5 +201,7 @@
return self.ammo_rockets >= cvar("g_balance_grenadelauncher_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_rockets >= cvar("g_balance_grenadelauncher_secondary_ammo");
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_GRENADE_LAUNCHER, min(cvar("g_balance_grenadelauncher_primary_ammo"), cvar("g_balance_grenadelauncher_secondary_ammo")));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_hagar.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -189,5 +189,7 @@
return self.ammo_rockets >= cvar("g_balance_hagar_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_rockets >= cvar("g_balance_hagar_secondary_ammo");
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_HAGAR, min(cvar("g_balance_hagar_primary_ammo"), cvar("g_balance_hagar_secondary_ammo")));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_laser.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -131,5 +131,7 @@
return TRUE;
else if (req == WR_CHECKAMMO2)
return TRUE;
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_LASER, 0);
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_nex.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -192,5 +192,7 @@
}
else if (req == WR_CHECKAMMO2)
return FALSE;
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_NEX, cvar("g_balance_nex_ammo"));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_rocketlauncher.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -411,5 +411,7 @@
}
else if (req == WR_CHECKAMMO2)
return FALSE;
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_ROCKET_LAUNCHER, cvar("g_balance_rocketlauncher_ammo"));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_shotgun.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -108,5 +108,7 @@
return self.ammo_shells >= cvar("g_balance_shotgun_primary_ammo");
else if (req == WR_CHECKAMMO2)
return self.ammo_shells >= cvar("g_balance_shotgun_secondary_ammo") * 3;
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_SHOTGUN, min(cvar("g_balance_shotgun_primary_ammo"), cvar("g_balance_shotgun_secondary_ammo")));
return TRUE;
};
Modified: branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc 2007-10-06 19:25:31 UTC (rev 2814)
+++ branches/nexuiz-2.0/data/qcsrc/server/w_uzi.qc 2007-10-06 19:27:31 UTC (rev 2815)
@@ -126,6 +126,8 @@
else if (req == WR_CHECKAMMO1)
return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
else if (req == WR_CHECKAMMO2)
- return self.ammo_nails >= cvar("g_balance_uzi_sustained_ammo");
+ return self.ammo_nails >= cvar("g_balance_uzi_first_ammo");
+ else if (req == WR_REGISTER)
+ weapon_register(WEP_UZI, cvar("g_balance_uzi_first_ammo"));
return TRUE;
};
More information about the nexuiz-commits
mailing list