FG Spreadshirt Swag
Page 1 of 5 123 ... Last
  1. #1

    My expiring of effect call is now failing in TEST - works in LIVE

    I'm looking at this right now - but not seeing anything obvious in why this would be working any differently than in LIVE. I get a stack dump of...

    Code:
    [6/23/2022 12:09:13 PM] [ERROR]  Handler error: [string "scripts/manager_combat.lua"]:97: attempt to index local 'nodeEffectList' (a userdata value)
    stack traceback:
    	[string "scripts/manager_combat.lua"]:97: in function <[string "scripts/manager_combat.lua"]:95>
    	(tail call): ?
    	[C]: in function 'delete'
    	[string "scripts/manager_effect.lua"]:785: in function 'expireEffect'
    	[string "scripts/manager_polymorphism.lua"]:1645: in function 'fHandler'
    	[string "scripts/manager_oob.lua"]:30: in function <[string "scripts/manager_oob.lua"]:22>
    	[C]: in function 'deliverOOBMessage'
    	[string "scripts/manager_polymorphism.lua"]:1619: in function 'NotifyStopConcentration'
    	[string "polymorphism_stop_concentration_button"]:13: in function <[string "polymorphism_stop_concentration_button"]:7>
    Where somehow the ruleset code is losing the nodeEffectList - or something has changed in expireEffect that I'm just not seeing. Any help or ideas appreciated.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  2. #2
    In fact, no matter where in my code I trigger an expireEffect it fails in the same way.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  3. #3
    Try adding Debug statements at the top of each function in the chain to see what the parameters are.

    If you provide a very specific example campaign and extension where everything is set up so I can see it with a few simple steps; I should be able to help.

    Regards,
    JPG

  4. #4
    I just checked with the latest beta Test code in the CoreRPG ruleset in the TokenManager; and the calls seems to be coming through correctly for me using CombatManager.setCustomDeleteCombatantEffectHandle r.

    Regards,
    JPG

  5. #5
    Quote Originally Posted by Moon Wizard View Post
    I just checked with the latest beta Test code in the CoreRPG ruleset in the TokenManager; and the calls seems to be coming through correctly for me using CombatManager.setCustomDeleteCombatantEffectHandle r.

    Regards,
    JPG
    Might it have something to do with this function I override? I'll get on the Debug.console stuff now.

    -- in order to prevent crash from conflicts where effect list is not longer in existence
    saveonDeleteCombatantEffectEvent = CombatManager.onDeleteCombatantEffectEvent;
    CombatManager.onDeleteCombatantEffectEvent = onDeleteCombatantEffectEvent;
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  6. #6
    I can see it come in this routine...

    Code:
    -- prevent conflict crash
    function onDeleteCombatantEffectEvent(nodeEffectList)
    	if type(nodeEffectList) ~= "databasenode" then
    		return false;
    	end
    	return saveonDeleteCombatantEffectEvent(nodeEffectList);
    end
    And when I print out the nodeEffectList I get

    databasenode = { combattracker.list.id-00019.effects }

    Which is correct. The only purpose for this function was there were times the node with that list would have been removed and I check that the entry is still a database entry to prevent it from doing... well... what it's doing right now.

    But not understanding how it looks good going into my save call and then drops dead as if its not good. Ideally I'd prefer the FGU code to validate the node effect is still around but this was my solution - which works in live - but fails in TEST.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  7. #7
    I just validated that removing my above override causes the same exact error. Which was the sole purpose of the override in the first place - to prevent an expired effect request from triggering after something else removed the node it was part of. I really don't understand how my check is not preventing this. Actually not really understanding what is going on at all. My debug console log shows it calling my override - and with valid nodeffect list - but then seems to not really have it by time it reaches the FGU version. Or something else is calling the FGU version and completely skipping my safety check.

    Any chance this safety check can move into the FGU code? Either way - I'm stumped what is going on.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  8. #8
    To be clear - polymorphism uses the effect's removal to trigger a transformation (CT node will be removed and replaced) - which can end up in this error where by the time the system gets around to doing the delete - the node is gone and the effect list is user data. I prevent this error (an expired event is generic - not just my poly one) when this situation happens by checking the nodeEffectList is still in the DB. Works in LIVE as I said - fails in TEST.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  9. #9
    Also not sure there is a way to do a simple example. The only way I know to get this to happen is to have an expired effect trigger the removal of the node it is part of. You'd have to have polymorphism and run it. But I think what I've explained already should be pretty clear...

    My safety check for ALL onDeleteCombatantEffectEvent calls is not happening in ALL calls. Not sure why.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

  10. #10
    [Removed likely useless info]

    Pretty much lost on what is causing this. Putting a print in LIVE to see if that safety was ever triggered and the print never showed up. Does not error in LIVE - but it for sure does not print that it skipped processing on the type(database) check.

    Beginning to wonder how you can ever get this code to not try to process a nodeEffectList where the node is gone.
    Last edited by SilentRuin; June 23rd, 2022 at 21:29.
    Free(Forums/Forge) Extension(FGU 5E):
    Paid (Forge) Extension(FGU 5E):

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Starfinder Playlist

Log in

Log in