Wisp Posted May 12, 2008 Share Posted May 12, 2008 Ka'rashur is the Baatezu leader you encounter in Watcher's Keep. Provided you meet his criteria, you are supposed to be offered a job (kill Tahzzar, Tanar'ri) and get rewarded for the deed. However, upon accepting his quest, all three conditions for him turning hostile and attacking may evaluate as true (even though they shouldn't). IF Global("BatAttacked","GLOBAL",1) GlobalGT("zGorBat1Job","GLOBAL",0) Global("Attacked","LOCALS",0) Allegiance(Myself,NEUTRAL) THEN RESPONSE #100 SetGlobal("Attacked","LOCALS",1) StartDialogueNoSet(Player1) IF WEIGHT #0 ~Global("BatAttacked","GLOBAL",1) GlobalGT("zGorBat1Job","GLOBAL",0) Global("BatEnemy","GLOBAL",0)~ THEN BEGIN 0 // from: SAY #63166 /* ~Ahh... betrayal comes as no surprise to demons made only of lies...~ [GORBAT08] */ IF ~~ THEN DO ~SetGlobal("BatEnemy","GLOBAL",1)~ EXIT END IF Global("BatEnemy","GLOBAL",1) Allegiance(Myself,NEUTRAL) THEN RESPONSE #100 Enemy() Accepting his quest sets zGorBat1Job to 1. There're 1 Erinyes and 2 Bonefiends in Marching Mountains (they spawn when you open the container behind the "lower" force field) that set BatAttacked to 1 when they are attacked (but apparently, it's the Erinyes' script alone that does it). Admittedly, they are Baatezu as well, but I don't think this was intended. (Yeah, that wasn't very helpful, was it?) The trap script is YSSUMM2.BCS IF Opened([ANYONE]) THEN RESPONSE #100 CreateVisualEffect("ICWRATI",[2136.2329]) CreateVisualEffect("SPPLANAR",[2084.2106]) CreateVisualEffect("SPPLANAR",[1828.2367]) CreateVisualEffect("SPPLANAR",[2461.2297]) Wait(1) CreateCreature("DBONEF01",[2084.2106],0) // Bone Fiend CreateCreature("DBONEF01",[1828.2367],0) // Bone Fiend CreateCreature("GORBAT2",[2461.2297],0) // Erinyes ActionOverride("GORBAT2",Enemy()) END I'll leave the rest in your competent hands. Link to comment
Nythrun Posted May 12, 2008 Share Posted May 12, 2008 Ugh, gorbat1.bcs does get around, doesn't it? I suppose we could avoid adding any new scripts by adding a bunch of area checks, but it's not pretty. /edit Let's think of something better to do. ACTION_IF GAME_IS ~tob~ THEN BEGIN COPY_EXISTING gorbat.bcs override DECOMPILE_BCS_TO_BAF READ_ASCII 0 t_0 (BUFFER_LENGTH) DELETE_BYTES 0 BUFFER_LENGTH INNER_PATCH_SAVE t_0 ~%t_0%~ BEGIN REPLACE_TEXTUALLY ~IF~ ~IF%lnl% AreaCheck("ar3013")~ END INNER_PATCH_SAVE t_1 ~%t_0%~ BEGIN REPLACE_TEXTUALLY ~AreaCheck("ar3013")~ ~!AreaCheck("ar3013")~ REPLACE_TEXTUALLY ~SetGlobal("BatAttacked","GLOBAL",1)~ ~~ REPLACE_TEXTUALLY ~Global("BatEnemy","GLOBAL",1)~ ~~ END INSERT_BYTES 0 STRING_LENGTH EVALUATE_BUFFER ~%t_0%~ WRITE_ASCIIE 0 ~%t_0%~ SET len = BUFFER_LENGTH INSERT_BYTES len STRING_LENGTH EVALUATE_BUFFER ~%t_1%~ WRITE_ASCIIE len ~%t_1%~ COMPILE_BAF_TO_BCS BUT_ONLY UNLESS ~ar3013~ END Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.