Post reply

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.
Name:
Email:
Subject:
Message icon:

Verification:
Type the letters shown in the picture
Listen to the letters / Request another image

Type the letters shown in the picture:
What color is grass?:
What is the seventh word in this sentence?:
What is five minus two (use the full word)?:

shortcuts: hit alt+s to submit/post or alt+p to preview


Topic Summary

Posted by: samk
« on: April 13, 2007, 08:09:15 PM »

Having her join in leave is just to stop her walking off when i'm done talking with her, because that's when my game was crashing.
Posted by: cmorgan
« on: April 09, 2007, 06:07:56 PM »

Folks, I can promise you that both Macready and I will be *very* interested in helping track this down, if you can come up with a WeiDU.LOG and hopefully a savegame, or at least an indication if this is on unmodded or unmodded installs. Withour these minimum, you are asking us to troubleshoot a custom-built offroad ATV by the sound of it racing past us in the middle of a meet. Not much we can do...

good info on the "join her up" to fix her, though, as it points to something besides moving her. That means that something is probably wrong with her initial script. That still could be us. I will return with a decompiled BCS.

Unmodded EasyTutu -- ain't no problem here,
Code: [Select]
IF
  See([PC])
  NumberOfTimesTalkedTo(0)
THEN
  RESPONSE #100
    Dialog([PC])
END

IF
  False()
THEN
  RESPONSE #100
    Activate(Myself)
END

IF
  False()
THEN
  RESPONSE #100
    Deactivate(Myself)
END
_ALORA.BCS EasyTutu after UB, BG1NPC, and SCS (0 level NPC only)...
Code: [Select]
IF
  RealGlobalTimerExpired("CRoReactionTime","GLOBAL") //BG1NPC, no problem
  InParty(Myself)
  Global("CoRomReaction","GLOBAL",1)
  !Global("CoranRomanceInactive","GLOBAL",1)
  Global("CoranMatch","GLOBAL",1)
  Global("CoranFriend","GLOBAL",1)
  !StateCheck(Myself,CD_STATE_NOTVALID)
  !StateCheck(Player1,CD_STATE_NOTVALID)
  See(Player1)
  CombatCounter(0)
  !See([ENEMY])
  Global("CRAL1","GLOBAL",0)
THEN
  RESPONSE #100
    SetGlobal("CRAL1","GLOBAL",1)
    Interact(Player1)
END

IF
  Global("CRAL1","GLOBAL",1)   //ditto
  InParty(Myself)
  !StateCheck(Myself,CD_STATE_NOTVALID)
  !StateCheck(Player1,CD_STATE_NOTVALID)
THEN
  RESPONSE #100
    Interact(Player1)
END

IF
  InParty(Myself)
  Global("DreamTimerStarted","GLOBAL",0)  //Ditto
THEN
  RESPONSE #100
    RealSetGlobalTimer("DreamTalk","GLOBAL",THREE_TURNS)
    SetGlobal("DreamTimerStarted","GLOBAL",1)
END

IF
  InParty(Myself)
  Global("AlPCTimerStarted","GLOBAL",0)
THEN
  RESPONSE #100
    RealSetGlobalTimer("AlFriendTalkTime","GLOBAL",AJROM_TIMER) //Ditto (don't worry, custom .ids entry
    SetGlobal("AlPCTimerStarted","GLOBAL",1)
END

IF
  InParty(Myself)
  CombatCounter(0)
  !See([ENEMY])
  RealGlobalTimerExpired("AlFriendTalkTime","GLOBAL") //ditto
  Global("AlFriendTalk","GLOBAL",0)
  AreaType(CITY)
THEN
  RESPONSE #100
    PlaySong(0)
    PlaySound("alora99")
    IncrementGlobal("AlFriendTalk","GLOBAL",1)
    RealSetGlobalTimer("AlFriendlyTalkTime","GLOBAL",ONE_MINUTE)
    StartDialogNoSet(Player1)
END

IF
  InParty(Myself)
  RealGlobalTimerExpired("AlFriendlyTalkTime","GLOBAL")
  Global("AlFriendTalk","GLOBAL",1)
THEN
  RESPONSE #100
    IncrementGlobal("AlFriendTalk","GLOBAL",1)
    RealSetGlobalTimer("AlFriendTalkTime","GLOBAL",TWELVE_HOURS) //ditto
END

IF
  RealGlobalTimerExpired("AlFriendTalkTime","GLOBAL") //ditto
  InParty(Myself)
  CombatCounter(0)
  !See([ENEMY])
  InParty("imoen")  // ~Imoen~
  Global("AlFriendTalk","GLOBAL",2)
  AreaType(CITY)
THEN
  RESPONSE #100
    PlaySong(0)
    PlaySound("alora99")
    IncrementGlobal("AlFriendTalk","GLOBAL",1)
    RealSetGlobalTimer("AlFriendlyTalkTime","GLOBAL",ONE_MINUTE)
    StartDialogNoSet(Player1)
END

