Jump to content

[LE] [Skyrim Classic] I need help debugging a quest.


TomTesoro

Recommended Posts

The problem is that one actor in my scene just isn't performing his actions. It will just skip the phases with him in it and move on to the next one.

 

I've tried recommendations I read while researching this issue, such as setting all dialogue to have forced subtitles and voice files, and making sure all the aliases used in the scene are unique actors. It still skips him in the scene. I also tried removing the actor from that scene and re-adding him, but that didn't work. It's still doing the same thing.

 

 

 

THIS HAS BEEN SOLVED. THAT'S WHY IT'S IN A SPOILER TAGS.

 

I have created a quest that I'm fairly certain should be working, but I am having loads of problems with it.

 

The second problem is I'm using StartCombat on 3 different dialogue fragments based on player choice. It's being used for one NPC to attack another. It works just fine on one fragment, but on the other two it does not work at all. It compiles just fine, and the properties are set to what they should be. You can see a screenshot of one of the not working ones here.

 

Is anyone willing to help me out here? I'm not sure what to do with the quest at this point, it is just not cooperating.

 

 

Edited by VincentLachance
Link to comment
Share on other sites

Disregard this post.

 

Ok the StartCombat thing is working now. Why it wasn't working before is anyone's guess.

 

The other problem is with this script:

Event OnDeath(Actor akKiller)

 if (TBO05Part2.GetStage() == 24)
    TBO05Part2.SetCurrentStageID(25)
    TBO05Part2.SetObjectiveDisplayed(24)
  endIf

The stage is set to 24 when it's running, but it never advances the stage to 25. I have a nearly identical script on another actor just without the SetCurrentStageID part, and it runs just fine.

This script also doesn't work:

Event OnDeath(Actor akKiller)

  if (TBO05Part2.GetStage() == 23)
    TBO05Part2.SetCurrentStageID(200)
  endIf

endEvent

Is it because I'm not setting akKiller? I'm not doing that because I want this to happen when anyone/anything kills them. I've also tried it as OnDying but that didn't do anything either.

 

Update: After reading up on similar issues, I learned that this kind of script won't work from an alias. So I changed "Extends ReferenceAlias" to "Extends Actor" and placed the scripts directly on the corresponding actors themselves and now it works.

 

 

Edited by VincentLachance
Link to comment
Share on other sites

  • 2 weeks later...

The problem is that one actor in my scene just isn't performing his actions. It will just skip the phases with him in it and move on to the next one.

 

I've tried recommendations I read while researching this issue, such as setting all dialogue to have forced subtitles and voice files, and making sure all the aliases used in the scene are unique actors. It still skips him in the scene. I also tried removing the actor from that scene and re-adding him, but that didn't work. It's still doing the same thing.

 

Problem still occurring. Different scene, different quest, different character. That's two now.

Edited by VincentLachance
Link to comment
Share on other sites

Are you running packages on the scenes? If so, experiment with removing them.

 

I make a lot of scenes and any issues I've had have always revolved around packages.

 

Edit: P.s. another issue can be (believe it or not) the I'd conditions on the scene dialogue. I had a ghost npc that wouldn't behave until I changed his dialogue conditions from GetIsId to GetIsalias. Possibly unrelated and not useful, but worth mentioning I guess.

Edited by skinnytecboy
Link to comment
Share on other sites

Thanks for the info.

 

The only packages running on the scene are a travel package that they use in vanilla scenes to keep the NPCs in place.

 

You know, I hadn't thought of using GetIsAliasRef instead of GetIsID. That could very well be the issue, although why it would only affect one alias and not the others is beyond me. I'll try that out and see what happens.

 

Update: Nope, that didn't fix it. :wallbash: Guess I'll try removing that package then.

 

Update 2: Removed the package, no results. The guy isn't responding to the scene at all. He's just ignoring it. Also, I am testing from a clean save each time using Live Another Life.

Edited by VincentLachance
Link to comment
Share on other sites

The only advice I can offer is to test more. It's a pain but sometimes you have to.

 

Create a simple test scene, starting with dialogue only. Then gradually add packages one at a time etc.

 

Also, add some debug script to your scene phases so that you can monitor them:

 

Debug.MessageBox("phase one has started")

 

Btw are there packages on the actual actor? Could they be conflicting somehow?

 

Either way, it seems like the issue revolves around the alias. I'm sure you've checked to see if the alias is filling..

 

(Note: you can change GetIsId to GetIsalias and it won't change the file path of the audio, so it's worth changing his topic dialogue to check if it's firing at all)

 

Personally, I always set my aliases to specific references.

 

I also test straight from the main menu by coc to my location and setting the relevant stages.

 

Oh and LAL is conflict free right? ;)

 

Benjamin Doon used to cause ctd with LAL because GetIsId wasn't at the top of the dialogue condition stack. But of course, that was my fault and not LAL's

Edited by skinnytecboy
Link to comment
Share on other sites

Tried a debug script on the start and end of the first phase that the non-responding actor is in. It showed that the phase is immediately starting and ending at the same time, ignoring anything actually in the phase. I'm going to try putting some dialogue on the other actor in that phase, we'll see what happens there.

Yeah, there was a sandbox package on him, I removed it, still no results.

Here are the results from running SQV. I assume the alias is filling. It is a simple actor alias linked to a specific reference with optional, allow resuse in quest, and allow reserved ticked.

 

http://i.imgur.com/GsUPHx4.jpg


I have tested this from the menu, and I just did a test that way with the same results. I try to avoid testing that way because I heard that doing so causes some of the essential scripts that start on a new game to not run.

 

-----------

 

Update: Very strange discovery. Putting a blank line of dialogue on the other actor in the scene into a phase that wasn't working... fixed the entire scene. Creation Kit... you're very strange.

 

In any case, what an absolutely massive relief. This was holding back so much of my dev time. Now I have to try that on the other scene where I was having this issue. Thanks for your help.

Edited by VincentLachance
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...