Menu

#12 The Final Descend - Boss doesn't work

None
open
nobody
None
5
2016-01-11
2016-01-02
No

I hate to report another bug, but...
The final boss in this mod doesn't work https://www.quaddicted.com/reviews/descent.html
(map desend)
It appears, but it's just a static model. No AI, and cannot be killed, making it impossible to complete the level. No errors appear in the console.
This map pack is really good, and it would be a shame to keep it incompatible.

Discussion

  • Eric Wasylishen

    Eric Wasylishen - 2016-01-04

    I'm not sure, I beat the level on godmode.
    The boss is the vore with a Q logo and high HP that spawns in the church before the exit teleporter, right? It was throwing voreballs at me and seemed to work fine. It took a minute of firing rockets at it to kill it.

     
  • Federico Dossena

    Yes, that's the boss. That's weird, I restarted the level twice to make sure it wasn't doing something wrong, and even tried it again right now.
    Take a look: https://drive.google.com/file/d/0B6qj91UlSYlYOHo4aGoxUnRENVE/view?usp=sharing

     
  • Eric Wasylishen

    Eric Wasylishen - 2016-01-04

    Wow, that is strange. It starts attacking me as soon as it spawns, and bleeds when I shoot it; yours is showing grey particles when it's hit.

    I can't think of an explanation, maybe try a clean install of the mod from https://www.quaddicted.com/reviews/descent.html

    Also, just for reference what OS are you on and which QS version?

     
  • Federico Dossena

    I'm using Windows 10, and Quakespasm 0.90.1
    There are no custom textures or other mods installed that could interfere. It's just quake and its mission packs (which I played entirely and they work fine).
    All other mods I've tried had no particular issues running on Quakespasm, except for that shitty X-Men mod I mentioned in another post.

     
  • Ozkan Sezer

    Ozkan Sezer - 2016-01-04

    Is it possible that it happens in certain difficulty settings??

     
  • Federico Dossena

    I don't know, I played it on normal difficulty. Is there a way to see if a script fails?

     
  • Eric Wasylishen

    Eric Wasylishen - 2016-01-04

    I tried both qs 0.90.1 builds (32 & 64 bit) on Windows 10 and a clean install (id1/pak0+1.pak, plus the descent directory) and couldn't reproduce the problem. Also tried skills 0,1 and 3.
    Have you tried other engines to see if it is a QS specific bug? https://www.quaddicted.com/files/engines/ is a good source.

    There's no easy way to see if quakec code is failing. You can try "developer 1"

     
  • Federico Dossena

    It works in regular winquake, and also darkplaces.
    Maybe there's a buggy script in the level that causes this bug, or maybe it's only triggered after saving and reloading?

     
  • Eric Wasylishen

    Eric Wasylishen - 2016-01-05

    Thanks for the save, getting closer..

    The entity is monster_queen_shalrath, it seems to be stuck in an initialization state.
    The "think" is "walkmonster_start_go", but "nextthink" is not set (meaning it's 0), which is weird.

    I'm looking at the decompiled qc.. In the monster_queen_shalrath constructor we have:

    self.think = walkmonster_start;
    self.nextthink = ((time + 0.1) + (random() * 0.1));
    

    Then in walkmonster_start, which must have executed for you, since the "think" got set to "walkmonster_start_go", we have:

    self.nextthink = (self.nextthink + (random() * 0.5));
    self.think = walkmonster_start_go;
    

    So something really weird is going on if nextthink is 0 at that point.

    Would you be able to upload your quakespasm.exe to google drive as well?
    There are 4 windows builds (sdl1/2, 32/64 bit) and I'd like to be able to reproduce this with the exact same build as you're using.

    When I try to reproduce this, I launch QS with "-game descent", type "map desend" in the console, and then noclip to the exit area and kill the two vores.

    I don't think this is a save/load issue because the state captured in your savegame should only happen for a fraction of a second at map load time. When I load the map and immediately save, the queen_shalrath has already gone past the "walkmonster_start_go" state and finishes setting up.

     
  • Eric Wasylishen

    Eric Wasylishen - 2016-01-05

    Hm, I still have no luck reproducing, even with that engine. :-(

    At least we know a bit about what's happening.

    If you try any more debugging, there's no need to play the map, just:

    • start the map and make a save at the start
    • open the save in a text editor, search for monster_queen_shalrath
    • check the "think" value for that entity, it should be "qshal_stand" and not "walkmonster_start_go"

    argh, I just don't know why our setups are not behaving the same, since everything should be identical.. anyway thanks for trying all this stuff :-)

     
  • Federico Dossena

    If I start the game, type map desend, and then save, in the savegame it says qshal_stand...
    I guess it's a bug triggered by some script in the level.

     
  • Eric Wasylishen

    Eric Wasylishen - 2016-01-11

    I just hit this bug randomly.. on e1m1.bsp of id1. Was not running any mod.

    A grunt was "frozen".. I made a savegame and pulled out the edict:

    {
    "modelindex" "87.000000"
    "absmin" "407.000000 2815.000000 -81.000000"
    "absmax" "441.000000 2849.000000 -15.000000"
    "movetype" "4.000000"
    "solid" "3.000000"
    "origin" "424.000000 2832.000000 -56.000000"
    "angles" "0.000000 180.000000 0.000000"
    "classname" "monster_army"
    "model" "progs/soldier.mdl"
    "mins" "-16.000000 -16.000000 -24.000000"
    "maxs" "16.000000 16.000000 40.000000"
    "size" "32.000000 32.000000 64.000000"
    "think" "walkmonster_start_go"
    "health" "30.000000"
    "flags" "512.000000"
    "waterlevel" "-1.000000"
    "watertype" "-1.000000"
    "spawnflags" "256.000000"
    "th_stand" "army_stand1"
    "th_walk" "army_walk1"
    "th_run" "army_run1"
    "th_missile" "army_atk1"
    "th_pain" "army_pain"
    "th_die" "army_die"
    }
    

    Same thing, "nextthink" is unset and "think" is set to walkmonster_start_go.
    I'll try to reproduce / narrow it down.

     
  • Eric Wasylishen

    Eric Wasylishen - 2016-01-11

    Found some more info here: http://www.celephais.net/board/view_thread.php?id=60097&start=326&end=328
    Sounds like it's a bug in the id1 quakec, that if PF_random returns 0, the monster gets frozen into a statue.

    I can reproduce it 100% of the time by modifying PF_random in the engine to return 0 always, which turns all monsters in id1 into statues.

    QS calls "srand ((int) (cl.time * 1000));" every frame, in CL_UpdateTEnts, where cl.time is how long the client's been running.

    So hitting this bug will depend on the timing, and the libc's rand() implementation. Could be that the QS windows executables are even using a different rand() than other engines, not sure.

     
  • Federico Dossena

    Well, you could just change that implementation of PF_random so that it will never return 0. Would that break something? Like demo playback, maybe it depends on it returning a certain series of random values?

     

Log in to post a comment.

MongoDB Logo MongoDB