BACKUP ~bg1ub/backup~ // AUTHOR ~icelus, SimDing0, devSin, Idobek, CamDawg, and Echon~ AUTHOR ~http://forums.pocketplane.net/index.php/board,79.0.html~ // ASK_EVERY_COMPONENT // Tales of the Sword Coast files ALLOW_MISSING ANDRIS.CRE APPAR.CRE AR0502.BCS AR0512.ARE AR0512.BCS AR1008.ARE AR1009.ARE AR1010.ARE AR1010.MOS AR1010.TIS BARESH2.CRE BARWLF.CRE BAYARD.CRE BEARPO3.CRE BEYN.CRE BISHOP.CRE BLUN10.ITM CLAIRD.CRE CORPSE1.CRE CORPSE2.CRE CRYPTCRA.CRE CUCHOL.CRE CULT2.CRE CULTT3.CRE CULTT4.CRE DAESE.CRE DAESEWLF.CRE DAITEL.CRE DELAIN2.CRE DELSVIR.CRE DEZKIE.CRE DOOMDUR.CRE DRADEE.CRE DRADEE2.CRE DURLYL2.CRE DUSHAI.CRE ERDANE.STO FEARM.CRE FTOWUB_A.CRE FTOWUB_B.CRE FTOWUB_E.CRE FTOWUBSC.CRE FTOWUBSN.CRE FTOWUBX.CRE GALKEN.CRE GARAN.CRE GBLUN06.BAM GHASTD.CRE GRAEL.CRE HACK.CRE HELM14.ITM IKE.CRE ISLSIR.CRE KAISHA.CRE KAISHWLF.CRE KAROUG.CRE KING.CRE KRYLA.CRE LEAGGU1.CRE LEAGGU2.CRE LEAGGU3.CRE LEAGGU4.CRE LEAGGU5.CRE LEAGGU6.CRE LEAGGU7.CRE LOUPGAR.CRE LOVE.BCS LOVEM.CRE MARALE2.CRE MARCEL.CRE MEMNIS.CRE MISC1H.ITM MISC2P.ITM MTOWUB_A.CRE MTOWUB_B.CRE MTOWUB_C.CRE MTOWUB_D.CRE MTOWUB_E.CRE MTOWUBSC.CRE MTOWUBSN.CRE MTOWUBST.CRE MTOWUBX.CRE PALIN.CRE PHEOARCH.CRE PLYOGRE.CRE PRIDEM.CRE QUEEN.CRE SHANDAL2.CRE SKELDED.CRE SPIDPHAS.CRE SPPR405.SPL SPPR982.SPL SPWI411.SPL SPWI506.SPL SPWI929.SPL SPWI930.SPL SPWI939.SPL SPWI943.SPL SPWI996.SPL TANAR01.WAV TANAR02.WAV TANAR03.WAV TANAR04.WAV TANAR05.WAV TANAR06.WAV TARNOR.CRE TRACEA.CRE ULF.CRE ULGOTH.STO WOLFWE.CRE WYVERNBI.CRE ALWAYS AT_INTERACTIVE_EXIT ~VIEW bg1ub/BG1UB-Readme.html~ END // LANGUAGE ~English~ // ~English~ // ~bg1ub/tra/English/setup.tra~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Ice Island Level Two Restoration \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Ice Island Level Two Restoration~ // Author: devSin // Email: devsin@mac.com // Website: REQUIRE_PREDICATE FILE_EXISTS_IN_GAME ~durlag.mve~ ~The Tales of the Sword Coast expansion is required for this component.~ // AR1010.TIS and AR1010.MOS already included with TotSC COPY ~bg1ub/AR1010~ ~OVERRIDE~ COPY_EXISTING AR1008.ARE OVERRIDE AR1009.ARE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN // Remove Dezkiel from AR1009 (he's now in AR1010) READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 char PATCH_IF !("%char%" STRING_COMPARE_CASE "DEZKIE") BEGIN WRITE_LONG actOff + 0x28 0x0 // Disable Dezkiel in AR1009 END actOff += 0x110 END END // Make default transitions autosave; enable travel to AR1010 READ_LONG 0x5c trigOff FOR (READ_SHORT 0x5a numTrig; numTrig; numTrig -= 0x1) BEGIN READ_SHORT trigOff + 0x20 type PATCH_IF (type == 0x2) BEGIN READ_ASCII trigOff + 0x38 destAre PATCH_IF !(("%destAre%" STRING_COMPARE_CASE "AR1008") && ("%destAre%" STRING_COMPARE_CASE "AR1009")) BEGIN READ_BYTE trigOff + 0x60 flag WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag END END PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1009") BEGIN READ_ASCII trigOff name PATCH_IF !("%name%" STRING_COMPARE_CASE "DOOR1010") BEGIN WRITE_ASCII trigOff + 0x38 AR1010 #8 // Set destination area to AR1010 END END trigOff += 0xc4 END // Update number of entrances READ_LONG 0x6c numEntr WRITE_LONG 0x6c numEntr + 0x1 // Add exit points for travel from AR1008 and AR1009 READ_LONG 0x68 entrOff entrOff += numEntr * 0x68 // Added as last entrance in file INSERT_BYTES entrOff 0x68 WRITE_ASCII entrOff EXIT1010 // Entrance name PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR1008") BEGIN WRITE_SHORT entrOff + 0x20 842 // Location X WRITE_SHORT entrOff + 0x22 307 // Location Y WRITE_SHORT entrOff + 0x24 15 // Facing direction END ELSE BEGIN // AR1009 patch WRITE_SHORT entrOff + 0x20 697 // Location X WRITE_SHORT entrOff + 0x22 259 // Location Y END READ_LONG 0x54 actOff PATCH_IF (actOff > entrOff) BEGIN WRITE_LONG 0x54 actOff + 0x68 END READ_LONG 0x5c trigOff PATCH_IF (trigOff > entrOff) BEGIN WRITE_LONG 0x5c trigOff + 0x68 END READ_LONG 0x60 sptOff PATCH_IF (sptOff > entrOff) BEGIN WRITE_LONG 0x60 sptOff + 0x68 END READ_LONG 0x68 entrOff PATCH_IF (entrOff > entrOff) BEGIN WRITE_LONG 0x68 entrOff + 0x68 END READ_LONG 0x70 contOff PATCH_IF !(contOff < entrOff) BEGIN WRITE_LONG 0x70 contOff + 0x68 END READ_LONG 0x78 itmOff PATCH_IF !(itmOff < entrOff) BEGIN WRITE_LONG 0x78 itmOff + 0x68 END READ_LONG 0x7c vertOff PATCH_IF !(vertOff < entrOff) BEGIN WRITE_LONG 0x7c vertOff + 0x68 END READ_LONG 0x84 ambOff PATCH_IF !(ambOff < entrOff) BEGIN WRITE_LONG 0x84 ambOff + 0x68 END READ_LONG 0x88 varOff PATCH_IF !(varOff < entrOff) BEGIN WRITE_LONG 0x88 varOff + 0x68 END READ_LONG 0xa0 explOff PATCH_IF !(explOff < entrOff) BEGIN WRITE_LONG 0xa0 explOff + 0x68 END READ_LONG 0xa8 doorOff PATCH_IF !(doorOff < entrOff) BEGIN WRITE_LONG 0xa8 doorOff + 0x68 END READ_LONG 0xb0 animOff PATCH_IF !(animOff < entrOff) BEGIN WRITE_LONG 0xb0 animOff + 0x68 END READ_LONG 0xb8 tobjOff PATCH_IF !(tobjOff < entrOff) BEGIN WRITE_LONG 0xb8 tobjOff + 0x68 END READ_LONG 0xbc musOff PATCH_IF !(musOff < entrOff) BEGIN WRITE_LONG 0xbc musOff + 0x68 END READ_LONG 0xc0 rspnOff PATCH_IF !(rspnOff < entrOff) BEGIN WRITE_LONG 0xc0 rspnOff + 0x68 END READ_LONG 0xc4 mapnOff READ_LONG 0xc8 numMapn PATCH_IF (!(mapnOff < entrOff) && numMapn) BEGIN WRITE_LONG 0xc4 mapnOff + 0x68 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR1010.ARE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN // Update number of vertices READ_SHORT 0x80 numVert WRITE_SHORT 0x80 numVert + 0x4 // Add vertices for new transition READ_LONG 0x7c vertOff vertOff += numVert * 0x4 // Added as last vertices in file INSERT_BYTES vertOff 0x10 WRITE_SHORT vertOff 478 // Location X (Vertex 0) WRITE_SHORT vertOff + 0x2 2719 // Location Y (Vertex 0) WRITE_SHORT vertOff + 0x4 545 // Location X (Vertex 1) WRITE_SHORT vertOff + 0x6 2762 // Location Y (Vertex 1) WRITE_SHORT vertOff + 0x8 497 // Location X (Vertex 2) WRITE_SHORT vertOff + 0xa 2815 // Location Y (Vertex 2) WRITE_SHORT vertOff + 0xc 345 // Location X (Vertex 3) WRITE_SHORT vertOff + 0xe 2815 // Location Y (Vertex 3) // Update number of triggers READ_SHORT 0x5a numTrig WRITE_SHORT 0x5a numTrig + 0x1 // Update triggers offset, if required READ_LONG 0x5c trigOff PATCH_IF (trigOff > vertOff) BEGIN WRITE_LONG 0x5c trigOff + 0x10 trigOff += trigOff + 0x10 END // Make default transitions autosave FOR (i = numTrig; i; i -= 0x1) BEGIN READ_SHORT trigOff + 0x20 type PATCH_IF (type == 0x2) BEGIN READ_ASCII trigOff + 0x38 destAre PATCH_IF !("%destAre%" STRING_COMPARE_CASE "AR1009") BEGIN READ_BYTE trigOff + 0x60 flag WRITE_BYTE trigOff + 0x60 flag | 0x4 // Add party-required flag END END trigOff += 0xc4 END // Add usable transition to AR1008 READ_LONG 0x5c trigOff trigOff += numTrig * 0xc4 // Added as last trigger in file INSERT_BYTES trigOff 0xc4 WRITE_ASCII trigOff DOOR1008 // Trigger name WRITE_ASCII trigOff + 0x38 AR1008 // Destination area WRITE_ASCII trigOff + 0x40 EXIT1010 // Destination exit point WRITE_LONG trigOff + 0x2c numVert // Vertex index WRITE_LONG trigOff + 0x34 28 // Trigger cursor WRITE_LONG trigOff + 0x60 4 // Flags: party-required WRITE_LONG trigOff + 0x64 BNOT 0x0 // Activation text WRITE_SHORT trigOff + 0x20 2 // Trigger type WRITE_SHORT trigOff + 0x22 345 // Leftmost point WRITE_SHORT trigOff + 0x24 2719 // Topmost point WRITE_SHORT trigOff + 0x26 545 // Rightmost point WRITE_SHORT trigOff + 0x28 2815 // Bottommost point WRITE_SHORT trigOff + 0x2a 4 // Number of vertices WRITE_SHORT trigOff + 0x70 609 // Location X WRITE_SHORT trigOff + 0x72 2643 // Location Y READ_LONG 0x54 actOff PATCH_IF (actOff > trigOff) BEGIN WRITE_LONG 0x54 (actOff > vertOff) ? actOff + 0xd4 : actOff + 0xc4 END READ_LONG 0x5c trigOff PATCH_IF (trigOff > trigOff) BEGIN WRITE_LONG 0x5c (trigOff > vertOff) ? trigOff + 0xd4 : trigOff + 0xc4 END READ_LONG 0x60 sptOff PATCH_IF (sptOff > trigOff) BEGIN WRITE_LONG 0x60 (sptOff > vertOff) ? sptOff + 0xd4 : sptOff + 0xc4 END READ_LONG 0x68 entrOff PATCH_IF (entrOff > trigOff) BEGIN WRITE_LONG 0x68 (entrOff > vertOff) ? entrOff + 0xd4 : entrOff + 0xc4 END READ_LONG 0x70 contOff PATCH_IF !(contOff < trigOff) BEGIN WRITE_LONG 0x70 (contOff > vertOff) ? contOff + 0xd4 : contOff + 0xc4 END READ_LONG 0x78 itmOff PATCH_IF !(itmOff < trigOff) BEGIN WRITE_LONG 0x78 (itmOff > vertOff) ? itmOff + 0xd4 : itmOff + 0xc4 END READ_LONG 0x7c vertOff PATCH_IF !(vertOff < trigOff) BEGIN WRITE_LONG 0x7c (vertOff > vertOff) ? vertOff + 0xd4 : vertOff + 0xc4 END READ_LONG 0x84 ambOff PATCH_IF !(ambOff < trigOff) BEGIN WRITE_LONG 0x84 !(ambOff < vertOff) ? ambOff + 0xd4 : ambOff + 0xc4 END READ_LONG 0x88 varOff PATCH_IF !(varOff < trigOff) BEGIN WRITE_LONG 0x88 !(varOff < vertOff) ? varOff + 0xd4 : varOff + 0xc4 END READ_LONG 0xa0 explOff PATCH_IF !(explOff < trigOff) BEGIN WRITE_LONG 0xa0 !(explOff < vertOff) ? explOff + 0xd4 : explOff + 0xc4 END READ_LONG 0xa8 doorOff PATCH_IF !(doorOff < trigOff) BEGIN WRITE_LONG 0xa8 !(doorOff < vertOff) ? doorOff + 0xd4 : doorOff + 0xc4 END READ_LONG 0xb0 animOff PATCH_IF !(animOff < trigOff) BEGIN WRITE_LONG 0xb0 !(animOff < vertOff) ? animOff + 0xd4 : animOff + 0xc4 END READ_LONG 0xb8 tobjOff PATCH_IF !(tobjOff < trigOff) BEGIN WRITE_LONG 0xb8 !(tobjOff < vertOff) ? tobjOff + 0xd4 : tobjOff + 0xc4 END READ_LONG 0xbc musOff PATCH_IF !(musOff < trigOff) BEGIN WRITE_LONG 0xbc !(musOff < vertOff) ? musOff + 0xd4 : musOff + 0xc4 END READ_LONG 0xc0 rspnOff PATCH_IF !(rspnOff < trigOff) BEGIN WRITE_LONG 0xc0 !(rspnOff < vertOff) ? rspnOff + 0xd4 : rspnOff + 0xc4 END READ_LONG 0xc4 mapnOff READ_LONG 0xc8 numMapn PATCH_IF (!(mapnOff < trigOff) && numMapn) BEGIN WRITE_LONG 0xc4 !(mapnOff < vertOff) ? mapnOff + 0xd4 : mapnOff + 0xc4 END END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// The Mysterious Vial \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~The Mysterious Vial~ // Author: SimDing0 // Email: SimDing0@hotmail.com // Website: http://www.pocketplane.net COMPILE ~bg1ub/vial/ubvial.d~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Additional Elminster Encounter (Outside FAI) \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Additional Elminster Encounter~ // Author: SimDing0 // Email: SimDing0@hotmail.com // Website: http://www.pocketplane.net // Elminster encounter outside FAI COPY_EXISTING AR2300.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~SetGlobal("ElminsterSpawn","GLOBAL",1)~ ~SetGlobal("ElminsterSpawn","GLOBAL",2)~ REPLACE_TEXTUALLY ~Global("ElminsterSpawn","GLOBAL",0)~ ~Global("ElminsterSpawn","GLOBAL",1)~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES // Potential situation here where player enters FAI area during chapter 4 but doesn't meet Elminster. // If he comes back later on, Elminster could be talking about events that have already passed. // His dialogues would also be out of order and disjointed. Worth worrying about? /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Angelo Notices Shar-teel \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Angelo Notices Shar-teel~ // Author: Ascension64 // Email: ascension6400@yahoo.com.au // Website: http://forums.spellholdstudios.net/index.php?showforum=261 // Originally part of the BGT Tweak Pack // FORBID_COMPONENT ~Setup-BG1NPC.tp2~ 2 @2 COMPILE ~bg1ub/sharteel/rANGELO.D~ EXTEND_BOTTOM ~AR0607.BCS~ ~bg1ub/sharteel/xAR0607.BAF~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Finishable Kagain Caravan Quest \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Finishable Kagain Caravan Quest~ // Author: Ascension64 // Email: ascension6400@yahoo.com.au // Website: http://forums.spellholdstudios.net/index.php?showforum=261 // Originally part of the BGT Tweak Pack // FORBID_COMPONENT ~Setup-BG1NPC.tp2~ 0 @3 COPY_EXISTING AR2800.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~GlobalLT~ ~Global~ REPLACE_TEXTUALLY ~SetGlobal("KagainCaravan","GLOBAL",2)~ ~SetGlobal("KagainLostChildQuest","GLOBAL",2)~ COMPILE_BAF_TO_BCS EXTEND_BOTTOM ~AR2800.BCS~ ~bg1ub/kagain/aAR2800.BAF~ COPY_EXISTING ~KAGAIN.BCS~ ~OVERRIDE~ REPLACE_BCS_BLOCK ~bg1ub/kagain/xKAGAIN.BAF~ ~bg1ub/kagain/rKAGAIN.BAF~ COMPILE ~bg1ub/kagain/rKAGAIJ.D~ COPY ~bg1ub/kagain/DLOSTKAG.CRE~ ~OVERRIDE~ SAY NAME1 ~Eddard Silvershield~ SAY NAME2 ~Eddard Silvershield~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Coran and the Wyverns \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Coran and the Wyverns~ // Author: Idobek // Email: idobek@gibberlings3.net // Website: http://www.gibberlings3.net COMPILE ~bg1ub/coran/Coran.d~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Kivan and Tazok \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Kivan and Tazok~ // Author: SimDing0 // Email: SimDing0@hotmail.com // Website: http://www.pocketplane.net COMPILE ~bg1ub/kivan/ubkivan.d~ EXTEND_TOP ~kivan.bcs~ ~bg1ub/kivan/ubkivan.baf~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Branwen and Tranzig \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Branwen and Tranzig~ // Author: SimDing0 // Email: SimDing0@hotmail.com // Website: http://www.pocketplane.net COMPILE ~bg1ub/branwen/ubbranwen.d~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Safana the Flirt \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Safana the Flirt~ // Author: Dudley // Email: // Website: http://www.dudleyville.com COPY_EXISTING SPIN108.SPL OVERRIDE // Renames Charm Animal (innate) as Flirt SAY NAME1 ~Flirt~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Appropriate Albert and Rufie Reward \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Appropriate Albert and Rufie Reward~ COMPILE ~bg1ub/albert/albert.d~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Place Entar Silvershield in His Home \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Place Entar Silvershield in His Home~ // Author: SimDing0 // Email: SimDing0@hotmail.com // Website: http://www.pocketplane.net // Place Entar Silvershield in his home <<<<<<<< .../bg1ub/et_0101.baf IF !GlobalGT("Chapter","GLOBAL",6) Global("D0CreateEntar","GLOBAL",0) THEN RESPONSE #100 SetGlobal("D0CreateEntar","GLOBAL",1) CreateCreature("Entar",[649.904],12) END IF GlobalGT("Chapter","GLOBAL",6) Exists("Entar") THEN RESPONSE #100 ActionOVERRIDE("Entar",DestroySelf()) END >>>>>>>> EXTEND_TOP ~ar0101.bcs~ ~.../bg1ub/et_0101.baf~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Scar and the Sashenstar's Daughter \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Scar and the Sashenstar's Daughter~ COMPILE ~bg1ub/Scar/ubscar.d~ COPY_EXISTING MISC79.ITM ~OVERRIDE/UBFEBODY.ITM~ // Create a unique item for the Sashenstar's daughter SAY NAME1 ~Female Noble's Body~ SAY NAME2 ~Female Noble's Body~ SAY DESC ~This is the dead body of a female noble.~ COPY_EXISTING AR0224.ARE OVERRIDE // Sewers WRITE_ASCII 0x28c0 ~MISC79~ // Replace Male Body with Female Body in Container 1 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0226.ARE OVERRIDE // Sewers WRITE_ASCII 0x239c ~UBFEBODY~ // Replace Male Body with the Sashenstar's daughter in Container 1 (with ruby ring) WRITE_ASCII 0x2450 ~MISC79~ // Replace Male Body with Female Body in Container 4 BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Quoningar, the Cleric \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Quoningar, the Cleric~ // Author: devSin // Email: devsin@mac.com // Website: COPY ~bg1ub/quoningar/ubquon.cre~ ~OVERRIDE~ COMPILE ~bg1ub/quoningar/ubquon.d~ <<<<<<<< .../bg1ub/eb_ar0120.baf IF Global("UB_QUONIN_SPAWN","GLOBAL",0) !Exists("UBQUON") !Dead("UBQUON") Global("UB_HELPQUONINGAR","GLOBAL",0) THEN RESPONSE #100 CreateCreature("UBQUON",[464.157],0) SetGlobal("UB_QUONIN_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR0120.BCS ~.../bg1ub/eb_ar0120.baf~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Shilo Chen and the Ogre-Magi \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Shilo Chen and the Ogre-Magi~ COPY ~bg1ub/shilochen/IBRACUB.BAM~ OVERRIDE COPY ~bg1ub/shilochen/UBGLOVE1.ITM~ OVERRIDE SAY NAME1 #6341 SAY NAME2 ~Gloves of Pick Pocketing~ SAY UNIDENTIFIED_DESC #6791 SAY IDENTIFIED_DESC ~Gloves of Pick Pocketing A few years back Fong Moo a famous cutpurse, known in both Baldur's Gate and Athkatla, was found dead on the road between the Gate and Beregost. Seems he'd stolen an artifact from a powerful mage and tried escaping, with little success. His possessions went to a nephew, who took up the same trade as his uncle, and became especially good at pick pocketing. Whether these gloves were magical before falling into Fong's hands or if they are somehow imbued with the master's essence is not known. STATISTICS Pick Pocketing: +20% Bonus~ COPY_EXISTING OGREMA_A.CRE ~OVERRIDE/UBOGMA01.CRE~ WRITE_ASCII 0x280 ~UBOGMA01~ COPY_EXISTING OGREMA_B.CRE ~OVERRIDE/UBOGMA02.CRE~ WRITE_ASCII 0x280 ~UBOGMA02~ COPY_EXISTING AOLN.CRE ~OVERRIDE/UBSHILO.CRE~ SAY NAME1 #15640 SAY NAME2 #15685 WRITE_ASCII 0x250 ~~ #8 WRITE_ASCII 0x280 ~UBShilo~ #8 WRITE_ASCII 0x2cc ~ubshilo~ #8 ADD_CRE_ITEM ~UBGLOVE1~ #0 #0 #0 ~NONE~ ~INV1 INV5~ COMPILE ~bg1ub/shilochen/ubshilo.d~ <<<<<<<< .../bg1ub/ub_ar0705sc.baf IF Global("CreateUBShiloChen","AR0705",0) THEN RESPONSE #100 CreateCreature("UBShilo",[606.967],10) SetGlobal("CreateUBShiloChen","AR0705",1) END >>>>>>>> EXTEND_BOTTOM AR0705.BCS ~.../bg1ub/ub_ar0705sc.baf~ <<<<<<<< .../bg1ub/ub_ar1900.baf IF GlobalGT("Chapter","GLOBAL",4) Global("AcceptedUBShiloQuest","GLOBAL",1) Global("CreateUBOgreMagi","AR1900",0) THEN RESPONSE #100 CreateCreature("UBOGMA01",[1736.2979],6) CreateCreature("UBOGMA02",[1754.2885],3) CreateCreature("OGREHA",[1605.2915],14) CreateCreature("OGREHA",[1716.2970],12) CreateCreature("OGREHA",[1722.2990],8) SetGlobal("CreateUBOgreMagi","AR1900",1) END >>>>>>>> EXTEND_BOTTOM AR1900.BCS ~.../bg1ub/ub_ar1900.baf~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Edie, the Merchant League Applicant \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Edie, the Merchant League Applicant~ COPY_EXISTING EDIE.CRE OVERRIDE WRITE_ASCII 0x2cc ~UBEDIE~ #8 // Assigns edited dialog file WRITE_ASCII 0x280 ~Edie~ // Assigns death variable BUT_ONLY_IF_IT_CHANGES COMPILE ~bg1ub/edie/ubedie.d~ <<<<<<<< .../bg1ub/ub_ar0128.baf IF Global("UB_EDIE_SPAWN","GLOBAL",0) !Exists("Edie") !Dead("Edie") THEN RESPONSE #100 CreateCreature("EDIE",[1102.917],4) SetGlobal("UB_EDIE_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR0128.BCS ~.../bg1ub/ub_ar0128.baf~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Flaming Fist Mercenary Reinforcements \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Flaming Fist Mercenary Reinforcements~ // Author: devSin // Email: devsin@mac.com // Website: COPY ~bg1ub/ff/UBFLAM5.CRE~ ~OVERRIDE~ COPY_EXISTING FLAM5.CRE OVERRIDE // Flaming Fist Mercenary PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x280 FLAM5 #18 FOR (loc = 0x248; loc < 0x270; loc += 0x8) BEGIN READ_ASCII loc script PATCH_IF !("%script%" STRING_COMPARE_CASE "SEEENEMY") BEGIN // Remove SeeEnemy script, otherwise they just attack each other :D WRITE_ASCII loc "" #8 END END END BUT_ONLY_IF_IT_CHANGES <<<<<<<< .../bg1ub/eb_ar3800.baf IF Global("UB_FLAM5_REINFORCE","GLOBAL",0) Exists("FLAM5") !Dead("FLAM5") THEN RESPONSE #100 CreateCreature("UBFLAM5",[3753.2954],9) // Flaming Fist Mercenary CreateCreature("UBFLAM5",[3869.2962],7) // Flaming Fist Mercenary SetGlobal("UB_FLAM5_REINFORCE","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR3800.BCS ~.../bg1ub/eb_ar3800.baf~ <<<<<<<< .../bg1ub/ubflam5.baf IF Global("UB_FLAM5_SHOUT","GLOBAL",1) Allegiance(Myself,128) THEN RESPONSE #100 Enemy() END IF Global("UB_FLAM5_SHOUT","GLOBAL",2) Allegiance(Myself,128) THEN RESPONSE #100 EscapeArea() END IF Allegiance("FLAM5",255) Allegiance(Myself,128) THEN RESPONSE #100 SetGlobal("UB_FLAM5_SHOUT","GLOBAL",1) Enemy() END IF AttackedBy([30],0) Allegiance(Myself,128) THEN RESPONSE #100 SetGlobal("UB_FLAM5_SHOUT","GLOBAL",1) Enemy() END IF !Exists("FLAM5") !Dead("FLAM5") Allegiance(Myself,128) THEN RESPONSE #100 SetGlobal("UB_FLAM5_SHOUT","GLOBAL",2) EscapeArea() END IF !Range("FLAM5",12) !Dead("FLAM5") Global("UB_FLAM5_SHOUT","GLOBAL",0) Allegiance(Myself,128) THEN RESPONSE #100 MoveToObject("FLAM5") END >>>>>>>> COMPILE ~.../bg1ub/ubflam5.baf~ COPY_EXISTING FLAM5.DLG OVERRIDE DECOMPILE_DLG_TO_D REPLACE_TEXTUALLY ~Enemy()~ ~SetGlobal("UB_FLAM5_SHOUT","GLOBAL",1) Enemy()~ REPLACE_TEXTUALLY ~EscapeArea()~ ~SetGlobal("UB_FLAM5_SHOUT","GLOBAL",2) EscapeArea()~ COMPILE_D_TO_DLG BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Creature Corrections \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Creature Corrections~ // Add missing IDS entries. APPEND RACE.IDS ~114 SUCCUBUS~ UNLESS ~114~ APPEND ANIMATE.IDS "0x1000 WYVERN_BIG" UNLESS "^0x1000[ \t]" APPEND ANIMATE.IDS "0x1100 TANARRI" UNLESS "^0x1100[ \t]" APPEND ANIMATE.IDS "0x2300 DEATH_KNIGHT" UNLESS "^0x2300[ \t]" APPEND ANIMATE.IDS "0x6405 DOOM_GUARD" UNLESS "^0x6405[ \t]" APPEND ANIMATE.IDS "0x7904 SLIME_GRAY" UNLESS "^0x7904[ \t]" APPEND ANIMATE.IDS "0x7D00 ZOMBIE" UNLESS "^0x7D00[ \t]" APPEND ANIMATE.IDS "0x7E00 WEREWOLF" UNLESS "^0x7E00[ \t]" APPEND ANIMATE.IDS "0x7E01 WEREWOLF_GREATER" UNLESS "^0x7E01[ \t]" APPEND ANIMATE.IDS "0xD400 BIRD_INSIDE" UNLESS "^0xD400[ \t]" BUT_ONLY_IF_IT_CHANGES // Change Zekar's alignment to NE. COPY_EXISTING ZEKAR.CRE OVERRIDE WRITE_BYTE 0x27b 35 BUT_ONLY_IF_IT_CHANGES // Give Karoug a script that exists. He doesn't need anything really since his dialog handles transformation. COPY_EXISTING KAROUG.CRE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x258 ~WTASIGHT~ END BUT_ONLY_IF_IT_CHANGES // Galkin.cre isn't actually used ingame. Galken.cre is the same guy, but the version that's used. However, // the latter is classified as an "innocent", which seems more correct than the former's choice of "mage". // Thus, correct the classification and fix the invalid dialog reference. COPY_EXISTING GALKIN.CRE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x2cc "galken" END COPY_EXISTING GALKEN.CRE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_BYTE 0x273 155 END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BENTLY.CRE OVERRIDE // Bently Mirrorshade, FAI WRITE_ASCII 0x248 ~BENTLY~ // Assigns BENTLY.BCS as the OVERRIDE script WRITE_ASCII 0x250 ~SHOUT~ // Assigns SHOUT.BCS as the Class script BUT_ONLY_IF_IT_CHANGES // assign creatures their correct dialogs COPY_EXISTING FTOBE7.CRE OVERRIDE // Female townsperson in AR3335 MTOB9.CRE OVERRIDE // MTOB4.CRE OVERRIDE // MTOB5.CRE OVERRIDE // READ4.CRE OVERRIDE // WRITE_EVALUATED_ASCII 0x2cc ~%SOURCE_RES%~ #8 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING OGREGR.CRE OVERRIDE // Assigns the Ogrillon creatures the Ogrillon script OGREGR1.CRE OVERRIDE OGREGR2.CRE OVERRIDE OGREGR3.CRE OVERRIDE OGREGR4.CRE OVERRIDE OGREGRSU.CRE OVERRIDE OGREGR_A.CRE OVERRIDE OGREGR_B.CRE OVERRIDE OGREGR_C.CRE OVERRIDE OGREGR_D.CRE OVERRIDE OGREMIRI.CRE OVERRIDE WRITE_ASCII 0x258 ~OGRILLON~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING OGREHA.CRE OVERRIDE // Assigns the Halfogres the Halfogre script OGREHA1.CRE OVERRIDE OGREHA2.CRE OVERRIDE OGREHA3.CRE OVERRIDE OGREHA4.CRE OVERRIDE OGREHA5.CRE OVERRIDE OGREHA_A.CRE OVERRIDE OGREHA_B.CRE OVERRIDE OGREHA_C.CRE OVERRIDE OGREHA_D.CRE OVERRIDE OGREHA_E.CRE OVERRIDE WRITE_ASCII 0x258 ~HALFOGRE~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ITASLOI.CRE OVERRIDE // Assigns the Taslois the TasloiA script TASLGURK.CRE OVERRIDE TASLOI.CRE OVERRIDE TASLOI02.CRE OVERRIDE TASLOI03.CRE OVERRIDE TASLOISU.CRE OVERRIDE WRITE_ASCII 0x258 ~TASLOIA~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING WOLFWE.CRE OVERRIDE // Changes Class from Werewolf to Wolfwere PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x273 ~158~ END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING GHOUL.CRE OVERRIDE // Assigns the Ghouls the Ghoul script GHOULSU.CRE OVERRIDE WRITE_ASCII 0x258 ~GHOUL~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING WOLFWI.CRE OVERRIDE // Assigns the Winter Wolf the Winter Wolf script WRITE_ASCII 0x258 ~WNTRWOLF~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING WOLFVA.CRE OVERRIDE // Assigns the Vampiric Wolf the Vampiric Wolf script WRITE_ASCII 0x258 ~VAMPWOLF~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FEARM.CRE OVERRIDE // Assigns Fear the Revenant script PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x250 ~REVENANT~ END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING REVENT.CRE OVERRIDE // Assigns the Revenant the Revenant script WRITE_ASCII 0x258 ~REVENANT~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING WINSKI2.CRE OVERRIDE // Assigns Winski Perorate the correct script WRITE_ASCII 0x250 ~WINSKI~ #8 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING WYVERNBI.CRE OVERRIDE // Assigns the Greater Wyvern the Wyvern script PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x258 ~WYVERN~ #8 END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SKELETB.CRE OVERRIDE // Assign death variable WRITE_ASCII 0x280 ~SKELETONB~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBW4.CRE OVERRIDE // Assign death variable WRITE_ASCII 0x280 ~Noblewoman4~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING KRYLA.CRE OVERRIDE // Kryla (AR1500) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x258 ~WEREWOLF~ // Assign the Werewolf script END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MEMNIS.CRE OVERRIDE // Memnis (AR1500) PALIN.CRE OVERRIDE // Palin (AR1500) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x258 ~WOLFWERE~ // Assign the Wolfwere script END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DOPPGR.CRE OVERRIDE // Greater Doppelganger WRITE_ASCII 0x250 ~DGANGER~ #8 // Assigns the DGANGER script as Class script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HOUSG5.CRE OVERRIDE // Guard WRITE_ASCII 0x258 ~DGUARD~ #8 // Assigns the DGUARD script as Race script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DRYAD.CRE OVERRIDE // Dryad of the Cloudpeaks WRITE_ASCII 0x258 ~DRYAD~ #8 // Assigns the DRYAD script as Race script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FLAMEN2.CRE OVERRIDE // Flaming Fist Enforcer WRITE_ASCII 0x258 ~FLAMEN2~ #8 // Assigns the FLAMEN2 script as Race script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ISLSIR.CRE OVERRIDE // Sirine Queen PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x268 ~ISLANDSI~ // Assigns the ISLANDSI script as Default script END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING OBERAN.CRE OVERRIDE // Oberan WRITE_ASCII 0x248 ~OBESTATE~ // Assigns the OBESTATE script as OVERRIDE script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING CHICKER.CRE OVERRIDE // Rabid Chicken WRITE_ASCII 0x248 ~RCHICKEN~ // Assigns the RCHICKEN script as OVERRIDE script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SIL.CRE OVERRIDE // Sil WRITE_ASCII 0x250 ~SIL~ #8 // Assigns the SIL script as Class script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING VOLOSE.CRE OVERRIDE // Serving Wench WRITE_ASCII 0x258 ~VWENCH~ #8 // Assigns the VWENCH script as Race script BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE6.CRE OVERRIDE // Galteran (Commoner) WRITE_ASCII 0x258 ~MTOWBE6~ #8 // Assigns the MTOWBE6 script as Race script BUT_ONLY_IF_IT_CHANGES // assign creatures their correct script death variable COPY_EXISTING ADDY.CRE OVERRIDE // Addy (BG, Ch 7 spawn) BRENNA.CRE OVERRIDE // Brennan Risling (the other Brennan Risling) CAEDMO.CRE OVERRIDE // Caedmon (BG, Ch 5 spawn) CARBOS.CRE OVERRIDE // Carbos (Candlekeep, Tutorial) ELMIN3.CRE OVERRIDE // Elminster (FAI, Ch 3 spawn) FEARM.CRE OVERRIDE // Durlag: Fear warder (hostile) IVANNE.CRE OVERRIDE // Ivanne (BG, Ch 7 spawn) JONAVI.CRE OVERRIDE // Jonavin (BG, Ch 7 spawn) KAELLA.CRE OVERRIDE // Kaella (BG, Ch 7 spawn) KARAN1.CRE OVERRIDE // Karan (Candlekeep, Tutorial) PARDA1.CRE OVERRIDE // Parda (Candlekeep, Tutorial) PRIDEM.CRE OVERRIDE // Durlag: Pride warder (hostile) SHANK.CRE OVERRIDE // Shank (Candlekeep, Tutorial) SLAVFREE.CRE OVERRIDE // Slave (Cloakwood mine, post-flood spawn) SORREL.CRE OVERRIDE // Sorrel (BG, Ch 7 spawn) SUGAR.CRE OVERRIDE // Sugar (BG ho, Ch 7 spawn) VOLO.CRE OVERRIDE // Volo (AR4809, Nashkel Tavern) ZOMBIEB.CRE OVERRIDE // Bassilus' family zombies PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_EVALUATED_ASCII 0x280 ~%SOURCE_RES%~ #18 // dv = 18 bytes END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0114.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"DETRAN\")~ ~Exists("DETRANION")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0502.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~(\"Tourist4\",~ ~("TOURIST3",~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0612.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"TRALIT\")~ ~Exists("TRALITHAN")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0613.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"KALESS\")~ ~Exists("KALESSIA")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0614.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"WIRTHI\")~ ~Exists("WIRTHING")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0616.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"PANGWA\")~ ~Exists("PANG")~ REPLACE_TEXTUALLY ~Exists(\"DHANIA\")~ ~Exists("DHANIAL")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR1300.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"ALANBL\")~ ~Exists("ALAN")~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING LOVE.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~(\"AVARICEM\",~ ~("AVARICE",~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES // Bears no longer turn hostile if PC druid or ranger is visible COPY_EXISTING BEAR.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~\(\(Range(\[GOODCUTOFF\],7)\|AttackedBy(\[ANYONE\],DEFAULT)\)[ \t]+Allegiance(Myself,NEUTRAL)\)~ ~\1 !See([2.0.0.11]) !See([2.0.0.12]) !See([2.0.0.16]) !See([2.0.0.18])~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MINSC.DLG OVERRIDE DECOMPILE_DLG_TO_D REPLACE_TEXTUALLY ~!Dead(\"Dynahe\"~ ~!Dead("Dynaheir"~ COMPILE_D_TO_DLG BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BIRD_INE.CRE OVERRIDE BIRD_INN.CRE OVERRIDE BIRD_INS.CRE OVERRIDE BIRD_INW.CRE OVERRIDE WRITE_ASCII 0x258 ~RANDWALK~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DEAD2.CRE OVERRIDE // Amnish Soldier (various) DEADFUCK.CRE OVERRIDE // Amnish Soldier (AR5403, Nashkel Mines) WRITE_ASCII 0x3c8 ~SW1H04~ // Fixes a typo BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DRELIK.CRE OVERRIDE // Drelik (AR0010, Baldur's Gate) WRITE_ASCII 0x4f8 ~SCRL1L~ // Fixes a typo (SCRL1J does not exist) BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ENNAHE.CRE OVERRIDE // Enna Hendrik (unused for now) WRITE_ASCII 0x2cc ~ENNA~ #8 // Fixes dialog file (ENNAHE does not exist) BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ERLINH.CRE OVERRIDE // Erlin Hendrik (unused for now) WRITE_ASCII 0x2cc ~ERLIN~ #8 // Fixes dialog file (ERLINH does not exist) BUT_ONLY_IF_IT_CHANGES COPY_EXISTING GIRLBAX.CRE OVERRIDE // Girl (unused?) WRITE_ASCII 0x2cc ~GIRBA3~ #8 // Fixes dialog file (GIRLBA3 does not exist) BUT_ONLY_IF_IT_CHANGES COPY_EXISTING JAMIE.CRE OVERRIDE // Jamie WRITE_ASCII 0x3e4 ~SW1H04~ // Fixes a typo BUT_ONLY_IF_IT_CHANGES COPY_EXISTING LOTHAN.CRE OVERRIDE // Lothander WRITE_ASCII 0x40c ~BOOT01~ // Fixes a typo BUT_ONLY_IF_IT_CHANGES COPY_EXISTING PROSLAY.CRE OVERRIDE // Ho WRITE_ASCII 0x2cc ~PROSLA~ #8 // Fixes dialog file (PROSLAY does not exist) BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SAKUL.CRE OVERRIDE // Sakul (AR5506, Catacombs) WRITE_ASCII 0x560 ~SCRL1I~ // Fixes a typo (SCRL1J does not exist) BUT_ONLY_IF_IT_CHANGES ////////////////////////////////////// // Assign weapons to unarmed creatures COPY_EXISTING ANDRIS.CRE OVERRIDE // Andris (Mage, AR1009, Ice Island) POGHM9.CRE OVERRIDE // Priest of Oghma (Doppleganger, AR2627, Candlekeep) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM STAF01 #0 #0 #0 NONE WEAPON1 EQUIP TWOHANDED // Quarterstaff END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BEYN.CRE OVERRIDE // Beyn (Fighter/Mage, AR1009, Ice Island) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM DAGG01 #0 #0 #0 NONE WEAPON1 // Dagger ADD_CRE_ITEM DAGG05 #10 #0 #0 NONE WEAPON2 EQUIP // Throwing Dagger END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BISHOP.CRE OVERRIDE // Bishop (Cleric, AR0506, Durlag's Tower) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM BLUN03 #0 #0 #0 NONE WEAPON1 EQUIP // Flail +1 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BLANE.CRE OVERRIDE // Dawn Priest Blane (Cleric, AR3401, Song of the Morning Temple Vestibule) BRAN.CRE OVERRIDE // Dawn Priest Bram (Cleric, AR3401, Song of the Morning Temple Vestibule) KAISHA.CRE OVERRIDE // Kaishas Gan (Cleric, AR2002, Werewolf Island) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM BLUN04 #0 #0 #0 NONE WEAPON1 EQUIP // Mace END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING CUCHOL.CRE OVERRIDE // Cuchol (Fighter/Mage, AR1009, Ice Island) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM HAMM01 #0 #0 #0 NONE WEAPON1 // War Hammer ADD_CRE_ITEM DAGG05 #10 #0 #0 NONE WEAPON2 EQUIP // Throwing Dagger END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DAITEL.CRE OVERRIDE // Ghost (Fighter/Mage, AR0504, Durlag's Tower) DUSHAI.CRE OVERRIDE // Dushai (Cleric/Mage, AR1000, Ulgoth's Beard) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM BLUN06 #0 #0 #0 NONE WEAPON1 EQUIP // Morning Star END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DEZKIE.CRE OVERRIDE // Dezkiel (Fighter/Mage, AR1010, Ice Island) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM BLUN01 #0 #0 #0 NONE WEAPON1 // Club ADD_CRE_ITEM DART01 #20 #0 #0 NONE WEAPON2 EQUIP // Dart END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DRADEE.CRE OVERRIDE // Dradeel (Mage, AR1505, Werewolf Island) DRADEE2.CRE OVERRIDE // Dradeel (Mage, AR1505, Werewolf Island) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_ASCII 0x268 script PATCH_IF !("%script%" STRING_COMPARE_CASE "WTASIGHT") BEGIN WRITE_ASCII 0x268 WTARSGT #8 // Needs EquipMostDamagingMelee() END READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM STAF01 #0 #0 #0 NONE WEAPON2 // Quarterstaff END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FLAMWIZ.CRE OVERRIDE // Flaming Fist Battle Wizard (Flaming Fist) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM BLUN02 #0 #0 #0 NONE WEAPON1 EQUIP // Flail END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING GARAN.CRE OVERRIDE // Garan (Mage/Thief, AR1009, Ice Island) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM DAGG02 #0 #0 #0 NONE WEAPON1 EQUIP // Dagger +1 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING GIBBER2.CRE OVERRIDE // Diseased Gibberling (Gibberling) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM "S1-2" #0 #0 #0 NONE WEAPON1 EQUIP // Attack: one-handed, +1d2 slashing END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING IMOEN.CRE OVERRIDE // Imoen (Thief, AR2600, Candlekeep) WRITE_ASCII 0x34 ~IMOENS~ #8 // Corrects Imoen's portraits WRITE_ASCII 0x3c ~IMOENL~ #8 PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM BOW05 #0 #0 #0 NONE WEAPON1 EQUIP // Short Bow END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING JHASSO.CRE OVERRIDE // Jhasso (Fighter, AR0603, Seven Suns Basement) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_ASCII 0x268 script PATCH_IF !("%script%" STRING_COMPARE_CASE "WTASIGHT") BEGIN WRITE_ASCII 0x268 WTARSGT #8 // Needs EquipMostDamagingMelee() END READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM SW1H01 #0 #0 #0 NONE WEAPON2 // Quarterstaff END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING JOIA.CRE OVERRIDE // Joia (Fighter/Mage, AR2306, Friendly Arm Inn) TRALIT.CRE OVERRIDE // Tralithan (Fighter, AR0612, Iron Throne Level 2) DELAIN2.CRE OVERRIDE // Delainy (Fighter/Werewolf, AR2000, Balduran's Isle) DURLYL2.CRE OVERRIDE // Durlyle (Fighter/Werewolf, AR2000, Balduran's Isle) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM SW1H04 #0 #0 #0 NONE WEAPON1 EQUIP // Long Sword END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING LARRIA.CRE OVERRIDE // Larriaz (Fairy: Sirine, AR1209, Baldur's Gate) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM SIRINE1 #0 #0 #0 NONE WEAPON1 EQUIP // Attack: one-handed, +1d2 crushing, confusion (save vs. death) END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MARL.CRE OVERRIDE // Marl (Fighter, AR3351, Feldepost's Inn) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM SW1H07 #0 #0 #0 NONE WEAPON1 EQUIP // Short Sword END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SHOAL.CRE OVERRIDE // Shoal the Nereid (Fairy: Nereid, AR3100) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM NEIRED #0 #0 #0 NONE WEAPON1 EQUIP // Attack: one-handed, +1d2 - 1 crushing, save vs. death (-2) or die END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TRACEA.CRE OVERRIDE // Tracea Carol (Mage, AR1002, Ritual Chamber) KING.CRE OVERRIDE // King (Mage, AR0506, Durlag's Tower) QUEEN.CRE OVERRIDE // Queen (Mage, AR0506, Durlag's Tower) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 slotOff READ_SHORT slotOff + 0x12 weap1 READ_SHORT slotOff + 0x14 weap2 READ_SHORT slotOff + 0x16 weap3 READ_SHORT slotOff + 0x18 weap4 // make sure the creature has no weapons PATCH_IF ((weap1 == 0xffff) && (weap2 == 0xffff) && (weap3 == 0xffff) && (weap4 == 0xffff)) BEGIN ADD_CRE_ITEM STAF02 #0 #0 #0 NONE WEAPON1 EQUIP TWOHANDED // Quarterstaff +1 END END BUT_ONLY_IF_IT_CHANGES ///////////////////////////// // Gender and Sex Corrections COPY_EXISTING ANDRIS.CRE OVERRIDE // Andris (MAGE_MALE_HUMAN animation, AR1009: Ice Island) BARESH2.CRE OVERRIDE // Baresh (CLERIC_MALE_HUMAN animation, AR1004: Ulgoth's Beard) BARWLF.CRE OVERRIDE // Baresh BEARPO3.CRE OVERRIDE // Polar Bear (All bears are male, AR1008: Ice Island) BEYN.CRE OVERRIDE // Beyn (FIGHTER_MALE_HUMAN animation, AR1009: Ice Island) CUCHOL.CRE OVERRIDE // Cuchol (CLERIC_MALE_ELF animation, AR1009: Ice Island) CULT2.CRE OVERRIDE // Cult Wizard (MAGE_MALE_HUMAN animation, AR1003: Ulgoth's Beard) DELSVIR.CRE OVERRIDE // Deslvirftanyon (THIEF_MALE_DWARF_LOW animation, AR1000: Ulgoth's Beard) DOOMDUR.CRE OVERRIDE // Dwarven Doom Guard (FIGHTER_MALE_DWARF animation, AR0512: Durlag's Tower) DRADEE.CRE OVERRIDE // Dradeel (MAGE_MALE_ELF animation, AR1505: Werewolf Island) DRADEE2.CRE OVERRIDE // Dradeel (MAGE_MALE_ELF animation, AR2000: Werewolf Island) GARAN.CRE OVERRIDE // Garan (THIEF_MALE_HUMAN_LOW animation, AR1009: Ice Island) IKE.CRE OVERRIDE // Ike (THIEF_MALE_HUMAN animation, AR1000: Ulgoth's Beard) JONDAL.CRE OVERRIDE // Jondalar (FIGHTER_MALE_HUMAN animation, AR2600: Candlekeep) KING.CRE OVERRIDE // King (CLERIC_MALE_HUMAN animation, AR0506: Durlag's Tower) LEAGGU1.CRE OVERRIDE // Merchant League Guard (FIGHTER_MALE_HUMAN animation, AR0308.BCS: Merchant League) LEAGGU4.CRE OVERRIDE // Merchant League Guard (FIGHTER_MALE_HUMAN animation, AR0308.BCS: Merchant League) LEAGGU5.CRE OVERRIDE // Merchant League Guard (FIGHTER_MALE_HUMAN animation, AR0308.BCS: Merchant League) LEAGGU6.CRE OVERRIDE // Merchant League Guard (FIGHTER_MALE_HUMAN animation, AR0308.BCS: Merchant League) LEAGGU7.CRE OVERRIDE // Merchant League Guard (FIGHTER_MALE_HUMAN animation, AR0308.BCS: Merchant League) MARCEL.CRE OVERRIDE // Marcellus (MAGE_MALE_HUMAN animation, AR1009: Ice Island) MTOWUB_A.CRE OVERRIDE // Commoner (PEASANT_MAN animation, AR1000: Ulgoth's Beard) MTOWUB_B.CRE OVERRIDE // Commoner (PEASANT_MAN animation, AR1000: Ulgoth's Beard) MTOWUB_C.CRE OVERRIDE // Commoner (PEASANT_MAN animation, AR1000: Ulgoth's Beard, AR1001: Ulgoth's Beard) MTOWUB_D.CRE OVERRIDE // Commoner (PEASANT_MAN animation, AR1000: Ulgoth's Beard) MTOWUB_E.CRE OVERRIDE // Commoner (PEASANT_MAN animation, AR1000: Ulgoth's Beard) MTOWUBSC.CRE OVERRIDE // Commoner (STATIC_PEASANT_MAN_CHAIR animation, AR1001: Ulgoth's Beard) MTOWUBSN.CRE OVERRIDE // Commoner (STATIC_PEASANT_MAN_MATTE animation) MTOWUBST.CRE OVERRIDE // Commoner (STATIC_PEASANT_MAN_STOOL animation) MTOWUBX.CRE OVERRIDE // Commoner (STATIC_PEASANT_MAN animation, AR1000: Ulgoth's Beard) TARNOR.CRE OVERRIDE // Tarnor (FIGHTER_MALE_DWARF animation) ULF.CRE OVERRIDE // Ulf (FIGHTER_MALE_ELF animation, AR0307.BCS: Merchant League) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_BYTE 0x237 1 // Sex: Male WRITE_BYTE 0x275 1 // Gender: Male END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING CLAIRD.CRE OVERRIDE // Clair De'lain (FIGHTER_FEMALE_HUMAN animation, AR0514: Durlag's Tower) CULTT3.CRE OVERRIDE // Cult Assassin (FIGHTER_FEMALE_HUMAN animation, AR1003: Ulgoth's Beard) CULTT4.CRE OVERRIDE // Cult Archer (THIEF_FEMALE_HUMAN animation, AR1003: Ulgoth's Beard) DAESE.CRE OVERRIDE // Daese (MAGE_FEMALE_HUMAN animation, AR1504: Werewolf Island) DELAIN2.CRE OVERRIDE // Delainy (CLERIC_FEMALE_ELF animation, AR2600: Werewolf Island) FTOWUB_A.CRE OVERRIDE // Commoner (PEASANT_WOMAN animation, AR1000: Ulgoth's Beard) FTOWUB_B.CRE OVERRIDE // Commoner (PEASANT_WOMAN animation, AR1000: Ulgoth's Beard) FTOWUB_E.CRE OVERRIDE // Commoner (PEASANT_WOMAN animation, AR1001: Ulgoth's Beard, AR1006: Ulgoth's Beard) FTOWUBSC.CRE OVERRIDE // Commoner (STATIC_PEASANT_WOMAN_CHAIR animation) FTOWUBSN.CRE OVERRIDE // Commoner (STATIC_PEASANT_WOMAN_MATTE animation) FTOWUBX.CRE OVERRIDE // Commoner (STATIC_PEASANT_WOMAN animation, AR1000: Ulgoth's Beard) ISLSIR.CRE OVERRIDE // Sirine Queen (SIRINE animation, AR1500: Werewolf Island) JAHEIR4.CRE OVERRIDE // Jaheira JAHEIR6.CRE OVERRIDE // Jaheira LEAGGU2.CRE OVERRIDE // Merchant League Guard (FIGHTER_FEMALE_HUMAN animation, AR0308.BCS: Merchant League) LEAGGU3.CRE OVERRIDE // Merchant League Guard (FIGHTER_FEMALE_HUMAN animation, AR0308.BCS: Merchant League) LOVEM.CRE OVERRIDE // Love (FIGHTER_FEMALE_DWARF animation) MARALE2.CRE OVERRIDE // Maralee (CLERIC_FEMALE_HUMAN animation, AR2000: Werewolf Island) PHEOARCH.CRE OVERRIDE // Phoenix Guard (MAGE_FEMALE_HUMAN animation, AR0508: Ulgoth's Beard) TRACEA.CRE OVERRIDE // Tracea Carol (MAGE_FEMALE_HUMAN_LOW animation, AR1002: Ulgoth's Beard) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_BYTE 0x237 2 // Sex: Female WRITE_BYTE 0x275 2 // Gender: Female END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING APPAR.CRE OVERRIDE // Skeleton (SKELETON animation, AR0513: Durlag's Tower) CRYPTCRA.CRE OVERRIDE // Crypt Crawler (CARRION_CRAWLER animation, AR0514: Durlag's Tower) GHASTD.CRE OVERRIDE // Ghast (GHAST animation, TRPGHAST.BCS) GRAEL.CRE OVERRIDE // Grael (GHAST animation, AR0514: Durlag's Tower) HACK.CRE OVERRIDE // Hack (OGRE animation, TITACH.BCS) PLYOGRE.CRE OVERRIDE // Ogre (OGRE animation) SKELET.CRE OVERRIDE // Skeleton (SKELETON animation) SPIDPHAS.CRE OVERRIDE // Astral Phase Spider (SPIDER_PHASE animation, AR0514: Durlag's Tower) STALKE.CRE OVERRIDE // Invisible Stalker (DOOM_GUARD animation, AR0146: Baldur's Gate, AR0161: Baldur's Gate, AR0509: Durlag's Tower) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_BYTE 0x237 1 // Sex: Male WRITE_BYTE 0x275 4 // Gender: Neither END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ARKUSH.CRE OVERRIDE // Arkushule BAYARD.CRE OVERRIDE // Bayard BERRUN.CRE OVERRIDE // Berrun Ghastkill BORDA.CRE OVERRIDE // Borda BRENDA.CRE OVERRIDE // Brendan COWLED.CRE OVERRIDE // Cowled Wizard DEGROD.CRE OVERRIDE // Degrodel DENAK.CRE OVERRIDE // Denak DIANA.CRE OVERRIDE // Diana DRELIK.CRE OVERRIDE // Drelik FAIZAH.CRE OVERRIDE // Statue FORTHE.CRE OVERRIDE // Forthel August GAZIB.CRE OVERRIDE // The Great Gazib KAHRK.CRE OVERRIDE // Kahrk KING.CRE OVERRIDE // King LASALA.CRE OVERRIDE // Lasala MARCEL.CRE OVERRIDE // Marcellus MERLIN.CRE OVERRIDE // Elminster MUTAMI.CRE OVERRIDE // Mutamin NESTOR.CRE OVERRIDE // Nestor NIEMAI.CRE OVERRIDE // Niemain OBE.CRE OVERRIDE // Obe OULAM.CRE OVERRIDE // Oulam QUEEN.CRE OVERRIDE // Queen SEMAJ.CRE OVERRIDE // Semaj SEWERF5.CRE OVERRIDE // Sewerfolk SUNIN.CRE OVERRIDE // Sunin TESTER.CRE OVERRIDE // "Ajantis" VENKT.CRE OVERRIDE // Venkt WHEBER.CRE OVERRIDE // Wheber Ott WILLIAM.CRE OVERRIDE // William Garst WINSKI.CRE OVERRIDE // Winski Perorate WIVEN.CRE OVERRIDE // Wiven ZORDRA.CRE OVERRIDE // Zordral PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x34 ~~ #8 // Removes Edwin's, Kivan's, Garrick's, Montaron's, Xzar's, Alora's, and Ajantis' portraits WRITE_ASCII 0x3c ~~ #8 END BUT_ONLY_IF_IT_CHANGES ///////////////////////////////////////////////////////// // Fixes do to the results of CamDawg's Inventory Checker COPY_EXISTING AASIM.CRE OVERRIDE // Aasim (AR0615, Iron Throne Building) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN // searches through items READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "SHIELD04" = 0) BEGIN // find invalid resref WRITE_ASCII ("%itm_off%" + (0x14 * "%index%")) "SHLD04" #8 // corrected resref SET "index" = "%itm_num%" // kills loop END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING RINNIE.CRE OVERRIDE // Rinnie: LEAT01 (Leather Armor) ZHURLO.CRE OVERRIDE // Zhurlong: LEAT01 (Leather Armor) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 "slot_off" ELSE 0 READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "LEAT01" = 0) BEGIN FOR (index2 = 0 ; index2 < 36 ; index2 = index2 + 1) BEGIN // search through slots and add reference to first null slot READ_SHORT ("%slot_off%" + ("%index2%" + 0x02)) "ref" PATCH_IF ("%ref%" = 0x01) BEGIN // if incorrect reference in armor WRITE_SHORT ("%slot_off%" + ("%index2%" + 0x02)) "%index%" // adds reference to item SET "index2" = 36 // kills loop END PATCH_IF ("%index2%" = 0) BEGIN // if end of armor slots, skip ahead to inventory SET "index2" = 20 // otherwise go to inventory slots END END END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ANDRIS.CRE OVERRIDE // Andris: CLCK12 (Knave's Robe) MARCEL.CRE OVERRIDE // Marcellus: CLCK13 (Traveller's Robe) SHANDAL2.CRE OVERRIDE // Shandalar: CLCK16 (Cloak of the Neutral Archmagi) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 "slot_off" ELSE 0 READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "clck12" = 0) OR ("%item%" STRING_COMPARE_CASE "clck13" = 0) OR ("%item%" STRING_COMPARE_CASE "clck16" = 0) BEGIN WRITE_SHORT ("%slot_off%" + 0x02) "%index%" // puts in armor slot WRITE_SHORT ("%slot_off%" + 0x22) 0xffff // removes entry from cloak slot END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DEZKIE.CRE OVERRIDE // Dezkiel: CLCK22 (Shandalar's Cloak) BHEREN.CRE OVERRIDE // Bheren: CLCK01 (Cloak of Protection +1) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 "slot_off" ELSE 0 READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "clck22" = 0) OR ("%item%" STRING_COMPARE_CASE "clck01" = 0) BEGIN WRITE_SHORT ("%slot_off%" + 0x22) "%index%" // puts in cloak slot WRITE_SHORT ("%slot_off%" + 0x24) 0xffff // removes entry from quick item 1 slot END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DRATAN.CRE OVERRIDE // Dra'tan: AROW01 (Arrows) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 "slot_off" ELSE 0 READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "arow01" = 0) BEGIN FOR (index2 = 13 ; index2 < 36 ; index2 = index2 + 1) BEGIN // search through quiver slots and add reference to first null slot READ_SHORT ("%slot_off%" + ("%index2%" * 0x02)) "ref" PATCH_IF ("%ref%" = 0xffff) BEGIN // first null reference in quivers WRITE_SHORT ("%slot_off%" + ("%index2%" * 0x02)) "%index%" // adds reference to item SET "index2" = 36 // kills loop END PATCH_IF ("%index2%" = 16) BEGIN // if end of quiver slots, skip ahead to inventory SET "index2" = 20 END END END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NADARI.CRE OVERRIDE // Nadarin: BOOT02 (Boots of Stealth) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 "slot_off" ELSE 0 READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "boot02" = 0) BEGIN WRITE_SHORT ("%slot_off%" + 0x10) "%index%" // puts in boots slot WRITE_SHORT ("%slot_off%" + 0x24) 0xffff // removes entry from quick item 2 slot END END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ALDETH.CRE OVERRIDE // Aldeth Sashenstar: MAGE04 (blur ring) PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_LONG 0x2b8 "slot_off" ELSE 0 READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "mage04" = 0) BEGIN FOR (index2 = 4 ; index2 < 36 ; index2 = index2 + 1) BEGIN // search through ring slots and add reference to first null slot READ_SHORT ("%slot_off%" + ("%index2%" * 0x02)) "ref" PATCH_IF ("%ref%" = 0xffff) BEGIN // first null reference in rings WRITE_SHORT ("%slot_off%" + ("%index2%" * 0x02)) "%index%" // adds reference to item WRITE_SHORT ("%slot_off%" + 0x2a) 0xffff // removes entry from inventory 1 slot SET "index2" = 36 // kills loop END END END END END BUT_ONLY_IF_IT_CHANGES ///////////////////////// // Bandits without scalps COPY_EXISTING CREDUS.CRE OVERRIDE // Credus, AR1900 RAIKEN.CRE OVERRIDE // Raiken, AR2400.BCS TAUGOS.CRE OVERRIDE // Taugos, AR1900 TEVEN.CRE OVERRIDE // Teven, AR2900.BCS VAX.CRE OVERRIDE // Vax, AR5300 VENKT.CRE OVERRIDE // Venkt, AR1901 ZAL.CRE OVERRIDE // Zal, AR5300 PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN ADD_CRE_ITEM ~MISC86~ #1 #0 #0 ~IDENTIFIED~ ~INV1 INV2~ // Adds a bandit scalp END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Creature Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Creature Restorations~ COPY_EXISTING AR2608.ARE OVERRIDE // Add READ4 to Candlekeep library AR2610.ARE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN PATCH_IF !("%SOURCE_RES%" STRING_COMPARE_CASE "AR2608") BEGIN actLoc = 1108 END ELSE actLoc = 1272 READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor READ_SHORT actOff + 0x20 xPos PATCH_IF ((xPos == actLoc) && !("%actor%" STRING_COMPARE_CASE "READ3")) BEGIN WRITE_ASCII actOff + 0x80 READ4 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR2609.ARE OVERRIDE // Add READ4 to Candlekeep library PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor READ_SHORT actOff + 0x20 xPos PATCH_IF (((xPos == 547) || (xPos == 1293)) && !("%actor%" STRING_COMPARE_CASE "READ3")) BEGIN WRITE_ASCII actOff + 0x80 READ4 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR2611.ARE OVERRIDE // Add READ4 to Candlekeep library PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "READ3") BEGIN WRITE_ASCII actOff + 0x80 READ4 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HAFFG2.CRE OVERRIDE // Halfling Woman (Mabledale), AR4006 HALFG2.CRE OVERRIDE // Halfling Man (Bunsen), AR4013 MTOB4.CRE OVERRIDE // Commoner, AR0104 MTOB5.CRE OVERRIDE // Commoner, AR0705 WRITE_EVALUATED_ASCII 0x280 "%SOURCE_RES%" #18 // Script name BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TRAVEL.CRE OVERRIDE // Traveler (Wade), AR2301 WRITE_ASCII 0x280 WADE #18 // Script name BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0104.ARE OVERRIDE AR4006.ARE OVERRIDE AR4013.ARE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x1cc) BEGIN READ_ASCII 0x94 script PATCH_IF !("%script%" STRING_COMPARE_CASE "") BEGIN WRITE_EVALUATED_ASCII 0x94 "%SOURCE_RES%" #8 // Area script END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0800.BCS OVERRIDE DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~Exists(\"BERSCH\")~ ~Exists("HERSCHEL")~ REPLACE_TEXTUALLY ~CreateCreature(\"BERSCH\",~ ~CreateCreature("HERSCH",~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES ////////////////////////////////////////////////// // Add patron to Splurging Sturgeon inn (upstairs) <<<<<<<< .../bg1ub/ex_ar0104.baf IF Global("UB_MTOB4_SPAWN","GLOBAL",0) !Exists("MTOB4") !Dead("MTOB4") THEN RESPONSE #100 CreateCreature("MTOB4",[518.252],2) // Commoner ActionOVERRIDE("MTOB4",Face(2)) SetGlobal("UB_MTOB4_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR0104.BCS ~.../bg1ub/ex_ar0104.baf~ //////////////////////////////////////////// // Add patron to Elfsong Tavern (main level) <<<<<<<< .../bg1ub/eb_0705.baf IF Global("UB_MTOB5_SPAWN","GLOBAL",0) !Exists("MTOB5") !Dead("MTOB5") THEN RESPONSE #100 CreateCreature("MTOB5",[851.367],0) // Commoner SetGlobal("UB_MTOB5_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR0705.BCS ~.../bg1ub/eb_0705.baf~ ///////////////////////////////////////////////////////////// // Create FAI traveler when bandit subplot starts (Chapter 3) <<<<<<<< .../bg1ub/eb_2301.baf IF Global("CHAPTER","GLOBAL",3) !Exists("WADE") !Dead("WADE") THEN RESPONSE #100 CreateCreature("TRAVEL",[691.398],0) // Traveler END >>>>>>>> EXTEND_BOTTOM AR2301.BCS ~.../bg1ub/eb_2301.baf~ ///////////////////////////////////////////////// // Add Mabledale to home in Gullykin (downstairs) <<<<<<<< .../bg1ub/eb_ar4006.baf IF Global("UB_HAFFG2_SPAWN","GLOBAL",0) !Exists("HAFFG2") !Dead("HAFFG2") THEN RESPONSE #100 CreateCreature("HAFFG2",[357.257],9) // Halfling Woman ActionOVERRIDE("HAFFG2",Face(9)) SetGlobal("UB_HAFFG2_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR4006.BCS ~.../bg1ub/eb_ar4006.baf~ ////////////////////////////////////////////// // Add Bunsen to home in Gullykin (main level) <<<<<<<< .../bg1ub/eb_ar4013.baf IF Global("UB_HALFG2_SPAWN","GLOBAL",0) !Exists("HALFG2") !Dead("HALFG2") THEN RESPONSE #100 CreateCreature("HALFG2",[311.179],0) // Halfling Man SetGlobal("UB_HALFG2_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR4013.BCS ~.../bg1ub/eb_ar4013.baf~ ///////////////////////////////////////////// // Restore the Friendly Arm Inn serving wench COPY_EXISTING AR0114.ARE OVERRIDE // Blushing Mermaid WRITE_ASCII 0x2ac ~SERWEN~ // Changes FRIWEN to SERWEN BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0705.ARE OVERRIDE // Elfsong WRITE_ASCII 0x2ac ~SERWEN~ // Changes FRIWEN to SERWEN BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FRIWEN.CRE OVERRIDE // Serving Wench WRITE_ASCII 0x2cc ~FRIWEN~ // Assigns the unused dialog, FRIWEN.DLG BUT_ONLY_IF_IT_CHANGES // Add the Serving Wench to the Friendly Arm Inn <<<<<<<< .../bg1ub/ub_ar2301.baf IF Global("UB_FRIWEN_SPAWN","AR2301",0) !Exists("FRIWEN") !Dead("FRIWEN") THEN RESPONSE #100 CreateCreature("FRIWEN",[1073.690],4) // SetGlobal("UB_FRIWEN_SPAWN","AR2301",1) END >>>>>>>> EXTEND_BOTTOM AR4013.BCS ~.../bg1ub/ub_ar2301.baf~ ////////////////////////////////////////////// // Add the Lecturing Farmer to Wyrm's Crossing COPY_EXISTING FARM4.CRE ~OVERRIDE/UBFARM5.CRE~ // Copies FARM4 SAY NAME1 ~Farmer~ SAY NAME2 ~Farmer~ WRITE_ASCII 0x280 ~UBFARM5~ #8 // Sets Death Variable WRITE_ASCII 0x2cc ~UBFARM5~ #8 // Sets Dialogue <<<<<<<< .../bg1ub/ub_ar0900.baf IF Global("UB_FARMER5_SPAWN","GLOBAL",0) THEN RESPONSE #100 CreateCreature("UBFARM5",[4716.3663],2) SetGlobal("UB_FARMER5_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR0900.BCS ~.../bg1ub/ub_ar0900.baf~ ///////////////////////// // Feldane, an Old Friend COPY_EXISTING FELDAN.CRE OVERRIDE WRITE_ASCII 0x280 ~Feldane~ #8 // Sets Death Variable WRITE_ASCII 0x2cc ~UBFELDAN~ #8 // Sets Dialogue BUT_ONLY_IF_IT_CHANGES <<<<<<<< .../bg1ub/ub_ar2626.baf IF Global("UB_FELDANE_SPAWN","GLOBAL",0) THEN RESPONSE #100 CreateCreature("FELDAN",[2965.1824],3) SetGlobal("UB_FELDANE_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR2626.BCS ~.../bg1ub/ub_ar2626.baf~ /////////////// // Nashkel Girl <<<<<<<< .../bg1ub/ub_ar4806.baf IF Global("UB_GIRLBE_SPAWN","GLOBAL",0) THEN RESPONSE #100 CreateCreature("GIRLBE",[605.317],1) SetGlobal("UB_GIRLBE_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR4806.BCS ~.../bg1ub/ub_ar4806.baf~ ///////////////////////// // Baldur's Gate Merchant COPY_EXISTING FATMAN.CRE ~OVERRIDE/UBSHOPGE.CRE~ SAY NAME1 #9432 SAY NAME2 #9434 WRITE_ASCII 0x2cc ~SHOPGE~ #8 <<<<<<<< .../bg1ub/ub_ar1100.baf IF Global("UB_SHOPGE_SPAWN","GLOBAL",0) THEN RESPONSE #100 CreateCreature("UBSHOPGE",[3109.2627],0) SetGlobal("UB_SHOPGE_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR1100.BCS ~.../bg1ub/ub_ar1100.baf~ ///////////////////////////////// // Wilton, Farmer Brun's Neighbor COPY_EXISTING WILTON.CRE OVERRIDE ADD_CRE_ITEM ~CLCK01~ #1 #0 #0 ~NONE~ ~INV1 INV2~ // Adds Cloak of Protection +1 WRITE_ASCII 0x2cc ~UBWILTON~ // Assigns edited dialog file WRITE_ASCII 0x280 ~Wilton~ // Assigns death variable WRITE_SHORT 0x240 0x03 // Fix his morale setting BUT_ONLY_IF_IT_CHANGES <<<<<<<< .../bg1ub/ub_ar1403.baf IF Global("UB_WILTON_SPAWN","GLOBAL",0) !Exists("Wilton") !Dead("Wilton") THEN RESPONSE #100 CreateCreature("WILTON",[471.272],6) SetGlobal("UB_WILTON_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR1403.BCS ~.../bg1ub/ub_ar1403.baf~ ///////////////////////////////// // Corianna, the Petrified Ranger COPY ~bg1ub/creature/ubcorian.cre~ ~OVERRIDE~ SAY NAME1 #15552 SAY NAME2 #15574 <<<<<<<< .../bg1ub/ub_ar3400.baf IF Global("UB_CORIANNA_SPAWN","GLOBAL",0) !Exists("UBCORIAN") !Dead("UBCORIAN") Global("UB_HELPCORIANNA","GLOBAL",0) THEN RESPONSE #100 CreateCreature("UBCORIAN",[4611.3449],2) SetGlobal("UB_CORIANNA_SPAWN","GLOBAL",1) END >>>>>>>> EXTEND_BOTTOM AR3400.BCS ~.../bg1ub/ub_ar3400.baf~ ///////////////////////////////// // Compile all relevant dialogues COMPILE ~bg1ub/creature/UBCRE.d~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Creature Name Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Creature Name Restorations~ COPY_EXISTING FTOBE2.CRE OVERRIDE // AR3339 SAY NAME1 ~Kaitlin~ SAY NAME2 ~Kaitlin~ SAY 0x198 #13638 SAY 0x19c #13637 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FTOBE3.CRE OVERRIDE // AR3311 SAY NAME1 ~Malicia~ SAY NAME2 ~Malicia~ SAY 0x198 #13640 SAY 0x19c #13639 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FTOBE4.CRE OVERRIDE // AR3316 SAY NAME1 ~Henrette~ SAY NAME2 ~Henrette~ SAY 0x198 #13641 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FTOBE9.CRE OVERRIDE // AR3323 SAY NAME1 ~Sari~ SAY NAME2 ~Sari~ SAY 0x198 #13648 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HAFFG2.CRE OVERRIDE // Currently UNUSED SAY NAME1 ~Mabledale~ SAY NAME2 ~Mabledale~ SAY 0x198 #13407 SAY 0x19c #13405 SAY 0x1a0 #13406 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HALFG2.CRE OVERRIDE // Currently UNUSED SAY NAME1 ~Bunsen~ SAY NAME2 ~Bunsen~ SAY 0x198 #13410 SAY 0x19c #13408 SAY 0x1a0 #13409 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HALFG3.CRE OVERRIDE // AR4008 SAY NAME1 ~Farthendell~ SAY NAME2 ~Farthendell~ SAY 0x198 #13413 SAY 0x19c #13411 SAY 0x1a0 #13412 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HALFG4.CRE OVERRIDE // AR4007 SAY NAME1 ~Arlond~ SAY NAME2 ~Arlond~ SAY 0x198 #13416 SAY 0x19c #13414 SAY 0x1a0 #13415 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HALFG5.CRE OVERRIDE // AR4010 SAY NAME1 ~Joldenan~ SAY NAME2 ~Joldenan~ SAY 0x198 #13419 SAY 0x19c #13417 SAY 0x1a0 #13418 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HOUSG1.CRE OVERRIDE // AR3320 SAY NAME1 ~Carl~ SAY NAME2 ~Carl~ SAY 0x198 #13441 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HOUSG2.CRE OVERRIDE // AR3320 SAY NAME1 ~Jurgen~ SAY NAME2 ~Jurgen~ SAY 0x198 #13442 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE2.CRE OVERRIDE // AR3341 SAY NAME1 ~Berden~ SAY NAME2 ~Berden~ SAY 0x198 #13656 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE3.CRE OVERRIDE // AR3309 SAY NAME1 ~Dath~ SAY NAME2 ~Dath~ SAY 0x198 #13657 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE4.CRE OVERRIDE // AR3309 SAY NAME1 ~Solgen~ SAY NAME2 ~Solgen~ SAY 0x198 #13658 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE5.CRE OVERRIDE // AR3317 SAY NAME1 ~Borland~ SAY NAME2 ~Borland~ SAY 0x198 #13661 SAY 0x19c #13659 SAY 0x1a0 #13660 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE6.CRE OVERRIDE // AR3319 SAY NAME1 ~Galteran~ SAY NAME2 ~Galteran~ SAY 0x198 #13665 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTBE7.CRE OVERRIDE // AR3323 SAY NAME1 ~Davis~ SAY NAME2 ~Davis~ SAY 0x198 #13655 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTOWF2.CRE OVERRIDE // AR2302 SAY NAME1 ~Sherman~ SAY NAME2 ~Sherman~ SAY 0x198 #13502 SAY 0x19c #13501 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL4.CRE OVERRIDE // AR2616 SAY NAME1 ~Thurston~ SAY NAME2 ~Thurston~ SAY 0x198 #13540 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL5.CRE OVERRIDE // AR2617 SAY NAME1 ~Quincy~ SAY NAME2 ~Quincy~ SAY 0x198 #13543 SAY 0x19c #13542 SAY 0x1a0 #13541 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL6.CRE OVERRIDE // AR2617 SAY NAME1 ~Christian~ SAY NAME2 ~Christian~ SAY 0x198 #13545 SAY 0x19c #13544 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL7.CRE OVERRIDE // AR2302 SAY NAME1 ~Marlon~ SAY NAME2 ~Marlon~ SAY 0x198 #13547 SAY 0x19c #13546 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBW8.CRE OVERRIDE // AR0121 SAY NAME1 ~Lady Areana~ SAY NAME2 ~Lady Areana~ SAY 0x198 #13558 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TRAVEL.CRE OVERRIDE // Currently UNUSED SAY NAME1 ~Wade~ SAY NAME2 ~Wade~ SAY 0x198 #13673 SAY 0x19c #13671 SAY 0x1a0 #13672 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FARM.CRE OVERRIDE FARM3.CRE OVERRIDE FARM4.CRE OVERRIDE FARMER.CRE OVERRIDE SAY NAME1 ~Farmer~ SAY NAME2 ~Farmer~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING GNOLL5.CRE OVERRIDE // see its dialogue for name SAY NAME1 ~Ludrug~ SAY NAME2 ~Ludrug~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HUNTER.CRE OVERRIDE // see his dialogue for name SAY NAME1 ~Ted~ SAY NAME2 ~Ted~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBW7.CRE OVERRIDE // see her dialogue for name SAY NAME1 ~Sarah~ SAY NAME2 ~Sarah~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING LOUPGAR.CRE OVERRIDE // only used from spell cast by Mendas PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN SAY NAME1 ~Selaad Gan~ // or could be Mendas SAY NAME2 ~Selaad Gan~ // or could be Mendas END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BARWLF.CRE OVERRIDE // Baresh as loup garou PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN SAY NAME1 ~Baresh~ SAY NAME2 ~Baresh~ END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING DAESEWLF.CRE OVERRIDE // Daese as werewolf PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN SAY NAME1 ~Daese~ SAY NAME2 ~Daese~ END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING KAISHWLF.CRE OVERRIDE // Kaishas as loup garou PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN SAY NAME1 ~Kaishas Gan~ SAY NAME2 ~Kaishas Gan~ END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Minor Dialogue Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Minor Dialogue Restorations~ COMPILE ~bg1ub/dialogues/u!minor1.d~ ACTION_IF FILE_EXISTS_IN_GAME ~durlag.mve~ THEN BEGIN COMPILE ~bg1ub/dialogues/u!totscminor.d~ END COPY_EXISTING FTOBE5.CRE OVERRIDE ADD_CRE_ITEM RING01 #0 #0 #0 NONE ~LRING RRING~ COPY_EXISTING HALFG4.CRE OVERRIDE ADD_CRE_ITEM POTN40 #1 #0 #0 NONE ~QITEM1 QITEM2 QITEM3~ COPY_EXISTING HALFG6.CRE OVERRIDE ADD_CRE_ITEM SLNG02 #0 #0 #0 NONE ~WEAPON1 WEAPON2~ EQUIP COPY_EXISTING MTOB2.CRE OVERRIDE WRITE_LONG 0x1c 0x1 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTOB8.CRE OVERRIDE WRITE_LONG 0x1c 0x2 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MTOB9.CRE OVERRIDE WRITE_LONG 0x1c 0x1 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL10.CRE OVERRIDE ADD_CRE_ITEM AMUL07 #0 #0 #0 NONE AMULET COPY_EXISTING NOBL11.CRE OVERRIDE WRITE_LONG 0x1c 0xa BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL4.CRE OVERRIDE WRITE_LONG 0x1c 0x14 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING NOBL8.CRE OVERRIDE ADD_CRE_ITEM RING17 #0 #0 #0 NONE LRING COPY_EXISTING RAMAZI.CRE OVERRIDE ADD_CRE_ITEM BRAC02 #0 #0 #0 NONE ~INV1 INV5~ COPY_EXISTING SMITH.CRE OVERRIDE ADD_CRE_ITEM CHAN01 #0 #0 #0 NONE ~QITEM1 QITEM2 QITEM3~ // AR4200 Hobgoblin Fix, by Dudley~ // Author: Dudley // Email: // Website: http://www.dudleyville.com COPY_EXISTING HOBGO5.CRE OVERRIDE // Hobgoblin, AR4200 WRITE_ASCII 0x248 ~INITDLG~ // Allows him to initiate dialog WRITE_BYTE 0x270 0x80 // Changes him from Enemy to Neutral WRITE_BYTE 0x272 0x6f // Sets his race as Hobgoblin WRITE_ASCII 0x2cc ~UBHOBGO5~ // Sets his dialog file BUT_ONLY_IF_IT_CHANGES // Ike's reaction based costs, by Dudley~ // Author: Dudley // Email: // Website: http://www.dudleyville.com COPY_EXISTING IKE.CRE OVERRIDE // Ike, AR1000 PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN WRITE_ASCII 0x2cc ~UBIKE~ // Sets his dialog file END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Audio Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Audio Restorations~ // Author: devSin // Email: devsin@mac.com // Website: ///////////////////////////////////////////////////////// // Ajantis sound fix (duplicate, probably unused strings) STRING_SET 14399 ~There is not but good and evil, I suspect you are of the latter.~ [AJANT28] STRING_SET 14400 ~Evil must be purged wherever it is found, even among companions.~ [AJANT29] STRING_SET 14401 ~The stench of evil clings to you in the most vile manner.~ [AJANT30] STRING_SET 14402 ~I can bear no more. Raise your weapon and defend yourself.~ [AJANT31] ///////////////////// // Tanar'ri sound fix ACTION_IF FILE_EXISTS_IN_GAME ~durlag.mve~ THEN BEGIN STRING_SET 23827 ~[TANAR'RI 02] ~ [TANAR02] STRING_SET 23828 ~[TANAR'RI 06] ~ [TANAR06] STRING_SET 23829 ~[TANAR'RI 05] ~ [TANAR05] STRING_SET 23830 ~[TANAR'RI 04] ~ [TANAR04] STRING_SET 23831 ~[TANAR'RI 01] ~ [TANAR01] STRING_SET 23832 ~[TANAR'RI 03] ~ [TANAR03] END /////////////////////////// // Delsvirftanyon sound fix STRING_SET 4839 ~[DELSVIRFTANYON 1] Blast it thrice over! I am through with it I am so! 'Tis no livin' left here none!~ [DELSV01] STRING_SET 4842 ~[DELSVIRFTANYON 2] WHAT?! What and what now?!~ [DELSV02] STRING_SET 12532 ~[DELSVIRFTANYON 3]~ [DELSV03] STRING_SET 12533 ~[DELSVIRFTANYON 4]~ [DELSV04] /////////////////////////////// // Gandolar Luckyfoot sound fix STRING_SET 4843 ~[GANDOLAR LUCKYFOOT 1] Well met, traveler. Gandolar Luckyfoot, at your disposal.~ [GANDL01] STRING_SET 4844 ~[GANDOLAR LUCKYFOOT 2] Gullykin is our pride and joy. Treat her well.~ [GANDL02] STRING_SET 12534 ~[GANDOLAR LUCKYFOOT 3]~ [GANDL03] STRING_SET 12535 ~[GANDOLAR LUCKYFOOT 4]~ [GANDL04] //////////////////////////////// // Garrick sound fix (not funny) STRING_SET 3668 ~[GARRICK 13] 'Tis a beautiful day in the neighborhood. ~ [GARRK13] ///////////////////////////////////////////// // Xan sound fix (duplicate, probably unused) STRING_SET 14388 ~You could do us all a favor Eldoth, by getting killed in the next battle.~ [XANNN29] /////////////////// // Misc sound fixes STRING_SET 2913 ~You're a fool if you believe I would trust your benevolence. Step aside and you and your lackeys will be unhurt.~ [GORIN12] STRING_SET 5482 ~[TASLOI 00] ~ [TASLO01] STRING_SET 5962 ~[MUSTARD JELLY 08] ~ [MUSTR08] STRING_SET 11342 ~[Chanthalas 01] This way, good sir, over here!~ [GORIN14] STRING_SET 11393 ~[SHRIEK 1]~ [AMB_E06B] STRING_SET 11402 ~[METALLIC SOUND 3]~ [HIT_02D1] STRING_SET 11635 ~[VULTURE 2]~ [AMB_E43B] STRING_SET 11640 ~[GNOME FEMALE 3] The underground seems safer by far and gems to find are welcome, too.~ [GNOMF03] STRING_SET 12355 ~[GENERIC MALE INJURY 2]~ [MANLC04] //////////////////////////////////// // Restore Delsvirftanyon's soundset COPY_EXISTING DELSVIR.CRE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN SAY INITIAL_MEETING #4839 SAY DAMAGE #12532 SAY DYING #12533 SAY SELECT_COMMON1 #4842 END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Store, Tavern and Inn Fixes and Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Store, Tavern and Inn Fixes and Restorations~ COMPILE ~bg1ub/stores/ubstores.d~ ///////////////////////////////////////////////////////// // Restore Alvanhendar's healing and sundries in Gullykin STRING_SET 20713 ~Alvanhendar's Healing and Sundries~ ACTION_IF NOT FILE_EXISTS_IN_GAME ~TEM4003.sto~ THEN BEGIN // if Gullykin does not have a store already COPY_EXISTING ~TEM4802.sto~ ~override/TEM4003.sto~ // clones and renames Temple of Helm SAY 0x0C #20713 END COPY_EXISTING AR1306.ARE OVERRIDE // Change bartender so that TAV1215 can be renamed PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "BART16") BEGIN WRITE_ASCII actOff + 0x80 BART12 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0116.ARE OVERRIDE // Restore Helm and Cloak bartender PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "BART12") BEGIN WRITE_ASCII actOff + 0x80 BART9 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES //////////////////////////////////////////////////////////////////////////////////////// // Keexie Tavern COPY_EXISTING AR0154.ARE OVERRIDE // Assign correct bartender, Keexie Tavern downstairs PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "BART13") BEGIN WRITE_ASCII actOff + 0x80 BART15 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR0171.ARE OVERRIDE // Assign correct bartender, Keexie Tavern upstairs PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "BART11") BEGIN WRITE_ASCII actOff + 0x80 BART15 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAV0154.STO OVERRIDE // Keexie Tavern SAY 0x0C #20638 BUT_ONLY_IF_IT_CHANGES //////////////////////////////////////////////////////////////////////////////////////// // Elf Song COPY_EXISTING AR0705.ARE OVERRIDE // Restore Elfsong bartender // SAY 0x0C #11674 PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "BART11") BEGIN WRITE_ASCII actOff + 0x80 BART8 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAV0705.STO OVERRIDE // Elf Song SAY 0x0C #11674 BUT_ONLY_IF_IT_CHANGES //////////////////////////////////////////////////////////////////////////////////////// // Low Lantern COPY_EXISTING BART15.CRE ~OVERRIDE/UBBA0133.CRE~ WRITE_ASCII 0x2cc ~UBBA0133~ COPY_EXISTING AR0133.ARE OVERRIDE // Restore Low Lantern bartender PATCH_IF (SOURCE_SIZE > 0x11c) BEGIN READ_LONG 0x54 actOff FOR (READ_SHORT 0x58 numAct; numAct; numAct -= 0x1) BEGIN READ_ASCII actOff + 0x80 actor PATCH_IF !("%actor%" STRING_COMPARE_CASE "BART15") BEGIN WRITE_ASCII actOff + 0x80 UBBA0133 #8 END actOff += 0x110 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAV0133.STO OVERRIDE // Low Lantern SAY 0x0C #14976 BUT_ONLY_IF_IT_CHANGES //////////////////////////////////////////////////////////////////////////////////////// COPY_EXISTING INN4801.STO OVERRIDE // The Northern Light SAY 0x0C #11696 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR4800.ARE OVERRIDE // Nashkel SAY 0x28bc #11696 // Renames the area info trigger for the inn to say "The Northern Light" BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STO4906.STO OVERRIDE // Carnival Shop SAY 0x0C #11688 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STOBLACK.STO OVERRIDE SAY 0x0C ~Black Lily's Shop~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STOCHEAP.STO OVERRIDE // Lucky Aello's Discount Store SAY 0x0C #11818 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STOSILEN.STO OVERRIDE // Shop of Silence SAY 0x0C #20639 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAV0721.STO OVERRIDE // Tavern SAY 0x0C ~Tavern~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAV1215.STO OVERRIDE // Jopalin's Tavern SAY 0x0C #20640 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAV4809.STO OVERRIDE // The Belching Dragon SAY 0x0C #11764 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM0002.STO OVERRIDE SAY 0x0C ~The Watchful Shield~ BUT_ONLY_IF_IT_CHANGES COPY_EXISTING INN3304.STO OVERRIDE // Jovial Juggler WRITE_SHORT 0x10 0x4d // Allows purchasing items, stealing items, and identifying BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ULGOTH.STO OVERRIDE // Ulgoth's Beard Store and Inn PATCH_IF (SOURCE_SIZE > 0x78) BEGIN WRITE_SHORT 0x134 0x00 // Removes infinite flag for items with in-stock numbers: Throwing Axe WRITE_SHORT 0x230 0x00 // Darts WRITE_SHORT 0x24c 0x00 // Dart +1 WRITE_SHORT 0x268 0x00 // Dart of Stunning WRITE_SHORT 0x2d8 0x00 // Spear WRITE_SHORT 0x380 0x00 // Scimitar WRITE_SHORT 0x3d0 0x05 // Set quantity of arrows sold WRITE_SHORT 0x3d4 0x00 // Arrows WRITE_SHORT 0x424 0x05 // Set quantity of bolts sold WRITE_SHORT 0x428 0x00 // Bolts WRITE_SHORT 0x444 0x00 // Bolt +1 WRITE_SHORT 0x460 0x00 // Bolt of Lightning WRITE_SHORT 0x478 0x05 // Set quantity of bullets sold WRITE_SHORT 0x47c 0x00 // Bullets WRITE_SHORT 0x498 0x00 // Bullet +2 WRITE_SHORT 0x4e8 0x02 // Set quantity of hide armors sold WRITE_SHORT 0x4ec 0x00 // Hide armor END BUT_ONLY_IF_IT_CHANGES <<<<<<<< .../bg1ub/ub_ar4900.baf IF Global("UB_NASHKELMERCH1_SPAWN","AR4900",0) THEN RESPONSE #100 CreateCreature("MERCHA",[2825.3392],3) SetGlobal("UB_NASHKELMERCH1_SPAWN","AR4900",1) END IF Global("UB_NASHKELMERCH2_SPAWN","AR4900",0) THEN RESPONSE #100 CreateCreature("UBMERCH",[2329.3584],12) SetGlobal("UB_NASHKELMERCH2_SPAWN","AR4900",1) END >>>>>>>> EXTEND_BOTTOM AR4900.BCS ~.../bg1ub/ub_ar4900.baf~ COPY_EXISTING MERCH2.CRE ~OVERRIDE/UBMERCH.CRE~ WRITE_ASCII 0x2cc ~UBMERCH~ // Fixes the overused STO1115.STO file COPY_EXISTING STO1115.STO ~OVERRIDE/UBSTO01~ COPY_EXISTING STO1115.STO ~OVERRIDE/UBSTO02~ COPY_EXISTING STO1115.STO ~OVERRIDE/UBSTO03~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Item Corrections and Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Item Corrections and Restorations~ /////////////////////////////////////////////////////////////////////// // History of Waterdeep - Age III, The Bloody Reign of the Guildmasters <<<<<<<< .../bg1ub/bk_0101.baf IF Global("BG1UBBOOK65","AR2608",0) THEN RESPONSE #100 ActionOVERRIDE("Container 10",CreateItem("BOOK65",0,0,0)) SetGlobal("BG1UBBOOK65","AR2608",1) END >>>>>>>> EXTEND_TOP ~ar2608.bcs~ ~.../bg1ub/bk_0101.baf~ /////////////////////////////////////////////////// // Additional Durlag's Tower Book ("Seek No Heirs") <<<<<<<< .../bg1ub/bk_0102.baf IF Global("BG1UBBOOK80","AR0512",0) THEN RESPONSE #100 ActionOVERRIDE("Container 26",CreateItem("BOOK80",0,0,0)) SetGlobal("BG1UBBOOK80","AR0512",1) END >>>>>>>> EXTEND_TOP ~ar0512.bcs~ ~.../bg1ub/bk_0102.baf~ ////////////////////////////////////////////////// // Additional Durlag's Tower Book ("Know My Loss") <<<<<<<< .../bg1ub/bk_0103.baf IF Global("BG1UBBOOK85","AR0512",0) THEN RESPONSE #100 ActionOVERRIDE("Container 18",CreateItem("BOOK85",0,0,0)) SetGlobal("BG1UBBOOK85","AR0512",1) END >>>>>>>> EXTEND_TOP ~ar0512.bcs~ ~.../bg1ub/bk_0103.baf~ ////////////////// // Generic Bracers <<<<<<<< .../bg1ub/br_0101.baf IF Global("BG1UBBRAC05","AR3300",0) THEN RESPONSE #100 ActionOVERRIDE("Container 1",CreateItem("BRAC05",0,0,0)) SetGlobal("BG1UBBRAC05","AR3300",1) END >>>>>>>> EXTEND_TOP ~ar3300.bcs~ ~.../bg1ub/br_0101.baf~ //////////////////////////////// // Gauntlets of Weapon Expertise <<<<<<<< .../bg1ub/br_0102.baf IF Global("BG1UBBRAC10","AR1901",0) THEN RESPONSE #100 ActionOVERRIDE("Container 1",CreateItem("BRAC10",0,0,0)) SetGlobal("BG1UBBRAC10","AR1901",1) END >>>>>>>> EXTEND_TOP ~ar1901.bcs~ ~.../bg1ub/br_0102.baf~ COPY_EXISTING MISC1H.ITM OVERRIDE // Gong Mallet PATCH_IF (SOURCE_SIZE > 0x71) BEGIN WRITE_ASCII ~0x44~ ~GBLUN06~ // Assign GBLUN06.BAM as the ground icon END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SW2H05.ITM OVERRIDE // SAY NAME1 #16477 // Sets name to "Sword of Chaos" SAY NAME2 #16477 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING RNDTREAS.2DA OVERRIDE SET_2DA_ENTRY 1 8 10 ~AMUL02~ // Adds generic amulets to the Random Treasure table SET_2DA_ENTRY 1 9 10 ~RING01~ // Adds generic rings to the Random Treasure table BUT_ONLY_IF_IT_CHANGES COPY_EXISTING RNDSCROL.2DA OVERRIDE SET_2DA_ENTRY 4 10 20 ~SCRL2F~ // Adds the Cone of Cold scroll to the Random Scroll table BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SQUIRP.ITM OVERRIDE // Restores the Squirrel Paw icon (devSin) PATCH_IF (SOURCE_SIZE > 0x72) BEGIN // see if I can imitate Cam :D WRITE_ASCII 0x3a ISQUIRL #8 READ_SHORT 0x68 "num_abl" PATCH_IF ("%num_abl%" > 0x0) BEGIN READ_LONG 0x64 "abl_offset" WRITE_ASCII "%abl_offset%" + 0x4 ISQUIRL #8 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SPIN109.SPL OVERRIDE // Restores the unused Lay on Hands spell icon (devSin) PATCH_IF (SOURCE_SIZE > 0x72) BEGIN READ_LONG 0x64 ablOff FOR (READ_SHORT 0x68 numAbl; numAbl > 0x0; numAbl -= 0x1) BEGIN WRITE_ASCII ablOff + 0x4 SPIN109 #8 ablOff += 0x28 END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING MAGE02.ITM OVERRIDE SAY NAME2 ~Ring of Barkskin~ // Item originally did not have a name BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BOLT03.ITM OVERRIDE // Bolt of Lightning WRITE_ASCII 0x11e ~EFF_M22B~ // Replace invalid wav file reference BUT_ONLY_IF_IT_CHANGES COPY_EXISTING POTN41.ITM OVERRIDE // Potion of Power PTION41.ITM OVERRIDE WRITE_ASCII 0x44 ~GPOTN01~ // Corrected ground icon BUT_ONLY_IF_IT_CHANGES COPY_EXISTING PTION41.ITM OVERRIDE // Potion of Power WRITE_ASCII 0x58 ~CPOTN41~ #8 // Assigns a description icon BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BLUN06.ITM OVERRIDE // Morningstar WRITE_ASCII 0x22 ~MS~ // Changes Inventory Icon ID from Mace to Morningstar BUT_ONLY_IF_IT_CHANGES // Weapon colouration now works. Thanks, CamDawg! COPY_EXISTING BLUN06.ITM OVERRIDE // Morningstar BLUN10.ITM OVERRIDE // The Root of the Problem HELM14.ITM OVERRIDE // Kiel's Helmet PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files READ_LONG 0x6a "fx_off" READ_SHORT 0x70 "fx_num" FOR (index = 0; index < "%fx_num%"; index = index + 1) BEGIN // searches through global effects WRITE_BYTE ("%fx_off%" + 0x0c + ("%index%" * 0x30)) 2 // instant/while equipped WRITE_LONG ("%fx_off%" + 0x0e + ("%index%" * 0x30)) 0 // duration END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING BISHOP.CRE OVERRIDE // Durlag's Tower Bishop PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN ADD_CRE_ITEM ~SCRL62~ #1 #0 #0 ~IDENTIFIED~ ~INV1 INV2~ // Adds scroll of Flamestrike to inventory (Andyr) END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING LAMALH.CRE OVERRIDE // Lamahla ADD_CRE_ITEM ~SCRL62~ #1 #0 #0 ~IDENTIFIED~ ~INV1 INV2~ // Adds scroll of Flamestrike to inventory (Andyr) BUT_ONLY_IF_IT_CHANGES COPY_EXISTING KIVAN.CRE OVERRIDE // Kivan KIVAN4.CRE OVERRIDE KIVAN6.CRE OVERRIDE CORAN.CRE OVERRIDE // Coran CORAN5.CRE OVERRIDE ADD_CRE_ITEM ~BRAC05~ #1 #0 #0 ~IDENTIFIED~ ~GLOVES~ // Assigns generic bracers BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ALDETH.CRE OVERRIDE // Aldeth Sashenstar ADD_CRE_ITEM ~ALDETH~ #0 #0 #0 ~IDENTIFIED~ ~RRING LRING~ // Assign Aldeth's Ring to a ring slot BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HENTOL.CRE OVERRIDE // Hentold ADD_CRE_ITEM ~DAGG08~ #0 #0 #0 ~IDENTIFIED~ ~INV1 INV5~ // Assign Hentold's Dagger to his inventory BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AMARAN.CRE OVERRIDE // Amarande, the Arch Druid READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN // searches through items READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "STAF01" = 0) BEGIN // Replaces the Quarterstaff WRITE_ASCII ("%itm_off%" + (0x14 * "%index%")) "blun10" #8 // Assigns "The Root of the Problem" SET "index" = "%itm_num%" // kills loop END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING SENDAI.CRE OVERRIDE // Sendai Argrim READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN // searches through items READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "SW1H05" = 0) BEGIN // Replace Long Sword +1 WRITE_ASCII ("%itm_off%" + (0x14 * "%index%")) "SW1H22" #8 // Assigns Scimitar +1 (Tutu Tweaks: CamDawg) SET "index" = "%itm_num%" // kills loop END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING KNIGHTSK.CRE OVERRIDE // Undead Knight, AR5201 (Firewine Ruins) READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN // searches through items READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "SPER01" = 0) BEGIN // Replace Spear WRITE_ASCII ("%itm_off%" + (0x14 * "%index%")) "SPER03" #8 // Assigns Spear +3, Backbiter SET "index" = "%itm_num%" // kills loop END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING KNIGHT6.CRE OVERRIDE // Ghost Knight, AR5201 (Firewine Ruins) READ_LONG 0x2bc "itm_off" ELSE 0 READ_LONG 0x2c0 "itm_num" ELSE 0 FOR (index = 0 ; index < itm_num ; index = index + 1) BEGIN // searches through items READ_ASCII ("%itm_off%" + (0x14 * "%index%")) "item" PATCH_IF ("%item%" STRING_COMPARE_CASE "BOW07" = 0) BEGIN // Replace Longbow of Marksmanship WRITE_ASCII ("%itm_off%" + (0x14 * "%index%")) "BOW04" #8 // Assigns Long Bow +1 SET "index" = "%itm_num%" // kills loop END END WRITE_BYTE 0x430 0x2 // Sets item as unstealable BUT_ONLY_IF_IT_CHANGES COPY_EXISTING INN3351.STO OVERRIDE // Feldepost's Inn ADD_STORE_ITEM ~HELM06~ AFTER ~BRAC01~ #1 #1 #1 ~IDENTIFIED~ #1 // Helmet of Charm Protection BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STOCHEAP.STO OVERRIDE // Lucky Aello's ADD_STORE_ITEM ~LEAT06~ LAST #1 #1 #1 ~IDENTIFIED~ #1 // Studded Leather Armor +2 : Missle Attraction BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM0002.STO OVERRIDE // The Watchful Shield (Temple of Helm, AR0002: BG) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL62~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #3 // Flame Strike scroll, qty 3 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL62~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5F~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL5F~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM0131.STO OVERRIDE // High Hall of Wonders (Temple of Gond, AR0131: BG) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5F~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL5F~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM0132.STO OVERRIDE // Lady's Hall (Temple of Tymora, AR0132: BG) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL5f~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM2304.STO OVERRIDE // Temple of Wisdom (Temple of Garl Glittergold, AR2304: FAI) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5F~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL5F~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM2601.STO OVERRIDE // Oghma Temple (Temple of Oghma, AR2600: Candlekeep) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM3402.STO OVERRIDE // Song of the Morning (Temple of Lathander, AR3402: West of Beregost) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5F~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL5F~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TEM4802.STO OVERRIDE // Temple of Helm (Temple of Helm, AR4802: Nashkel) ADD_STORE_ITEM ~SCRL61~ LAST #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL62~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #1 // Flame Strike scroll, qty 1 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL62~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5F~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL5F~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ULGOTH.STO OVERRIDE // Ulgoth's Beard Store and Inn PATCH_IF (SOURCE_SIZE > 0x74) BEGIN ADD_STORE_ITEM ~SCRL2D~ AFTER ~SCRL5I RING21~ #1 #1 #1 ~IDENTIFIED~ #1 // Animate Dead scroll, qty 1 ADD_STORE_ITEM ~SCRL2F~ AFTER ~SCRL2D~ #1 #1 #1 ~IDENTIFIED~ #1 // Cone of Cold scroll, qty 1 ADD_STORE_ITEM ~SCRL2H~ AFTER ~SCRL2F~ #1 #1 #1 ~IDENTIFIED~ #1 // Shadow Door scroll, qty 1 ADD_STORE_ITEM ~SCRL5L~ AFTER ~SCRL2H~ #1 #1 #1 ~IDENTIFIED~ #1 // Polymorph Other scroll, qty 1 ADD_STORE_ITEM ~SCRL61~ AFTER ~SCRL5L~ #1 #1 #1 ~IDENTIFIED~ #5 // Cure Critical Wounds, qty 5 ADD_STORE_ITEM ~SCRL62~ AFTER ~SCRL61~ #1 #1 #1 ~IDENTIFIED~ #1 // Flame Strike scroll, qty 1 ADD_STORE_ITEM ~SCRL63~ AFTER ~SCRL62~ #1 #1 #1 ~IDENTIFIED~ #3 // Raise Dead scroll, qty 3 ADD_STORE_ITEM ~SCRL5F~ AFTER ~SCRL63~ #1 #1 #1 ~IDENTIFIED~ #5 // Chaotic Commands, qty 5 ADD_STORE_ITEM ~SCRL5E~ AFTER ~SCRL5F~ #1 #1 #1 ~IDENTIFIED~ #5 // Champion's Strength, qty 5 ADD_STORE_ITEM ~BOLT05~ AFTER ~BOLT03~ #1 #1 #1 ~IDENTIFIED~ #10 // Bolt of Polymorphing, qty 10 ADD_STORE_ITEM ~BRAC05~ AFTER ~RING21~ #1 #1 #1 ~IDENTIFIED~ #1 // Bracers ADD_STORE_ITEM ~BELT01~ AFTER ~BRAC05~ #1 #1 #1 ~IDENTIFIED~ #1 // Girdle END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING ERDANE.STO OVERRIDE // Erdane PATCH_IF (SOURCE_SIZE > 0x74) BEGIN ADD_STORE_ITEM ~BOLT05~ AFTER ~BOLT03~ #1 #1 #1 ~IDENTIFIED~ #60 // Bolt of Polymorphing, qty 60 ADD_STORE_ITEM ~BRAC05~ LAST #1 #1 #1 ~IDENTIFIED~ #1 // Bracers ADD_STORE_ITEM ~BELT01~ AFTER ~BRAC05~ #1 #1 #1 ~IDENTIFIED~ #1 // Girdle END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING HIGHHEDG.STO OVERRIDE // High Hedge ADD_STORE_ITEM ~BOLT05~ AFTER ~BOLT04~ #1 #1 #1 ~IDENTIFIED~ #200 // Bolt of Polymorphing, qty 200 BUT_ONLY_IF_IT_CHANGES COPY_EXISTING FRIEND.STO OVERRIDE // Friendly Arm Inn ADD_STORE_ITEM ~XBOW02~ AFTER ~XBOW04~ #1 #1 #1 ~IDENTIFIED~ #1 // Heavy Crossbow +1, qty 1 ADD_STORE_ITEM ~BRAC05~ LAST #1 #1 #1 ~IDENTIFIED~ #1 // Bracers ADD_STORE_ITEM ~BELT01~ AFTER ~BRAC05~ #1 #1 #1 ~IDENTIFIED~ #1 // Girdle BUT_ONLY_IF_IT_CHANGES COPY_EXISTING INN2616.STO OVERRIDE // Candlekeep Inn INN3304.STO OVERRIDE // Jovial Juggler STO1112.STO OVERRIDE // General Store STO1320.STO OVERRIDE // General Store ADD_STORE_ITEM ~BRAC05~ LAST #1 #1 #1 ~IDENTIFIED~ #1 // Bracers ADD_STORE_ITEM ~BELT01~ AFTER ~BRAC05~ #1 #1 #1 ~IDENTIFIED~ #1 // Girdle BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STO4803.STO OVERRIDE // Nashkel Store ADD_STORE_ITEM ~BRAC05~ LAST #1 #1 #1 ~IDENTIFIED~ #1 // Bracers ADD_STORE_ITEM ~BELT01~ AFTER ~BRAC05~ #1 #1 #1 ~IDENTIFIED~ #1 // Girdle BUT_ONLY_IF_IT_CHANGES COPY_EXISTING TAERUM.STO OVERRIDE // Thunderhammer Smithy ADD_STORE_ITEM ~BRAC05~ AFTER ~BULL02 PLAT04A~ #1 #1 #1 ~IDENTIFIED~ #1 // Bracers ADD_STORE_ITEM ~BELT01~ AFTER ~BRAC05~ #1 #1 #1 ~IDENTIFIED~ #1 // Girdle BUT_ONLY_IF_IT_CHANGES COPY_EXISTING STO0703.STO OVERRIDE // Sorcerous Sundries ADD_STORE_ITEM ~BOLT05~ AFTER ~BOLT04~ #1 #1 #1 ~IDENTIFIED~ #100 // Bolt of Polymorphing, qty 60 BUT_ONLY_IF_IT_CHANGES // Removes the following sentence from the description of Bala's Axe: "The axe gives the owner the ability to dispel magic once a day." STRING_SET 21957 ~Bala's Axe - Wizard Slayer: Bala was a foul-tempered prince of a gully dwarf clan, which was enslaved by a cruel elven mage in Thesk. Though Bala managed to escape the more cowardly traits of his race he was even more filthy and obnoxious than the average gully dwarf. Sickened of his enslavement, Bala crept into the mage's lair and cracked the elf's skull open. Although rumor has it that it was the dwarf's stench that overcame the mage, it was, in fact, his enchanted axe that dispelled the elf's magical defenses. It is obvious from the poor workmanship that Bala himself crafted the axe. The mystery lies in where its power originates. After a lengthy career of mage-slaying, Bala died, never having revealed his secret to those who were willing to risk a lice infestation by approaching him. Some say that the axe was powered by Bala's intense hatred of wizards. STATISTICS: Damage: 1D8 Damage type: slashing Special: Miscast Magic affects victim on each successful hit Miscast Magic: Any spell casting creature that is affected by this spell has its casting ability severely disabled. When the creature attempts to cast a spell it has an 80% chance of failure. Creatures can save vs spells to avoid the affect, but do so at -2. Weight: 6 Speed Factor: 7 Proficiency Type: Axe Type: 1-handed Not Usable By: Druid Cleric Mage Thief~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Area Corrections and Restorations \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Area Corrections and Restorations~ ///////////////////////////////// // Restore the Halfling Enforcers // Fixes the HALFEN dialog so that it, you know, works (thanks, idobek!) COMPILE ~bg1ub/area/ubarea.d~ // Script to spawn Halfling Enforcers if caught stealing COPY_EXISTING AR4002.ARE OVERRIDE // Gullykin house WRITE_ASCII 0x64c ~ACT13~ #8 // LChest BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR4008.ARE OVERRIDE // Gullykin house WRITE_ASCII 0x630 ~ACT13~ #8 // LChest BUT_ONLY_IF_IT_CHANGES COPY_EXISTING AR4010.ARE OVERRIDE // Gullykin house WRITE_ASCII 0x520 ~ACT13~ #8 // LChest BUT_ONLY_IF_IT_CHANGES //////////////////////////////// // Firedrake Script Restorations COPY_EXISTING AR0512.ARE OVERRIDE // Durlag's Tower, Firedrake Statue Room PATCH_IF (SOURCE_SIZE > 0xc8) BEGIN WRITE_ASCII 0x42dc ~FDRAKET1~ // Firedrake Trap 1, sets new script WRITE_ASCII 0x43a0 ~FDRAKET2~ // Firedrake Trap 2, sets new script WRITE_ASCII 0x4464 ~FDRAKET3~ // Firedrake Trap 3, sets new script WRITE_ASCII 0x4528 ~FDRAKET4~ // Firedrake Trap 4, sets new script WRITE_ASCII 0x45ec ~FDRAKET5~ // Firedrake Trap 5, sets new script WRITE_ASCII 0x46b0 ~FDRAKET6~ // Firedrake Trap 6, sets new script END BUT_ONLY_IF_IT_CHANGES // Game Crash When Entering Area AR0717 Fix // Author: Idobek // Email: idobek@gibberlings3.net // Website: http://www.gibberlings3.net COPY_EXISTING ~ar0717.are~ ~override~ READ_LONG 0x54 "actorsoffset" READ_SHORT 0x58 "#actors" WHILE ("%#actors%" > 0) BEGIN SET "actor" = ("%actorsoffset%" + ("%#actors%" - 1) * 0x110) READ_LONG ("%actor%" + 0x80) "actorresref1" READ_LONG ("%actor%" + 0x84) "actorresref2" WHILE ("%actorresref1%" = 0x4c524947) AND ("%actorresref2%" = 0x00314142) BEGIN WRITE_ASCII ("%actor%" + 0x80) ~GIRBA1~ WRITE_SHORT ("%actor%" + 0x86) 0x0000 READ_LONG ("%actor%" + 0x80) "actorresref1" READ_LONG ("%actor%" + 0x84) "actorresref2" END SET "#actors" = ("%#actors%" - 1) END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Permanent Corpses \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Permanent Corpses~ // Author: devSin // Email: devsin@mac.com // Website: COPY_EXISTING CATDEAD.CRE OVERRIDE CORPSE1.CRE OVERRIDE CORPSE2.CRE OVERRIDE DEAD.CRE OVERRIDE DEAD1.CRE OVERRIDE DEAD2.CRE OVERRIDE DEADFUCK.CRE OVERRIDE HALFMIRI.CRE OVERRIDE SKELDED.CRE OVERRIDE PATCH_IF (SOURCE_SIZE > 0x2d4) BEGIN READ_BYTE 0x10 flag WRITE_BYTE 0x10 flag | 0x4 // Makes the corpses permanent END BUT_ONLY_IF_IT_CHANGES /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Elven Charm & Sleep Racial Immunity \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Elven Charm and Sleep Racial Immunity~ // Author: CamDawg // Email: webmaster@gibberlings3.net // Website: http://www.gibberlings3.net // Originally part of the Tutu Tweak Pack and the G3 Tweak Pack COPY_EXISTING SPIN108.SPL OVERRIDE // Charm Animal SPIN119.SPL OVERRIDE // Charm Person SPPR102.SPL OVERRIDE // Command SPPR204.SPL OVERRIDE // Charm Person or Mammal SPPR405.SPL OVERRIDE // Mental Domination SPPR982.SPL OVERRIDE // Dire Charm SPWI004.SPL OVERRIDE // Stinking Cloud SPWI104.SPL OVERRIDE // Charm Person SPWI105.SPL OVERRIDE // Color Spray SPWI116.SPL OVERRIDE // Sleep SPWI213.SPL OVERRIDE // Stinking Cloud SPWI316.SPL OVERRIDE // Dire Charm SPWI411.SPL OVERRIDE // Emotion SPWI506.SPL OVERRIDE // Domination SPWI929.SPL OVERRIDE // Charm Person SPWI930.SPL OVERRIDE // Charm Person SPWI939.SPL OVERRIDE // ?? SPWI943.SPL OVERRIDE // Dire Charm SPWI996.SPL OVERRIDE // ?? PATCH_IF (SOURCE_SIZE > 0x70) BEGIN READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" SET "abil_length" = 0x28 SET "fx_delta" = 0 FOR (index = 0 ; index < abil_num ; index = index + 1) BEGIN // start iterating through abilities READ_SHORT ("%abil_off%" + 0x1e + ("%abil_length%" * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%abil_length%" * "%index%")) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%fx_delta%") WRITE_SHORT ("%abil_off%" + 0x20 + ("%abil_length%" * "%index%")) ("%abil_fx_idx%") FOR (index2 = 0 ; index2 < abil_fx_num ; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" PATCH_IF (("%opcode%" = 39) OR ("%opcode%" = 5)) BEGIN // if there's a sleep or charm opcode READ_BYTE ("%fx_off%" + 0x02 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "target" READ_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "power" READ_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "prob1" READ_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "prob2" PATCH_IF ("%opcode%" = 5) BEGIN // if charm SET "new_fx" = 12 END ELSE BEGIN SET "new_fx" = 10 END SET "fx_delta" = "%fx_delta%" + "%new_fx%" FOR (index4 = 2 ; index4 < 4 ; index4 = index4 + 1) BEGIN FOR (index3 = 0 ; index3 < (("%new_fx%" / 2)) ; index3 = index3 + 1) BEGIN INSERT_BYTES ("%fx_off%" + (0x30 * "%abil_fx_idx%")) 0x30 // insert new effect WRITE_SHORT ("%fx_off%" + (0x30 * "%abil_fx_idx%")) 177 // use eff file WRITE_BYTE ("%fx_off%" + 0x02 + (0x30 * "%abil_fx_idx%")) "%target%" // preserve target WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * "%abil_fx_idx%")) "%power%" // preserve power WRITE_LONG ("%fx_off%" + 0x04 + (0x30 * "%abil_fx_idx%")) "%index4%" // elf or half elf WRITE_LONG ("%fx_off%" + 0x08 + (0x30 * "%abil_fx_idx%")) 4 // race.ids WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * "%abil_fx_idx%")) ("%prob2%" + ((21 - ("%index4%" * 6)) * ("%prob1%" - "%prob2%") / 10)) // 90% WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * "%abil_fx_idx%")) "%prob2%" // base prob WRITE_EVALUATED_ASCII ("%fx_off%" + 0x14 + (0x30 * "%abil_fx_idx%")) ~cdelfcm%index3%~ // eff file PATCH_IF ("%opcode%" = 39) BEGIN WRITE_ASCII ("%fx_off%" + 0x19 + (0x30 * "%abil_fx_idx%")) ~sl~ #2 // eff file END END END SET "index2" = "%index2%" + "%new_fx%" SET "abil_fx_num" = "%abil_fx_num%" + "%new_fx%" END END WRITE_SHORT ("%abil_off%" + 0x1e + ("%abil_length%" * "%index%")) "%abil_fx_num%" END END BUT_ONLY_IF_IT_CHANGES COPY_EXISTING CLCK07.ITM OVERRIDE // Nymph Cloak CLCK08.ITM OVERRIDE // Algernon's Cloak MISC2P.ITM OVERRIDE // Greagan's Harp RING03.ITM OVERRIDE // Ring of Animal Friendship SLEEP.ITM OVERRIDE // ?? WAND08.ITM OVERRIDE // Wand of Sleep PATCH_IF (SOURCE_SIZE > 0x70) BEGIN READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" SET "abil_length" = 0x38 SET "fx_delta" = 0 FOR (index = 0; index < abil_num; index = index + 1) BEGIN // start iterating through abilities READ_SHORT ("%abil_off%" + 0x1e + ("%abil_length%" * "%index%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%abil_length%" * "%index%")) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%fx_delta%") WRITE_SHORT ("%abil_off%" + 0x20 + ("%abil_length%" * "%index%")) ("%abil_fx_idx%") FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" PATCH_IF (("%opcode%" = 39) OR ("%opcode%" = 5)) BEGIN // if there's a sleep or charm opcode READ_BYTE ("%fx_off%" + 0x02 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "target" READ_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "prob1" READ_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "prob2" PATCH_IF ("%opcode%" = 5) BEGIN // if charm SET "new_fx" = 12 END ELSE BEGIN SET "new_fx" = 10 END SET "fx_delta" = "%fx_delta%" + "%new_fx%" FOR (index4 = 2; index4 < 4; index4 = index4 + 1) BEGIN FOR (index3 = 0; index3 < (("%new_fx%" / 2)); index3 = index3 + 1) BEGIN INSERT_BYTES ("%fx_off%" + (0x30 * "%abil_fx_idx%")) 0x30 // insert new effect WRITE_SHORT ("%fx_off%" + (0x30 * "%abil_fx_idx%")) 177 // use eff file WRITE_BYTE ("%fx_off%" + 0x02 + (0x30 * "%abil_fx_idx%")) "%target%" // preserve target WRITE_LONG ("%fx_off%" + 0x04 + (0x30 * "%abil_fx_idx%")) "%index4%" // elf or half elff WRITE_LONG ("%fx_off%" + 0x08 + (0x30 * "%abil_fx_idx%")) 4 // race.ids WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * "%abil_fx_idx%")) ("%prob2%" + ((21 - ("%index4%" * 6)) * ("%prob1%" - "%prob2%") / 10)) // 90% WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * "%abil_fx_idx%")) "%prob2%" // base prob WRITE_EVALUATED_ASCII ("%fx_off%" + 0x14 + (0x30 * "%abil_fx_idx%")) ~cdelfcm%index3%~ // eff file PATCH_IF ("%opcode%" = 39) BEGIN WRITE_ASCII ("%fx_off%" + 0x19 + (0x30 * "%abil_fx_idx%")) ~sl~ #2 // eff file END END END SET "index2" = "%index2%" + "%new_fx%" SET "abil_fx_num" = "%abil_fx_num%" + "%new_fx%" END END WRITE_SHORT ("%abil_off%" + 0x1e + ("%abil_length%" * "%index%")) "%abil_fx_num%" END END BUT_ONLY_IF_IT_CHANGES COPY ~bg1ub/elfcharm~ ~OVERRIDE~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// The Original Saga Music Playlist Corrections \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~The Original Saga Music Playlist Corrections~ // Author: Dudley // Email: // Website: http://www.dudleyville.com COPY ~bg1ub/music~ ~MUSIC~ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ ///// \\\\\ ///// Sarevok's Diary Corrections \\\\\ ///// \\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ BEGIN ~Sarevok's Diary Corrections~ // Author: SixOfSpades // Email: sixospades@yahoo.com // Website: http://www.geocities.com/sixospades/bg/bgguide.htm STRING_SET 1355 ~They are led by Sarevok Anchev.~ STRING_SET 1359 ~A man named Sarevok Anchev is responsible for the frame.~ STRING_SET 7238 ~The seer told us that the leader of the Iron Throne was Sarevok Anchev.~ STRING_SET 7243 ~The seer tells us that Sarevok Anchev was the man who framed us for the murders at Candlekeep.~ COPY_EXISTING SCRL2S.ITM OVERRIDE // Note for Davaeorn #1 SAY 0x50 ~[Note for Davaeorn 1]Davaeorn, I have received your request for extra slaves. They will be sent as soon as possible. Events go well in Baldur's Gate. We have purchased one of the western noble estates to use as our base of operations. It is an ancient building, most likely constructed before the erection of the second wall. Its construction makes it very defensible against those who would thieve it. Remember to ask Yeslick if he enjoys his new accommodations. Rieltar. Eleint 14, 1367~ COPY_EXISTING SCRL2T.ITM OVERRIDE // Note for Davaeorn #2 SAY 0x50 ~[Note for Davaeorn 2]Davaeorn, Our plans go smoothly. Sarevok has arrived from our headquarters in Ordulin. He brings news from our superiors; they are pleased with our progress so far. I plan to place Sarevok as the commander of our mercenary forces in the region. He has already sent his subordinate, Tazok, to the Wood of Sharp Teeth to take command of the forces located there. Things go apace here in Baldur's Gate. We have placed our first agent among the ranks of the Seven Suns trading coster. Rieltar. Uktar 4, 1367~ COPY_EXISTING SCRL2U.ITM OVERRIDE // Note for Davaeorn #3 SAY 0x50 ~[Note for Davaeorn 3]Davaeorn, As you have probably heard, the iron poison has begun to take effect around the coast. With the majority of iron imports being disrupted by Tazok, almost all of it comes from the tainted source in Nashkel. The Sythillisian uprising in Amn has ensured that no forces from that nation will be able to take action against our mercenary forces. However, the Flaming Fist has caught several of the Black Talon mercenaries. All of those captured have claimed allegiance with the Zhentarim and have thus shifted any suspicion away from the Iron Throne. I have sent Tranzig to work with the mercenaries in transporting the iron to your base in Cloakwood. He has brought several bags of holding so that he, alone, will make trips into Cloakwood, thereby lessening the chance that Flaming Fist trackers might find your stronghold. Rieltar. Ches 21, 1368~ COPY_EXISTING SCRL3F.ITM OVERRIDE // Sarevok's Diary WRITE_SHORT 0x1c 0x25 // Sets item category from Scrolls to Books WRITE_BYTE 0x4c 0x08 // Sets weight to 8 lbs SAY 0x50 ~The Personal Diary of Sarevok This diary looks to be important. You should probably keep it on your person, as it could be a key piece of incriminating evidence regarding Sarevok's involvement in the iron crisis and bandit raids, as well as some rather interesting insight into his murderous heritage. Some of the more relevant entries are as follows: 21st of Nightal, 1366: Father seems to be plotting something major, but as usual, he is not revealing any details of the plan to me. The conversations in his study lately have tended toward the Cloakwood and its natural defenses, and pumping water from caves. I have been able to piece together nothing from this, nor do I know the men who have been visiting him. This will change. 11th of Ches, 1367: Another violent dream. I was a boy again, and a dog was barking at me, so I killed it with the dagger I found in my hand, the same bone dagger from the other dreams. Mother started to chastise me, and I ripped out her throat. Her blood was fresh, but I already had old blood on my hands, and my fingers had strangely turned into claws. The dog's head came back to life; its eyes were solid black. "Like father, like son," it said. I felt quite calm during the dream, but when I awoke I found I had been crying. Is this weakness? I must expunge it. 14th of Mirtul, 1367: The ceremony marking the completion of my Deathbringer training seemed rather anticlimactic to me, but my performance seems to have impressed Father. He took me aside and informed me that tomorrow, he shall reveal to me what he has been plotting these past few months, and even grant me a major role in it, if his associates agree. He assures me that it is a far-reaching plan, and I should not be disappointed with my responsibilities. My interest is quite piqued. Cythandria was also quite pleased with my display this morning, so much so that it took her hours to fully express her appreciation. When we first grew close, I remember how glad I was to find someone who was not repulsed by my affinity for death, but tonight I realized that her thirst is not like mine after all: She has no real desire to get in close and perform the deed herself, she prefers to derive her thrill vicariously. And whether she feels the genuine rush of bloodlust as I do, or if she merely thinks of it as a way to excite her arousal, I am not sure. . . but I fear it is the latter. 15th of Mirtul, 1367: Father has finally informed me of his secret, and frankly, it sounds rather pathetic, not worth any excitement at all. All Father has is the location of a mine concealed deep in the Cloakwood, unknown to anyone else but the virtually extinct Orothiar dwarf clan, and according to them still rich in iron ore when it was accidentally flooded years ago. Bah. Iron?! I had guessed something similar, but from all of Father's caution and secrecy, I was anticipating a treasure much more glamorous than a stupid iron mine. Where is the glorious blood-rush that awaits me? I did not spend years of combat training just to assist in Father's counting-house. I feel the need for a challenge much more exciting than the rabble I have been wasting my skills on. I feel the need to finally slay something worthy of the strength I have been sensing awakening within me. 8th of Flamerule, 1367: Today, Father introduced me to his subordinates Davaeorn and Tranzig, who have made the journey to the hidden mine and confirmed that it could be put into use once again. This evening, I was approached on the street by a ragged beggarly man who would not give his name, but thrust a book into my hands and said he would be back. The book is worthless, a common third-rate account of the Time of Troubles, and in horrible condition as well; nearly every single page is torn in some way. Yet something about the man tells me he was more than a simple lunatic. 9th of Flamerule, 1367: This night's dream was very strange: it was back in the temple, except that every single priestess had MY face, and held an identical bone dagger. I looked toward the altar where I had always been before, but instead of ME tied to the stone slab, it was the tattered book from yesterday. I had a dagger too, and when I stabbed the book, it bled. The blood, and then the book itself, dissolved into a sort of magical energy which overflowed the gutters in the altar and then evaporated into the air. I awoke to what felt like an icy grip trying to shatter my heart. I immediately examined the book again. It was damaged deliberately: no two rips line up, and the only pages that were NOT torn have to do with the killing of Bhaal and his efforts to ensure his legacy. The more I think about what this might mean, the more I hesitate to write it down, even here. 14th of Eleint, 1367: Cormyr has instituted a ban against the Iron Throne from operating within their borders. While this is a great blow to the Iron Throne, it is the perfect opportunity for father to approach the Throne high council with his proposal. If things go well, we could begin the operation within the year. In more personal matters, my curiosity about my ancestry grows unceasingly; I simply must know if the dreams speak the truth. I will not believe the words of phantoms without proof, but the Priest of Bhaal I confronted today gave me nothing: he was old and died quickly in my grasp. If the words are true, I shall surely groom stronger acolytes than this. 20th of Eleint, 1367: The ragged man has finally reappeared, this time without his disguise. He gives the name of Winski Perorate, and confirms my suspicions: I am indeed one of the fallen Bhaal's many offspring. He claims to have been apprenticed to a Deathstalker, and therefore knows the signs. He has spent the past few years on the move, tracking down as many of the children as he can, but it seems that I am the most promising of them all, and he apparently intends to train me as his sole pupil. He has already informed me that I could not have chosen a more appropriate path than that of Deathbringer. I think I shall enjoy this very much. 28th of Eleint, 1367: Davaeorn reports that the mines at Cloakwood have been drained and are ready for use. This revelation should help greatly in convincing the Throne high council. Rieltar is setting up a base in Baldur's Gate, in the mansion of a destitute noble family, and everything is running smoothly. 19th of Marpenoth, 1367: The Iron Throne council has agreed to support father's plan. He has been given all the resources he needs, as well as leadership of the project. I have expressed interest to my 'father', and as promised, he is including me within the operations along the Sword Coast. He is sending me, as his representative, to make contact with some of the mercenary groups operating to the east. He mentioned mother in our conversation: how I wasn't to be disloyal to him as she had. He made it clear that I would suffer her fate if I was. His threats are weak and hollow, and I shall listen to them for only so long. I am tempted to take the opportunity to make a side visit to Candlekeep on the return trip. There are some things about my heritage that even Winski does not know, and the exact text of the prophecies of Alaundo should prove most illuminating. 30th of Marpenoth, 1367: I met with the leaders of the Chill, and Black Talons. I have little liking for Ardenor, commander of the Chill, but Taugosz seems to be a man of his word. It is a good thing, as I'll have to work with these mercenaries for the full duration: Rieltar is even supporting placing me in command of this entire wing of the operation. But it would not do, of course, for the adopted son of an Iron Throne leader to be seen visiting the bandits, so I have chosen the half-ogre Tazok as my figurehead; his abilities and loyalty to me are very satisfactory. 3rd of Uktar, 1367: A new dream this night. Mother was talking to me, but as she did her face became bloated and discolored. Her voice became weaker as she spoke to me, telling me to save her from Rieltar. I could see the garrote cutting into her neck, but I did nothing. It was only a dream. 8th of Uktar, 1367: Today I returned to our newly-completed headquarters in Baldur's Gate and reported to Rieltar. The fool still insists on calling me his son, and for now I will let him. He assumes that I am loyal to him because he raised me. Well, loyal I am, but only as long as he is useful. He has indeed placed me in full command of the mercenary operations, while he supervises the doppelganger intrigues and Davaeorn oversees the mining angle. The demonstration of the mineral poison was most impressive. 9th of Uktar, 1367: Winksi has similarly occupied himself well during my absence, and today presented me with the location of a nearby sect of Cyricists, who have made a particular practice of researching everything they can about Bhaal, and especially his successor. It only makes sense that Cyric would be very interested in the offspring of his fallen foe, rising to reclaim his portfolio. Winski wants to capture one or more of their leaders and extract their knowledge from them, but I say we should shoot higher and interrogate them all. But that requires more than just two people, so I shall begin carefully selecting followers. Though I fully realize that my heritage should remain a general secret, especially from Rieltar, it is time that the Son of Murder had the acolytes he deserves. 14th of Uktar, 1367: Cythandria reacted to my revelation exactly as I thought she would: She immediately saw herself as a queen or an idol of worship, the only fitting roles for the consort of the Lord of Murder. Only after several minutes of imagining life seated at my right hand did she think to pay me any proper homage or obesiance. If I had the luxury of choice, I would not have to put up with this kind of attitude, but I need to establish a power base of my own, so I shall tolerate it. . . for now. There will be time for correction later. Feast of the Moon, 1367: The Cyricists are ours, and we have begun pumping them for information, with Zhalimar taking over whenever other matters call me away. I have ordered that the younger members be kept alive, except to serve as useful examples to motivate the elder priests to be more forthcoming. What Winski is most concerned about is that some mysterious "ward of Gorion" is mentioned in the prophecies, and is said to play a major role in the succession to Bhaal's portfolio, but there is no depiction of this rune or sigil anywhere, nor does he know what its significance might be. It is a pity that Gorion is not a more uncommon name. 17th of Nightal, 1367: Mulahey has established himself at the mines of Nashkel, and should already be converting the kobolds to follow him as their leader. I expect they will begin contaminating the ore soon, though it will take some time before it becomes evident on the surface. Only a few slaves have begun to mine out the ore at Cloakwood, though once the bandit raids begin I will be sending Davaeorn a steady supply of new slaves. I wish I could lure Davaeorn into joining my little cult, knowing that he still secretly worships Bhaal, but he has some deep distrust of me, even after I dropped hints about my true parentage. 29th of Nightal, 1367: Tamoko has displayed surprising skill in demoralizing some of the most resistant Cyricists. The way she slew one of the junior members, and then later quietly re-animated his corpse to attack his sleeping former comrades, was a sheer treat to watch. I was quite surprised that she had the audacity to rouse me directly out of my bed for the latter portion, however. Not that I needed an excuse to leave Cythandria's company: She complains far too much. 6th of Hammer, 1368: The Flaming Fist have finally begun to take notice of our little mercenary operation, and have dispatched several small contingents to the Coast Way to try to fend off the bandit raids. I shall order all the men to, in the event of capture, claim Zhentish allegiance, and I shall provide them with corroborative details to make the lie more convincing. I am sure the Zhents at Darkhold won't be pleased to know that their name has been falsely used, but we cannot have the authorities catching our scent. Meanwhile, we have successfully infiltrated Angelo into the Flaming Fist, and I am instructing him in military strategy: Once this new talent of his gets recognized, he will be sure to get promoted, giving us a valuable spy right under Eltan's nose. 22nd of Hammer, 1368: More revelations from the Cyricists: after intense examination, we finally got some names and numbers. I wonder what is so important about Saradush? It seems Bhaal spawned literally hundreds of offspring, all over Faerun, but only twenty of these shall be of any real importance, and from them, five shall almost make the heavens themselves tremble in fear. This is very promising. But it seems that the head priest of Cyric is as in the dark as to this 'ward of Gorion' as we are. Blast! I shall have to find an opportunity to enter Candlekeep after all. 14th of Alturiak, 1368: In Candlekeep at last, and though Winski was too ill to leave Baldur's Gate, my research has gone well. The monks here are quite helpful. From what I have read, it is beyond all doubt that the blood of Bhaal flows through my veins. Alaundo's prophecies are, of course, anything but explicit, but I think I understand them. Bhaal's children bear the marks of chaos, have power with no direction, shall feel the blood of a god within them, and shall be driven to cause death and destruction, especially among each other. "The deaths they bring shall awaken the father, and through them he will rise." The wording is somewhat ambiguous, but obviously this means that death wrought by the children will cause them to ascend. Fitting, and since the father was the Lord of Murder, proving one's worth must involve an act in accordance with his portfolio. I begin to see what I must do. Death on a god-like scale. 15th of Alturiak, 1368: Winski was a fool. "Gorion's ward" is not any sort of glyph at all, but rather a brat named , a few years younger than myself. And Gorion himself, though even older now, is doubtless the very same man from the temple, all those long years ago. How ironic that the face that has been etched upon my brain for most of my life has been, for all this time, living as a monk practically on my doorstep. And while I have nothing to prove it, I believe that was that same squealing baby in the soiled diaper. And THIS little pipsqueak is to have monumental importance in the fulfillment of MY destiny? The very idea seems ludicrous. I barely got more than a glimpse today, but seems nothing more than a blissfully ignorant whelp, with next to no training whatsoever. Hardly a figure to shake the deities. But Gorion troubles me. He seems to have taken an interest in my readings; I must be careful to be more clandestine in my research. 16th of Alturiak, 1368: I take my leave of Candlekeep now, and not a moment too soon, for I am sure that Gorion has perceived my heritage. I wish I could simply kill him, but I doubt I could safely murder him within this damnable library. One thing I am certain of: is, in actuality, one of Bhaal's brood as well. All the markings are there, and it would explain Gorion's curiosity of my studies, as well as 's being mentioned in the prophecy. Though there is nothing I can do now, I will have to make certain to return and kill the little brat. It would be foolish of me to let one of my siblings live, especially one being brought up by Harpers (and I am sure that is where Gorion's allegiances lay). And I expect that Bhaal's power would be shared among his surviving children, so obviously I must make sure that I am the last man standing. If I am to inherit the Throne of Bhaal, I want it all for myself. 19th of Alturiak, 1368: The last of our little Cyric cult has died, but I think we wrung everything useful from them in time. Winski largely shares my opinion about in that the child's death is almost certainly called for, but advises me to stop short of actual murder until he can determine exactly what sort of role 'Gorion's ward' is expected to play. Very well, I can wait. Winski's health seems to be failing him, so he has deputized Semaj to take over the business of sniffing out any possible Bhaalspawn in the area, and luring them to the Iron Throne on the pretense of business reasons. Those I deem a possible threat I shall kill myself, the rest I will let Semaj deal with in some way. I have discreetly commissioned a fine suit of armor and sword, worthy of the next Lord of Murder, and have postponed my fratricidal activities until I can dress the part. 17th of Ches, 1368: Everything proceeds well. The ore coming from Nashkel has started to deteriorate, and the mercenaries have been doing a fine job at seizing any iron caravans on route to Baldur's Gate. Though some of my men have been captured, the Zhent story is holding up well, so no trouble has fallen on the Iron Throne. But I will have to be wary for Zhentish agents in the coming months. I am actually a bit disappointed in Rieltar: His skill in manipulating this whole iron plot notwithstanding, he sees it as nothing more than another way to make money, and increase his own status within the Iron Throne hierarchy. Bah! Who cares about the petty intrigues of one pathetic mercantile organization, when one can control the armies of entire nations? Ah, well. His blindness is my gain. 25th of Tarsakh, 1368: The armor is completed, and is wonderfully appropriate for the terrifying presence of a Deathbringer descended from the Lord of Murder. I shall have to congratulate Winski for helping with the design, especially the additional enchantments awakened only by the presence of the Bhaal essence. The sword shall not be finished for another day or two, but it seems appropriate that I should kill my first sibling with my own bare hands. Goodbye, Colin de'Graage. You are not one of the twenty; Alaundo never gave a damn about you, and neither do I. 28th of Tarsakh, 1368: The Sword of Chaos is glorious. The time is now ripe to deal with that old codger Gorion, and his little whelp. I will have to inform my men that I'll be gone for the next few days. Cythandria was furious when she learned I am taking Tamoko instead of her. Perhaps this will motivate her to support me in areas other than just the bedroom. 2nd of Mirtul, 1368: My long-delayed revenge on the withered old man is complete. I actually killed him a bit too quickly; I wanted enough time to look into his dying eyes and remind him of where we had met before. Ah well, it is of no real consequence. What a pair of prize fools he and his little puppy were, fleeing Candlekeep under cover of night, neither one of them carrying any more than a few pitiful scraps of equipment. Semaj's agents scared them right into our ambush. Unfortunately, the whelp got away; took off running like a terrified jackrabbit after only a single spell. I would have told Tamoko to follow him, but between my laughter and my lust for vengeance, it slipped my mind. Still, with the old fool gone, the young fool shall not be far behind. From what I have seen, I would expect anyone with 's level of skill and bravery to simply get lost in the wilderness, and die of exposure after a day or two. A fitting end for the prize pupil of the man who thought I was less important than a squealing infant. I return to Baldur's Gate, and the list of brothers and sisters who are actually worthy of death by my hand. Just to be on the safe side, I have contacted Semaj's little network, and added 's name to those whose deaths will be rewarded. 9th of Mirtul, 1368: Well, well! Not only has NOT gotten eaten by gibberlings as I expected, but has also survived the best attempts of two of Semaj's bounty hunters, fallen in with a group of adventurers, and safely met with the mayor of Nashkel! It appears there may be a spine in there after all. Still, it is obvious that this little war party seeks to disrupt our activities in the mines; happily, Tazok and Tranzig have been well prepared for this sort of thing, and know just what to do. 15th of Mirtul, 1368: The loss of Nashkel was a shocking blow to us, but we can recover; at the emergency meeting, we agreed that the best solution would be to send some of our own men into Nashkel, if not into the mine itself, and corrupt as much ore as possible without getting caught. I suggested that the most opportune time would be during transit: whether as ore-cart drivers or caravan guards, our men should easily be able to contaminate the iron, since everyone else would be watching the horizon, not the wagons, and in the event of an attack by our mercenaries, the Black Talons would already have a couple of their men planted among the enemy. After some debate, even Davaeorn was made to see the wisdom of this. The best part is that even if we only manage to poison SOME of the ore shipped out of Nashkel, rumors will start circulating that the town's iron is still just as tainted as before, they're just claiming that it's pure and shipping it out anyway. Some might even say that the entire adventuring party was just a lie that Nashkel made up, so people would start buying their iron again. I will mention this additional angle to Rieltar tomorrow. Still, the news that is still alive, despite all odds, troubles me greatly. I shall talk the matter over with Winski, and then strike. Personally, if I can find the time. 24th of Mirtul, 1368: Hellfire and damnation! I cannot believe the dispatches, but there is no denying them. With Tazok's camp destroyed, I shall have to establish a roaming base of operations, and supervise it myself. Rieltar and Davaeorn have agreed to this largely because, in my new armor, I cannot be recognized and traced back to the Iron Throne. But blast it all, in addition to the loss of men, this will take up ALL of my time, and I shall even have to recall most of the death squads that I had ordered to seek out and ambush and company. The situation looks dire, already knows far too much. At least their next move is predictable; Davaeorn and a crew hand-picked by Rieltar have already left to personally guard the mines. So let 's little band follow the trail of clues if they wish. Just let them TRY to struggle through the Cloakwood, and may they all perish in the attempt. Myself, I care little whether they find the mine or not; the men there belong to Davaeorn and Rieltar, not me. I must use this time to recollect the scattered mercenaries into something useful once again. 9th of Kythorn, 1368: Back in Baldur's Gate, briefly, for the emergency meeting I had been expecting. The news from the Cloakwood has predictably driven Rieltar half-mad with worry. I admit that things have not gone anything like the way we planned, but I think we can still turn this to our advantage. For one thing, I strongly doubt that was able to carry more than a hundred tons of iron ore out of the Cloakwood, meaning that it's still there, waiting for our barges to come pick it up, just as arranged. The trick will be manipulating the public opinion: I must find some way to place the blame for the iron crisis squarely on 's shoulders, as I cannot make my break with the Iron Throne until the fruit is fully ripe. At least 's next move is obvious: Here to Baldur's Gate to accuse the Iron Throne. Would that I could slay them in the streets, but we must not cause an uproar, and I am needed back at the camp in any case. I have prepared Zhalimar and his hand-picked crew to stand guard in my stead, in wait for 's next--and last--blundering step against me. 12th of Kythorn, 1368: has finally entered Baldur's Gate, and has gotten very friendly with Scar, but has not yet made any direct move against the Iron Throne. From the tone of his letter, Rieltar is on the verge of panic, expecting assassins to emerge from his bedclothes at any moment. He urges me to come to the city at once, mentioning something about wanting me to be present at an important meeting in a secure location. Something tells me the coward is scraping for any excuse to stay out of 's reach. Happily, Tazok is now fully recovered and back to fighting strength, so he can resume his former duties while I return to the city and get things under control. 14th of Kythorn, 1368: I have long known of Rieltar's more pacifist tendencies, but I would never have expected him to actually arrange a meeting with the Knights of the Shield to PREVENT a war that should be very profitable to him. No one would accuse my mortal 'father' of being a charming man, but he can certainly be oily when he needs to, so I must intervene. But secrecy and deception are crucial now: If the Wheel of Fate is to spin freely under my hand, I must be very cunning. I have therefore informed Rieltar that 's little mercenary band had been dispatched, and neatly replaced by a doppelganger crew as arranged. Therefore, when they suddenly burst into the meeting, his panicky reactions will all but ensure a bloody outcome. But too much is at stake with this to leave anything to chance: The doppelgangers and I must be present as well, though heavily disguised. I shall ask my acolytes to prepare something suitable. Happily, the sect of Cyric had some old texts which will almost certainly satisfy the entry requirements into Candlekeep, and Winski and Semaj have already copied down anything of relevance. 19th of Kythorn, 1368: Barely enough time to write, but I must not neglect my journals so. The future dead must know of how the Lord of Murder again came to them. Perhaps I shall hire a scribe, when time allows. As it turns out, I did not even need to maneuver one of the Cyricist's books into 's hands, as Duke Eltan was more than willing to give my little scapegoat one of his own texts. Just moments ago, I saw enter the walls of Candlekeep, and I expect our little drama to commence here any minute. My self-styled father, Rieltar, is upstairs with two representatives of the Knights of the Shield. As foreseen, he has been blocking all my attempts to escalate the border hostilities. Terribly sorry, 'father,' but my true parentage calls and you are in my way. On the off chance that the upcoming encounter does not immediately produce bloodshed, I shall be sure to instruct the dopplegangers in the exact manner Rieltar should die. I think a garrote would be perfect for the task. 21st of Kythorn, 1368: On top of the world. With Thaldorn, Rieltar and Brunos slain, in custody for their murders, and the entire assets of the Iron Throne at my disposal, the entire city is practically at my feet, and everything is working out as Alaundo said it would. I have announced my intention to donate everything to the war effort, and now that Silvershield is out of the way, the rumors of elevating me to Grand Duke are beginning to catch on among the populace. The only blight on the day is the news that the message I sent to Zhalimar did not reach him in time, robbing me of six of my best and brightest. I have dealt with the messenger accordingly, and perhaps I can arrange it so that I perform 's execution personally, thus completing the circle of revenge.~