IF
  InParty(Myself)
  RealGlobalTimerExpired("AlFriendlyTalkTime","GLOBAL") //ditto
  Global("AlFriendTalk","GLOBAL",3)
THEN
  RESPONSE #100
    IncrementGlobal("AlFriendTalk","GLOBAL",1)
    RealSetGlobalTimer("AlFriendTalkTime","GLOBAL",18000)
END

IF
  See([PC])   //Original Block
  NumberOfTimesTalkedTo(0)
THEN
  RESPONSE #100
    Dialog([PC])
END

IF
  False()
THEN
  RESPONSE #100
    Activate(Myself)
END

IF
  False()
THEN
  RESPONSE #100
    Deactivate(Myself)
END

IF
  !Global("DMWWLevelUpWarning","LOCALS",1)  //level up SCS
  InParty(Myself)
  CheckStatGT(Myself,0,LEVEL)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUpWarning","LOCALS",1)
    SetGlobal("DMWWLevelUp","LOCALS",1)
END

IF
  !Global("DMWWLevelUpWarning","LOCALS",1) //level up SCS
  Class(Myself,RANGER_ALL)
  InParty(Myself)
  CheckStat(Myself,0,LEVEL)
THEN
  RESPONSE #100
    DisplayStringHead(Myself,118363)  // ~This character is now level 0. Level them up to choose their initial proficiencies and skills. (Until you do this, their hit points and equipment may be a little odd; don't worry about this. Once you level them up, they may gain more levels (depending on your own experience).~
    SetGlobal("DMWWLevelUpWarning","LOCALS",1)
    ApplySpellRES("dw#rang",Myself)  // <Invalid Strref -1>
END

IF
  !Global("DMWWLevelUpWarning","LOCALS",1) //level up SCS
  !Class(Myself,RANGER_ALL)
  InParty(Myself)
  CheckStat(Myself,0,LEVEL)
THEN
  RESPONSE #100
    DisplayStringHead(Myself,118363)  // ~This character is now level 0. Level them up to choose their initial proficiencies and skills. (Until you do this, their hit points and equipment may be a little odd; don't worry about this. Once you level them up, they may gain more levels (depending on your own experience).~
    SetGlobal("DMWWLevelUpWarning","LOCALS",1)
END

IF
  !Global("DMWWLevelUp","LOCALS",1) //level up SCS
  CheckStat(Myself,1,LEVEL)
  InParty(Myself)
  XPGT(Player1,32000)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUp","LOCALS",1)
    ApplySpell(Myself,RESTORE_FULL_HEALTH)
    ApplySpellRES("dw#hp",Myself)  // <Invalid Strref -1>
    DestroyItem("dw#npcl0")  // ~Long Sword~
    AddXPObject(Myself,32000)
END

IF
  !Global("DMWWLevelUp","LOCALS",1) //level up SCS
  CheckStat(Myself,1,LEVEL)
  InParty(Myself)
  XPGT(Player1,16000)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUp","LOCALS",1)
    ApplySpell(Myself,RESTORE_FULL_HEALTH)
    ApplySpellRES("dw#hp",Myself)  // <Invalid Strref -1>
    DestroyItem("dw#npcl0")  // ~Long Sword~
    AddXPObject(Myself,16000)
END

IF
  !Global("DMWWLevelUp","LOCALS",1) //level up SCS
  CheckStat(Myself,1,LEVEL)
  InParty(Myself)
  XPGT(Player1,8000)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUp","LOCALS",1)
    ApplySpell(Myself,RESTORE_FULL_HEALTH)
    ApplySpellRES("dw#hp",Myself)  // <Invalid Strref -1>
    DestroyItem("dw#npcl0")  // ~Long Sword~
    AddXPObject(Myself,8000)
END

IF
  !Global("DMWWLevelUp","LOCALS",1) //level up SCS
  CheckStat(Myself,1,LEVEL)
  InParty(Myself)
  XPGT(Player1,4000)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUp","LOCALS",1)
    ApplySpell(Myself,RESTORE_FULL_HEALTH)
    ApplySpellRES("dw#hp",Myself)  // <Invalid Strref -1>
    DestroyItem("dw#npcl0")  // ~Long Sword~
    AddXPObject(Myself,4000)
END

IF
  !Global("DMWWLevelUp","LOCALS",1) //level up SCS
  CheckStat(Myself,1,LEVEL)
  InParty(Myself)
  XPGT(Player1,2000)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUp","LOCALS",1)
    ApplySpell(Myself,RESTORE_FULL_HEALTH)
    ApplySpellRES("dw#hp",Myself)  // <Invalid Strref -1>
    DestroyItem("dw#npcl0")  // ~Long Sword~
    AddXPObject(Myself,2000)
END

IF
  !Global("DMWWLevelUp","LOCALS",1) //level up SCS
  CheckStat(Myself,1,LEVEL)
  InParty(Myself)
THEN
  RESPONSE #100
    SetGlobal("DMWWLevelUp","LOCALS",1)
    ApplySpell(Myself,RESTORE_FULL_HEALTH)
    ApplySpellRES("dw#hp",Myself)  // <Invalid Strref -1>
    DestroyItem("dw#npcl0")  // ~Long Sword~
    AddXPObject(Myself,1)
