QW-Group / ezquake-source

main ezQuake source code base
https://www.ezquake.com/
GNU General Public License v2.0
270 stars 123 forks source link

BUG: cl_weaponforgetorder broken #408

Closed meag closed 3 years ago

meag commented 4 years ago

cl_weaponforgetorder.zip

Please search for existing issues and check for potential duplicates before filing yours.

ezQuake version: 3.6-alpha3 (?)

OS/device including version: Presumed all

Describe the bug something broke with cl_weaponforgetorder recently. Yesterday I said I think something is funky with some combination of the new cl_pext_serversideweapon and cl_weapon_forgetondeath, but I think it's just cl_weaponforgetorder that got screwed up. I was on 3.6-alpha(something) for a long time and didn't notice anything weird, but compiled the latest alpha a few days ago and enabled those new settings which is why I thought they were to blame. I disabled these 2 commands for this test and kept only cl_weaponforgetorder:

See https://www.twitch.tv/videos/782125932 for a quick example with at least 2 problems: 1- Run out of RL ammo, fire sg, pick up ammo, it switches back to firing RL. 99% sure this wasn't happening with older alpha. 2- On the twitch stream at about 35 seconds, you can see my viewmodel switches to RL even though it fires an SG. I had preselected weapon 7 on spawn and picked up an RL. This doesn't happen right after when I also preselect weapon 7 but fire an sg before picking up the rl. The demos (qwd and mvd) however don't show this viewmodel bug, they continue to show sg in both cases.

Screenshots image

BLooD-DoG commented 3 years ago

Hi @meag , we were testing a bit now and ran into something interesting:

weaponhide does not work with this simple config (as seen with 'setinfo dev 1'): `cl_weaponhide "2" cl_weaponpreselect "4" cl_weaponforgetondeath "1" cl_weaponforgetorder "1" r_viewpreselgun "1"

bind MOUSE1 "+att" // Press to manually fire currently selected weapon set wp "2" // default sg

alias +att "+attack" // SEE HERE alias -att "-attack"

bind 7 "weapon 7 2 1" // in my config it would be "weapon 7 2 1; set wp $weaponnum" but trying to show minimal changes for what breaks it`

It works if you change the +att to this instead: +alias +att "weapon $wp; +attack"

So it seems like it's expecting 'weapon' to be set just before the +attack?

BLooD-DoG commented 3 years ago

In addition to "new" the issue posted just above, I rechecked the 3 issues from April @ https://github.com/ezQuake/ezquake-source/issues/408#issuecomment-813103345

The first 2 issues are still happening, and the 3rd one is happening in dmm1 (at high ping) but not in dmm3 (at any ping). My config is the one posted by ciscon above on April 5, with serversideweapon enabled, latest ezquake, connected to london.badplace.

1- weapon_forgetondeath isn't working for me. Pickup an RL, press weapon 7 2 bind, fire RL. So far so good. Die, pickup RL and press +attack, you expect to fire an SG because of forgetondeath but it fires an RL.

2- press weapon 7 2 bind, pickup RL, fire some rockets, run out of ammo. So far so good. +attack will fire an SG. Then walk over RL ammo and your +attack will fire RL again. Not sure if bug or undefined, but it happens even if i set w_rank 2.

3- Although I use the oldschool way of selecting a weapon with individual keys, and mouse1 to +attack whatever I selected, I do have one button that 'remembers' my current weapon choice, switches to LG and fires it (similar to +fire 8), and then when I let go it changes back to the previous weapon I was holding. When ping is high, the viewmodel doesn't always change back to the previous weapon. Sometimes it still draws the LG model, even if the +attack will fire the previous weapon.

I recorded the first 2 issues @ https://www.twitch.tv/videos/1098957830

BLooD-DoG commented 3 years ago

Just as an addition to the message 2 posts ago, where I mentioned that weaponhide doesn't seem to be working with a simple 'weapon x' bind followed by '+attack'.

A couple nights ago I tried to give my RL pack to teammate by having him kill me after hitting my "say_team "KILL ME"; impulse 7" bind, but it didn't drop an RL pack after he killed me.

meag commented 3 years ago

Sorry BLooD-DoG, are these bug reports with server-side weapon switching on or off? Is that last one with the config given a week ago?

BLooD-DoG commented 3 years ago

All of them are with SSW on and with the config given in April @ https://github.com/ezQuake/ezquake-source/issues/408#issuecomment-813103345. The exception is the single issue reported a few posts above with a 'stripped down' version of my config where weaponhide doesn't work at all.

The reason you don't see a "say_team "KILL ME"; impulse 7" bind in my config is because it's part of my teambinds.cfg, but that's all that bind does. And you don't see "cl_pext_serversideweapon 1" because that is enabled in my main config.cfg which calls the weapon.cfg and teambinds.cfg

We have been playing mostly on andeh's qcon server in Los Angeles, which is up-to-date with mvdsv+ ktx + reki's antilag stuff (which shouldn't affect SSW AFAIK).

meag commented 3 years ago

From old notes before work went mental:

Remaining situation:

    forgetorder on, weapon 7 2 1
    keep firing as you run out of rockets, (1), pickup rockets, fire again (2)
        (1) if you stop before firing shotgun, weaponlist should remain 7 2 1 and result (2) should be firing rocket
        (1) if you continue and fire shotgun, weaponlist should change to 2 1, and result (2) should be firing shotgun
    issue is that ktx doesn't know about forgetorder and mvdsv doesn't know about ktx selecting best weapon from w_rank userinfo

Is that correct, are you saying you actively run out of ammo and fire a shotgun, or you go down to 0 ammo but don't fire the shotgun?