kix Posted November 13, 2006 Share Posted November 13, 2006 Sorry to be such a nuisance; but I, or rather Lavok, has a problem. He won't die. He sputters his line about seeing the sky ending with 'I wish', and then just lays there in his blue circle. I've got SoA [without ToB], official patch, G3 Fixpack and Tweakpack. The odd thing was that this didn't happen before the patch, fixpack and tweakpack were installed. I play using 6 created characters without NPC's. With a Gateway500, 128MB RAM and Win98SE. Ribald's genie is the only mod I have installed. I picked up Valygar, we completed the sphere, took the poor old guy outside and talked to him and that's what happened. I wasn't given the sphere, the knights inside are still speaking there original lines [Cannabalistic children] and the Cowled wizard doesn't show up. Although, the sphere shows up on the completed quest list. I searched the archives and the closest mention I found was the use of: CLUAConsole:SetGlobal("PCSphere","GLOBAL",1) to render the sphere as a stronghold, which it immediately did; and all seems as it should. The Bad side: I have an undying Lavok I have to walk around when entering/exiting the sphere. The Good side: Each and every time I talk to him, each of the party members gets 45,000xpts [Real easy to make 40th Level this way] Further note;spin769.spl was removed from the Override folder to deal with a previous prob. Thought you folks might want to know. kix Link to comment
CamDawg Posted November 13, 2006 Share Posted November 13, 2006 Thanks for the report. You could try to bypass this issue by deleting lavok.dlg out of the override, but you'll lose the changes from Tweaks as well. You can console the sphere into your possession with the code you posted, though. The original problem: Lavok has an invincibility item that prevents you from accidentally killing him in the initial fight or prior to the completion of the Sphere quest. Originally, he would remove the item in his final dialogue and die; however this caused issues in that one of his scripts would sometimes kick in too early (it's triggered on the destruction of the item) and kill him during his final dialogue, before he can reward the player and/or offer the sphere. To fix this, we removed the action to remove the invincibility item (hence preventing the troublesome script from firing), as his Kill(Myself) action worked, regardless of whether the invincibility item was present or not--essentially, it's removal was entirely redundant. Learned a fun fact, though: while this is true with ToB... I've got SoA [without ToB] I've just discovered that Kill(Myself) actions do not bypass these protections in SoA-only games. So, we need a slightly different fix to account for how an SoA-only game handles this. The removal of the invincible item will have to stay, and we'll simply remove the problem scripting instead. Link to comment
devSin Posted November 14, 2006 Share Posted November 14, 2006 I wonder why they changed it for ToB? Makes no sense, but I guess that's par for the course. I know I also made the same assertion for Grae, so you might want to make sure we aren't breaking her too. Link to comment
kix Posted November 14, 2006 Author Share Posted November 14, 2006 You could try to bypass this issue by deleting lavok.dlg out of the override, but you'll lose the changes from Tweaks as well. What would this removal alter? Only the pertinence to Lavok, or would this effect other conditions? Also [my ability at old-time basic programming being minimal at best], wouldn't it have been cleaner to have the destruction of the invincibility item conditional upon the complete execution of Lavok's final dialogue? kix Link to comment
CamDawg Posted November 14, 2006 Share Posted November 14, 2006 What would this removal alter? Only the pertinence to Lavok, or would this effect other conditions? I think the only other thing this would affect is Multiple Strongholds from Tweaks, which is why I gave the console workaround for it. Also [my ability at old-time basic programming being minimal at best], wouldn't it have been cleaner to have the destruction of the invincibility item conditional upon the complete execution of Lavok's final dialogue? In a sense, it already is, but the internal workings of the engine aren't nearly as cut-and-dried as we'd like. On Lavok's final line, he queues up a series of actions (varies slightly depending on whether you take him outside, whether you get the sphere, etc.): destroy the invincibility item, erase all of the sphere journal entries, hand out some XP, set variables to grant the PC the sphere (if appropriate) and then finally Kill(Myself). The problem is that Lavok's script can jump in any time after the item is destroyed. If the script jumps in and kills Lavok then these queued actions are dumped and never executed. Link to comment
devSin Posted November 14, 2006 Share Posted November 14, 2006 In a sense, it already is, but the internal workings of the engine aren't nearly as cut-and-dried as we'd like. On Lavok's final line, he queues up a series of actions (varies slightly depending on whether you take him outside, whether you get the sphere, etc.): destroy the invincibility item, erase all of the sphere journal entries, hand out some XP, set variables to grant the PC the sphere (if appropriate) and then finally Kill(Myself). The problem is that Lavok's script can jump in any time after the item is destroyed. If the script jumps in and kills Lavok then these queued actions are dumped and never executed.But if the other actions are queued, why wouldn't his Kill() just get pushed like all the other actions? In other words, nobody really knows what the engine does. Link to comment
Guest Guest Posted November 14, 2006 Share Posted November 14, 2006 Gotcha. I wonder if its possible to allow all calls concerning Lavok to run there course, and once the stronghold has been granted - then nullify his appearance. For now though - I'm gonna let the sucker bake in the sun and keep the multiple strongholds. Thanks Folks kix Link to comment
Guest Guest Posted November 15, 2006 Share Posted November 15, 2006 The problem is MINHP1 item. You should either remove it or patch Lavok's dialog. See staes 27, 58 and 62. It is also connected to multistronghold component.Please bear in mind that DestroyItem("MINHP1") should be moved to the top of the command list. But in my opinion removing this item is a good solution to this problem: http://forums.blackwyrmlair.net/index.php?showtopic=2036 Link to comment
CamDawg Posted November 15, 2006 Share Posted November 15, 2006 The problem is MINHP1 item. You should either remove it or patch Lavok's dialog. See staes 27, 58 and 62. It is also connected to multistronghold component.Please bear in mind that DestroyItem("MINHP1") should be moved to the top of the command list. Um, no. Removing it means Lavok would die when the party fought him and break the sphere quest completely. It's already at the top of the command list, which exarcerbates the problem. (If anything, it needs to be next-to-last in the command list to minimize the delay between its destruction and Lavok's death.) The problem is lavok02.bcs, which steps in kills Lavok as soon as minhp1 is gone--it's wholly unnecessary as every path in Lavok's final dialogue already destroys minhp1 and kills Lavok. Link to comment
ronin69hof Posted November 15, 2006 Share Posted November 15, 2006 seanas is working on a fix for this for BP. The problem in BP is that the min1hp is removed before he says his final words so the player cannot get the sphere. I suggested something like the below code: IF !Global("PlayerHasStronghold","GLOBAL",0) //does not have to be this one this is an example. !HasItem("MINHP1",Myself) THEN RESPONSE #100 Kill(Myself) END Its probably all screwed up but if it works then the script will check to see if the player has the stronghold or not before lavok kills himself. I know this is something entirely different than what this thread is about but it might save problems if the fixpack and BP both try to fix Lavok. just my 2 cents. ronin Link to comment
CamDawg Posted November 15, 2006 Share Posted November 15, 2006 Again, lavok02.bcs is completely unnecessary, as every one of his final dialogue branches already kills him. Link to comment
Roana Posted November 15, 2006 Share Posted November 15, 2006 Again, lavok02.bcs is completely unnecessary, as every one of his final dialogue branches already kills him. Hello, right. I have fixed my game in the same way last year. Just removed the unnesscary script . Regards Roana Link to comment
Guest Guest_Vlad_* Posted November 15, 2006 Share Posted November 15, 2006 I fixed in TS and then in Baldurdash-WeiDU only Lavok.dlg: REPLACE ~LAVOK~ IF WEIGHT #5 ~Global("LavokOutside","GLOBAL",1) ~ THEN BEGIN 27 SAY ~Ah, it is the sky, after all. I had forgotten how it looked after so long. I thank you... I... I wish...~ [LAVOK17] IF ~~ THEN DO ~EraseJournalEntry(6509) EraseJournalEntry(6534) EraseJournalEntry(7994) EraseJournalEntry(7995) EraseJournalEntry(8126) EraseJournalEntry(8127) EraseJournalEntry(8128) EraseJournalEntry(8129) EraseJournalEntry(10128) EraseJournalEntry(16302) EraseJournalEntry(16343) EraseJournalEntry(16524) EraseJournalEntry(16544) EraseJournalEntry(16569) EraseJournalEntry(20179) EraseJournalEntry(20365) EraseJournalEntry(20453) EraseJournalEntry(23371) EraseJournalEntry(23409) EraseJournalEntry(3422) EraseJournalEntry(6557) EraseJournalEntry(7241) EraseJournalEntry(9705) EraseJournalEntry(9919) EraseJournalEntry(10047) EraseJournalEntry(23551) AddXPObject(Player1,45500) AddXPObject(Player2,45500) AddXPObject(Player3,45500) AddXPObject(Player4,45500) AddXPObject(Player5,45500) AddXPObject(Player6,45500) DestroyItem("MINHP1") Kill(Myself) ~ SOLVED_JOURNAL ~Lavok is dead, the sphere returned. The planar sphere has returned to our home plane, and I have fulfilled my end of the bargain by bringing Lavok outside of the sphere to die under his home sky. He passed peacefully and with little comment other than to thank me.~ EXIT END IF ~~ THEN BEGIN 30 SAY ~Take the planar sphere, mage. I grant it to you, in payment for my release. Use it... use it far more wisely than I ever did...~ IF ~~ THEN DO ~EraseJournalEntry(6509) EraseJournalEntry(6534) EraseJournalEntry(7994) EraseJournalEntry(7995) EraseJournalEntry(8126) EraseJournalEntry(8127) EraseJournalEntry(8128) EraseJournalEntry(8129) EraseJournalEntry(10128) EraseJournalEntry(16302) EraseJournalEntry(16343) EraseJournalEntry(16524) EraseJournalEntry(16544) EraseJournalEntry(16569) EraseJournalEntry(20179) EraseJournalEntry(20365) EraseJournalEntry(20453) EraseJournalEntry(23371) EraseJournalEntry(23409) EraseJournalEntry(3422) EraseJournalEntry(6557) EraseJournalEntry(7241) EraseJournalEntry(9705) EraseJournalEntry(9919) EraseJournalEntry(10047) EraseJournalEntry(23551) SetGlobal("PCSphere","GLOBAL",1) DestroyItem("MINHP1") Kill(Myself) ~ SOLVED_JOURNAL ~Lavok is dead, the sphere returned. Lavok has returned the sphere to our home plane and is now dead. Before he died, however, he granted the sphere to me... perhaps because I am a magic-user myself, I do not know. He asked me to use the construct wisely... more wisely than himself... and then died. What secrets lay in the place and how it even operates, I am not sure... but it is a grander base than any other mage might have, that is certain.~ EXIT END IF ~~ THEN BEGIN 58 SAY ~I... am most grateful. If... you could but carry me, my strength has all but fled... my last moments... are upon me...~ [LAVOK15] IF ~~ THEN DO ~StartCutSceneMode() FadeToColor([30.0],0) Wait(1) ActionOverride(Player1,Wait(1)) ActionOverride(Player2,Wait(1)) ActionOverride(Player3,Wait(1)) ActionOverride(Player4,Wait(1)) ActionOverride(Player5,Wait(1)) ActionOverride(Player6,Wait(1)) ActionOverride(Player1,LeaveAreaLUAPanic("AR0400","",[251.694],4)) ActionOverride(Player1,LeaveAreaLUA("AR0400","",[251.694],4)) ActionOverride(Player2,LeaveAreaLUA("AR0400","",[270.743],4)) ActionOverride(Player3,LeaveAreaLUA("AR0400","",[200.701],4)) ActionOverride(Player4,LeaveAreaLUA("AR0400","",[238.740],2)) ActionOverride(Player5,LeaveAreaLUA("AR0400","",[371.659],2)) ActionOverride(Player6,LeaveAreaLUA("AR0400","",[436.621],2)) SetGlobal("LavokOutside","GLOBAL",1) MultiplayerSync() EndCutSceneMode() MoveBetweenAreas("AR0400",[319.680],0)~ EXIT END IF ~~ THEN BEGIN 60 SAY ~... I... I wish I had... had... ah...~ IF ~~ THEN DO ~DestroyItem("MINHP1") Kill(Myself)~ EXIT END IF ~~ THEN BEGIN 62 SAY ~Yes... I see that you are. I... I grant you the sphere, mage. Do... do with it far... far better than I ever did. It is yours... to use wisely...~ IF ~~ THEN DO ~EraseJournalEntry(6509) EraseJournalEntry(6534) EraseJournalEntry(7994) EraseJournalEntry(7995) EraseJournalEntry(8126) EraseJournalEntry(8127) EraseJournalEntry(8128) EraseJournalEntry(8129) EraseJournalEntry(10128) EraseJournalEntry(16302) EraseJournalEntry(16343) EraseJournalEntry(16524) EraseJournalEntry(16544) EraseJournalEntry(16569) EraseJournalEntry(20179) EraseJournalEntry(20365) EraseJournalEntry(20453) EraseJournalEntry(23371) EraseJournalEntry(23409) EraseJournalEntry(3422) EraseJournalEntry(6557) EraseJournalEntry(7241) EraseJournalEntry(9705) EraseJournalEntry(9919) EraseJournalEntry(10047) EraseJournalEntry(23551) SetGlobal("PCSphere","GLOBAL",1)~ GOTO 60 END END Link to comment
CamDawg Posted November 17, 2006 Share Posted November 17, 2006 Fixed: // lavok dying too early because of this cheese script // False()d rather than unassigned in case someone wants to use this for lavok02-specific scripting COPY_EXISTING ~lavok02.bcs~ ~override~ DECOMPILE_BCS_TO_BAF REPLACE_TEXTUALLY ~!HasItem("MINHP1",Myself)~ ~False()~ COMPILE_BAF_TO_BCS BUT_ONLY_IF_IT_CHANGES Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.