END
Hall of Wonders Area Script: Identical on both Modded and Unmodded EasyTutu
Code: [Select]
IF
  OR(2)
    TimeGT(20)
    TimeLT(4)
  Exists("Alora")  // Alora
  Global("J#AloraInactive","GLOBAL",1)
THEN
  RESPONSE #100
    SetGlobal("J#AloraInactive","GLOBAL",0)
    Activate("Alora")
END

IF
  TimeGT(4)
  TimeLT(20)
  Exists("Alora")  // Alora
  Global("J#AloraInactive","GLOBAL",0)
THEN
  RESPONSE #100
    SetGlobal("J#AloraInactive","GLOBAL",1)
    Deactivate("Alora")
END

IF
  TimeGT(20)
  False()
THEN
  RESPONSE #100
    Activate("alora")
END

IF
  TimeLT(4)
  False()
THEN
  RESPONSE #100
    Activate("alora")
END

IF
  TimeGT(4)
  TimeLT(20)
  False()
THEN
  RESPONSE #100
    Deactivate("alora")
END

It does look like our code to address issues is not happening on EasyTutu, because it is not needed...
we do
Code: [Select]
    /* Trying to prevent Alora from Stuttering. */
    COPY_EXISTING ~_ALORA.bcs~ ~override~
      DECOMPILE_BCS_TO_BAF
      REPLACE_TEXTUALLY
        ~TimeOfDay(DAY)~ ~AreaCheck("FW0130") NumberOfTimesTalkedTo(0) TimeOfDay(DAY) !InParty(Myself)~
      COMPILE_BAF_TO_BCS
    BUT_ONLY_IF_IT_CHANGES
But since EasyTutu already removes the problem blocks, this will not patch anything - it is left in for Tutu v4.
We have a legacy code block that also pushes at the same issue, identified as a problem in Tutu v4,
Code: [Select]
    /* Trying to prevent Alora's CTD */
  COPY_EXISTING ~_AR0130.bcs~ ~override~
    DECOMPILE_BCS_TO_BAF
    REPLACE_TEXTUALLY
      ~!InParty("alora")~
      ~!InParty("alora") Global("X#AloraDontBeDificult","GLOBAL",1)~
    COMPILE_BAF_TO_BCS
    BUT_ONLY_IF_IT_CHANGES
(This is just another way of creating False(), buy setting an unnatainable condtiton, with the difference that we can "undo" the change via CLUAConsole if it proves to be a problem in testing)... this is going away in the next internal, as obviously EasyTutu does not need it (there is no such entry to patch) and the problem is showing up on both EasyTutu and Tutu v4, which means that it is not the !InParty call that is the problem.

Dialogue should not be able to cause a crash unless there is no actual physically present dialogue file available when a state tries to EXTERN to it, but just in case, here is Alora's unmodified EasyTutu .DLG
Code: [Select]
// creator  : DLTCEP_enhanced_WeiDU (version 199)
// argument : _ALORA.DLG
// game     : .
// source   : ./override/_ALORA.DLG
// dialog   : ./DIALOG.TLK
// dialogF  : (none)

BEGIN ~_ALORA~
//////////////////////////////////////////////////
// WARNING: this file contains non-trivial WEIGHTs
//////////////////////////////////////////////////

IF WEIGHT #1 /* Triggers after states #: 10 even though they appear after this state */
~NumberOfTimesTalkedTo(0)
ReactionGT(LastTalkedToBy,NEUTRAL_UPPER)
~ THEN BEGIN 0 // from:
  SAY #87948 /* ~Oh!  Scared me you did!  I suppose I'm caught then?  Peacefully I'll go, I'm not much for fighting... Wait a minute... Holy Leapin' Lavender Lizards!  You're not the guard!  You're... you're burglaring just like me!  Now this IS exciting!  We should... we should work together!  Yeah!  I could use the help... uh... I mean, we could just help each other a little bit.  Just for this one heist, you keep watch while I point out the good stuff.  You can even keep most of it!  I got a good tip on where to be looking!  Whatcha say?~ */
  IF ~~ THEN REPLY #87949 /* ~That is a good idea.  I'll keep watch and help you.~ */ GOTO 6
  IF ~~ THEN REPLY #87950 /* ~I have no interest in a thief so easily caught.  Off with you!~ */ GOTO 5
  IF ~~ THEN REPLY #87951 /* ~You've seen me!  I'm sorry, but I have to kill you now!~ */ GOTO 11
END

