r4867 - trunk/data/qcsrc/server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Oct 25 03:50:19 EDT 2008
Author: div0
Date: 2008-10-25 03:50:06 -0400 (Sat, 25 Oct 2008)
New Revision: 4867
Modified:
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/miscfunctions.qc
Log:
fix ClientDisconnect possibly using a strunzoned string
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2008-10-24 12:57:49 UTC (rev 4866)
+++ trunk/data/qcsrc/server/cl_client.qc 2008-10-25 07:50:06 UTC (rev 4867)
@@ -1271,11 +1271,8 @@
.entity chatbubbleentity;
.entity teambubbleentity;
void ReadyCount();
-//void() ctf_clientdisconnect;
void ClientDisconnect (void)
{
- float save;
-
if not(self.flags & FL_CLIENT)
{
print("Warning: ClientDisconnect without ClientConnect\n");
@@ -1292,38 +1289,30 @@
bprint ("^4",self.netname);
bprint ("^4 disconnected\n");
+ DropAllRunes(self);
+ kh_Key_DropAll(self, TRUE);
+
+ Portal_ClearAll(self);
+
+ if(self.flagcarried)
+ DropFlag(self.flagcarried, world, world);
+
+ // Here, everything has been done that requires this player to be a client.
+
+ self.flags (-) FL_CLIENT;
+
if (self.chatbubbleentity)
- {
remove (self.chatbubbleentity);
- self.chatbubbleentity = world;
- }
if (self.teambubbleentity)
- {
remove (self.teambubbleentity);
- self.teambubbleentity = world;
- }
if (self.killindicator)
- {
remove (self.killindicator);
- self.killindicator = world;
- }
- DropAllRunes(self);
- kh_Key_DropAll(self, TRUE);
-
- Portal_ClearAll(self);
-
- if(self.flagcarried)
- DropFlag(self.flagcarried, world, world);
-
WaypointSprite_PlayerGone();
- save = self.flags;
- self.flags = self.flags - (self.flags & FL_CLIENT);
bot_relinkplayerlist();
- self.flags = save;
// remove laserdot
if(self.weaponentity)
@@ -1335,11 +1324,6 @@
Spawnqueue_Unmark(self);
Spawnqueue_Remove(self);
}
- /*if(g_ctf)
- {
- ctf_clientdisconnect();
- }
- */
PlayerScore_Detach(self);
@@ -1348,11 +1332,11 @@
ClearPlayerSounds();
- // free cvars
- GetCvars(-1);
self.playerid = 0;
-
ReadyCount();
+
+ // free cvars
+ GetCvars(-1);
}
.float BUTTON_CHAT;
Modified: trunk/data/qcsrc/server/miscfunctions.qc
===================================================================
--- trunk/data/qcsrc/server/miscfunctions.qc 2008-10-24 12:57:49 UTC (rev 4866)
+++ trunk/data/qcsrc/server/miscfunctions.qc 2008-10-25 07:50:06 UTC (rev 4867)
@@ -481,6 +481,7 @@
{
if(self.field)
strunzone(self.field);
+ self.field = string_null;
}
else if(f > 0)
{
@@ -787,7 +788,7 @@
start_ammo_nails = cvar("g_pickup_nails_max");
start_ammo_rockets = cvar("g_pickup_rockets_max");
start_ammo_cells = cvar("g_pickup_cells_max");
- start_items |= IT_UNLIMITED_WEAPON_AMMO;
+ start_items |= IT_UNLIMITED_AMMO;
}
for(i = WEP_FIRST; i <= WEP_LAST; ++i)
More information about the nexuiz-commits
mailing list