[fixed] Inverted scores
#1
1v1 game, logic.
Step 1, Kill yourself with proxies (It will say you killed the host and give you points)
Step 2, See you have 1 point, Host sees -1. Leave the game to try to fix it.
Step 3, Reenter game and watch as host crashes.
Step 4, ???
Step 5, Profit.
Reply
#2
Ok we did the reverse. Host killed himself and committed suicide. But then I kill myself on his mines, and it says on my end he committed suicide but he gets a kill. To its -2 0 for me but its 0 0 for him. I rejoin and it works fine.

FURTHER TESTING: Every kill I make on him reads as a suicide on my end.
Reply
#3
Ouch.  Matt filed a Github issue about the strange kill/suicide accounting, but this is the first I have seen of it leading to a crash.  I will attempt to collect a backtrace for this shortly.
Reply
#4
If I kill myself in any way shape or form, I will get a kill on him, If he kills me, its a suicide for him (all on the clients screen only). The host sees things right,
Reply
#5
My first attempt to reproduce this crashed with a variant of the same bug reported in the homing weapon thread: bad parsing of the bomb target.  After fixing that (which I will push soon), I tried again and got an AddressSanitizer abort when suiciding via smart mine.
Code:
ERROR: AddressSanitizer: global-buffer-overflow
WRITE of size 1 at 0x25c0ff thread T0
    #0 0x44d039 in digi_mixer_start_sound(short, int, int, int, int, int, sound_object*) similar/arch/sdl/digi_mixer.cpp:189
    #1 0x21cc3b in digi_play_sample_3d(int, int, int, int) similar/main/digiobj.cpp:211
    #2 0x220615 in digi_link_sound_to_pos2 similar/main/digiobj.cpp:434
    #3 0x220615 in digi_link_sound_to_pos(int, short, short, vms_vector const&, int, int) similar/main/digiobj.cpp:452
    #4 0x20eb08 in collide_weapon_and_wall similar/main/collide.cpp:923
    #5 0x20eb08 in collide_object_with_wall(vobjptridx_t, int, vsegptridx_t, short, vms_vector const&) similar/main/collide.cpp:2591
    #6 0x396d85 in do_physics_sim(vobjptridx_t) similar/main/physics.cpp:569

0x25c0ff is located 1 bytes to the left of global variable 'channels' from 'similar/arch/sdl/digi_mixer.cpp' (0x25c100) of size 64
0x25c0ff is located 47 bytes to the right of global variable 'current_music' from 'common/arch/sdl/digi_mixer_music.cpp' (0x25c0c0) of size 16
The source line is "channels[channel] = 1;", so based on the output, channel must have been -1, meaning digi_mixer_find_channel failed and the result was not trapped.  I must have triggered so many smart mines concurrently that I ran out of sound channels.
Reply
#6
Fix crash when all sound channels are in use resolves the crash I saw when suiciding via smart mine.  I do not know if that is the host crash reported above.  Kill accounting is not addressed yet.  I am currently focused on resolving game breaking stability problems.
Reply
#7
@kp
Matt is also on the scoring bug. And after I'm done with reworking the level progression (kmatrix escaping), I will move into that as well. So no stress. Smile
The greatest pleasure in life is to do what people say you cannot do.
Uhm... Honey, there's a head in the toilet!
Reply
#8
Update, this glitch still happens. It also happens in Coop. Non host killing themselves in coop will say you killed host. If you die to a robot, it will say the host died by a robot.
Reply
#9
The scoring bug should be fixed by Fix kill accounting.
Reply
#10
I will test it tomorrow with AFP, thanks!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)