IF WEIGHT #2 /* Triggers after states #: 10 even though they appear after this state */
~NumberOfTimesTalkedTo(0)
ReactionLT(LastTalkedToBy,FRIENDLY_LOWER)
ReactionGT(LastTalkedToBy,HOSTILE_UPPER)
~ THEN BEGIN 1 // from:
  SAY #87952 /* ~Holy Kitty Cacophony, you scared the bejeebers outta me!  Sure it's yer job to catch us thievers, but ye need not give me a heart attack too!  Hey... you're not the guard!  Yeesh!  Getting me all in a tizzy when you're here for the same thing as me.  Well, since you're here, howz about we work together?  Just for this one heist, I mean. You keep watch while I show the stash. I know a secret here and there, but we get equal shares, okay?~ */
  IF ~~ THEN REPLY #87953 /* ~A good plan.  Do what you must and I'll keep watch.~ */ GOTO 6
  IF ~~ THEN REPLY #87950 /* ~I have no interest in a thief so easily caught.  Off with you!~ */ GOTO 5
  IF ~~ THEN REPLY #87951 /* ~You've seen me!  I'm sorry, but I have to kill you now!~ */ GOTO 11
END

IF WEIGHT #3 /* Triggers after states #: 10 even though they appear after this state */
~NumberOfTimesTalkedTo(0)
ReactionLT(LastTalkedToBy,NEUTRAL_LOWER)
~ THEN BEGIN 2 // from:
  SAY #87954 /* ~Wha... !  Aww nutbunnies, caught again!  Hey wait... there's no polish on yer boots; no snap in yer suspenders.  You're... you're not the guard.  They're always so much more... presentable.  Well... be on your way then.  I just wanna grab a few things and... be off.  There's lots for both of us so leave me be.  Hmph... not so much fun if just anyone can bust in here.~ */
  IF ~~ THEN DO ~EscapeArea()
~ EXIT
END

IF WEIGHT #4 /* Triggers after states #: 10 even though they appear after this state */
~NumberOfTimesTalkedTo(1)
ReactionLT(LastTalkedToBy,NEUTRAL_LOWER)
~ THEN BEGIN 3 // from:
  SAY #87955 /* ~Just you leave me to my sneakin'.  I'm not gonna take the big stuff.~ */
  IF ~~ THEN EXIT
END

IF WEIGHT #5 /* Triggers after states #: 10 even though they appear after this state */
~NumberOfTimesTalkedTo(1)
ReactionGT(LastTalkedToBy,NEUTRAL_UPPER)
~ THEN BEGIN 4 // from:
  SAY #87956 /* ~Well if your gonna be puppy-doggin' after me all night, maybe we should work together.  I know this place pretty good; know a few secrets.  Could be fun.  What say you? Wanna keep watch while I scout for pretties?~ */
  IF ~~ THEN REPLY #87957 /* ~Certainly. Do what you must while I will keep watch.~ */ GOTO 6
  IF ~~ THEN REPLY #87950 /* ~I have no interest in a thief so easily caught.  Off with you!~ */ GOTO 5
  IF ~~ THEN REPLY #87951 /* ~You've seen me!  I'm sorry, but I have to kill you now!~ */ GOTO 11
END

IF ~~ THEN BEGIN 5 // from: 7.2 4.1 1.1 0.1
  SAY #87958 /* ~Well!  There's no need to be rude about it!  Hmph!  Never meet nice people in this line of work!  No wonder people hate thieves!  Well, we steal stuff too, BUT BEING JERKS DOESN'T HELP!  Not one bit!  Goodbye!~ */
  IF ~~ THEN DO ~EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 6 // from: 4.0 1.0 0.0
  SAY #87959 /* ~Double good and done!  Oh, it'll be great fun having someone around to talk to!  I don't meet many nice people in this trade.  Just because we steal doesn't mean we have to be bad.  Mostly I'm just curious what people have.  Here, I'll point out a few things and then we can get to sneakin.'  He he, such fun!~ */
  IF ~~ THEN DO ~DialogueInterrupt(FALSE)
SetGlobal("AloraLoots","Global",1)
MoveToPoint([769.849])
DialogueInterrupt(TRUE)
~ EXIT
END

IF WEIGHT #6 /* Triggers after states #: 10 even though they appear after this state */
~Global("AloraLoots","Global",1)
~ THEN BEGIN 7 // from:
  SAY #87960 /* ~Pretty good takin's with none too many bruises.  We do pretty good for just meeting!  How about we do this again, like all the time?  Wanna join up permanent?~ */
  IF ~~ THEN REPLY #87961 /* ~A splendid idea!  Welcome aboard.~ */ GOTO 9
  IF ~~ THEN REPLY #87962 /* ~I really am sorry but we've all we need.~ */ GOTO 8
  IF ~~ THEN REPLY #87963 /* ~Laughable!  What do I need you for?  Our job is done, now get lost!~ */ GOTO 5
END

IF ~~ THEN BEGIN 8 // from: 7.1
  SAY #87964 /* ~Ah well, easy go I guess.  Never get to keep my friends in this biz.  Specially the nice ones.  Bye, I guess.~ */
  IF ~~ THEN DO ~EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 9 // from: 7.0
  SAY #87965 /* ~Friends we are, and nice ones too!  One for all and things like that!  Fun for all of us, I just KNOW it!~ */
  IF ~~ THEN DO ~JoinParty()
~ EXIT
END

