xiaoleiwen Posted November 21, 2021 Author Share Posted November 21, 2021 (edited) Playing bg1 for a second time this year, with more mod installed now, and I worried I will get jaded fast initially due to playing the same game too frequently…but I didin’t… 40 hours so far and I’m enjoying the game because it is full of surprises. I think it is mainly due to: - scs (first time playing bg1 with it) - bg1 mini quest and encounter - Shades of the SC - Ascalon Quests - Glam Npc - BG1 npc mod Those mini quests mods really make BG1 like a new game or old game with dlc, visiting same areas got new fun. The tweaks and power gaming scripts also contributed greatly as I can customise the game to make it less tedious now Really appreciate the amazing works from the modders. Edited November 21, 2021 by marcnivar Quote Link to comment
jastey Posted November 22, 2021 Share Posted November 22, 2021 On 11/20/2021 at 2:32 PM, marcnivar said: The game was not running properly with the debug tool installed, the dialogue paused somewhere, and Anomen didn't initiate the talk when it was installed. Additionally, when Anomen turned hostile, many types of BCS and blocks appeared, looks confusing to identify which one to look for. Who is Daria? In my GENSHT01, block three means that she was attacked and turns hostile. There is no block 15 in my unmodded install. Thanks for trying, I fear this is a compatibility issue that we'll have to keep in mind until the reason is analyzed eventually. And thanks for the kind words. Quote Link to comment
xiaoleiwen Posted November 22, 2021 Author Share Posted November 22, 2021 (edited) 24 minutes ago, jastey said: Who is Daria? In my GENSHT01, block three means that she was attacked and turns hostile. There is no block 15 in my unmodded install. Thanks for trying, I fear this is a compatibility issue that we'll have to keep in mind until the reason is analyzed eventually. And thanks for the kind words. Daria is the charname. When I try to install the debug tool (1st option), the following error appeared: Spoiler [A7Q5FES.BCS.BAF] PARSE ERROR at line 38 column 1-25 Near Text: ActionOverride syntax error [A7Q5FES.BCS.BAF] ERROR at line 38 column 1-25 Near Text: ActionOverride Parsing.Parse_error ERROR: parsing [A7Q5FES.BCS.BAF]: Parsing.Parse_error ERROR: [A7Q5FES.BCS] -> [override/A7Q5FES.BCS] Patching Failed (COPY) (Parsing.Parse_error) Stopping installation because of error. Stopping installation because of error. ERROR Installing [Stutter Debug Tool -> Patching all scripts except NoAction() blocks - chose this when installing the first time (Installation could take a while!)], rolling back to previous state Will uninstall 247 files for [STUTTERDEBUG/STUTTERDEBUG.TP2] component 1. Uninstalled 247 files for [STUTTERDEBUG/STUTTERDEBUG.TP2] component 1. ERROR: Parsing.Parse_error Please make a backup of the file: SETUP-STUTTERDEBUG.DEBUG and look for support at: Jarno Mikkola & jastey Using Language [English] Installed via the second option, but the in game behavior is weird, like the dialogue is not initiated automatically. Edited November 22, 2021 by marcnivar Quote Link to comment
jastey Posted November 22, 2021 Share Posted November 22, 2021 Could you post the decompiled A7Q5FES.bcs here in a spoiler? The additional output of the Stuter Debug Tool can cause issues, yes, although I wasn't aware it would make so much trouble for initiated dialogues. But Anomen's is quite delicate as it might not happen if Garren arrives too early. Quote Link to comment
xiaoleiwen Posted November 22, 2021 Author Share Posted November 22, 2021 Spoiler IF Global("A7Q5SalamanderAllied","A77003",0) Global("FESFollow","LOCALS",1) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,195898)) // Running block 1 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195898)) // Running block 1 of A7Q5FES.BCS SetGlobal("FESFollow","LOCALS",0) MoveToObjectFollow(LastTalkedToBy) END IF Global("FESWait","LOCALS",1) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,195899)) // Running block 2 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195899)) // Running block 2 of A7Q5FES.BCS SetGlobal("FESWait","LOCALS",0) NoAction() END IF Global("A7Q5SalamanderAllied","A77003",0) Global("A7Q5FESDeny","A77003",1) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,195900)) // Running block 3 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195900)) // Running block 3 of A7Q5FES.BCS SetInterrupt(FALSE) MoveToPointNoInterrupt([1925.1050]) Face(N) SetGlobal("A7Q5FESDeny","A77003",0) SetInterrupt(TRUE) END IF Detect([PC]) !Allegiance(Myself,ENEMY) Global("A7Q5SalamandersTakeOver","A77003",0) Global("A7Q5SalamanderAllied","A77003",1) Global("MyRound","LOCALS",0) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,195906)) // Running block 4 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195906)) // Running block 4 of A7Q5FES.BCS RESPONSE #75 ActionOverride(Player1,DisplayString(Myself,195907)) // Running block 5 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195907)) // Running block 5 of A7Q5FES.BCS MoveToPoint([1872.2070]) Wait(1) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(5) ActionOverride("A7Q5FS01",FaceObject("A7Q5FES")) // Fire Elemental SmallWait(2) ActionOverride("A7Q5FS02",FaceObject("A7Q5FES")) // Fire Elemental Wait(2) DisplayStringHead("A7Q5FS01",148144) // Another glass of wine please. Wait(3) FaceObject("A7Q5FS02") // Fire Salamander Wait(1) DisplayStringHead(Myself,134296) // And what about you? Wait(2) DisplayStringHead("A7Q5FS02",148145) // Give me something strong. Wait(3) ActionOverride("A7Q5FS01",FaceObject("A7Q5FS02")) // Fire Salamander ActionOverride("A7Q5FS02",FaceObject("A7Q5FS01")) // Salamander Noble SetGlobal("MyRound","LOCALS",1) RESPONSE #25 ActionOverride(Player1,DisplayString(Myself,195908)) // Running block 6 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195908)) // Running block 6 of A7Q5FES.BCS MoveToPoint([1872.2070]) Wait(7) SetGlobal("MyRound","LOCALS",1) END IF Detect([PC]) !Allegiance(Myself,ENEMY) Global("A7Q5SalamandersTakeOver","A77003",0) Global("A7Q5SalamanderAllied","A77003",1) Global("MyRound","LOCALS",1) THEN RESPONSE #75 ActionOverride(Player1,DisplayString(Myself,195909)) // Running block 7 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195909)) // Running block 7 of A7Q5FES.BCS MoveToPoint([1935.2066]) Face(SSE) Wait(1) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(5) ActionOverride("A7Q5FS04",FaceObject("A7Q5FES")) // Fire Elemental ActionOverride("A7Q5FS05",FaceObject("A7Q5FES")) // Fire Elemental ActionOverride("A7Q5FS06",FaceObject("A7Q5FES")) // Fire Elemental Wait(2) DisplayStringHead("A7Q5FS04",148146) // Maybe another mug of ale. Wait(1) DisplayStringHead("A7Q5FS05",98148) // Me too! Wait(1) DisplayStringHead("A7Q5FS06",148147) // And me too! Wait(3) ActionOverride("A7Q5FS04",FaceObject("A7Q5FS05")) // Fire Salamander ActionOverride("A7Q5FS05",FaceObject("A7Q5FS04")) // Fire Salamander ActionOverride("A7Q5FS06",Face(S)) SetGlobal("MyRound","LOCALS",2) RESPONSE #25 ActionOverride(Player1,DisplayString(Myself,195910)) // Running block 8 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195910)) // Running block 8 of A7Q5FES.BCS MoveToPoint([1935.2066]) Face(SSE) Wait(7) SetGlobal("MyRound","LOCALS",2) END IF Detect([PC]) !Allegiance(Myself,ENEMY) Global("A7Q5SalamandersTakeOver","A77003",0) Global("A7Q5SalamanderAllied","A77003",1) Global("MyRound","LOCALS",2) THEN RESPONSE #75 ActionOverride(Player1,DisplayString(Myself,195911)) // Running block 9 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195911)) // Running block 9 of A7Q5FES.BCS MoveToPoint([2045.2063]) Face(E) Wait(1) DisplayStringHead(Myself,148143) // Do you need something? Wait(1) ActionOverride("A7Q5FS03",FaceObject("A7Q5FES")) // Fire Elemental DisplayStringHead("A7Q5FS03",148148) // No thanks. I'm still enjoying my cup of tea. Wait(4) ActionOverride("A7Q5FS03",Face(E)) SetGlobal("MyRound","LOCALS",3) RESPONSE #25 ActionOverride(Player1,DisplayString(Myself,195912)) // Running block 10 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195912)) // Running block 10 of A7Q5FES.BCS MoveToPoint([2045.2063]) Face(E) Wait(7) SetGlobal("MyRound","LOCALS",3) END IF Detect([PC]) !Allegiance(Myself,ENEMY) Global("A7Q5SalamandersTakeOver","A77003",0) Global("A7Q5SalamanderAllied","A77003",1) Global("MyRound","LOCALS",3) THEN RESPONSE #75 ActionOverride(Player1,DisplayString(Myself,195913)) // Running block 11 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195913)) // Running block 11 of A7Q5FES.BCS MoveToPoint([1960.2000]) Face(N) DisplayStringHead(Myself,148149) // Welcome to the 'Flaming Wand' Wait(4) DisplayStringHead(Myself,148150) // We offer hot meals and cold drinks. Wait(5) SetGlobal("MyRound","LOCALS",0) RESPONSE #25 ActionOverride(Player1,DisplayString(Myself,195914)) // Running block 12 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195914)) // Running block 12 of A7Q5FES.BCS SetGlobal("MyRound","LOCALS",0) END IF Global("A7Q5SalamanderAllied","A77003",1) Global("A7Q5SalamandersTakeOver","A77003",1) Global("MoveOutOfTheWay","LOCALS",0) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,195915)) // Running block 13 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195915)) // Running block 13 of A7Q5FES.BCS SetGlobal("MoveOutOfTheWay","LOCALS",1) MoveToPoint([1960.2000]) Face(N) END IF Global("FS01TookOver","A77003",2) Global("FS02TookOver","A77003",2) Global("FS03TookOver","A77003",2) Global("FS04TookOver","A77003",2) Global("FS05TookOver","A77003",2) Global("FS06TookOver","A77003",2) Global("A7Q5SalamandersTakeOver","A77003",1) Global("A7Q5SalamanderAllied","A77003",1) Global("SalamandersInPosition","LOCALS",0) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,195916)) // Running block 14 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195916)) // Running block 14 of A7Q5FES.BCS SetGlobal("SalamandersInPosition","LOCALS",1) END IF Detect([PC]) !Allegiance(Myself,ENEMY) Global("A7Q5SalamandersTakeOver","A77003",1) Global("A7Q5SalamanderAllied","A77003",1) Global("SalamandersInPosition","LOCALS",1) Global("MyRound2","LOCALS",0) THEN RESPONSE #40 ActionOverride(Player1,DisplayString(Myself,195917)) // Running block 15 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195917)) // Running block 15 of A7Q5FES.BCS MoveToPoint([1918.1994]) MoveToPoint([1930.1730]) MoveToPoint([2404.1598]) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(5) ActionOverride("A7Q5FS03",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS03",148151) // Yes, another cup of tea please. Wait(2) ActionOverride("A7Q5FS03",Face(SWW)) MoveToPoint([1930.1730]) MoveToPoint([1918.1994]) MoveToPoint([1884.2070]) FaceObject("A7Q5FS02") // Fire Salamander SmallWait(5) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(10) ActionOverride("A7Q5FS02",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS02",148145) // Give me something strong. Wait(2) ActionOverride("A7Q5FS02",Face(NNE)) MoveToPoint([2020.2080]) FaceObject("A7Q5FS06") // Salamander Servant SmallWait(3) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(10) ActionOverride("A7Q5FS06",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS06",148152) // Bring me your best wine. Wait(2) ActionOverride("A7Q5FS06",Face(E)) RESPONSE #30 ActionOverride(Player1,DisplayString(Myself,195918)) // Running block 16 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195918)) // Running block 16 of A7Q5FES.BCS MoveToPoint([1918.1994]) MoveToPoint([1887.1764]) MoveToPoint([1416.1912]) MoveToPoint([1341.2000]) SmallWait(5) MoveToPoint([1091.1888]) MoveToPoint([1091.1386]) MoveToPoint([1311.1147]) MoveToPoint([1638.1106]) FaceObject("A7Q5FS01") // Salamander Noble DisplayStringHead(Myself,148143) // Do you need something? SmallWait(5) ActionOverride("A7Q5FS01",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS01",148153) // Just someone who will listen to my stories. Wait(2) ActionOverride("A7Q5FS01",Face(SE)) MoveToPoint([1311.1147]) MoveToPoint([1091.1386]) MoveToPoint([1091.1888]) MoveToPoint([1341.2000]) MoveToPoint([1416.1912]) MoveToPoint([1887.1764]) MoveToPoint([1918.1994]) MoveToPoint([1884.2070]) FaceObject("A7Q5FS02") // Fire Salamander SmallWait(3) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(10) ActionOverride("A7Q5FS02",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS02",148154) // (snore...zzz) Wait(2) ActionOverride("A7Q5FS02",Face(NNE)) MoveToPoint([2020.2080]) FaceObject("A7Q5FS06") // Salamander Servant SmallWait(3) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(10) ActionOverride("A7Q5FS06",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS06",148144) // Another glass of wine please. Wait(2) ActionOverride("A7Q5FS06",Face(E)) RESPONSE #30 ActionOverride(Player1,DisplayString(Myself,195919)) // Running block 17 of A7Q5FES.BCS ActionOverride(Player1,DisplayStringHead(Myself,195919)) // Running block 17 of A7Q5FES.BCS MoveToPoint([1918.1994]) MoveToPoint([1887.1764]) MoveToPoint([1416.1912]) MoveToPoint([1341.2000]) SmallWait(5) MoveToPoint([1091.1888]) MoveToPoint([1091.1386]) MoveToPoint([1311.1147]) MoveToPoint([1638.1106]) FaceObject("A7Q5FS01") // Salamander Noble DisplayStringHead(Myself,148143) // Do you need something? SmallWait(5) ActionOverride("A7Q5FS01",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS01",148155) // Another beer please. Wait(2) ActionOverride("A7Q5FS01",Face(SE)) MoveToPoint([1311.1147]) MoveToPoint([1091.1386]) MoveToPoint([1091.1888]) MoveToPoint([1341.2000]) MoveToPoint([1416.1912]) MoveToPoint([1416.1912]) MoveToPoint([2404.1598]) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(5) ActionOverride("A7Q5FS03",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS03",148156) // Another cup of tea please. Wait(2) ActionOverride("A7Q5FS03",Face(SWW)) MoveToPoint([1930.1730]) MoveToPoint([1918.1994]) MoveToPoint([1884.2070]) FaceObject("A7Q5FS02") // Fire Salamander SmallWait(3) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(10) ActionOverride("A7Q5FS02",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS02",148157) // I needsh some (urkh) ale... (hic) Wait(2) ActionOverride("A7Q5FS02",Face(NNE)) MoveToPoint([2020.2080]) FaceObject("A7Q5FS06") // Salamander Servant SmallWait(3) DisplayStringHead(Myself,148143) // Do you need something? SmallWait(10) ActionOverride("A7Q5FS06",FaceObject("A7Q5FES")) // Fire Elemental Wait(1) DisplayStringHead("A7Q5FS06",148158) // Some wine, bread, cheese and fireberry syrup please. Wait(3) ActionOverride("A7Q5FS06",Face(E)) END line 38 stated !Allegiance(Myself,ENEMY) Quote Link to comment
xiaoleiwen Posted November 22, 2021 Author Share Posted November 22, 2021 Spoiler IF Allegiance(Myself,NEUTRAL) OR(7) AttackedBy([GOODCUTOFF.0.0.0.0.SUMMONED],DEFAULT) AttackedBy([PC],DEFAULT) AttackedBy([FAMILIAR],DEFAULT) AttackedBy([ALLY],DEFAULT) AttackedBy([CONTROLLED],DEFAULT) AttackedBy([CHARMED],DEFAULT) SpellCastOnMe([GOODCUTOFF.0.0.0.0.SUMMONED],0) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653437)) // Running block 1 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653437)) // Running block 1 of GENSHT01.BCS Enemy() Shout(89) Continue() END IF OR(6) HitBy([GOODCUTOFF.0.0.0.0.SUMMONED],CRUSHING) HitBy([PC],CRUSHING) HitBy([FAMILIAR],CRUSHING) HitBy([ALLY],CRUSHING) HitBy([CONTROLLED],CRUSHING) HitBy([CHARMED],CRUSHING) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653438)) // Running block 2 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653438)) // Running block 2 of GENSHT01.BCS Shout(89) Continue() END IF Allegiance(Myself,ENEMY) See(NearestEnemyOf(Myself)) !GlobalTimerNotExpired("help_initial","LOCALS") THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653439)) // Running block 3 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653439)) // Running block 3 of GENSHT01.BCS SetGlobalTimer("help_initial","LOCALS",THREE_ROUNDS) Shout(89) Continue() END IF Heard([ANYONE],89) Allegiance(Myself,NEUTRAL) Class(Myself,INNOCENT) !CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653440)) // Running block 4 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653440)) // Running block 4 of GENSHT01.BCS SetGlobalTimer("runfromPC","LOCALS",TEN_ROUNDS) Continue() END IF Heard([ANYONE],89) OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) Allegiance(Myself,NEUTRAL) !HasItem("dw#nohlp",Myself) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653441)) // Running block 5 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653441)) // Running block 5 of GENSHT01.BCS Enemy() Shout(189) Continue() END IF Heard([ANYONE],89) GlobalLT("DMWW_genai_difficulty","GLOBAL",3) OR(2) DifficultyLT(NORMAL) !Global("DMWW_genai_difficulty","GLOBAL",0) Allegiance(Myself,NEUTRAL) !HasItem("dw#nohlp",Myself) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653442)) // Running block 6 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653442)) // Running block 6 of GENSHT01.BCS Enemy() Continue() END IF Heard([ANYONE],189) Allegiance(Myself,NEUTRAL) !HasItem("dw#nohlp",Myself) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653443)) // Running block 7 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653443)) // Running block 7 of GENSHT01.BCS Enemy() Continue() END IF GlobalGT("helptarget","LOCALS",0) Global("looking","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !See(NearestEnemyOf(Myself)) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653444)) // Running block 8 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653444)) // Running block 8 of GENSHT01.BCS SetGlobal("helptarget","LOCALS",0) SetGlobal("looking","LOCALS",0) END IF !GlobalGT("helptarget","LOCALS",0) Allegiance(Myself,ENEMY) See(Player1) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653445)) // Running block 9 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653445)) // Running block 9 of GENSHT01.BCS Shout(891) SetGlobal("helptarget","LOCALS",1) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) Continue() END IF !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],891) !GlobalTimerNotExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653446)) // Running block 10 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653446)) // Running block 10 of GENSHT01.BCS Shout(1891) Enemy() SetGlobal("helptarget","LOCALS",1) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],1891) Range(LastHeardBy(Myself),15) !Global("help_hostile","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653447)) // Running block 11 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653447)) // Running block 11 of GENSHT01.BCS Enemy() SetGlobal("help_hostile","LOCALS",1) SetGlobal("helptarget","LOCALS",1) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF !See(NearestEnemyOf(Myself)) !Detect(Player1) Global("helptarget","LOCALS",1) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) OR(2) StateCheck(Player1,STATE_INVISIBLE) CheckStatGT(Player1,0,SANCTUARY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653448)) // Running block 12 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653448)) // Running block 12 of GENSHT01.BCS ClearActions(Myself) SetGlobal("helptarget","LOCALS",0) END IF !See(NearestEnemyOf(Myself)) !Detect(Player1) !StateCheck(Player1,STATE_INVISIBLE) !CheckStatGT(Player1,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",1) OR(2) Class(Myself,THIEF_ALL) Kit(Myself,STALKER) !Kit(Myself,SWASHBUCKLER) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653449)) // Running block 13 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653449)) // Running block 13 of GENSHT01.BCS MoveToObject(Player1) ApplySpellRES("dw#silin",Myself) // Invisibility END IF !See(NearestEnemyOf(Myself)) !Detect(Player1) !StateCheck(Player1,STATE_INVISIBLE) !CheckStatGT(Player1,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",1) !Class(Myself,INNOCENT) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653450)) // Running block 14 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653450)) // Running block 14 of GENSHT01.BCS MoveToObject(Player1) END IF !GlobalGT("helptarget","LOCALS",0) Allegiance(Myself,ENEMY) See(Player2) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653451)) // Running block 15 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653451)) // Running block 15 of GENSHT01.BCS Shout(892) SetGlobal("helptarget","LOCALS",2) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) Continue() END IF !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],892) !GlobalTimerNotExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653452)) // Running block 16 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653452)) // Running block 16 of GENSHT01.BCS Shout(1892) Enemy() SetGlobal("helptarget","LOCALS",2) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],1892) Range(LastHeardBy(Myself),15) !Global("help_hostile","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653453)) // Running block 17 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653453)) // Running block 17 of GENSHT01.BCS Enemy() SetGlobal("help_hostile","LOCALS",1) SetGlobal("helptarget","LOCALS",2) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF !See(NearestEnemyOf(Myself)) !Detect(Player2) Global("helptarget","LOCALS",2) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) OR(2) StateCheck(Player2,STATE_INVISIBLE) CheckStatGT(Player2,0,SANCTUARY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653454)) // Running block 18 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653454)) // Running block 18 of GENSHT01.BCS ClearActions(Myself) SetGlobal("helptarget","LOCALS",0) END IF !See(NearestEnemyOf(Myself)) !Detect(Player2) !StateCheck(Player2,STATE_INVISIBLE) !CheckStatGT(Player2,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",2) OR(2) Class(Myself,THIEF_ALL) Kit(Myself,STALKER) !Kit(Myself,SWASHBUCKLER) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653455)) // Running block 19 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653455)) // Running block 19 of GENSHT01.BCS MoveToObject(Player2) ApplySpellRES("dw#silin",Myself) // Invisibility END IF !See(NearestEnemyOf(Myself)) !Detect(Player2) !StateCheck(Player2,STATE_INVISIBLE) !CheckStatGT(Player2,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",2) !Class(Myself,INNOCENT) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653456)) // Running block 20 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653456)) // Running block 20 of GENSHT01.BCS MoveToObject(Player2) END IF !GlobalGT("helptarget","LOCALS",0) Allegiance(Myself,ENEMY) See(Player3) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653457)) // Running block 21 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653457)) // Running block 21 of GENSHT01.BCS Shout(893) SetGlobal("helptarget","LOCALS",3) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) Continue() END IF !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],893) !GlobalTimerNotExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653458)) // Running block 22 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653458)) // Running block 22 of GENSHT01.BCS Shout(1893) Enemy() SetGlobal("helptarget","LOCALS",3) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],1893) Range(LastHeardBy(Myself),15) !Global("help_hostile","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653459)) // Running block 23 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653459)) // Running block 23 of GENSHT01.BCS Enemy() SetGlobal("help_hostile","LOCALS",1) SetGlobal("helptarget","LOCALS",3) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF !See(NearestEnemyOf(Myself)) !Detect(Player3) Global("helptarget","LOCALS",3) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) OR(2) StateCheck(Player3,STATE_INVISIBLE) CheckStatGT(Player3,0,SANCTUARY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653460)) // Running block 24 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653460)) // Running block 24 of GENSHT01.BCS ClearActions(Myself) SetGlobal("helptarget","LOCALS",0) END IF !See(NearestEnemyOf(Myself)) !Detect(Player3) !StateCheck(Player3,STATE_INVISIBLE) !CheckStatGT(Player3,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",3) OR(2) Class(Myself,THIEF_ALL) Kit(Myself,STALKER) !Kit(Myself,SWASHBUCKLER) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653461)) // Running block 25 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653461)) // Running block 25 of GENSHT01.BCS MoveToObject(Player3) ApplySpellRES("dw#silin",Myself) // Invisibility END IF !See(NearestEnemyOf(Myself)) !Detect(Player3) !StateCheck(Player3,STATE_INVISIBLE) !CheckStatGT(Player3,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",3) !Class(Myself,INNOCENT) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653462)) // Running block 26 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653462)) // Running block 26 of GENSHT01.BCS MoveToObject(Player3) END IF !GlobalGT("helptarget","LOCALS",0) Allegiance(Myself,ENEMY) See(Player4) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653463)) // Running block 27 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653463)) // Running block 27 of GENSHT01.BCS Shout(894) SetGlobal("helptarget","LOCALS",4) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) Continue() END IF !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],894) !GlobalTimerNotExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653464)) // Running block 28 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653464)) // Running block 28 of GENSHT01.BCS Shout(1894) Enemy() SetGlobal("helptarget","LOCALS",4) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],1894) Range(LastHeardBy(Myself),15) !Global("help_hostile","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653465)) // Running block 29 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653465)) // Running block 29 of GENSHT01.BCS Enemy() SetGlobal("help_hostile","LOCALS",1) SetGlobal("helptarget","LOCALS",4) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF !See(NearestEnemyOf(Myself)) !Detect(Player4) Global("helptarget","LOCALS",4) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) OR(2) StateCheck(Player4,STATE_INVISIBLE) CheckStatGT(Player4,0,SANCTUARY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653466)) // Running block 30 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653466)) // Running block 30 of GENSHT01.BCS ClearActions(Myself) SetGlobal("helptarget","LOCALS",0) END IF !See(NearestEnemyOf(Myself)) !Detect(Player4) !StateCheck(Player4,STATE_INVISIBLE) !CheckStatGT(Player4,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",4) OR(2) Class(Myself,THIEF_ALL) Kit(Myself,STALKER) !Kit(Myself,SWASHBUCKLER) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653467)) // Running block 31 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653467)) // Running block 31 of GENSHT01.BCS MoveToObject(Player4) ApplySpellRES("dw#silin",Myself) // Invisibility END IF !See(NearestEnemyOf(Myself)) !Detect(Player4) !StateCheck(Player4,STATE_INVISIBLE) !CheckStatGT(Player4,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",4) !Class(Myself,INNOCENT) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653468)) // Running block 32 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653468)) // Running block 32 of GENSHT01.BCS MoveToObject(Player4) END IF !GlobalGT("helptarget","LOCALS",0) Allegiance(Myself,ENEMY) See(Player5) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653469)) // Running block 33 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653469)) // Running block 33 of GENSHT01.BCS Shout(895) SetGlobal("helptarget","LOCALS",5) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) Continue() END IF !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],895) !GlobalTimerNotExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653470)) // Running block 34 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653470)) // Running block 34 of GENSHT01.BCS Shout(1895) Enemy() SetGlobal("helptarget","LOCALS",5) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],1895) Range(LastHeardBy(Myself),15) !Global("help_hostile","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653471)) // Running block 35 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653471)) // Running block 35 of GENSHT01.BCS Enemy() SetGlobal("help_hostile","LOCALS",1) SetGlobal("helptarget","LOCALS",5) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF !See(NearestEnemyOf(Myself)) !Detect(Player5) Global("helptarget","LOCALS",5) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) OR(2) StateCheck(Player5,STATE_INVISIBLE) CheckStatGT(Player5,0,SANCTUARY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653472)) // Running block 36 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653472)) // Running block 36 of GENSHT01.BCS ClearActions(Myself) SetGlobal("helptarget","LOCALS",0) END IF !See(NearestEnemyOf(Myself)) !Detect(Player5) !StateCheck(Player5,STATE_INVISIBLE) !CheckStatGT(Player5,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",5) OR(2) Class(Myself,THIEF_ALL) Kit(Myself,STALKER) !Kit(Myself,SWASHBUCKLER) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653473)) // Running block 37 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653473)) // Running block 37 of GENSHT01.BCS MoveToObject(Player5) ApplySpellRES("dw#silin",Myself) // Invisibility END IF !See(NearestEnemyOf(Myself)) !Detect(Player5) !StateCheck(Player5,STATE_INVISIBLE) !CheckStatGT(Player5,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",5) !Class(Myself,INNOCENT) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653474)) // Running block 38 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653474)) // Running block 38 of GENSHT01.BCS MoveToObject(Player5) END IF !GlobalGT("helptarget","LOCALS",0) Allegiance(Myself,ENEMY) See(Player6) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653475)) // Running block 39 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653475)) // Running block 39 of GENSHT01.BCS Shout(896) SetGlobal("helptarget","LOCALS",6) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) Continue() END IF !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],896) !GlobalTimerNotExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653476)) // Running block 40 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653476)) // Running block 40 of GENSHT01.BCS Shout(1896) Enemy() SetGlobal("helptarget","LOCALS",6) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF OR(2) Global("DMWW_genai_difficulty","GLOBAL",0) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) OR(2) DifficultyGT(EASY) GlobalGT("DMWW_genai_difficulty","GLOBAL",2) !GlobalGT("helptarget","LOCALS",0) !See(NearestEnemyOf(Myself)) Heard([ANYONE],1896) Range(LastHeardBy(Myself),15) !Global("help_hostile","LOCALS",1) GlobalTimerExpired("helpduration","LOCALS") !HasItem("dw#nohlp",Myself) OR(2) Allegiance(Myself,NEUTRAL) Allegiance(Myself,ENEMY) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653477)) // Running block 41 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653477)) // Running block 41 of GENSHT01.BCS Enemy() SetGlobal("help_hostile","LOCALS",1) SetGlobal("helptarget","LOCALS",6) SetGlobalTimer("helpduration","LOCALS",TWO_ROUNDS) END IF !See(NearestEnemyOf(Myself)) !Detect(Player6) Global("helptarget","LOCALS",6) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) OR(2) StateCheck(Player6,STATE_INVISIBLE) CheckStatGT(Player6,0,SANCTUARY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653478)) // Running block 42 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653478)) // Running block 42 of GENSHT01.BCS ClearActions(Myself) SetGlobal("helptarget","LOCALS",0) END IF !See(NearestEnemyOf(Myself)) !Detect(Player6) !StateCheck(Player6,STATE_INVISIBLE) !CheckStatGT(Player6,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",6) OR(2) Class(Myself,THIEF_ALL) Kit(Myself,STALKER) !Kit(Myself,SWASHBUCKLER) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653479)) // Running block 43 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653479)) // Running block 43 of GENSHT01.BCS MoveToObject(Player6) ApplySpellRES("dw#silin",Myself) // Invisibility END IF !See(NearestEnemyOf(Myself)) !Detect(Player6) !StateCheck(Player6,STATE_INVISIBLE) !CheckStatGT(Player6,0,SANCTUARY) ActionListEmpty() Global("helptarget","LOCALS",6) !Class(Myself,INNOCENT) !HasItem("dw#nohlp",Myself) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653480)) // Running block 44 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653480)) // Running block 44 of GENSHT01.BCS MoveToObject(Player6) END IF OR(2) Allegiance(Myself,ENEMY) Allegiance(Myself,NEUTRAL) !See(NearestEnemyOf(Myself)) !HasItem("dw#nohlp",Myself) Heard([ANYONE],89) OR(2) !Class(Myself,INNOCENT) CheckStatGT(Myself,1,LEVEL) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,653481)) // Running block 45 of GENSHT01.BCS ActionOverride(Player1,DisplayStringHead(Myself,653481)) // Running block 45 of GENSHT01.BCS MoveToObject(LastHeardBy(Myself)) END As for GENSHT01.BCS Quote Link to comment
xiaoleiwen Posted November 22, 2021 Author Share Posted November 22, 2021 (edited) As for Anomen and Sir Beverus turned hostile, anything else to check? Spoiler Spoiler IF Global("AnomenRomanceActive","GLOBAL",1) Global("AnomenRomanceOut","GLOBAL",0) !InPartyAllowDead("Anomen") // Anomen !Dead("Anomen") // Anomen THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,204081)) // Running block 362 of BALDUR.BCS ActionOverride(Player1,DisplayStringHead(Myself,204081)) // Running block 362 of BALDUR.BCS SetGlobal("AnomenRomanceOut","GLOBAL",1) SetGlobalTimer("AnomenOutOfParty","GLOBAL",THREE_DAYS) END Spoiler IF !Detect([PC]) See([ENEMY]) Gender(Myself,MALE) General(Myself,HUMANOID) !Allegiance(Myself,ENEMY) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,683255)) // Running block 7 of RUNENEMY.BCS ActionOverride(Player1,DisplayStringHead(Myself,683255)) // Running block 7 of RUNENEMY.BCS RunAwayFrom(LastSeenBy(Myself),30) END Spoiler IF Allegiance(Myself,ENEMY) !IfValidForPartyDialog(Myself) Global("NPCFight","LOCALS",0) THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,198728)) // Running block 52 of ANOMEN.BCS ActionOverride(Player1,DisplayStringHead(Myself,198728)) // Running block 52 of ANOMEN.BCS SetGlobal("NPCFight","LOCALS",1) ChangeAIScript("",DEFAULT) ChangeAIScript("useitem",GENERAL) ChangeAIScript("anomx",SPECIFICS) SetDialog("") Continue() END Spoiler IF Global("A7_AutoHasteActive","GLOBAL",1) CheckSpellState(Player3,A7_AUTO_SPEED) OR(2) TriggerOverride(Player3,Detect([ENEMY])) ActuallyInCombat() THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,203743)) // Running block 24 of BALDUR.BCS ActionOverride(Player1,DisplayStringHead(Myself,203743)) // Running block 24 of BALDUR.BCS ApplySpellRES("a7_wlk2",Player3) // No such index Continue() END IF Global("A7_AutoHasteActive","GLOBAL",1) CheckSpellState(Player4,A7_AUTO_SPEED) OR(2) TriggerOverride(Player4,Detect([ENEMY])) ActuallyInCombat() THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,203744)) // Running block 25 of BALDUR.BCS ActionOverride(Player1,DisplayStringHead(Myself,203744)) // Running block 25 of BALDUR.BCS ApplySpellRES("a7_wlk2",Player4) // No such index Continue() END IF Global("A7_AutoHasteActive","GLOBAL",1) CheckSpellState(Player5,A7_AUTO_SPEED) OR(2) TriggerOverride(Player5,Detect([ENEMY])) ActuallyInCombat() THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,203745)) // Running block 26 of BALDUR.BCS ActionOverride(Player1,DisplayStringHead(Myself,203745)) // Running block 26 of BALDUR.BCS ApplySpellRES("a7_wlk2",Player5) // No such index Continue() END IF Global("A7_AutoHasteActive","GLOBAL",1) CheckSpellState(Player6,A7_AUTO_SPEED) OR(2) TriggerOverride(Player6,Detect([ENEMY])) ActuallyInCombat() THEN RESPONSE #100 ActionOverride(Player1,DisplayString(Myself,203746)) // Running block 27 of BALDUR.BCS ActionOverride(Player1,DisplayStringHead(Myself,203746)) // Running block 27 of BALDUR.BCS ApplySpellRES("a7_wlk2",Player6) // No such index Continue() END Edited November 22, 2021 by marcnivar Quote Link to comment
xiaoleiwen Posted November 26, 2021 Author Share Posted November 26, 2021 (edited) Initially I do not plan to play SOD in this playthrough, and now I regret it. If I want to play SOD, I will definitely want to play Endless BG1. Unfortunately, I didn't install it. So this is what I plan to do: 1) continue current game but stop just before the final battle in the temple. 2) back up my installation, then install Endless BG1 and the tweaks to reduce exp gain (for my sod later). 3) Kill sarevok and continue with the contents from endless bg1, then proceed to sod. Is this something can be done? Or Endless BG1 is definitely cannot be installed midgame ? (so I do not need to waste my time for trying this) Anyhow, if I encounter weird bug, I may still use the backup installation to finish bg1 and import to bg2, just forget about SOD this time. Edited November 26, 2021 by marcnivar Quote Link to comment
jastey Posted November 26, 2021 Share Posted November 26, 2021 @marcnivar EndlessBG1 makes most sense if you are planning on doing something after Sarevok's death, like TotSC quests. Of course, I also enjoy EndlessBG1 to smooth the transition to SoD as it fills the gap between Sarevok's death and being in Korlasz' Crypt. Installing mods late leads to problems if the mod makes changes to files that are already in your savegame/cache because you already visited the area, like adding travel triggers or containers to areas, add items to stores of shop keepers in the area, patching characters with scripts or scriptnames. For EndlessBG1 current v8, the most obvious that will not work properly if installed after you already visited the Undercity is the component "Skip Thieves' Maze Once After Sarevok's Death", as it adds a travel trigger to that area. This will not lead to a crash but it will deprive the Undercity area from the exit to leave it after Sarevok is dead. Also, EndlessBG1 patches some characters with scripts and/or scriptnames so they can be removed after Sarevok is dead, those could be still around and talk as if he's not. That should be all that could happen. I am preparing a v9 that will move Korlasz' Crypt into BG1 as a quest after Sarevok's death, making it possible to roam BG1 "world" completely free of any Sarevok related duties, this version will lose more functionality if installed late, although I think I can make it so that it at least does not crash. (V9 has no ETA yet, I'm still debugging.) Also, thank you for the sceen shots with regard to Ajantis BGII and other mods. I'm still at analysing what might go on there. Quote Link to comment
xiaoleiwen Posted November 26, 2021 Author Share Posted November 26, 2021 The main purpose of considering to add endless bg1 mid game this time is to experience the small quests / dialogues that add some flavour before going to sod. I will still finish everything from vanilla and the other mods before fighting sarevok so that I can go back to the backup if any problem occurs when I’m playing with the endless bg1 installed afterward. it sounds like I can try to do this if I do not install the skip maze component and ignore some npc that do not disappear as intended… Thanks for explaining, at least I have some idea what could happen. In the worst case, just go back to the backup plan. The idea of moving the crypt part to bg1 is great, looking forward to it when I replay someday Quote Link to comment
jastey Posted November 26, 2021 Share Posted November 26, 2021 14 minutes ago, marcnivar said: The idea of moving the crypt part to bg1 is great Transitions mod offers this already. For the BG1 -> SoD transitions, both mods offer almost the same functionality but in different flavors. I prefer EndlessBG1's modularity because you really only get what is in the components' descriptions. (I prefer EndlessBG1 anyway but that's because I'm biased. ) Quote Link to comment
xiaoleiwen Posted November 26, 2021 Author Share Posted November 26, 2021 From the description Endless BG1 has more components that I like, but to be honest both are quite interesting, I may consider mixing both in future playthrough as I remember I read somewhere they are actually compatible. After starting this playthrough I only found out that there are actually still many mods that I would like to try, and I kinda miss some of the MOD npcs that I used in previous game (Aura...Drake...Sirene...Isra...)...I didn't consider to install NPC that I won't bring for most of the time initially because I want to reduce the chance of getting MOD conflicts / bugs... Finally I know why some will try to make an epic Modlist with a lot of NPC mods...I would probably want to make a version of "Living BG" with lot of quality quests and NPC mods to make game more lively (similar to the concept of Living Skyrim Wabbajack Modlist for Skyrim), and slowly enjoy for half a year...someday Some NPC mods are actually "a good quest mod", like Xan BG2, Aura, Drake, Isra BG2, Adrian, Glam's NPC...I should really consider this when I'm looking for "quest mod". Quote Link to comment
jastey Posted November 26, 2021 Share Posted November 26, 2021 4 hours ago, marcnivar said: I may consider mixing both in future playthrough as I remember I read somewhere they are actually compatible. They are technically compatible, Transitions removes and overwrites most content of EndlessBG1 unless the component gives an install choice to consider EndlessBG1's content. Or to put it like this: you install both mods and all of Transitions, there will be nothing of EndlessBG1 left to experience ingame. Quote Link to comment
xiaoleiwen Posted November 26, 2021 Author Share Posted November 26, 2021 7 hours ago, jastey said: They are technically compatible, Transitions removes and overwrites most content of EndlessBG1 unless the component gives an install choice to consider EndlessBG1's content. Or to put it like this: you install both mods and all of Transitions, there will be nothing of EndlessBG1 left to experience ingame. It sound like I rather choose one Quote Link to comment
jastey Posted November 27, 2021 Share Posted November 27, 2021 8 hours ago, marcnivar said: It sound like I rather choose one The mods were more compatible in earlier versions. Transitions lost crossmod (and intensified overwriting) with every update and I'm afraid, so will EndlessBG1 be less compatible (not even technically) regarding the component for moving Korlasz' Tomb into BG1 in the upcoming v9 update. EDIT: I guess going for one or the other will make sense, especially if you want to install all of Transitions components it doesn't really make sense to have EndlessBG1 any more (using EBG1's version of Sarevok's sword is basically the only thing it considers upon install, and also EndlessBG1's Elminster component will not be overwritten although Transition pretends to install an own component, as far as I can see.) Quote Link to comment
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.