Jump to content

[LE] how put this script on creation kit


Recommended Posts

sorry for my bad english,

 

i have this script (i not guarantee it right) ,

but i dont know how to put it :

 

// Infiltration quest program begin
SetObjectiveDisplayed( "Talk to Stalleo to trigger 'Infiltration' quest");
put Quest marker on Stalleo;

if ( dunTrevasWatchQST.QuestStage > 0 )
{
SetObjectiveCompleted( "Complete : Talk to Stalleo to trigger 'Infiltration' quest");
remove Quest marker on Stalleo;
}
// Infiltration quest program end

can somebody make me video tutorial about it?

or at least create step by step text version of it,

 

i have watch ton about video tutorial in youtube, but still i dont understand,

please somebody help me with this

Link to comment
Share on other sites

That's not an actual script, SetObjectiveDisplayed does not take the text you want displayed as a parameter, it takes the number of the objective an "put/remove quest marker" doesn't exist as a function and in fact there no such thing as putting quest markers on references from papyrus, it simply doesn't work like that, you'll have aliases on your quests and objectives can target those. So your issue it not just where to put it.

 

Start here: https://www.creationkit.com/index.php?title=Category:Tutorials

particulary this one covers making a quest and adding certain scripted functions to it, script fragments, etc: https://www.creationkit.com/index.php?title=Bethesda_Tutorial_Planning_the_Quest

 

Also useful as reference for actual papyrus functions: https://www.creationkit.com/index.php?title=Category:Papyrus

Edited by FrankFamily
Link to comment
Share on other sites

It is not clear what you are trying to do here, but whatever it is it doesn't look like it can be done in a just in a script. If you want something to happen after you have talked to someone you would normally have the final line of that dialogue set a quest stage in whatever quest you had created and that quest stage could set an objective eg SetObjectiveCompleted(10).

Link to comment
Share on other sites

So, if I understood you correctly, you have a quest with multiple objectives for starting multiple vanilla quests and when the player starts said quests (When "dunTrevasWatchQST.QuestStage > 0" in your example) then you want to complete the objective, is that it?

 

Asuming that's it, first you need to learn the syntax of papyrus, you say you've watched tons of tutorials but the syntax of what you wrote doesn't look like a papyrus script at all, not even the basic structure, so no offense intended and apologies if I'm being to harsh, but I doubt it was a ton. For example papyrus doesn't have "{}" surrounding the content of a function block, you are missing endif, you haven't checked what parameters the function you called (SetObjectiveDisplayed) actually takes and you passed a string which is not correct. (You can check this in the third link I posted, it has all the functions and events, what parameters they take, on whom do you call them, what they do, etc).

 

As for what you want to acomplish, if you have multiple objectives on a quest and you call SetObjectiveDisplayed(X) where X is the index by its side on the objective window it will display it with its text and show the marker for it if it has one, you need to make an alias for your target and select it in the objective window. I believe this is all well explained in the quest tutorial I linked.

 

Your problem though is when do you run the second bit of code (i.e. completing the objective)? you could call SetObjectiveCompleted from the vanilla quest in question (the fragment of the stage you want to react to) but that's not the best method for compatibility. If it's doing something to an actor you could make an alias to him (which you would need if you want a quest marker to point to him) and then react to some event on the actor, if the objective is killing him, that's easy, there's a event for that (OnDeath, check the papyrus reference) but saying a particular dialogue? Not sure how I would aproach it without modifying the vanilla scripts of the dialogue/quest. It depends on the specific event you want to react to but it has to be something. "If" is not an event, "If" is if that's true do stuff otherwise skip (or run the next elseif/else statement).

 

Some more links for getting started on scripting:

http://www.cipscis.com/skyrim/tutorials/beginners.aspx

https://www.creationkit.com/index.php?title=Category:Bethesda_Scripting_Tutorial_Series

 

And I believe there are plenty papyrus-related tutorials on youtube.

Edited by FrankFamily
Link to comment
Share on other sites

So, if I understood you correctly, you have a quest with multiple objectives for starting multiple vanilla quests

just say i will create 1 quest = 1 objectives, it easier to manage,

 

 

d when the player starts said quests (When "dunTrevasWatchQST.QuestStage > 0" in your example) then you want to complete the objective, is that it?

yes is it

 

Asuming that's it, first you need to learn the syntax of papyrus, you say you've watched tons of tutorials but the syntax of what you wrote doesn't look like a papyrus script at all, not even the basic structure, so no offense intended and apologies if I'm being to harsh, but I doubt it was a ton. For example papyrus doesn't have "{}" surrounding the content of a function block, you are missing endif, you haven't checked what parameters the function you called (SetObjectiveDisplayed) actually takes and you passed a string which is not correct. (You can check this in the third link I posted, it has all the functions and events, what parameters they take, on whom do you call them, what they do, etc).

 

As for what you want to acomplish, if you have multiple objectives on a quest and you call SetObjectiveDisplayed(X) where X is the index by its side on the objective window it will display it with its text and show the marker for it if it has one, you need to make an alias for your target and select it in the objective window. I believe this is all well explained in the quest tutorial I linked.

 

Your problem though is when do you run the second bit of code (i.e. completing the objective)? you could call SetObjectiveCompleted from the vanilla quest in question (the fragment of the stage you want to react to) but that's not the best method for compatibility. If it's doing something to an actor you could make an alias to him (which you would need if you want a quest marker to point to him) and then react to some event on the actor, if the objective is killing him, that's easy, there's a event for that (OnDeath, check the papyrus reference) but saying a particular dialogue? Not sure how I would aproach it without modifying the vanilla scripts of the dialogue/quest. It depends on the specific event you want to react to but it has to be something. "If" is not an event, "If" is if that's true do stuff otherwise skip (or run the next elseif/else statement).

 

Some more links for getting started on scripting:

http://www.cipscis.com/skyrim/tutorials/beginners.aspx

https://www.creationkit.com/index.php?title=Category:Bethesda_Scripting_Tutorial_Series

 

And I believe there are plenty papyrus-related tutorials on youtube.

i belive i have read those, but i not good at programing, at first i have request this mod before, but nobody reply it, then "why i not create it by my self", then i do lot research, read that, watch this, try that, try this, in the end i realize the programing is not my thing, then i ask in this forum to create video tutorial about that "quest", so i can copy it then redo it with some modification (quest name and quest target) ,

at this point because nobody like to make the mod or video, i realize, i just need to give up about this mod,

still, i hope somebody can make this mod or video for me,

anyway i really appreciate your reply, really thanks!.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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