IF WEIGHT #0 ~StateCheck(Myself,STATE_CHARMED)
~ THEN BEGIN 10 // from:
  SAY #87147 /* ~I'm just a thief.  Sorry, but I don't have much to tell.~ */
  IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN 11 // from: 4.2 1.2 0.2
  SAY #87966 /* ~Ahh!  I can't fight ya, but I'll call the guard I will!  Rather be in jail than dead from you!  Help!  Nasty mean and evil!!~ */
  IF ~~ THEN DO ~CreateCreature("_FLAM",[802.905],0)
CreateCreature("_FLAM",[850.886],0)
EscapeArea()
~ EXIT
END

IF WEIGHT #7 ~False()
~ THEN BEGIN 12 // from:
  SAY #87967 /* ~Ahh!  I can't fight ya, but I'll call the guard I will!  Rather be in jail than dead from you!  Help!  Nasty mean and evil!~ */
  IF ~~ THEN DO ~CreateCreature("_FLAM",[802.905],0)
CreateCreature("_FLAM",[850.886],0)
EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 13 // from:
  SAY #87146 /* ~If that's the way you want it, then fine, I'll leave!  Sniff...~ */
  IF ~~ THEN DO ~LeaveParty()
EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 14 // from:
  SAY #87145 /* ~I don't wanna go, but if yer gonna force me, then I guess I'll just mope around here 'till you come back to your senses and come back for me.~ */
  IF ~~ THEN DO ~LeaveParty()
SetDialogue("_ALORAP")
~ EXIT
END

As a side note, moving Alora does not involve any major changes to this area. It changes her dialogue, by replacing her state triggers for  0, 4, and 5, but that should not have any way to cause a crash.
A "moved, modded Alora gets this...
Code: [Select]
// creator  : DLTCEP_enhanced_WeiDU (version 199)
// argument : _ALORA.DLG
// game     : .
// source   : ./override/_ALORA.DLG
// dialog   : ./DIALOG.TLK
// dialogF  : (none)

BEGIN ~_ALORA~
//////////////////////////////////////////////////
// WARNING: this file contains non-trivial WEIGHTs
//////////////////////////////////////////////////

IF WEIGHT #2 /* Triggers after states #: 16 24 even though they appear after this state */
~NumberOfTimesTalkedTo(0)
!AreaCheck("FW4000")
~ THEN BEGIN 0 // from:
  SAY #91252 /* ~Hey!~ */
  IF ~ReactionGT(LastTalkedToBy,NEUTRAL_UPPER)
~ THEN GOTO 1
  IF ~ReactionLT(LastTalkedToBy,FRIENDLY_LOWER)
ReactionGT(LastTalkedToBy,HOSTILE_UPPER)
~ THEN GOTO 2
  IF ~ReactionLT(LastTalkedToBy,NEUTRAL_LOWER)
~ THEN GOTO 3
END

IF ~~ THEN BEGIN 1 // from: 0.0
  SAY #91253 /* ~Oh! Scared me, you did! I suppose I'm caught, then? I'll go peacefully, I'm not much for fighting... Wait a minute... Holy Leapin' Lavender Lizards! You're not the guard! You're... you're burglaring, just like me! Now this *is* exciting! We should... we should work together! Yeah! I could use the help... uh... I mean, we could just help each other a little bit. Just for this one heist, you keep watch while I point out the good stuff. You can even keep most of it! I got a good tip on where to be looking! Whatcha say?~ */
  IF ~~ THEN REPLY #91254 /* ~That is a good idea. I'll keep watch and help you.~ */ GOTO 7
  IF ~~ THEN REPLY #91255 /* ~I have no interest in a thief so easily caught. Off with you!~ */ GOTO 6
  IF ~~ THEN REPLY #91256 /* ~You've seen me! I'm sorry, but I have to kill you now!~ */ GOTO 12
END

IF ~~ THEN BEGIN 2 // from: 0.1
  SAY #91257 /* ~Holy Kitty Cacophony, you scared the bejeebbers outta me! Sure it's yer job to catch us thievers, but ye need not give me a heart attack too! Hey... you're not the guard! Yeesh! Getting me all in a tizzy when you're here for the same thing as me. Well, since you're here, howz about we work together? Just for this one heist, I mean. You keep watch while I show the stash. I know a secret here and there, but we get equal shares, OK?~ */
  IF ~~ THEN REPLY #91258 /* ~A good plan. Do what you must and I'll keep watch.~ */ GOTO 7
  IF ~~ THEN REPLY #91255 /* ~I have no interest in a thief so easily caught. Off with you!~ */ GOTO 6
  IF ~~ THEN REPLY #91256 /* ~You've seen me! I'm sorry, but I have to kill you now!~ */ GOTO 12
END

IF ~~ THEN BEGIN 3 // from: 0.2
  SAY #91259 /* ~Wha...! Aww, nutbunnies, caught again! Hey, wait... there's no polish on yer boots, no snap in yer suspenders. You're... you're not the guard. They're always so much more... presentable. Well... be on your way, then. I just wanna grab a few things and... be off. There's lots for both of us, so leave me be. Hmph... not so much fun if just anyone can bust in here.~ */
  IF ~~ THEN DO ~EscapeArea()
