DRL > Bug Reports

[0.9.9.7] Got an error at AoRA when died in Hells Armory

(1/1)

Equality:

--- Code: -------------------------------------------------------------------------
Timestamp   : 17.05.2013 22:31:01
Error level : ERROR
Message     : Lua hook OnAction caught ELuaStateException!

Call path     : beings[].OnAction
Call params   : ()
Error message : Lua error : lua\\beings.lua:1001: Object expected as parameter 1!
----------------------------------------------------------------------

----------------------------------------------------------------------
Timestamp   : 17.05.2013 22:31:09
Error level : FATAL EXCEPTION
Message     : Fatal exception encountered

An unhandled exception occurred at $0046E619 :
ELuaException : LuaError: beings[].OnAction -- Lua error : lua\\beings.lua:1001: Object expected as parameter 1!
  $0046E619  TDOOMLUA__ONERROR,  line 435 of src/doomlua.pas
  $004583E7  TLUASYSTEM__PROTECTEDRUNHOOK,  line 1511 of e:/Projects/fpcvalkyrie/src/vluasystem.pas
  $0049E75B  TTHING__CALLHOOK,  line 113 of src/dfthing.pas
  $004A3502  TBEING__ACTION,  line 1246 of src/dfbeing.pas
  $004A361B  TBEING__CALL,  line 1264 of src/dfbeing.pas
  $0041F64F  TDOOM__RUN,  line 378 of src/doombase.pas
  $00401CC5  main,  line 111 of src/doomrl.pas

----------------------------------------------------------------------

--- End code ---
killed by shambler, actually. That is mortem
Spoiler (click to show/hide)--------------------------------------------------------------
 DoomRL (0.9.9.7) roguelike post-mortem character dump
--------------------------------------------------------------

 Stephen Ward, level 6 Cacodemon 1st Lieutenant Scout,
 nuked himself on level 1 of the Deimos base.
 He survived 21770 turns and scored 31611 points.
 He played for 30 minutes and 55 seconds.
 He didn't like it too rough.

 He killed 212 out of 212 hellspawn. (100%)
 This ass-kicking marine killed all of them!
 He was an Angel of Red Alert!

-- Special levels --------------------------------------------

  Levels generated : 11
  Levels visited   : 2
  Levels completed : 1

-- Awards ----------------------------------------------------

  None

-- Graveyard -------------------------------------------------

  ===========================================================
  ===========================================================
  ===========================================================
  ===========================================================
  ..........=========================..........==============
  ....................=====..........................========
  .....................===..............................=====
  .....................==.................................===
  .....................==..................................==
  .........................................................==
  .....................==..................................==
  .....................==.............X..................====
  .....................==.................................===
  ....................====...............................====
  ...................======............................======
  ..........=========================................========
  ===========================================================
  ===========================================================
  ===========================================================
  ===========================================================

-- Statistics ------------------------------------------------

  Health 0/50   Experience 11334/6
  ToHit Ranged +0  ToHit Melee +0  ToDmg Ranged +0  ToDmg Melee +0

-- Traits ----------------------------------------------------

  Class : Scout

    Hellrunner       (Level 2)
    Reloader         (Level 2)
    Dodgemaster      (Level 1)
    Shottyman        (Level 1)

  HR->HR->DM->Rel->Rel->SM->

-- Equipment -------------------------------------------------

    [a] [ Armor      ]   blue armor [2/2] (82%)
    [b] [ Weapon     ]   shotgun (8d3) [0/1]
    [c] [ Boots      ]   tactical boots [0/0] (100%)
    [d] [ Prepared   ]   chainsaw (4d6)

-- Inventory -------------------------------------------------

    [a] chaingun (1d6)x4 [40/40]
    [b] plasma shotgun (7d3) [30/30]
    [c] laser rifle (1d7)x5 [40/40]
    [d] Mega Buster (1d8)x3 [60/60]
    [e] green armor [1/1] (100%)
    [f] blue armor [2/2] (100%)
    [g] red armor [4/4] (100%)
    [h] 10mm ammo (x100)
    [i] shotgun shell (x50)
    [j] shotgun shell (x50)
    [k] shotgun shell (x50)
    [l] shotgun shell (x23)
    [m] shotgun shell (x50)
    [n] shotgun shell (x50)
    [o] shotgun shell (x50)
    [p] shotgun shell (x50)
    [q] large med-pack
    [r] large med-pack
    [s] large med-pack
    [t] large med-pack
    [u] technical mod pack
    [v] shell box (x100)

-- Resistances -----------------------------------------------

    Plasma     - internal 0%    torso 20%   feet 0%   

-- Kills -----------------------------------------------------

    77 former humans
    34 former sergeants
    11 former captains
    32 imps
    13 demons
    31 lost souls
    6 cacodemons
    3 hell knights
    2 arachnotrons
    2 bruiser brothers
    1 shambler

-- History ---------------------------------------------------

  He started his journey on the surface of Phobos.
  On level 5 he stormed the Chained Court.
  On level 6 he assembled a tactical boots!
  On level 8 he encountered the Phobos Anomaly.
  On level 9 he entered Hell's Armory.
  On level 9 he found the Mega Buster!
  On level 9 he finally nuked himself.

-- Messages --------------------------------------------------

 Boom!
 Your shotgun is already loaded.
 You reload the shotgun.
 The lost soul dies.
 You reload the shotgun.
 You reload the shotgun.
 You reload the shotgun.
 You reload the shotgun.
 You reload the shotgun.
 You close the door.
 You reload the shotgun.
 You reload the shotgun.
 Warning! Explosion in 60 seconds!
 You are hit!
 Your shotgun is already loaded.
 You are hit! You die!... Press <Enter>...

-- General ---------------------------------------------------

 57 brave souls have ventured into Phobos:
 39 of those were killed.
 2 of those were killed by something unknown.
 5 didn't read the thermonuclear bomb manual.

 11 souls destroyed the Mastermind...
 2 sacrificed itself for the good of mankind.
 8 killed the bitch and survived.
 1 showed that it can outsmart Hell itself.

--------------------------------------------------------------

--- End code ---

shark20061:
Heh, that's a nasty bug, but it's fixed in repo now.  I'll explain why it's nasty.

This bug comes up when a being has an OnAction hook, the player dies, there's a nuke waiting to go off, and the hook doesn't check to see if the game is still running first.

The issue is this: The being has 2 OnAction hooks that run one after the other: The AI hook, and the Being's own hook.  Only 3 beings have such a hook defined at the being level -- Shambler, Lava Elemental, and Apostle.

If you die to one of these beings because of one of their attacks, the death occurs during the AI OnAction script.  The bug happens if you have a nuke that has yet to go off (because the nuke will explode as part of the player dying), as this will end up killing the attacking being.

Then the error: The being will attempt to run it's being-level OnAction hook, and fail because at this point it doesn't exist anymore.  Crash.

TL,DR: Your game will error out if you die to the attacks of a Shambler, Lava Elemental, or Apostle and there is an active nuke on the map.

Navigation

[0] Message Index

Go to full version