Jump to content

There are two Skyrim modding problems I need help with.


ItsMeToo

Recommended Posts

There are two Skyrim modding problems I need help with. If anyone has a solution to any one or both of these problems, I would be very grateful.

 

1) I made an NPC that gives out quests to the player to find an item. The quest is given, but as soon as the dialog for finding the item is over, the dialog that the item was found is displayed. I don’t want that dialog to be displayed, to the player, until after the item is found and in the player’s inventory.

 

2) The NPC is also a vendor. The generic vendor dialog was working and the player could buy and sell goods with the NPC. As soon as I voiced new quest dialog for the NPC (which works), the vendor dialog stopped showing up. I went into the CK’s dialog tool area to add my new voice type to the generic vendor dialog that I wanted. How do I get these new generic dialog lines re-voiced and showing up when the player talks to the NPC?

Link to comment
Share on other sites

I have put in many hours of working through these problems and searching for solutions
before I came here to ask for help. I forgot to mention that I already watched
and did many tutorials. I even have scripts and quests that run and work. The
quest knows where the item is located in the game, has map markers, and knows
when the player picks up the item. The problem is when I put the conditional
code in the stages to advance the quest. I know that I have a logic error
somewhere, but just can’t see it at the moment.

What I’m looking for is a general solution to the problem that I can adapt to my
code. The tutorials I watched didn’t help, so I came here.


For problem two, I know about the generic voicing and dialog. I didn’t change how those functions work.
I can add to those voice files or make a new voice type. When adding to the
generic voicing you get both the old generic voicing and the new dialog of the
new voicing. The vender buying and selling still works using this method, but is
immersive breaking when you have two different sounding voices in the same
character. That is why I asked the question.

Link to comment
Share on other sites

This is what I discovered is the root (I think), of my Quest not advancing. For some
reason my script won’t run. The debug messages in the script don’t display,
which tells me that the script didn’t run. I only get the debug messages,
“Stage 20” and “End of Stage 20”.


This script is attached to the quest object and alias.


What am I missing? Thanks for any help.



Debug.MessageBox("Stage 20")

SetObjectiveCompleted(10,1)

SetObjectiveDisplayed(20,1)

kmyQuest.pItsMeTooLostBladeRelicsNorthwindSpt

Debug.MessageBox("End of stage 20.")



The Property Name is pItsMeTooLostBladeRelicsNorthwindSpt

Type is Quest

Value is ItsMeTooLostBladeRelicNorthwind (the value name is correct, it is spelled differently and has been verified to be correctly spelled)

Here is the Script


Scriptname ItsMeTooLostBladeRelicsNorthwindSpt extends Quest

Quest Property pItsMeTooLostBladeRelicsNorthwindSpt Auto

Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer)

Debug.MessageBox("Running Event.")

if (newContainer == Game.GetPlayer())

Debug.MessageBox("Inside of if statement.")

pItsMeTooLostBladeRelicsNorthwindSpt.SetObjectiveDisplayed(25)

pItsMeTooLostBladeRelicsNorthwindSpt.SetStage(25)

Debug.MessageBox("Setting to next stage.")

endif

EndEvent

Link to comment
Share on other sites

I think you have several different issues, so it would probably be best to post one small issue at a time to keep it manageable. You haven't laid out your questions in a way that makes it easy to respond.

 

For the dialog issue, it seems like what you're saying is that you talk to this NPC, the NPC gives you directions to find some item, and then they immediately offer the next line, which should only be displayed AFTER the item is already found. Is this correct? If so, then you need to move that topic to a new branch. The new branch should have the requirement that a certain quest stage (the finding of the object) be completed.

 

For your script, first check to be sure that it is compiling and that you've set all your properties. If neither of those are the issue: I've found that sometimes messageboxes are buggy. Sometimes, even if everything is scripted correctly, messageboxes won't appear until after a clean save, which is obviously a pain while you're in the loop modding, loading, testing, modding, loading, testing, etc. My solution: use Debug.Notification() instead.

 

Lastly, your script is confusing to me. You should really post entire scripts using the spoiler tag. A script with OnContainerChanged() seems like it should be attached to the fetch object or the object's reference alias, not to the quest itself.

Link to comment
Share on other sites

Thanks for responding.

 

 

I think you have several different issues, so it would probably be best to post one small issue at a time to keep it manageable. You haven't laid out your questions in a way that makes it easy to respond.

For the dialog issue, it seems like what you're saying is that you talk to this NPC, the NPC gives you directions to find some item, and then they immediately offer the next line, which should only be displayed AFTER the item is already found. Is this correct? If so, then you need to move that topic to a new branch. The new branch should have the requirement that a certain quest stage (the finding of the object) be completed...

 

That is correct, but the topic is in a different branch. When I set the requirement that a certain quest stage (the finding of the object) be completed, I don't get the dialog that I found the object even after I have the object in my inventory. That is why I think that my script is not running. I want the script to advance the next stage after the object gets into the player's inventory.

 

Everything compiles correctly, no errors, no warnings.

 

Thanks for the Debug.Notification() option, I'll check that one out.

 

 

I think you have several different issues...

Lastly, your script is confusing to me. You should really post entire scripts using the spoiler tag. A script with OnContainerChanged() seems like it should be attached to the fetch object or the object's reference alias, not to the quest itself.

 

spoiler tag, good idea, I'll have to look into how to do that.

 

The OnContainerChanged() is set-up like the CK wiki tutorial. I don't understand what you mean. Could you show me an example of the correct way I should do this? Thanks in advance.

Link to comment
Share on other sites

 

The OnContainerChanged() is set-up like the CK wiki tutorial. I don't understand what you mean. Could you show me an example of the correct way I should do this? Thanks in advance.

 

The OnContainerChanged() event should only be valid within an ObjectReference script. Your script seems to be a Quest script, based on the first line:

 

 

Scriptname ItsMeTooLostBladeRelicsNorthwindSpt extends Quest
 

 

I think you need to add new script to your actual object. When you go to add the script, it should default to being the correct type of script.

 

I think you are trying to access this event, OnContainerChanged(), from the script added to the quest itself. The Quest will never change containers since it is not an ObjectReference. An ObjectReference is a specific existence of a Form (aka object) within the game.

Link to comment
Share on other sites

Thanks, that pointed me in the correct direction and now my quests work like I want. I still had to change some other code and change some logic, but now it's working. Thanks again.

 

Now I need help with Problem #2... anyone have any ideas?

 

2) The NPC is also a vendor. The generic vendor dialog was working and the player could buy and sell goods with the NPC. As soon as I voiced new quest dialog for the NPC (which works), the vendor dialog stopped showing up. I went into the CK’s dialog tool area to add my new voice type to the generic vendor dialog that I wanted. How do I get these new generic dialog lines re-voiced and showing up when the player talks to the NPC?

Link to comment
Share on other sites

My best guess without actually poking around in your mod is that it has to do with the custom voice. The generic vendor dialogue has lines that trigger for a lot of the default voice options. But if you've changed this NPC to have a custom voice, none of the default vendor lines are going to fire without some additional hacking.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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