~ EXIT
END

IF WEIGHT #4 /* Triggers after states #: 11 16 24 even though they appear after this state */
~NumberOfTimesTalkedTo(1)
ReactionLT(LastTalkedToBy,NEUTRAL_LOWER)
!AreaCheck("FW4000")
~ THEN BEGIN 4 // from:
  SAY #91260 /* ~Just you leave me to my sneakin'. I'm not gonna take the big stuff.~ */
  IF ~~ THEN EXIT
END

IF WEIGHT #5 /* Triggers after states #: 11 16 24 even though they appear after this state */
~NumberOfTimesTalkedTo(1)
ReactionGT(LastTalkedToBy,NEUTRAL_UPPER)
!AreaCheck("FW4000")
~ THEN BEGIN 5 // from:
  SAY #91261 /* ~Well if your gonna be puppy-doggin after me all night, maybe we should work together. I know this place pretty good; know a few secrets. Could be fun. What say you? Wanna keep watch while I scout for pretties?~ */
  IF ~~ THEN REPLY #87957 /* ~Certainly. Do what you must while I will keep watch.~ */ GOTO 7
  IF ~~ THEN REPLY #91255 /* ~I have no interest in a thief so easily caught. Off with you!~ */ GOTO 6
  IF ~~ THEN REPLY #91256 /* ~You've seen me! I'm sorry, but I have to kill you now!~ */ GOTO 12
END

IF ~~ THEN BEGIN 6 // from: 8.2 5.1 2.1 1.1
  SAY #91262 /* ~Well! There's no need to be rude about it! Hmph! Never meet nice people in this line of work! No wonder people hate thieves! Well, we steal stuff too, *but being jerks doesn't help*! Not one bit! Goodbye!~ */
  IF ~~ THEN DO ~EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 7 // from: 5.0 2.0 1.0
  SAY #91263 /* ~Double good and done! Oh, it'll be great fun having someone around to talk to! I don't meet many nice people in this trade. Just because we steal doesn't mean we have to be bad. Mostly I'm just curious what people have. Here, I'll point out a few things and then we can get to sneakin.' He he, such fun!~ */
  IF ~~ THEN DO ~DialogueInterrupt(FALSE)
SetGlobal("P#AloraLoots","GLOBAL",1)
MoveToPoint([769.849])
DialogueInterrupt(TRUE)
~ EXIT
END

IF WEIGHT #6 /* Triggers after states #: 11 16 24 even though they appear after this state */
~Global("P#AloraLoots","GLOBAL",1)
~ THEN BEGIN 8 // from:
  SAY #91264 /* ~Pretty good takin's with none too many bruises. We do pretty good for just meeting! How about we do this again, like all the time? Wanna join up permanent?~ */
  IF ~~ THEN REPLY #91265 /* ~A splendid idea! Welcome aboard.~ */ GOTO 10
  IF ~~ THEN REPLY #91266 /* ~I really am sorry, but we've all we need. ~ */ GOTO 9
  IF ~~ THEN REPLY #91267 /* ~Laughable! What do I need you for? Our job is done, now get lost!~ */ GOTO 6
END

IF ~~ THEN BEGIN 9 // from: 8.1
  SAY #91268 /* ~Ah well, easy go, I guess. Never get to keep my friends in this biz. Specially the nice ones. Bye, I guess.~ */
  IF ~~ THEN DO ~EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 10 // from: 8.0
  SAY #91269 /* ~Friends we are, and nice ones too! One for all and things like that! Fun for all of us, I just *know* it!~ */
  IF ~~ THEN DO ~JoinParty()
~ EXIT
END

IF WEIGHT #3 /* Triggers after states #: 16 24 even though they appear after this state */
~StateCheck(Myself,STATE_CHARMED)
~ THEN BEGIN 11 // from:
  SAY #91270 /* ~I'm just a thief. Sorry, but I don't have much to tell.~ */
  IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN 12 // from: 5.2 2.2 1.2
  SAY #91271 /* ~Ahh! I can't fight ya, but I'll call the guard, I will! Rather be in jail than dead from you! Help! Nasty, mean and evil!! ~ */
  IF ~~ THEN DO ~CreateCreature("FLAM",[802.905],3)
CreateCreature("FLAM",[850.886],3)
EscapeArea()
~ EXIT
END

IF WEIGHT #7 /* Triggers after states #: 16 24 even though they appear after this state */
~False()
~ THEN BEGIN 13 // from:
  SAY #91272 /* ~Ahh! I can't fight ya, but I'll call the guard, I will! Rather be in jail than dead from you! Help! Nasty, mean and evil!~ */
  IF ~~ THEN DO ~CreateCreature("FLAM",[802.905],3)
CreateCreature("FLAM",[850.886],3)
EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 14 // from:
  SAY #91273 /* ~If that's the way you want it, then fine, I'll leave! *sniff*~ */
  IF ~~ THEN DO ~LeaveParty()
