Issue Data
|
Issue #27394: QF_DLC04_RQ_DefendCache_0102191C: Unable to call IsRunning
[09/06/2019 - 07:29:18PM] error: Unable to call IsRunning - no native object bound to the script object, or object is of incorrect type
stack: [None].DLC04:Fragments:Quests:QF_DLC04_RQ_DefendCache_0102191C.IsRunning() - "<native>" Line ? [ (00223B35)].retriggerscript.Off.OnLoad() - "C:\Users\Dr. Peter Haas\AppData\Local\Temp\PapyrusTemp\retriggerscript.psc" Line ? |
Related Issues: 25811
Same issue as #25811: the quest fragment passes an invalid reference to RETriggerScript that turns into a broken pointer as soon as the quest shuts down.
Honestly, I DON'T GET THIS NONSENSE ....
REScript will handle the trigger automatically and also makes sure that a valid quest reference is passed. Nonetheless, numerous RE quests added by the DLCs have this extra line in their startup fragment that bypasses the functions on REScript (needlessly so - there's no excuse Todd!), and to top it off, they're doing it the wrong way, by passing the quest fragment script instead of REScript. Both the quest fragment script and REScript extend the quest, but the quest fragment script is a temporary object that turns into a broken pointer when the quest shuts down. If they wanted to mess up the triggers on purpose, they couldn't have done it more effectively.
WHY TODD, WHY ????
The broken pointer has consequences: the modifications to REScript by UFO4P 2.0.0 to rearm blocked triggers need to check whether the quest last started by a trigger is still running, and this check will fail if the pointer is broken (that check is where the error comes from). Which means that we have to rely on the quests that messed up the trigger property to shut down eventually - if they don't, there's currently no way for us to detect this and the affected triggers will remain blocked.
I'd actually prefer to fix this on REScript because I really don't want to have to go through all affected quests (the DLCs did add quite a number of them). Should actually be simple if I can rely on the property not turning into a broken pointer as long as the quest is still running, because that would mean in turn that the quest is not running if the pointer is broken.
Honestly, I DON'T GET THIS NONSENSE ....
REScript will handle the trigger automatically and also makes sure that a valid quest reference is passed. Nonetheless, numerous RE quests added by the DLCs have this extra line in their startup fragment that bypasses the functions on REScript (needlessly so - there's no excuse Todd!), and to top it off, they're doing it the wrong way, by passing the quest fragment script instead of REScript. Both the quest fragment script and REScript extend the quest, but the quest fragment script is a temporary object that turns into a broken pointer when the quest shuts down. If they wanted to mess up the triggers on purpose, they couldn't have done it more effectively.
WHY TODD, WHY ????
The broken pointer has consequences: the modifications to REScript by UFO4P 2.0.0 to rearm blocked triggers need to check whether the quest last started by a trigger is still running, and this check will fail if the pointer is broken (that check is where the error comes from). Which means that we have to rely on the quests that messed up the trigger property to shut down eventually - if they don't, there's currently no way for us to detect this and the affected triggers will remain blocked.
I'd actually prefer to fix this on REScript because I really don't want to have to go through all affected quests (the DLCs did add quite a number of them). Should actually be simple if I can rely on the property not turning into a broken pointer as long as the quest is still running, because that would mean in turn that the quest is not running if the pointer is broken.
Comment #1 Sep 12, 2019 2:50 pm
Edited by Sclerocephalus on Sep 13, 2019 3:48 am
Showing Comments 1 - 2 of 2