I managed to find more or less the place of the bug.
I've changed the event code to:
print(cmp_obstacle_state("HF-Gate-inner", "opened"))
print(cmp_obstacle_state("HF-Gate-outer", "opened"))
print(has_quest("Open Sesame"))
print(done_quest("Open Sesame"))
if ((cmp_obstacle_state("HF-Gate-inner", "opened")) and
(cmp_obstacle_state("HF-Gate-outer", "opened")) and
(has_quest("Open Sesame")) and
(not done_quest("Open Sesame"))) then
end_quest("Open Sesame", _"I found the gates. The firmware server should lay
beyond them.")
end
The values printed to terminal were:
true
-> false
true
false
Needless to say, using these savefiles (or not), both gates were open.
Lua syntax also seems to be correct, so the problem is not on events.dat, but at
cmp_obstacle_state.
Therefore, updating the title. (I've did a few debug printfs on the C part of
the code which handles positional events and none of them failed)
I've tested about Spencer's Death but found no bug there, Spencer death will
only trigger an event at Town but this is Game Design fault (that killing him at
level 59 does nothing) |