EscapeArea()
~ EXIT
END

IF ~~ THEN BEGIN 15 // from:
  SAY #87145 /* ~I don't wanna go, but if yer gonna force me, then I guess I'll just mope around here 'till you come back to your senses and come back for me.~ */
  IF ~~ THEN DO ~LeaveParty()
SetDialogue("ALORAP")
~ EXIT
END

IF WEIGHT #0 ~NumberOfTimesTalkedTo(0)
AreaCheck("FW4000")
~ THEN BEGIN 16 // from:
  SAY #114698 /* ~Hey, you're not from around here!  Yeesh! There's no polish on yer boots, no snap in yer suspenders. You're not merchants.  They're always so much more presentable. Aww nutbunnies, adventurers in Gullykin! Yer gonna loot them Firewine ruins?~ */
  IF ~~ THEN REPLY #114699 /* ~No, I have no interest in ruins.~ */ DO ~SetGlobal("P#TalkedToAlora","GLOBAL",1)
~ GOTO 17
  IF ~~ THEN REPLY #114700 /* ~Off with you, halfling, I have no patience for your chattering!~ */ DO ~SetGlobal("P#TalkedToAlora","GLOBAL",1)
~ GOTO 18
  IF ~~ THEN REPLY #114701 /* ~As a matter of fact, yes, I am. Why did you ask?~ */ DO ~SetGlobal("P#TalkedToAlora","GLOBAL",1)
~ GOTO 19
  IF ~~ THEN REPLY #114702 /* ~I've been to the ruins already, and I must say that they are overrated.~ */ DO ~SetGlobal("P#TalkedToAlora","GLOBAL",1)
~ GOTO 20
END

IF ~~ THEN BEGIN 17 // from: 16.0
  SAY #114703 /* ~Wait till you hear what I have to say. These ruins, they are ripe for the pickin' and will be pretty good takin's with none too many bruises.  Maybe we should work together. Stayin' with my aunt here and all, I know this place pretty good, know a few secrets and how to pick a lock or find a booby trap. Could be fun.  What say you?~ */
  IF ~~ THEN REPLY #87961 /* ~A splendid idea!  Welcome aboard.~ */ GOTO 21
  IF ~~ THEN REPLY #87962 /* ~I really am sorry but we've all we need.~ */ GOTO 22
  IF ~~ THEN REPLY #114704 /* ~Laughable!  What do I need you for? You took up enough of my time, now get lost!~ */ GOTO 18
END

IF ~~ THEN BEGIN 18 // from: 24.2 20.2 19.2 17.2 16.1
  SAY #114705 /* ~Well!  There's no need to be rude about it!  Hmph!  Never meet nice people in this line of work!  No wonder people hate adventurers!  Goodbye!~ */
  IF ~~ THEN DO ~EscapeArea()
DestroySelf()
~ EXIT
END

IF ~~ THEN BEGIN 19 // from: 16.2
  SAY #114706 /* ~Double good and done!  Oh, it's great fun having someone from the trade to talk to! I'm here stayin' with my aunt, to mend my ways and all, but I'm growin' just a little bit bored. Maybe we should work together. I know this place pretty good; know a few secrets, how to pick a lock or find a booby trap.  Could be fun.  What say you?~ */
  IF ~~ THEN REPLY #87961 /* ~A splendid idea!  Welcome aboard.~ */ GOTO 21
  IF ~~ THEN REPLY #87962 /* ~I really am sorry but we've all we need.~ */ GOTO 22
  IF ~~ THEN REPLY #114704 /* ~Laughable!  What do I need you for? You took up enough of my time, now get lost!~ */ GOTO 18
END

IF ~~ THEN BEGIN 20 // from: 16.3
  SAY #114707 /* ~Holy Kitty Cacophony, overrated?! Now this *is* exciting!  We should. . .we should work together!  Yeah!  I could use the help. . .uh.  .I mean, we could just help each other a little bit.  I can scout out the pretties for you. You can even keep most of it! Whatcha say?~ */
  IF ~~ THEN REPLY #87961 /* ~A splendid idea!  Welcome aboard.~ */ GOTO 21
  IF ~~ THEN REPLY #87962 /* ~I really am sorry but we've all we need.~ */ GOTO 22
  IF ~~ THEN REPLY #114704 /* ~Laughable!  What do I need you for? You took up enough of my time, now get lost!~ */ GOTO 18
END

IF ~~ THEN BEGIN 21 // from: 24.0 20.0 19.0 17.0
  SAY #114708 /* ~Friends we are, and nice ones too!  One for all and things like that!  Fun for all of us, I just *know* it!~ */
  IF ~~ THEN DO ~JoinParty()
SetGlobal("P#TalkedToAlora","GLOBAL",2)
~ EXIT
END

IF ~~ THEN BEGIN 22 // from: 20.1 19.1 17.1
  SAY #114709 /* ~Ah well, easy go I guess.  Never get to make any friends in this biz.  Specially the nice ones.  Bye, I guess.~ */
  IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN 23 // from: 24.1
  SAY #114710 /* ~I guess I'll just mope around here 'till you come back to your senses and come back for me.~ */
  IF ~~ THEN EXIT
