Jump to content

Crash


Guest Guest

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.

Link to comment

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?

Link to comment

:( 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. ???

Link to comment

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...

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...