Notes |
|
|
Does "can't fire selected weapon" mean that the client can't fire at all or that it just is forced to fire a different weapon? |
|
|
(0002054)
|
unknownna
|
2011-08-02 03:26
(edited on: 2011-08-02 03:37) |
|
You can fire it, but no missiles/puffs will be spawned. And I'm not so sure if it's specific to telefragging. With your latest cl_ticsperupdate build I was able to reproduce it after "changemap" map changes in regular COOP with 2 bots + 1 client on a server.
|
|
|
|
The time I spent on these weapon sync problems is getting completely out of hand...
Anyway, I was never telefragged when following your steps, but I managed to reproduce the sync problem nevertheless. This hopefully works better, I don't know if it also improves the behavior when telefragged though. As usual, ignore all the debug output. |
|
|
(0002062)
|
unknownna
|
2011-08-07 13:41
(edited on: 2011-08-07 13:52) |
|
> This hopefully works better, I don't know if it also improves the behavior when telefragged though. As usual, ignore all the debug output.
It seems that it fixed the issue. But it will still desync after "changemap" map changes. The server thinks that the client doesn't fire the weapon sometimes. So you might exit the map with 0 cell ammo, but in the next map you'll have 1-4 cell ammo.
> The time I spent on these weapon sync problems is getting completely out of hand...
I agree, but this particular desync really affected the main gameplay in a negative manner.
Edit:
BTW: I can still sometimes reproduce the desync in nointermission maps (Zombie Horde).
|
|
|
|
> So you might exit the map with 0 cell ammo, but in the next map you'll have 1-4 cell ammo.
I'm pretty sure that these kind of sync issues also happen in 98d.
> BTW: I can still sometimes reproduce the desync in nointermission maps (Zombie Horde).
Were you telefragged in this case? |
|
|
(0002064)
|
unknownna
|
2011-08-07 18:18
(edited on: 2011-08-07 18:21) |
|
> I'm pretty sure that these kind of sync issues also happen in 98d.
Indeed, they are present in 98d as well. It's more likely to happen if you're telefragged.
> Were you telefragged in this case?
No, I'm alone on the server. I use "rcon changemap zm06" while tapping +attack in a fast manner (emulated ping of 300). It also desyncs when the round ends and the ACS scripts trigger the map change. It's a lot easier to reproduce it with switchonpickup set to 2 while having the shotgun selected.
|
|
|
(0002065)
|
Torr Samaho
|
2011-08-07 18:21
(edited on: 2011-08-07 18:22) |
|
> No, I'm alone on the server.
Can you post the console output of client and server using the testing binary?
|
|
|
(0002066)
|
unknownna
|
2011-08-07 18:26
(edited on: 2011-08-07 18:32) |
|
Client:
[20:27:39] Log started: client__2011_08_07-20_27_39.log, Sun Aug 07 20:27:39 2011
[20:27:41] ]send_password 11111
[20:27:41] RCON access granted.
[20:27:43] ]rcon changemap zm06
[20:27:43] compatflags changed to: 0
[20:27:44]
ZM06 - Hell's Pass Hospital (DrDoctor)
[20:27:44] SVC2_SETIGNOREWEAPONSELECT 1
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] CLIENTCOMMANDS_WeaponSelect blocked
[20:27:44] SVC2_SETIGNOREWEAPONSELECT 0
[20:27:46] client_WeaponChange for player 0
[20:27:46] client_WeaponChange HuntingShotgun for player 0
<------------------------------->
- What's the matter, scared of the dark?
type b gamma 1.5 - in console to lighten things up.
<------------------------------->
[20:28:04] ]disconnect
[20:28:04] ]
Server:
[20:27:24] Log started: server__2011_08_07-20_27_24.log, Sun Aug 07 20:27:24 2011
[20:27:32] Connect (v0.98e-alpha): 127.0.0.1:64623
[20:27:33] (ST)unknownna entered the game.
[20:27:33] server_WeaponSelect HuntingShotgun
[20:27:33] Bringing up first weapon HuntingShotgun
[20:27:41] RCON access for (ST)unknownna is granted!
[20:27:43] -> changemap zm06 (RCON by (ST)unknownna - 127.0.0.1:64623)
[20:27:43] StartingWeaponName for player 0 is HuntingShotgun
[20:27:43]
*** ZM06: Hell's Pass Hospital (DrDoctor) ***
[20:27:43] compatflags changed to: 0
[20:27:43] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName HuntingShotgun ReadyWeapon HuntingShotgun
[20:28:04] client (ST)unknownna disconnected.
|
|
|
|
> Can you post the console output of client and server using the testing binary?
Yes. Done. |
|
|
|
This looks like packet loss. I can probably find a workaround for this, but with packet loss there will always be some sync issues. |
|
|
|
This should hopefully improve the behavior when there is packet loss (i.e. client sends client_WeaponChange, but the server doesn't call server_WeaponSelect in return). As I said, some smaller sync issues are unpreventable though when "client to server" packets are lost.
|
|
|
|
> This should hopefully improve the behavior when there is packet loss.
It improved the behavior. You're now able to fire your weapon in the next map.
> As I said, some smaller sync issues are unpreventable though when "client to server" packets are lost.
The reload system might break when it desyncs. For instance, a shotgun shot will be fired when you begin to reload your shotgun locally. |
|
|
|
> The reload system might break when it desyncs.
It shouldn't be any worse than 98d in this regard though, right? |
|
|
|
> The switchonpickup setting seems to have an effect here. If switchonpickup is set to 0, your fist will sometimes be selected after the "changemap" map change.
It happens if you're telefragged before you're in the map locally.
* If switchonpickup is set to 0 and you have all the weapons, the fist will be selected.
* If switchonpickup is set to 1 and you have all the weapons, the plasma rifle will be selected.
* If switchonpickup is set to 2 and you have all the weapons, the grenade launcher will be selected. |
|
|
|
> It happens if you're telefragged before you're in the map locally.
Please check if this is any better when telefragging occurs. |
|
|
|
> It shouldn't be any worse than 98d in this regard though, right?
They both desync (emulated ping of 600), but I noticed that they both behave differently. I can't do a thorough comparison right now.
> Please check if this is any better when telefragging occurs.
It still breaks.
|
|
|
|
> It still breaks.
Can you post the client and server logs when this happens? |
|
|
(0002076)
|
unknownna
|
2011-08-08 01:12
(edited on: 2011-08-08 01:13) |
|
Client:
[03:08:40] Log started: client__2011_08_08-03_08_40.log, Mon Aug 08 03:08:40 2011
[03:08:43] (ST)unknownna is a cheater: give all
[03:08:43] client_WeaponChange for player 5
[03:08:43] client_WeaponChange Pistol for player 5
[03:08:43] (ST)unknownna is a cheater: Degreelessness Mode ON
[03:08:43] Degreelessness Mode ON
[03:08:43] CLIENTCOMMANDS_WeaponSelect Chainsaw
[03:08:44] CLIENTCOMMANDS_WeaponSelect Pistol
[03:08:44] CLIENTCOMMANDS_WeaponSelect Shotgun
[03:08:45] Cygnus: Come on out, fool.
[03:08:48] Procyon: I hear Crash has quite a temper.
[03:08:49] ]rcon changemap map01
[03:08:50] compatflags changed to: 0
[03:08:50] Slyor died.
[03:08:50] Procyon died.
[03:08:50] Cataclysm died.
[03:08:50] Cygnus died.
[03:08:50] Maabus died.
[03:08:50] (ST)unknownna died.
[03:08:50] Slyor was telefragged.
<------------------------------->
mission 1: turn off security laser.
<------------------------------->
[03:08:50]
MAP01 - 5th outpost
[03:08:50] SVC2_SETIGNOREWEAPONSELECT 1
[03:08:50] CLIENTCOMMANDS_WeaponSelect blocked
[03:08:50] CLIENTCOMMANDS_WeaponSelect blocked
[03:08:50] CLIENTCOMMANDS_WeaponSelect blocked
[03:08:50] CLIENTCOMMANDS_WeaponSelect blocked
[03:08:50] SVC2_SETIGNOREWEAPONSELECT 0
[03:08:50] client_WeaponChange for player 0
[03:08:50] client_WeaponChange Pistol for player 0
[03:08:50] client_WeaponChange for player 2
[03:08:50] client_WeaponChange Pistol for player 2
[03:08:51] Maabus gets a frag for the other team.
[03:08:58] ]quit
Server:
[03:08:27] Log started: server__2011_08_08-03_08_27.log, Mon Aug 08 03:08:27 2011
[03:08:34] Connect (v0.98e-alpha): --.--.--.--:10667
[03:08:34] (ST)unknownna loses another friend.
[03:08:34] (ST)unknownna entered the game.
[03:08:34] server_WeaponSelect Pistol
[03:08:34] Bringing up first weapon Pistol
[03:08:35] CHAT Cygnus: I'll soon show you what I can still do.
[03:08:35] Maabus checks his glasses.
[03:08:35] Procyon checks his glasses.
[03:08:35] RCON access for (ST)unknownna is granted!
[03:08:37] server_WeaponSelect Pistol
[03:08:37] Bringing up first weapon Pistol
[03:08:43] (ST)unknownna is a cheater: give all
[03:08:43] (ST)unknownna is a cheater: Degreelessness Mode ON
[03:08:43] server_WeaponSelect Chainsaw
[03:08:44] server_WeaponSelect Pistol
[03:08:44] server_WeaponSelect Shotgun
[03:08:45] CHAT Cygnus: Come on out, fool.
[03:08:48] CHAT Procyon: I hear Crash has quite a temper.
[03:08:49] -> changemap map01 (RCON by (ST)unknownna - --.--.--.--:10667)
[03:08:50] StartingWeaponName for player 0 is Pistol
[03:08:50] StartingWeaponName for player 1 is Pistol
[03:08:50] StartingWeaponName for player 2 is Pistol
[03:08:50] StartingWeaponName for player 3 is Pistol
[03:08:50] StartingWeaponName for player 4 is Pistol
[03:08:50] StartingWeaponName for player 5 is Shotgun
[03:08:50]
*** MAP01: 5th outpost ***
[03:08:50] compatflags changed to: 0
[03:08:50] Cygnus checks his glasses.
[03:08:50] (ST)unknownna mows down a teammate.
[03:08:50] Slyor gets a frag for the other team.
[03:08:50] Cataclysm checks its glasses.
[03:08:50] Procyon gets a frag for the other team.
[03:08:50] Cygnus mows down a teammate.
[03:08:50] Player Slyor dies with no weapon
[03:08:50] Bringing up Pistol
[03:08:50] (ST)unknownna gets a frag for the other team.
[03:08:50] SERVERCOMMANDS_WeaponChange invalid weapon for player 1
[03:08:50] SERVERCOMMANDS_WeaponChange invalid weapon for player 3
[03:08:50] SERVERCOMMANDS_WeaponChange invalid weapon for player 4
[03:08:50] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName Shotgun ReadyWeapon NULL
[03:08:50] SERVERCOMMANDS_WeaponChange invalid weapon for player 5
[03:08:51] Player Cygnus dies with no weapon
[03:08:51] Bringing up Pistol
[03:08:51] Maabus loses another friend.
[03:08:58] client (ST)unknownna disconnected.
|
|
|
|
Alright. Please check how this behaves. If it doesn't work, please post the logs again. |
|
|
(0002078)
|
unknownna
|
2011-08-08 13:02
(edited on: 2011-08-08 14:40) |
|
It fixed the issue.
Client:
[14:58:40] Log started: client__2011_08_08-14_58_40.log, Mon Aug 08 14:58:40 2011
[14:58:53] ]rcon changemap map01
[14:58:55] compatflags changed to: 0
[14:58:55] Massmouth loses another friend.
[14:58:55] (ST)unknownna checks his glasses.
[14:58:55] Massmouth died.
[14:58:55] (ST)unknownna died.
[14:58:55] Cygnus died.
[14:58:55] Protos died.
<------------------------------->
mission 1: turn off security laser.
<------------------------------->
[14:58:55]
MAP01 - 5th outpost
[14:58:55] SVC2_SETIGNOREWEAPONSELECT 1
[14:58:55] CLIENTCOMMANDS_WeaponSelect blocked
[14:58:55] CLIENTCOMMANDS_WeaponSelect blocked
[14:58:55] CLIENTCOMMANDS_WeaponSelect blocked
[14:58:55] CLIENTCOMMANDS_WeaponSelect blocked
[14:58:55] SVC2_SETIGNOREWEAPONSELECT 0
[14:58:55] client_WeaponChange for player 0
[14:58:55] client_WeaponChange Pistol for player 0
[14:58:55] client_WeaponChange for player 5
[14:58:55] client_WeaponChange SuperShotgun for player 5
[14:58:55] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[14:58:56] Cygnus checks his glasses.
[14:59:03] ]quit
Server:
[14:58:49] Log started: server__2011_08_08-14_58_49.log, Mon Aug 08 14:58:49 2011
[14:58:54] -> changemap map01 (RCON by (ST)unknownna - 127.0.0.1:57268)
[14:58:55] StartingWeaponName for player 0 is Pistol
[14:58:55] StartingWeaponName for player 2 is Pistol
[14:58:55] StartingWeaponName for player 3 is Pistol
[14:58:55] StartingWeaponName for player 5 is SuperShotgun
[14:58:55]
*** MAP01: 5th outpost ***
[14:58:55] compatflags changed to: 0
[14:58:55] Massmouth loses another friend.
[14:58:55] (ST)unknownna gets a frag for the other team.
[14:58:55] Cygnus gets a frag for the other team.
[14:58:55] Chaingunner loses another friend.
[14:58:55] Massmouth gets a frag for the other team.
[14:58:55] (ST)unknownna loses another friend.
[14:58:55] SERVERCOMMANDS_WeaponChange invalid weapon for player 1
[14:58:55] SERVERCOMMANDS_WeaponChange invalid weapon for player 2
[14:58:55] SERVERCOMMANDS_WeaponChange invalid weapon for player 3
[14:58:55] SERVERCOMMANDS_WeaponChange invalid weapon for player 4
[14:58:55] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName SuperShotgun ReadyWeapon NULL PendingWeapon WP_NOCHANGE
[14:58:55] server_WeaponSelect SuperShotgun
[14:58:55] Bringing up first weapon SuperShotgun
[14:58:56] Cygnus checks his glasses.
[14:59:03] client (ST)unknownna disconnected.
Is the "invalid weapon for player x" message (bots) intentional?
BTW: I noticed that you're able to scroll through some of your weapons in the intermission screen.
Edit:
> If it doesn't work, please post the logs again.
I still notice the fist, plasma rifle and/or grenade launcher after "changemap" map changes in Dark7: MAP04. For some reason "sv_nomonsters 1" makes it go away.
Client:
[16:36:56] ]rcon changemap map04
[16:36:56] compatflags changed to: 0
[16:36:56] Synas mows down a teammate.
[16:36:56] (ST)unknownna loses another friend.
[16:36:56] Aldebaran died.
[16:36:56] Torrent died.
[16:36:56] (ST)unknownna died.
[16:36:56] Synas died.
<------------------------------->
mission 5: disable 4 terminal control systems.
<------------------------------->
[16:36:56]
MAP04 - tinnos base
[16:36:56] SVC2_SETIGNOREWEAPONSELECT 1
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:56] CLIENTCOMMANDS_WeaponSelect blocked
[16:36:57] SVC2_SETIGNOREWEAPONSELECT 0
[16:36:57] client_WeaponChange for player 5
[16:36:57] client_WeaponChange SuperShotgun for player 5
[16:36:57] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[16:36:57] Synas mows down a teammate.
[16:36:58] Vex loses another friend.
[16:36:59] Torrent checks its glasses.
[16:36:59] (ST)unknownna tripped his own grenade.
[16:37:00] Aldebaran loses another friend.
[16:37:03] ]quit
Server:
[16:36:56] -> changemap map04 (RCON by (ST)unknownna - 127.0.0.1:53494)
[16:36:56] StartingWeaponName for player 0 is Pistol
[16:36:56] StartingWeaponName for player 1 is Pistol
[16:36:56] StartingWeaponName for player 5 is SuperShotgun
[16:36:56]
*** MAP04: tinnos base ***
[16:36:56] compatflags changed to: 0
[16:36:56] Synas gets a frag for the other team.
[16:36:56] (ST)unknownna checks his glasses.
[16:36:56] Torrent mows down a teammate.
[16:36:56] Aldebaran checks his glasses.
[16:36:56] Super Shotgunner checks his glasses.
[16:36:56] (ST)unknownna checks his glasses.
[16:36:56] SERVERCOMMANDS_WeaponChange invalid weapon for player 0
[16:36:56] SERVERCOMMANDS_WeaponChange invalid weapon for player 1
[16:36:56] SERVERCOMMANDS_WeaponChange invalid weapon for player 2
[16:36:56] SERVERCOMMANDS_WeaponChange invalid weapon for player 3
[16:36:56] SERVERCOMMANDS_WeaponChange invalid weapon for player 4
[16:36:56] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName SuperShotgun ReadyWeapon NULL PendingWeapon WP_NOCHANGE
[16:36:57] Changeing Pending weapon
[16:36:57] Synas checks his glasses.
[16:36:57] server_WeaponSelect SuperShotgun
[16:36:58] Vex gets a frag for the other team.
[16:36:59] Torrent mows down a teammate.
[16:36:59] (ST)unknownna tripped his own grenade.
[16:37:00] Aldebaran gets a frag for the other team.
[16:37:04] client (ST)unknownna disconnected.
|
|
|
|
> I still notice the fist, plasma rifle and/or grenade launcher after "changemap" map changes in Dark7:
Weird. According to the logs client and server agree that you start with the SuperShotgun. So this is the log where you start with the wrong weapon? |
|
|
|
> So this is the log where you start with the wrong weapon?
The final log, yes. I start with the grenade launcher (switchonpickup 2) and sometimes manage to fire a grenade before it automatically selects the SuperShotgun again.
[16:36:59] (ST)unknownna tripped his own grenade. |
|
|
|
> The final log, yes. I start with the grenade launcher (switchonpickup 2) and sometimes manage to fire a grenade before it automatically selects the SuperShotgun again.
Oh, I see. So I assume that you never see the grenade launcher on the client, right? |
|
|
(0002084)
|
unknownna
|
2011-08-08 22:48
(edited on: 2011-08-08 23:18) |
|
> So I assume that you never see the grenade launcher on the client, right?
You do see it on the client. The grenade launcher is raised and you can see the "Fire" state. But then the grenade launcher suddenly disappears and the SSG begins its "Select" state. The first SSG shot will then be NULL, i.e., decals spawn, but no puffs appear.
Edit:
I'm now able to reproduce the desync (DOOM2: MAP10). It's unrelated to the telefrag issues. It still happens when I'm alone on the server. And as I said earlier: For some reason "sv_nomonsters 1" makes the desync go away.
|
|
|
|
The more you find out, the weirder it sounds. Can you check if this fixes the grenade firing issue on the server? |
|
|
(0002087)
|
unknownna
|
2011-08-09 02:16
(edited on: 2011-08-09 02:19) |
|
It's still the same.
[04:13:13] -> changemap map10 (RCON by (ST)unknownna - --.--.--.--:10667)
[04:13:13] StartingWeaponName for player 0 is SuperShotgun
[04:13:13]
*** MAP10: refueling base ***
[04:13:13] compatflags changed to: 0
[04:13:13] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName SuperShotgun ReadyWeapon SuperShotgun PendingWeapon WP_NOCHANGE
[04:13:17] Changeing Pending weapon // First NULL grenade is fired.
[04:13:23] server_WeaponSelect SuperShotgun // Real grenade is fired. The grenade launcher disappears and the SSG is selected.
The grenade launcher stays on-screen till you have pressed +attack two times.
|
|
|
|
I have a theory now on why "sv_nomonsters 1" effects the behavior. Please test if this fixes it. |
|
|
(0002089)
|
unknownna
|
2011-08-09 13:42
(edited on: 2011-08-09 13:56) |
|
No weapon (and armor) appears at all now. But the strange thing is that they appear if you open the menu/console, or if you alert some monsters, or if you trigger a linedef special, or if you pick up an item, or if you use a cheat, or if you try to chat.
Confirmed maps:
* MAP09
* MAP10
* MAP15 (minor desync)
* MAP17
* MAP18
* MAP19 (minor desync)
* MAP27
|
|
|
|
I can't reproduce this. Can you confirm that it still happens with a fresh ini and if so, post the steps necessary to reproduce it? |
|
|
|
Make sure that "skill" is set to 3 or 4 when you start the server and it should happen.
skulltag.exe -host +sv_cheats 1 +skill 3 +map map10 |
|
|
|
Something strange happens if I connect to a server started like this with the GL renderer (98d has the same problem for me, just checked). The view is not active till the menu is brought up, it works fine for me with the software renderer though. The view inactive problem has to be something completely different though.
Your problems were supposed to occur after a changemap map change and not on connect, aren't they? |
|
|
|
> Your problems were supposed to occur after a changemap map change and not on connect, aren't they?
Yes, they occur after "changemap" map changes, but only if "skill" is set to 3 or 4. |
|
|
|
It simply doesn't happen when I try it, neither on skill 3 nor on skill 4. Does it still happen for you with a fresh ini on client and server? |
|
|
|
> Does it still happen for you with a fresh ini on client and server?
Yes, and it only happens in 98e. |
|
|
|
And it only happens in SkullDev98eWeaponChangeChangemapDebugTest6.7z I assume? Without a way to reproduce this problem, it's very difficult to debug this. I can try to make some shots in the dark to see if this changes the behavior for you. |
|
|
(0002103)
|
unknownna
|
2011-08-10 22:58
(edited on: 2011-08-10 23:11) |
|
The missing armor/weapon issue, yes. But the whole "switchonpickup" issue is specific to 98e. I recorded a demo of it. For some reason the player dies after "changemap" map changes in the demo and the plasma rifle is selected instead of the grenade launcher.
Edit:
I had my "switchonpickup" alias in effect, so the plasma rifle is the correct weapon.
|
|
|
|
I was just referring to the missing armor/weapon issue, that's what I can't reproduce so far. |
|
|
|
Yes, and I advise you to take a look at the demo. The effect is captured there. |
|
|
|
During today's run of the meeting, we took the time to investigate this further at Torr's request, but after reading all unknownna had to say about this, I can say that the allowed conditions can range from weird to downright bizarre. On some matters, some of the group were of the consensus that some of our findings may have not even been related.
In any case, here's the run down of what we found.
1) Confirmed that every weapon is capable of breaking, but some of them appear to be seemingly random in circumstance. At times when we tried to reproduce what happened to one weapon ended up happening out of the blue when we attempted another one.
2) A lot of it seems to be even more dependent on the weapon state than not, as we had a harder time reproducing this while getting telefragged than not. Circumstances that would have been clear as day to reproduce ended up being impossible with the bugged players dying.
3) If a player with this bug is affected, other players won't see the viewweapon sprite in question in co-op spy. cl_drawcoopinfo also doesn't even display the weapon name at all for the player.
4) Absolutely cannot be reproduced in a gamemode where changemap does not save weapon loadouts.
5) A good deal of the testers here including myself are inclined to say that the server is actually forgetting the player's current weapon. This is backed up where there have been a few pistol start cases where they started with no pistol ammunition at all, when they previously had some the round before.
5.5) It's also my personal belief that the TID order of the players being completely rearranged also might have something to do with it. None of us disconnected during our testing session. I don't have any concrete evidence to support this claim, but it's a theory no less.
6) Lastly, a lot of testers have told me that this may indeed be a different variant of the same bug (or a different one entirely), but I figured to bring it up here since this was taken from the same playfield.
I desync'd the fist and started with the Plasma Gun (I had switchonpickup to 1, so this is understandable.). When I switched to another weapon of the same ammo pool, and fired it, hitscanners weren't visible, but projectiles were. With this logic, it means that the 10k and Railgun's projectiles weren't visible to me (they were to other players), but the plasma gun's and the 9k's were. Kicking it up to 100 though, it "looks" like I ran out of ammo, but I could still fire. To others, they said I had about 110 ammo when it was visible to me I had none. I could only fire the plasma gun once before it forced me to auto-switch. I couldn't reproduce it since.
---
This one is a really big headscratcher for me. |
|
|
|
> Yes, and I advise you to take a look at the demo. The effect is captured there.
Thanks for pointing me to the demo, I can see the effect there. It looks like the client doesn't get the server packet that instructs him to get his inventory at the end of the full update, but only at a later time. |
|
|
|
I'm beginning to think that the missing armor/weapon issue could have to do with the packet loss handling. Please reproduce the issue with this binary and post client and server logs with time stamps. Also please try to make the time the weapon is not brought considerably long (if possible 5 or more seconds). |
|
|
(0002109)
|
unknownna
|
2011-08-11 01:19
(edited on: 2011-08-11 01:20) |
|
Client:
[03:15:58] Log started: client__2011_08_11-03_15_58.log, Thu Aug 11 03:15:58 2011
[03:16:00] (ST)unknownna is a cheater: give all
[03:16:00] CLIENTCOMMANDS_WeaponSelect Chainsaw
[03:16:00] CLIENTCOMMANDS_WeaponSelect Shotgun
[03:16:00] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[03:16:00] CLIENTCOMMANDS_WeaponSelect Chaingun
[03:16:00] CLIENTCOMMANDS_WeaponSelect RocketLauncher
[03:16:00] CLIENTCOMMANDS_WeaponSelect PlasmaRifle
[03:16:00] CLIENTCOMMANDS_WeaponSelect BFG9000
[03:16:00] CLIENTCOMMANDS_WeaponSelect Minigun
[03:16:00] CLIENTCOMMANDS_WeaponSelect Railgun
[03:16:00] CLIENTCOMMANDS_WeaponSelect BFG10k
[03:16:00] CLIENTCOMMANDS_WeaponSelect GrenadeLauncher
[03:16:00] client_WeaponChange for player 0
[03:16:00] client_WeaponChange Pistol for player 0
[03:16:00] CLIENTCOMMANDS_WeaponSelect Pistol
[03:16:00] (ST)unknownna is a cheater: Degreelessness Mode ON
[03:16:00] Degreelessness Mode ON
[03:16:00] CLIENTCOMMANDS_WeaponSelect Shotgun
[03:16:00] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[03:16:03] ]send_password 11111
[03:16:03] RCON access granted.
[03:16:06] ]rcon changemap map10
[03:16:07] compatflags changed to: 0
[03:16:07]
MAP10 - refueling base
[03:16:07] SVC2_SETIGNOREWEAPONSELECT 1
[03:16:07] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:07] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:07] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:07] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] Missing packet 26.
[03:16:19] Missing packet 27.
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:19] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:20] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:20] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:20] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:20] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:20] CLIENTCOMMANDS_WeaponSelect blocked
[03:16:20] SVC2_SETIGNOREWEAPONSELECT 0
[03:16:20] client_WeaponChange for player 0
[03:16:20] client_WeaponChange SuperShotgun for player 0
[03:16:20] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[03:16:22] ]disconnect
[03:16:22] ]
Server:
[03:15:57] Log started: server__2011_08_11-03_15_57.log, Thu Aug 11 03:15:57 2011
[03:16:00] (ST)unknownna is a cheater: give all
[03:16:00] (ST)unknownna is a cheater: Degreelessness Mode ON
[03:16:00] server_WeaponSelect Chainsaw
[03:16:00] server_WeaponSelect Shotgun
[03:16:00] server_WeaponSelect SuperShotgun
[03:16:00] server_WeaponSelect Chaingun
[03:16:00] server_WeaponSelect RocketLauncher
[03:16:00] server_WeaponSelect PlasmaRifle
[03:16:00] server_WeaponSelect BFG9000
[03:16:00] server_WeaponSelect Minigun
[03:16:00] server_WeaponSelect Railgun
[03:16:00] server_WeaponSelect BFG10k
[03:16:00] server_WeaponSelect GrenadeLauncher
[03:16:00] server_WeaponSelect Pistol
[03:16:00] server_WeaponSelect Shotgun
[03:16:00] server_WeaponSelect SuperShotgun
[03:16:03] RCON access for (ST)unknownna is granted!
[03:16:06] -> changemap map10 (RCON by (ST)unknownna - --.--.--.--:10667)
[03:16:07] StartingWeaponName for player 0 is SuperShotgun
[03:16:07]
*** MAP10: refueling base ***
[03:16:07] compatflags changed to: 0
[03:16:07] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName SuperShotgun ReadyWeapon SuperShotgun PendingWeapon WP_NOCHANGE
[03:16:19] sending missing packet 26
[03:16:19] sending missing packet 27
[03:16:20] server_WeaponSelect SuperShotgun
[03:16:20] Bringing up first weapon SuperShotgun
[03:16:22] client (ST)unknownna disconnected.
|
|
|
|
Alright, so the client is actually not requesting the missing packet. Thinking about it this seems to be a general design problem of the packet loss handling: The client only notices a missing packet if he gets a packet that comes after the missing one. If the last one is missing, the client doesn't notice that anything is missing. |
|
|
|
Please test if this improves the missing weapon problem. |
|
|
|
Client:
[04:26:13] Log started: client__2011_08_11-04_26_13.log, Thu Aug 11 04:26:13 2011
[04:26:14] (ST)unknownna is a cheater: give all
[04:26:14] CLIENTCOMMANDS_WeaponSelect Chainsaw
[04:26:14] CLIENTCOMMANDS_WeaponSelect Shotgun
[04:26:14] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[04:26:14] CLIENTCOMMANDS_WeaponSelect Chaingun
[04:26:14] CLIENTCOMMANDS_WeaponSelect RocketLauncher
[04:26:14] CLIENTCOMMANDS_WeaponSelect PlasmaRifle
[04:26:14] CLIENTCOMMANDS_WeaponSelect BFG9000
[04:26:14] CLIENTCOMMANDS_WeaponSelect Minigun
[04:26:14] CLIENTCOMMANDS_WeaponSelect Railgun
[04:26:14] CLIENTCOMMANDS_WeaponSelect BFG10k
[04:26:14] CLIENTCOMMANDS_WeaponSelect GrenadeLauncher
[04:26:14] client_WeaponChange for player 0
[04:26:14] client_WeaponChange Pistol for player 0
[04:26:14] CLIENTCOMMANDS_WeaponSelect Pistol
[04:26:14] (ST)unknownna is a cheater: Degreelessness Mode ON
[04:26:14] Degreelessness Mode ON
[04:26:14] CLIENTCOMMANDS_WeaponSelect Shotgun
[04:26:14] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[04:26:15] ]send_password 11111
[04:26:15] RCON access granted.
[04:26:18] ]rcon changemap map10
[04:26:19] compatflags changed to: 0
[04:26:19]
MAP10 - refueling base
[04:26:19] SVC2_SETIGNOREWEAPONSELECT 1
[04:26:19] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:19] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:19] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:19] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] Missing packet 24.
[04:26:31] Missing packet 25.
[04:26:31] Missing packet 26.
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] CLIENTCOMMANDS_WeaponSelect blocked
[04:26:31] SVC2_SETIGNOREWEAPONSELECT 0
[04:26:31] client_WeaponChange for player 0
[04:26:31] client_WeaponChange SuperShotgun for player 0
[04:26:31] CLIENTCOMMANDS_WeaponSelect SuperShotgun
[04:26:31] SVC2_SETIGNOREWEAPONSELECT 0
[04:26:34] ]disconnect
[04:26:34] ]
[04:26:37] ]quit
Server:
[04:26:12] Log started: server__2011_08_11-04_26_12.log, Thu Aug 11 04:26:12 2011
[04:26:14] (ST)unknownna is a cheater: give all
[04:26:14] (ST)unknownna is a cheater: Degreelessness Mode ON
[04:26:14] server_WeaponSelect Chainsaw
[04:26:14] server_WeaponSelect Shotgun
[04:26:14] server_WeaponSelect SuperShotgun
[04:26:14] server_WeaponSelect Chaingun
[04:26:14] server_WeaponSelect RocketLauncher
[04:26:14] server_WeaponSelect PlasmaRifle
[04:26:14] server_WeaponSelect BFG9000
[04:26:14] server_WeaponSelect Minigun
[04:26:14] server_WeaponSelect Railgun
[04:26:14] server_WeaponSelect BFG10k
[04:26:14] server_WeaponSelect GrenadeLauncher
[04:26:14] server_WeaponSelect Pistol
[04:26:14] server_WeaponSelect Shotgun
[04:26:14] server_WeaponSelect SuperShotgun
[04:26:15] RCON access for (ST)unknownna is granted!
[04:26:18] -> changemap map10 (RCON by (ST)unknownna - --.--.--.--:10667)
[04:26:19] StartingWeaponName for player 0 is SuperShotgun
[04:26:19]
*** MAP10: refueling base ***
[04:26:19] compatflags changed to: 0
[04:26:19] server_AuthenticateLevel - PLAYER_ClearWeapon, StartingWeaponName SuperShotgun ReadyWeapon SuperShotgun PendingWeapon WP_NOCHANGE
[04:26:31] sending missing packet 24
[04:26:31] sending missing packet 25
[04:26:31] sending missing packet 26
[04:26:31] server_WeaponSelect SuperShotgun
[04:26:31] Bringing up first weapon SuperShotgun
[04:26:34] client (ST)unknownna disconnected. |
|
|
|
|
|
(0002116)
|
unknownna
|
2011-08-11 12:18
(edited on: 2011-08-11 12:49) |
|
This works a lot better. The selected weapon from the previous map is now always brought up. But there's a longer delay in 98e compared to 98d. In 98d the armor is instantly displayed and the weapon is instantly raised. If "sv_nomonsters" is set to 1, 98e will behave like 98d.
> The view inactive problem has to be something completely different though.
* Strange behaviour connecting to server (dunno better title)
> Sometimes you have to wait a little bit of time before seeing the map, but when you open the game menu (esc key), you'll see immediately the map.
> Just press the Esc key and it should come up. That's what I do.
> Opening the main menu by pressing the ESC key makes it go away and you enter the game normally. The thing is that it happens with the stock vanilla maps too, in this case MAP10.
The same thing happens here. If you open the menu, the server will send you the missing packets.
BTW: I managed to capture a nasty weapon desync. It's very easy to reproduce the desync. You may fire your weapon on the server before it's fully raised on the client. So you might have 100 rockets locally in your inventory, but to the server you have 0 rockets in your inventory. This happens without any ping emulation. And if you then exit the map with the rocket launcher you might fire plasma balls or SSG puffs from your rocket launcher after a "changemap" map change.
|
|
|
|
> But there's a longer delay in 98e compared to 98d.
The delay is caused by packet loss: If the packet that contains the command to raise the weapon on the client is lost, it will take at least the client's ping before he can get the missing packet and thus raise the weapon. AFAIK this delay to recover packet loss is inevitable. Re-requesting a certain packet at least takes the time a messages needs to travel from client to server and back.
98d behaved differently for two reasons: The weapon raise was not synced in 98d at all and the command to raise the weapon was issued in 98d before the full update (where the client is informed about everything in the map, e.g. all actors). To improve weapon sync the weapon raise command must be send after the full update though. For the sake of simplicity I made the server tell the client about the whole inventory including the weapons after the full update, causing it to be in the last packet send to the client and thus more likely to be lost. I rearranged this and now the inventory is given before the full update, but the weapon still needs to be done after the update. This should make the inventory appear instantly on the client.
> BTW: I managed to capture a nasty weapon desync. It's very easy to reproduce the desync.
Is this yet another new desync or something that also happens in 98d?
|
|
|
|
> This should make the inventory appear instantly on the client.
It works as intended.
> Is this yet another new desync or something that also happens in 98d?
It seems to be a 98d issue. You simply hold +attack when you see yourself spawn after a "changemap" map change. |
|
|
(0002120)
|
unknownna
|
2011-08-12 00:58
(edited on: 2011-08-12 00:59) |
|
I found another issue: If you're telefragged before you're in the map locally while carrying a rune in your inventory, the rune will not be removed from your inventory. It seems to be a 98d issue.
|
|
|
|
I cleaned the code, removed all the debug messages and removed one temporary workaround that was hopefully unnecessary. Please check if this binary still works. |
|
|
(0002122)
|
unknownna
|
2011-08-12 13:36
(edited on: 2011-08-12 13:41) |
|
> Please check if this binary still works.
It still works as intended.
We're going to have to live with some major weapon/inventory desyncs in COOP/Survival. And the inactive view problem is also related to the missing packet issue.
* Runes are removed from your inventory on the server if you're telefragged before you're in the map locally, but the rune is not removed on the client when you enter the map. So the client thinks that it still has a certain powerup after a "changemap" map change, causing you to use more ammo (RageRune) than you should.
* Weapon desync when telefragged after "changemap" map changes. It seems that the weapon is raised too early on the client. So you might use more ammo than you should.
* Weapon desync when attacking immediately after a "changemap" map change. Very easy to reproduce with the rocket launcher. It seems that the weapon is raised too late on the client.
|
|
|
|
|