END

IF WEIGHT #1 ~NumTimesTalkedToGT(0)
AreaCheck("FW4000")
~ THEN BEGIN 24 // from:
  SAY #114711 /* ~Well if your gonna be puppy-doggin after me all <DAYNIGHT>, maybe we should work together.~ */
  IF ~~ THEN REPLY #87961 /* ~A splendid idea!  Welcome aboard.~ */ GOTO 21
  IF ~~ THEN REPLY #87962 /* ~I really am sorry but we've all we need.~ */ GOTO 23
  IF ~~ THEN REPLY #114704 /* ~Laughable!  What do I need you for? You took up enough of my time, now get lost!~ */ GOTO 18
END

Unless there is a problem with the first two blocks of the Area Script, which seems ok - certainly I don't think that having Alora join and then leave would change the Area Script actions.
Posted by: samk
« on: April 09, 2007, 05:29:45 PM »

I had this problem every time alora, after I refused to let her join my party, attempted to walk away and disappear. I eventually just accepted her in my party and then dropped her again right away and it didn't crash.
Posted by: Macready
« on: April 09, 2007, 05:15:38 AM »

Hello -

Interesting. My problem is the exact opposite. I can go in at night, but not during the day.

Is your installation modded?  If so, please copy/paste the contents of the weidu.log file from your EasyTutu folder into your next reply.

I'm still interested in hearing if anyone can duplicate this error on a clean EasyTutu installation.
Posted by: cmorgan
« on: April 08, 2007, 10:15:17 PM »

No luck here, I'm afraid... we seem to do everything fine, and close everything that could crash off. It might not be us after all, but I can't see what would do this at all :(.
Posted by: U235
« on: April 08, 2007, 08:18:09 PM »

Interesting. My problem is the exact opposite. I can go in at night, but not during the day.
Posted by: +3 Pen
« on: March 19, 2007, 07:30:10 PM »

cmorgan email: please change the appropriate english words to the appropriate signs, but leave the following email address anone so random spambots can't lift it:

svowles  at   comcast    dot    net :)


Your check is in the mail.  I mean, the save game is on its way. ;) Whether it can be fixed or not, I hope this helps remove a bug for other players that have yet to discover EasyTutu.  Damn fine product.
Posted by: Da_venom
« on: March 19, 2007, 07:04:29 PM »

I don't know if this is tutu related or not but when i do alt+tab (switch from program) and return to too the inferface bar keeps flickering until i go to options and return to the game(sometimes i also see my desktop in there lol)

That's a BG2 3D Accelleration quirk, I get that all the time in Tutu and BG2. You can still alt+tab by hitting the button that brings up the start menu on your keyboard.

can't recall i had it in bg2 though...
;-)
Posted by: cmorgan
« on: March 19, 2007, 04:48:52 PM »

cmorgan email: please change the appropriate english words to the appropriate signs, but leave the following email address anone so random spambots can't lift it:

svowles  at   comcast    dot    net :)
Posted by: Grand_dracolich
« on: March 19, 2007, 03:09:17 PM »

I don't know if this is tutu related or not but when i do alt+tab (switch from program) and return to too the inferface bar keeps flickering until i go to options and return to the game(sometimes i also see my desktop in there lol)

That's a BG2 3D Accelleration quirk, I get that all the time in Tutu and BG2. You can still alt+tab by hitting the button that brings up the start menu on your keyboard.
Posted by: +3 Pen
« on: March 19, 2007, 12:13:58 PM »

Didn't work, unfortunately.  If you want a copy of the saved game, just let me know where to send it.
Posted by: Da_venom
« on: March 19, 2007, 05:03:37 AM »

isn't it a bit sloppy too? Because if it was the code that keyed her to move at night, wasn't been removed is kinda  :-X

;-) but anyone can make mistakes;-) I diidn't prefer that part of the bg1npc project anyway leave all npc's at their normal location no problems at all;-)

I do have some random crashes though, and not to mention the ruins in the firewins bridge but that's posted into another thread.

I don't know if this is tutu related or not but when i do alt+tab (switch from program) and return to too the inferface bar keeps flickering until i go to options and return to the game(sometimes i also see my desktop in there lol)
Posted by: cmorgan
« on: March 18, 2007, 08:39:12 PM »

You may be right, at that. I can't see anything that could go wrong, though, with that code... I am stumped as to what we could have done to cause this. It just seems suspicious that it is Hall of Wonders, and we move Alora from there and pathc her .BCS.
Posted by: Macready
« on: March 18, 2007, 07:36:34 PM »

Hello -

Isn't relocating NPCs done by altering the .GAM file?  I believe that file is cached in the savegame, so the horse is already out of the barn.
Posted by: cmorgan
« on: March 18, 2007, 05:12:16 PM »

It might, but then I'd miss out on the data necessary to make sure it never happens again to anyone!

But sure - go ahead and pull that out, and see if it still happens.