Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
white disc
#1
My theory on whitedisc:

White disc happens when the game looks for the player in the game at the end of a countdown so it can assign a team and let you shoot again. When the player isn't there (because you fell too late at the end of a round pre-.asm's fix) the game looks if your a spectator (hence why spectate works for pre-.asms fix). But all .asm did was for the game to make sure all players are there before starting the round and if not then put them there. This works great for rc_arena and other 1v1 maps, NOT for 2v2 (or 3v3, 4v4, etc etc).

Here's what happens in 2v2. 4 players: A and B are on a team, 1 and 2 are on a team. 1 kills A, B kills 1, 2 kills B. Team 2 wins and then everyone respawns and can play again....in a perfect world. What happens is when A is killed there's a respawn delay, (which if you look i am guessing is the same amount of time before the next countdown starts in a 1v1 map) after that delay the game thinks he's supposed to be in the game since a new round hasn't started yet (2 and B are still fighting) and so the game has no idea where to put the guy, so he starts spectating (same thing that would happen pre-.asm fix).

Now another thing, if he starts spectating because of whitedisc, and going to spectate makes it work, why wouldn't it just work in the first place? Because, obviously, going to spectate and getting whitedisc are 2 different things even though they appear to be the same. A fix for the 2v2 white disc is that whenever you die you press your spectate key. EVERYTIME you die, press the spectate key. I have no idea why it works, but it does. Now we already have a fix, it's just not automated. If anyone could somehow make it so that when you die, and you aren't called back to be in the game, you go directly to specator, just as if you hit the spectate key.
Reply
#2
Sounds to me like Spectate does far more to reset a person than the simple fix that .asm introduced which just inserts them into an arena. Also, it isn't a complete fix since it introduces a bug in 1v1 and the original issue of spectate within DM still exists. Right now I have quite a bit on, but I'll think about clearing up some coding time to look over the source again and see if I can work out exactly what is going on, and then we can move forward from there.

I think our quick fix attempts haven't worked correctly so far.
Reply
#3
got it. I was goin through disc_arena.cpp and looking at the stuff there. In the funcion StartBattle the players get plopped into the arena and assigned teams. Notice how the teams control weather you AND YOUR DISC are red or blue. Whitedisc = your disc is white. My guess is that the game loses track of what team your on when you get whitedisc hence you can kill anyone when uh ave whitedisc
Reply
#4
White is team seven. Plug in null values until you get team seven's topcolor and bottomcolor.
Reply
#5
I'm ill at the moment so I'd probably f*** up any reading I did of code right now... hell I was making basic n00b mistakes just using VB 6 today :/
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)