devSin Posted April 11, 2005 Share Posted April 11, 2005 Yeah. The Abyssal door opens after sticking in the final tear. HELL_BUFFET everyone. Oops, your familiar is still sitting in its original location. There goes any possibility of achieving some sort of dramatic finale. Anyway, this happens because the target specified is [3], but [3] is never framed (via See() or similar). Since there will never be more than one familiar, we can just call them all out by script name. I guess the code would be something like: COPY_EXISTING ~Cut85A.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~ActionOverride("hellspy4",ApplySpell([FAMILIAR],HELL_BUFFET))~ ~ActionOverride("HELLSPY4",ApplySpell("FAMPSD",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMFER",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMIMP",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMRAB",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMDUST",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMFAIR",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMCAT",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMQUAS",3658))~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES OTHERWISE_DELETE_KEY_FILE Here's my script: IF True() THEN RESPONSE #100 CutSceneId("HELLSPY") MoveViewPoint([2009.513],0) SetGlobal("TEARDOOR","GLOBAL",6) TriggerActivation("TEARDOOR",0) TriggerActivation("TRAN2901",0) TriggerActivation("TRAN2902",0) TriggerActivation("TRAN2903",0) TriggerActivation("TRAN2904",0) TriggerActivation("TRAN2905",0) TriggerActivation("TRAN2906",0) ScreenShake([5.5],30) CreateVisualEffect("SPCALLLI",[2016.429]) Wait(1) Unlock("DOOR01") OpenDoor("DOOR01") PlaySound("EFF_P35A") ActionOverride("HELLSPY4",ApplySpell(Player1,3658)) ActionOverride("HELLSPY4",ApplySpell("FAMPSD",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMFER",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMIMP",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMRAB",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMDUST",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMFAIR",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMCAT",3658)) ActionOverride("HELLSPY4",ApplySpell("FAMQUAS",3658)) ActionOverride("HELLSPY4",ApplySpell(Player2,3658)) ActionOverride("HELLSPY4",ApplySpell(Player3,3658)) ActionOverride("HELLSPY4",ApplySpell(Player4,3658)) ActionOverride("HELLSPY4",ApplySpell(Player5,3658)) ActionOverride("HELLSPY4",ApplySpell(Player6,3658)) Wait(1) PlaySound("EFF_P13") Wait(1) PlaySound("EFF_M20") CreateVisualEffect("SPMETSWA",[2015.364]) SmallWait(7) CreateVisualEffect("SPMETSWA",[1995.408]) CreateVisualEffect("SPMETSWA",[2045.408]) SmallWait(7) CreateVisualEffect("SPMETSWA",[1965.443]) CreateVisualEffect("SPMETSWA",[2065.443]) SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) SmallWait(2) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) SmallWait(2) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) SmallWait(2) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) SmallWait(2) CreateVisualEffect("SPMETSWA",[2006.657]) SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) CreateVisualEffect("CALLLIGH",[2009.513]) PlaySound("EFF_P19") SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) CreateVisualEffect("SPPLANAR",[2009.513]) PlaySound("EFF_M04") SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) SmallWait(7) CreateVisualEffect("SPMETSWA",[2015.496]) CreateVisualEffect("SPMETSWA",[1950.526]) CreateVisualEffect("SPMETSWA",[2061.526]) CreateVisualEffect("SPMETSWA",[2087.589]) CreateVisualEffect("SPMETSWA",[1916.589]) CreateVisualEffect("SPMETSWA",[2066.642]) CreateVisualEffect("SPMETSWA",[1954.642]) CreateVisualEffect("SPMETSWA",[2006.657]) SmallWait(7) CreateCreature("HELLJON",[2009.513],0) StartCutScene("CUT85B") END This works as intended in-game. Link to comment
CamDawg Posted April 29, 2005 Share Posted April 29, 2005 COPY_EXISTING ~Cut85A.bcs~ ~override~ BUT_ONLY_IF_IT_CHANGES OTHERWISE_DELETE_KEY_FILE Hehe. Added for alpha 4. Link to comment
SimDing0 Posted April 30, 2005 Share Posted April 30, 2005 I'd hasten to add that it's also going to look pretty stupid having a ton of summoned monsters standing there. Not as easily solved, though. Link to comment
devSin Posted April 30, 2005 Author Share Posted April 30, 2005 Oops. I never thought of that (to be fair, it's not something that even BioWare tried). My knee-jerk reaction is to force a Death Spell at them (preserving the "original" challenge, and all). Link to comment
Kish Posted April 30, 2005 Share Posted April 30, 2005 My knee-jerk reaction is to force a Death Spell at them (preserving the "original" challenge, and all). <{POST_SNAPBACK}> That is not a fix. Link to comment
devSin Posted April 30, 2005 Author Share Posted April 30, 2005 That is not a fix.You think? Link to comment
CamDawg Posted April 30, 2005 Share Posted April 30, 2005 What's preventing use from making the spell area effect and let it work like a dragon's wing buffet so it'll just catch everything? Link to comment
devSin Posted April 30, 2005 Author Share Posted April 30, 2005 Trajectory? That's the only reason I can think that they used the same "eye" to blast each person (so they'll all more or less get pushed south -- away from the door). If it was an area effect, who knows which direction everyone would fly. Depending on where the objects were positioned and who you cast the spell on, it could even end up shoving some up into the door. Link to comment
SimDing0 Posted April 30, 2005 Share Posted April 30, 2005 I think it's less important that summons end up in the right place than it is party members. Incidentally, do you have something to draw familiars back to Irenicus after they've been blown back? (I wouldn't even bother doing this for summons.) Link to comment
CamDawg Posted April 30, 2005 Share Posted April 30, 2005 Everything is being pushed away from HELLSPY4, so I'm presuming it's at the door. If it casts the spell at a point at its feet, it should push everything the correct direction. Then I think it's just a matter of getting the projectile correct. Link to comment
devSin Posted May 1, 2005 Author Share Posted May 1, 2005 Incidentally, do you have something to draw familiars back to Irenicus after they've been blown back? (I wouldn't even bother doing this for summons.)Unfortunately, JumpToPoint() actions on Player1 will *always* move the familiar in front of Player1 (any auto-motion, like area transitions, JumpToPoint(), CTRL+J, etc., also move the familiar -- it's hard-coded). Which is why I had to modify every script in the game using Dialogue* type actions (to prevent everybody in the game from talking to my stupid familiar); [PC] will also include [FAMILIAR] (but not vice-versa), so See[2] / StartDialogueNoSet([2]), for example, will initiate dialogue with the familiar. Anyway, to answer your question: Irenicus' spells are so powerful that yes, the familiar will be moved along with the rest of the party (in both cases -- the push away (after this patch, of course) and the draw back). Everything is being pushed away from HELLSPY4, so I'm presuming it's at the door.Close enough (actually, it should be somewhere in the wall). If you do make this an area effect, make sure you don't accidentally push the "spies" away (that'd be pretty funny). Link to comment
CamDawg Posted May 10, 2005 Share Posted May 10, 2005 OK, this is actually a lot easier than it seems. HELL_BUFFET (aka spin658) is already set as area effect, but since it's being called with ApplySpell it only affects the target creature. By changing it to ForceSpell and changing spin658 to use Everyone as target, we're in business. The HELLSPYs are not affected by this. // familiars and summons should be pushed back when hell door opens, part 1/2 (see spin658.spl) COPY_EXISTING ~Cut85A.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~ActionOverride("HELLSPY4",ApplySpell(Player[1-6],HELL_BUFFET))~ ~~ REPLACE_TEXTUALLY ~ActionOverride("hellspy4",ApplySpell(\[FAMILIAR\],HELL_BUFFET))~ ~ActionOverride("HELLSPY4",ForceSpell(Player1,HELL_BUFFET))~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES // familiars and summons should be pushed back when hell door opens, part 2/2 (see cut85a.bcs) COPY_EXISTING ~spin658.spl~ ~override~ READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" PATCH_IF ("%abil_num%" > 0) BEGIN READ_LONG 0x64 "abil_off" READ_SHORT ("%abil_off%" + 0x1e + (0x28 * ("%abil_num%" - 1))) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * ("%abil_num%" - 1))) "abil_fx_idx" SET "fx_num" = ("%abil_fx_idx%" + "%abil_fx_num%") END ELSE BEGIN READ_SHORT 0x70 "fx_num" END WHILE ("%fx_num%" > 0) BEGIN SET "fx_num" = ("%fx_num%" - 1) READ_BYTE ("%fx_off%" + 0x02 + (0x30 * "%fx_num%")) "target" PATCH_IF ("%target%" = 2) BEGIN // change target: preset target to WRITE_BYTE ("%fx_off%" + 0x02 + (0x30 * "%fx_num%")) 4 // everyone END END BUT_ONLY_IF_IT_CHANGES We can get away with just targeting Player1, since (s)he will always be in range. Player1 must be next to the door (Range 10) to trigger this cutscene. Tested and confirmed as working. Included in alpha 5. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.