Jump to content
Guest Guest

Crash

Recommended Posts

Yes, MoveGlobal() should to my knowledge be just fine when paired with MakeGlobal(). In this case the MakeGlobal() happens in the script of an earlier area (m#ar01).

 

[edit] a quick test using this block:

 

IF
AreaCheckObject("M#AR02",Player1)
!AreaCheckObject("M#AR02","m#yclbm1")
!Dead("m#yclbm1")
THEN
RESPONSE #100
MoveGlobal("M#AR02","m#yclbm1",[200.750])
END

 

in M#AR02.bcs (but no other goon blocks) returned no crash.

 

so at least we have a culprit - the triggers; and a solution - alternate script for BP or BGT users (or just a manual patch: my favourite option).

 

I'm thinking that I should revert the windows version of the script back to the pre Mac era, since keeping the Mac and Windows versions alike was the only reason I changed it. I just have to remember that they are different, but I don't expect to do a lot of changes to the area scripts in the future.

Share this post


Link to post

Hmm, check if MakeGlobal() always works - i.e. that you have a joinable NPC entry in the savegame called _#yclbm1. The IE engine can be a bit notorious for skipping script lines sometimes, and hence sporadic errors can occur, most likely due to the fact that there isn't all that much concurrency in scripts (one action doesn't always execute before the other, hence you have to put SmallWait() or Wait() in random places here and there). In that crashing savegame that you have, are all the joinable NPCs stored within that game as expected?

Share this post


Link to post

:( Ohhh, you're partly right and I have a nice little loophole in my quest! The guards were never made global, but it was not because IE was skipping a beat here:

 

IF
Global("M#AmberKidnap","GLOBAL",5)
THEN
RESPONSE #100
SetGlobal("M#AmberKidnap","GLOBAL",6)
ActionOverride("m#yclbm1",MakeGlobal())
ActionOverride("m#ygspm1",MakeGlobal())
ActionOverride("m#ygspm2",MakeGlobal())
ActionOverride("m#ygspm3",MakeGlobal())
ActionOverride("m#ygspm4",MakeGlobal())
ActionOverride("m#ygsbm1",MakeGlobal())
ActionOverride("m#ygsbm2",MakeGlobal())
END

 

It was because earlier, in the slums' sub area ar0405, M#AmberKidnap wasn't moved from 4 to 5, here:

 

IF
Global("M#AmberKidnap","GLOBAL",4)
PartyHasItem("m#ymmap")
PartyHasItem("m#ymmlet")
THEN
RESPONSE #100
SetGlobal("M#AmberKidnap","GLOBAL",5)
AddJournalEntry(@26,QUEST)
END

 

In the crashing save the variable is still 4. I'm guessing that the player never picked up the letter (m#ymmlet), just the map (m#ymmap). Since the map is really necessary for the player to move on and the letter only gives you information, justifying the journal entry; there's a chance that the variable doesn't get moved. Oooops... :(

 

Furthermore, later when the variable is supposed to moved to 7 in order to advance the quest, I use GlobalLT. That allowed the quest to proceed normally, after the player got past the crashing area.

 

Of course this all doesn't explain why removing only the block about Lorraine (who appears in the NPC list of the crashing save) from the area script prevented the game from crashing. ???

Share this post


Link to post
Guest Guest

Actually I did pick up the letter but then I dropped it after reading it...

Share this post


Link to post
Actually I did pick up the letter but then I dropped it after reading it...

Was your game paused?

Share this post


Link to post
Guest Guest

It usually auto pauses when you enter you inventory and since my inventory was full when I wanted to pick it up, i opened it directly, read it and dropped it after figuring it wasn't a plot item.

 

So yeah, that could have caused a problem...

Share this post


Link to post
Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...