Stuck in the arena after killing Lorne
#1
Posté 10 juin 2011 - 11:01
After killing Lorne in the trial by combat, nothing proceeds and I am forever stuck in the arena. This has happened before, but reloading and doing it again solved it. Now it doesn't. I've realoaded and done it again five times now with the same result. And no, I'm not using Khelgar or anyone else, I'm using my PC. Does anyone know the script name to run to kick off the next dialog?
Thanks.
#2
Posté 10 juin 2011 - 11:12
I tried it one more time, and this time turned off parry mode just before the final blow. Apparently if you tell the coward to stand up and fight, and then you kill him with a riposte attack, it doesn't recognize his death. What weird-ass kind of bug is that? So, having turned parry mode off just before the dialog, when it's over I immediately smack him, he dies, and then things proceed.
#3
Posté 10 juin 2011 - 12:38
been looking at the scripts and convo's & Lorne's death scene is triggered initially by an onDamaged event: does not matter whether by spell, riposte, whathaveyou. Glad you got it going again, 'cause apart from writing up a custom script I can't figure a way to trigger the conversation with Nasher without losing that nice little chat with Lorne just before (the one where ya get to smak 'im down!). Long story short, I'm gonna post some raw data here in case myself or anyone else needs to revisit this:
module: 2000_Neverwinter
area: 2026tourney
script: 20b_lorne_ud
convo: 20_cs_lorne_tr
script: 20_cs_lorne_tr
(especially the last two ..) &
20_cs_duel2 <-final convo w/ Nasher
ps. the lack of a search function is rather unforgivable, but these forums can be searched by prefixing a Google search with "
site:social.bioware.com nwn2".
Edit, for those who want to scratch their heads, like i am, I suspect the bug occurs in this section of 20_cs_lorne_tr(2)
case 2: //lorne attacks AssignCommand(oLorne, ClearAllActions(TRUE)); ChangeToStandardFaction(oLorne, STANDARD_FACTION_HOSTILE); SetImmortal(oLorne, FALSE); SetCommandable(FALSE, oLorne); PlayCustomAnimation(oLorne, "rage", FALSE); AssignCommand(oLorne, ActionWait(1.5f)); //duration of rage animation AssignCommand(oLorne, ActionDoCommand(SetCommandable(TRUE, oLorne))); AssignCommand(oLorne, ActionDoCommand(DetermineCombatRound())); break;
and yes it well could have some thing to do with Riposte ....
#4
Posté 10 juin 2011 - 10:21
So theoretically, if you were to get stuck after killing him, you could just use the console to run 20_cs_duel2 manually and proceed?
Modifié par maninthemoon, 10 juin 2011 - 10:27 .
#5
Posté 11 juin 2011 - 12:40
it's a bit more complicated than that, MitM.maninthemoon wrote...
So theoretically, if you were to get stuck after killing him, you could just use the console to run 20_cs_duel2 manually and proceed?
That conversation is run from an IPoint, which has to first be spawned in. (I'm not looking at the scripts atm.) but this is the sequence generally: (1) fighting Lorne, reduce him to 1 hp. (2) hit him again and that fires his onDamaged, which causes his surrender and spawns in his IPoint for conversation - so far so good. (3) his IPoint convo & script (20_cs_lorne_tr) then set up an IPoint for *Nasher* to *then* run 20_cs_duel2! If that script doesn't fire 'case 2' above properly, you've got to figure out some way to spawn Nasher's IPoint for the 20_cs_duel2 conversation to start ...
oh, yer welcome
rs 20_cs_lorne_tr(3)
that should both create the IPoint for Nasher and start his conversation immediately:
case 3: //start 20_cs_duel2 with Nasher
CreateIPSpeaker("Nasher", "20_cs_duel2", GetLocation(OBJECT_SELF), 0.f);
break;Of interest is that you took on Lorne with your PC instead of a Champion; the roote through the scripts is different for each situation. bah
So Lorne dies .. and Then you're stuck?! i think I know what it is ....Wow, thanks kevL! The reason I mentioned turning off Parry is that if you don't, the second the fight resumes after the dialog with Lorne, you automatically riposte before you get a chance to do anything else, which kills him, and then you're stuck. So the only way not to riposte is to turn parry off before the cut-scene. I have noticed this bug occur before when using certain spells that do continual damage, such as the various acid spells or a bigby's variant. The minute the dialog is over, the spell damages him and kills him before you can do anything. I've never tried finishing him off with an area-effect spell, but I wonder if perhaps you have to have him selected as the active target for the trigger to work? Grasping at straws now. :-)
else if ((nHP == 0 || GetIsDead(OBJECT_SELF)) && !TBC_PCHasChampion()) //killed
{
AssignCommand(oSoundPlayer, JumpToObject(oChamp));
CrowdRoar(GRP_CROWD, 0.f, SOUND_ROAR, oSoundPlayer);
CreateIPSpeaker("Nasher", "20_cs_duel2", GetLocation(OBJECT_SELF), 1.5f); << !thisClearAllActions(TRUE); ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.f, 300.f); }
the original scripters are trying to get a dead object to do stuff. ( idea != good ) If i Might paraphrase ya, "The minute the dialog is over, your riposte damages him and kills him before he can do anything."
Modifié par kevL, 11 juin 2011 - 01:14 .
#6
Posté 11 juin 2011 - 02:05
I can't believe that this issue has been bouncing around the forums for years (since the game's release) and this has never been figured out until now. It doesn't seem like it would have been a hard thing to patch, either.
#7
Posté 11 juin 2011 - 11:50
i See it as a Beauty and a curse. I mean, sure it never should have been released as it was in v.1 alpha+ .. v1.23 is pretty much a stable beta, but still beta. Peeps who've looked into it must be staggered at glaring 'anomalies' still there (here). I know i have!maninthemoon wrote...
I can't believe that this issue has been bouncing around the forums for years (since the game's release) and this has never been figured out until now. It doesn't seem like it would have been a hard thing to patch, either.
Scripts entirely absent, faction tables doing the opposite of what they claim, dead guys tring to run scripts as Lorne here. But it gives guys like me (and you) a cold, hard lesson; then with the Toolset we get to not only fix, but improve the base game to our liking!!!
described above is not a fix but a workaround; *if* my hunch is correct, it's fairly simple for any intermediate level scripter to hunt out the red-ified code in 20b_lorne_ud and change OBJECT_SELF to, say, the module object itself* Dead objects running code are said to be (and I quote) unreliable ..
*Edit, grr not that simple: the Nasher object instead.
Modifié par kevL, 11 juin 2011 - 12:16 .
#8
Posté 11 juin 2011 - 01:41
i got something here that should fire Nasher's ending convo consistently (when the PC chooses to end Lorne's pseudo-life).
20b_lorne_ud.nss = untested
20b_lorne_ud.ncs = untested
// changes line 324
CreateIPSpeaker("Nasher", "20_cs_duel2", GetLocation(OBJECT_SELF), 1.5f);
// to
CreateIPSpeaker("Nasher", "20_cs_duel2", GetLocation(GetObjectByTag("Nasher")), 1.5f);nb. these links will go defunct in future. Instruct, create a folder under MyDocs->override called 'OC_Trial_Lorne', place those two files in there. Slaughter Lorne.
(*only* for Lawful Evils: chop off head, put on pike, have Parade)
#9
Posté 11 juin 2011 - 03:46
#10
Posté 11 juin 2011 - 04:57
ya, the .ncs is the compiled .nss
let me know if it works, at yer leisure; ie, TRY to make the bug appear ..





Retour en haut






