<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> The ball is in Valve's court now.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--> Oh, god, no... This will take forever...
SinSpawnHarbinger of SufferingJoin Date: 2002-11-12Member: 8359Members
..I see to do good in ns..often I join the server last-ish...would explain that.
Good job for NS team to find this out, i hope Valve will make this a top priority thing, although honestly, i don't think they will be able to fix it and this will be stuck for half life forever!
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->The little mistakes are ALWAYS the hardest to find, so that would come as no surprise I'm sure....
Someone will be beating their head against thge desk for hours over this one XD <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Yeah I know, my favorite is that inconspicously placed semicolon at the end of if statements and for-loops, and the or(||) instead of bitwise or (|) when setting flags, which shouldn't give you any compile errors since you either get 1 or 0, which turns off all flags except possibly the flag using that least significant bit.
e.g.
for (int i = 0 ; i < 10 ; i++ ); { //some code }
or ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN| DDSCAPS_VIDEOMEMORY || DSCAPS_LOCALVIDMEM;
I've done those silly mistakes so many times it's not funny anymore.
But when doing such an important thing like this I would have dodecaduple checked it just to be sure.
<!--QuoteBegin-Soylent green+Jul 25 2004, 10:20 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Soylent green @ Jul 25 2004, 10:20 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--><!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->The little mistakes are ALWAYS the hardest to find, so that would come as no surprise I'm sure....
Someone will be beating their head against thge desk for hours over this one XD <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Yeah I know, my favorite is that inconspicously placed semicolon at the end of if statements and for-loops, and the or(||) instead of bitwise or (|) when setting flags, which shouldn't give you any compile errors since you either get 1 or 0, which turns off all flags except possibly the flag using that least significant bit.
e.g.
for (int i = 0 ; i < 10 ; i++ ); { //some code }
or ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN| DDSCAPS_VIDEOMEMORY || DSCAPS_LOCALVIDMEM;
I've done those silly mistakes so many times it's not funny anymore.
But when doing such an important thing like this I would have dodecaduple checked it just to be sure.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--> :S wth is all that??
Anyway very very good work on the bug !!!!111!! its existed for the life-span of HL and noone has created sufficient evidence until now. Again, awesome work everyone who tried hard to shed some light on this <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->:D.
all we can do now is pray that valve do something to fix this asap.. or we could all send weekly e-mails complaining about it <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html//emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif' /><!--endemo-->
Well at least we know now if we want to do some ownage at NS, just make sure you join last. <!--emo&::asrifle::--><img src='http://www.unknownworlds.com/forums/html//emoticons/asrifle.gif' border='0' style='vertical-align:middle' alt='asrifle.gif' /><!--endemo-->
SinSpawnHarbinger of SufferingJoin Date: 2002-11-12Member: 8359Members
<!--QuoteBegin-cortex+Jul 25 2004, 01:39 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (cortex @ Jul 25 2004, 01:39 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> i dont think any of the server Admin's like people that exploit PSHB. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd--> but how can you stop it? kick the last player, thats not really fair, even if the player doesn't know about it, i didn't know until today :O
Well until it's fixed: AMX: <a href='http://www.modns.org/forums/index.php?showtopic=660' target='_blank'>http://www.modns.org/forums/index.php?showtopic=660</a>
Mahnsawce has attempted to make a version adding a bot to hold the bugged slot, but it causes important issues with AMX, so there is no "bot" version of the fix. Just consider these as temporary fixes for server admins who wish to use them on their server until an official fix comes out.
Edit: Also, note that reserved slot plugins will <u>not</u> stop <u>any</u> player from getting the last slot and these fix plugins can work <u>with</u> reserved slot plugins, but the amount of reserved slot has to be increased by 2. So a server with 2 reserved slots will need have to have 4 reserved slots to compensate for the 2 hidden and unused slots. We probably have tried all the possible temporary fixes imaginable and these were the only ones that work at 100%.
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->For those who aren't familiar with the PSHB, it's a bug that affects player #N on a #N player server. For instance, if you're on a 10 player server and type "status" in your console, you'll find that player 10 will be harder to kill, seem invincible, or completely own you and never seem to die.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
By "player 10" do you mean the tenth person on the list? Does "#N play server" refer to the number of player slots on the server or the number of players on the server at a given time?
Does this imply either that the bug only happens when every slot is full or that the last player to connect is ALWAYS "bugged"? If other players disconnect or connect and cause the "bugged" player not to occupy the nth position in the list, does the bug effect switch to affect a different player? What effect does the "bugged" player retrying have, if any?
PlasmaJoin Date: 2003-04-26Member: 15855Members, Constellation, Squad Five Blue
ns_unlag is a boolean variable (0 or 1), the <= and < signs wont make any difference here, thats not whats being referenced in code...
Its not related to that variable <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
I'm not sure if I understand this correctly. So, lets say you have a 16 person server, full. Player number 16 (checking the status, number 16) will be bugged. Ok, I get that pretty much. So if it was 15/16 would player 15 be bugged? What I'm saying is, is it just the last player number on the server? If not, a sort of gimpy workaround could possibly be making the server 16/17, where slot 17 would just be some obscure reservation slot that nobody could use. Obviously this would be annoying on steam and such, with the auto-retry feature, but it might be a worthwhile tradeoff to not have gimpy players running around every server not dying. Though, thats mainly why I asked the first question, because this would not work if the next highest player number would be bugged.
... how has this not been properly picked up on before? <img src='http://kaine.kod.gotlag.com/de_nuke0000%20copy.jpg' border='0' alt='user posted image' />
<!--QuoteBegin-Plasma+Jul 25 2004, 01:39 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Plasma @ Jul 25 2004, 01:39 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> ns_unlag is a boolean variable (0 or 1), the <= and < signs wont make any difference here, thats not whats being referenced in code...
Its not related to that variable <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--> <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd--> We weren't referring to the code that reads the variable "sv_unlag", but the code that actually DOES what the variable is there to do. By < or <= we also aren't referring to the 0 or 1 boolean value of the variable.
The fact that disabling sv_unlag causes the bug for every player suggests to me that sv_unlag is related to the bug. The fact that only the last slot is affected when it is enabled, suggests to me the < instead of <= idea.
Take some made up code for example:
for (int i = 1 ; i < 10 ; i++ ); { // apply sv_unlag code to player "i" }
This will apply the code to players 1, 2, 3... up to 9. Then stop. If the intention was to apply the code up to and including 10, then <= should have been used.
for (int i = 1 ; i <= 10 ; i++ ); { // apply sv_unlag code to player "i" }
This code would apply to 1, 2, 3 all the way to and including 10.
Imagine that 10 is the number of slots on a server, imagine the mistake of < being used, the result is sv_unlag being applied to everyone except slot 10.
Of course this is all theory, I've never set eyes upon the SDK or NS code, but I've encountered the < and <= error in my code plenty of times and this is a similar characteristic.
<!--QuoteBegin-Norml E. High+Jul 25 2004, 08:48 AM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Norml E. High @ Jul 25 2004, 08:48 AM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> I'm not sure if I understand this correctly. So, lets say you have a 16 person server, full. Player number 16 (checking the status, number 16) will be bugged. Ok, I get that pretty much. So if it was 15/16 would player 15 be bugged? What I'm saying is, is it just the last player number on the server? If not, a sort of gimpy workaround could possibly be making the server 16/17, where slot 17 would just be some obscure reservation slot that nobody could use. Obviously this would be annoying on steam and such, with the auto-retry feature, but it might be a worthwhile tradeoff to not have gimpy players running around every server not dying. Though, thats mainly why I asked the first question, because this would not work if the next highest player number would be bugged. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--> The bugged person always occupy the last slot. So on a 17 player server whoever has slot 17 will be bugged. On a 32 player server, player with the id 32 will be bugged. If the server is 10/17 then nobody will be bugged, except if one of the players occupies slot 17.
You cannot simply fix this by creating a 17 player server. On a 17 player server like Lunixmonster which only allows 16 people in the game, it is still possible to get slot 17. If you type in status you will usually notice that there is no player 16, or 15. Some servers have set up a script to auto-kick the player in the last slot. Seems like the most effective fix for now.
rofl, whenever Flayra drops a post it feels like jesus is among us <!--emo&::nerdy::--><img src='http://www.unknownworlds.com/forums/html//emoticons/nerd.gif' border='0' style='vertical-align:middle' alt='nerd.gif' /><!--endemo-->
<!--QuoteBegin-Vo0do0-MoNk3h+Jul 25 2004, 02:24 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Vo0do0-MoNk3h @ Jul 25 2004, 02:24 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> <!--QuoteBegin-Plasma+Jul 25 2004, 01:39 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Plasma @ Jul 25 2004, 01:39 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> ns_unlag is a boolean variable (0 or 1), the <= and < signs wont make any difference here, thats not whats being referenced in code...
Its not related to that variable <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--> <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--> We weren't referring to the code that reads the variable "sv_unlag", but the code that actually DOES what the variable is there to do. By < or <= we also aren't referring to the 0 or 1 boolean value of the variable.
The fact that disabling sv_unlag causes the bug for every player suggests to me that sv_unlag is related to the bug. The fact that only the last slot is affected when it is enabled, suggests to me the < instead of <= idea.
Take some made up code for example:
for (int i = 1 ; i < 10 ; i++ ); { // apply sv_unlag code to player "i" }
This will apply the code to players 1, 2, 3... up to 9. Then stop. If the intention was to apply the code up to and including 10, then <= should have been used.
for (int i = 1 ; i <= 10 ; i++ ); { // apply sv_unlag code to player "i" }
This code would apply to 1, 2, 3 all the way to and including 10.
Imagine that 10 is the number of slots on a server, imagine the mistake of < being used, the result is sv_unlag being applied to everyone except slot 10.
Of course this is all theory, I've never set eyes upon the SDK or NS code, but I've encountered the < and <= error in my code plenty of times and this is a similar characteristic. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd--> Well maybe it should actually look like this:
<!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->for (int i = 1; i <= max_players; i++ ) { // apply sv_unlag code to player "i" }<!--c2--></td></tr></table><div class='postcolor'><!--ec2-->
But yes that sounds quite plausible as an error.
Anyway, nice detective work on the bug! As I read the post I felt a mystery was unfolding and being solved. It even had a plot twist: it happens in every mod! <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
hey, if you place a semicoon after a for like this:
for(int i=0; i <= max; ++i); { // code }
your compilator should generate a WARNING.......... and you shouldn't leave any warnings as usual <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Also, how come this wasn't as noticed in the WON versions, if it indeed exsisted there?
Sounds rather fishy to me. What exactly did Vavle do to the netcode in STEAM over WON? <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--> There have been many small updates and tweaks to the HL engine since steam has been released. I think one of them might be to blame, or it might be the way they tie the games into steam.
Hey, many thanks to those who have been tracking this bug. Nice tombstone, Tyr. <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
Server admins: there are a few plugins out there to sidestep the last slot, so those can be added to servers until Valve fixes this.
At this very moment in time I am making an UberCookie for the whole NS community
Well done to all the people involved and its nice to see our leader back on the boards
/me bows down
If this was the CS forums we would have a flame war by now about
'()Mg \/4L\/3 J0o 15 teh Cr4p!!!'
I mean have you guys seen <a href='http://www.steampowered.com/forums/showthread.php?threadid=109749' target='_blank'>this</a> post? I mean what the hell..
If you dont want to clik on the above link click <a href='http://www.steampowered.com/forums/showthread.php?threadid=109749' target='_blank'>here</a> or <a href='http://www.steampowered.com/forums/showthread.php?threadid=109749' target='_blank'>here</a>
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> </td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> rofl, whenever Flayra drops a post it feels like jesus is among us<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd--> Yea, how did the lore go? "Buried and risen in the..." <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html//emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif' /><!--endemo-->
Or maybe someone just found the 'secret' code of his account; "Ch1k1n4Br3akfast." <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Does anyone actually think that the steam will fix this bug? i dont really think they will with HL2 round the corner and one hell of a buggy client.
Ive seen this happen before but ive always really classed it as 'lag'. its nice to hear that people with fast connections (like me on PURE 100Mbit) wont be able to exploit this bug because the server will see more or less what i do. Ping 12 is starting to suck ****...
Comments
Oh, god, no... This will take forever...
*Gets a headache*
Good job for NS team to find this out, i hope Valve will make this a top priority thing, although honestly, i don't think they will be able to fix it and this will be stuck for half life forever!
noes!!!
Someone will be beating their head against thge desk for hours over this one XD
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Yeah I know, my favorite is that inconspicously placed semicolon at the end of if statements and for-loops, and the or(||) instead of bitwise or (|) when setting flags, which shouldn't give you any compile errors since you either get 1 or 0, which turns off all flags except possibly the flag using that least significant bit.
e.g.
for (int i = 0 ; i < 10 ; i++ );
{
//some code
}
or
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN| DDSCAPS_VIDEOMEMORY || DSCAPS_LOCALVIDMEM;
I've done those silly mistakes so many times it's not funny anymore.
But when doing such an important thing like this I would have dodecaduple checked it just to be sure.
Someone will be beating their head against thge desk for hours over this one XD
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Yeah I know, my favorite is that inconspicously placed semicolon at the end of if statements and for-loops, and the or(||) instead of bitwise or (|) when setting flags, which shouldn't give you any compile errors since you either get 1 or 0, which turns off all flags except possibly the flag using that least significant bit.
e.g.
for (int i = 0 ; i < 10 ; i++ );
{
//some code
}
or
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN| DDSCAPS_VIDEOMEMORY || DSCAPS_LOCALVIDMEM;
I've done those silly mistakes so many times it's not funny anymore.
But when doing such an important thing like this I would have dodecaduple checked it just to be sure.<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
:S wth is all that??
Anyway very very good work on the bug !!!!111!! its existed for the life-span of HL and noone has created sufficient evidence until now. Again, awesome work everyone who tried hard to shed some light on this <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->:D.
all we can do now is pray that valve do something to fix this asap.. or we could all send weekly e-mails complaining about it <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html//emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif' /><!--endemo-->
but how can you stop it? kick the last player, thats not really fair, even if the player doesn't know about it, i didn't know until today :O
AMX:
<a href='http://www.modns.org/forums/index.php?showtopic=660' target='_blank'>http://www.modns.org/forums/index.php?showtopic=660</a>
Metamod:
<a href='http://www.modns.org/forums/index.php?showtopic=661' target='_blank'>http://www.modns.org/forums/index.php?showtopic=661</a>
Mahnsawce has attempted to make a version adding a bot to hold the bugged slot, but it causes important issues with AMX, so there is no "bot" version of the fix. Just consider these as temporary fixes for server admins who wish to use them on their server until an official fix comes out.
Edit: Also, note that reserved slot plugins will <u>not</u> stop <u>any</u> player from getting the last slot and these fix plugins can work <u>with</u> reserved slot plugins, but the amount of reserved slot has to be increased by 2. So a server with 2 reserved slots will need have to have 4 reserved slots to compensate for the 2 hidden and unused slots. We probably have tried all the possible temporary fixes imaginable and these were the only ones that work at 100%.
By "player 10" do you mean the tenth person on the list? Does "#N play server" refer to the number of player slots on the server or the number of players on the server at a given time?
Does this imply either that the bug only happens when every slot is full or that the last player to connect is ALWAYS "bugged"? If other players disconnect or connect and cause the "bugged" player not to occupy the nth position in the list, does the bug effect switch to affect a different player? What effect does the "bugged" player retrying have, if any?
<a href='http://www.unknownworlds.com/forums/index.php?showtopic=70356&hl=' target='_blank'>http://www.unknownworlds.com/forums/in...topic=70356&hl=</a>
Its not related to that variable <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
<img src='http://kaine.kod.gotlag.com/de_nuke0000%20copy.jpg' border='0' alt='user posted image' />
Its not related to that variable <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--> <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
We weren't referring to the code that reads the variable "sv_unlag", but the code that actually DOES what the variable is there to do.
By < or <= we also aren't referring to the 0 or 1 boolean value of the variable.
The fact that disabling sv_unlag causes the bug for every player suggests to me that sv_unlag is related to the bug.
The fact that only the last slot is affected when it is enabled, suggests to me the < instead of <= idea.
Take some made up code for example:
for (int i = 1 ; i < 10 ; i++ );
{
// apply sv_unlag code to player "i"
}
This will apply the code to players 1, 2, 3... up to 9. Then stop.
If the intention was to apply the code up to and including 10, then <= should have been used.
for (int i = 1 ; i <= 10 ; i++ );
{
// apply sv_unlag code to player "i"
}
This code would apply to 1, 2, 3 all the way to and including 10.
Imagine that 10 is the number of slots on a server, imagine the mistake of < being used, the result is sv_unlag being applied to everyone except slot 10.
Of course this is all theory, I've never set eyes upon the SDK or NS code, but I've encountered the < and <= error in my code plenty of times and this is a similar characteristic.
The bugged person always occupy the last slot. So on a 17 player server whoever has slot 17 will be bugged. On a 32 player server, player with the id 32 will be bugged. If the server is 10/17 then nobody will be bugged, except if one of the players occupies slot 17.
You cannot simply fix this by creating a 17 player server. On a 17 player server like Lunixmonster which only allows 16 people in the game, it is still possible to get slot 17. If you type in status you will usually notice that there is no player 16, or 15. Some servers have set up a script to auto-kick the player in the last slot. Seems like the most effective fix for now.
I dropped VALVe an e-mail about this just to see if that helps. Hopefully we'll get a response.
**huggles flayra excessively**
Its not related to that variable <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo--> <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
We weren't referring to the code that reads the variable "sv_unlag", but the code that actually DOES what the variable is there to do.
By < or <= we also aren't referring to the 0 or 1 boolean value of the variable.
The fact that disabling sv_unlag causes the bug for every player suggests to me that sv_unlag is related to the bug.
The fact that only the last slot is affected when it is enabled, suggests to me the < instead of <= idea.
Take some made up code for example:
for (int i = 1 ; i < 10 ; i++ );
{
// apply sv_unlag code to player "i"
}
This will apply the code to players 1, 2, 3... up to 9. Then stop.
If the intention was to apply the code up to and including 10, then <= should have been used.
for (int i = 1 ; i <= 10 ; i++ );
{
// apply sv_unlag code to player "i"
}
This code would apply to 1, 2, 3 all the way to and including 10.
Imagine that 10 is the number of slots on a server, imagine the mistake of < being used, the result is sv_unlag being applied to everyone except slot 10.
Of course this is all theory, I've never set eyes upon the SDK or NS code, but I've encountered the < and <= error in my code plenty of times and this is a similar characteristic. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
Well maybe it should actually look like this:
<!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><!--ec1-->for (int i = 1; i <= max_players; i++ )
{
// apply sv_unlag code to player "i"
}<!--c2--></td></tr></table><div class='postcolor'><!--ec2-->
But yes that sounds quite plausible as an error.
Anyway, nice detective work on the bug! As I read the post I felt a mystery was unfolding and being solved. It even had a plot twist: it happens in every mod! <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
(big croud) "WE LOVE YOU" (everyone giggles like school girls)
<!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
ITS JESUSSS...ermh FLAYRA!
lol
BTW great work everyone for finding this bug, and figuring out why it happens. It is a very serious bug, I just hope valve can fix it...
for(int i=0; i <= max; ++i);
{
// code
}
your compilator should generate a WARNING.......... and you shouldn't leave any warnings as usual <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
Also, how come this wasn't as noticed in the WON versions, if it indeed exsisted there?
Sounds rather fishy to me. What exactly did Vavle do to the netcode in STEAM over WON?
Sounds rather fishy to me. What exactly did Vavle do to the netcode in STEAM over WON? <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
There have been many small updates and tweaks to the HL engine since steam has been released. I think one of them might be to blame, or it might be the way they tie the games into steam.
Hey, many thanks to those who have been tracking this bug. Nice tombstone, Tyr. <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
Server admins: there are a few plugins out there to sidestep the last slot, so those can be added to servers until Valve fixes this.
Well done to all the people involved and its nice to see our leader back on the boards
/me bows down
If this was the CS forums we would have a flame war by now about
'()Mg \/4L\/3 J0o 15 teh Cr4p!!!'
I mean have you guys seen <a href='http://www.steampowered.com/forums/showthread.php?threadid=109749' target='_blank'>this</a> post? I mean what the hell..
If you dont want to clik on the above link click <a href='http://www.steampowered.com/forums/showthread.php?threadid=109749' target='_blank'>here</a> or <a href='http://www.steampowered.com/forums/showthread.php?threadid=109749' target='_blank'>here</a>
Yea, how did the lore go? "Buried and risen in the..." <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html//emoticons/wink.gif' border='0' style='vertical-align:middle' alt='wink.gif' /><!--endemo-->
Or maybe someone just found the 'secret' code of his account; "Ch1k1n4Br3akfast." <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Ive seen this happen before but ive always really classed it as 'lag'. its nice to hear that people with fast connections (like me on PURE 100Mbit) wont be able to exploit this bug because the server will see more or less what i do. Ping 12 is starting to suck ****...