View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] |
ID | Project | Category | View Status | Date Submitted | Last Update |
0003491 | Zandronum | [All Projects] Bug | public | 2018-09-10 14:44 | 2018-09-10 14:45 |
|
Reporter | unknownna | |
Assigned To | | |
Priority | normal | Severity | major | Reproducibility | always |
Status | confirmed | Resolution | open | |
Platform | | OS | | OS Version | |
Product Version | 3.0 | |
Target Version | | Fixed in Version | | |
|
Summary | 0003491: Berserk powerup causes weapons to desync and client to fire weapon too early |
Description | While testing a map in DUEL40 (UROBUROS) with some bots on a server, I noticed that my SSG desynced rather badly when picking up a berserk powerup and then quickly selecting my SSG again after the client was forced to switch to the fist. The client fires the weapon too early when selecting the former weapon again, causing the timing to be completely off and projectiles even disappearing.
Players will notice this desync very often on this map considering that the berserk is seemingly strategically placed as a health pickup when needed. When players then switch back to their SSG, the timing of the puffs will be completely off compared to the animation and sounds at the corresponding ping, causing the shots to be broken and potentially making players blame the unlagged etc. |
Steps To Reproduce | 1. zandronum -host -iwad doom2.wad -file wepdesync_berserk.wad +sv_itemrespawn 1
2. Connect a client to the server with an emulated ping of 160.
3. Copy-paste "join;wait 23;+forward;wait 10;-forward;wait 14;weapprev;+attack;wait 20;-attack" into the console. The rocket launcher animation will be displayed and ammo used, but no rocket will come out.
4. Spectate and re-enter bind to reproduce the desync every time.
|
Additional Information | ACTOR Berserk : CustomInventory 2023
{
Game Doom
SpawnID 134
+COUNTITEM
+INVENTORY.ALWAYSPICKUP
Inventory.PickupMessage "$GOTBERSERK"
Inventory.PickupSound "misc/p_pkup"
States
{
Spawn:
PSTR A -1
Stop
Pickup:
TNT1 A 0 A_GiveInventory("PowerStrength")
TNT1 A 0 HealThing(100, 0)
TNT1 A 0 A_SelectWeapon("Fist")
Stop
}
}
This is not a 3.1 regression. |
|
Attached Files | wepdesync_berserk.wad [^] (1,134 bytes) 2018-09-10 14:44 |
|