Jump to content

New to Scripting


InActionMan64

Recommended Posts

You mean this isn't enough https://geckwiki.com/index.php?title=Category:Quests

 

Hehe lol ... but I guess the question needs to be more specific. Which I gather you mean the part about displaying objectives in the pipboy ?

Which is all done with the objectives tab. And while the stages tab is most often used in conjunction with it , you could use only the objectives tab for what is displayed and/or map points to.

And simply have the objectives changed through other script means. Because the stages still require external means in changing them , to then change the objectives,

 

So I guess for helping you understand , beyond what that simple tutorial in the wiki says. It would be easier to take an idea you have for what you want to accomplish ... then point out the ways in which to do that.

Link to comment
Share on other sites

  • Replies 76
  • Created
  • Last Reply

Top Posters In This Topic

Yeah, I'm just struggling in general. I've already done the quest through scripting but now I want to have it actually show up and track as a quest.

 

Getting all the but if they do this bit first and that bits optional sorted, is breaking my brain.

The wiki helps but it's like learning something new after just spending 8 weeks learning something else new. :pinch:

Link to comment
Share on other sites

Well any time you run the commands "SetObjectiveDisplayed" and/or "SetObjectiveCompleted" will change what is displayed in the pipboy.

 

Which typically you use those in the result script on the QuestStage tab , but any ole scripting could work. It's just that the Stage portion adds more functionality and helps organize the structure behind the display signs telling the player what to do. So often times you will match the indices from stage tab and objective tab.

Example :

 

Stage 10 = result script : SetObjectiveDisplayed MyQuest 10 1

 

Stage 20 = result script : SetObjectiveCompleted MyQuest 10 1

SetObjectiveDisplayed MyQuest 20 1

 

Stage 30 = result script : SetObjectiveCompleted MyQuest 20 1

SetObjectiveDisplayed MyQuest 30 1

 

Stage 50 = result script : SetObjectiveCompleted MyQuest 30 1

; Flag the quest as completed

~~~~~~~~~~~~

 

But I guess you noticed I skipped stage 40 ? Which we will call it the optional route to get to stage 50

 

Stage 40= result script : SetObjectiveDisplayed MyQuest 40 1

SetObjectiveCompleted MyQuest 40 1

; Flag the quest as completed or set stage 50

~~~~~~~~~~~~

 

It's really rather adaptable and boils down to what ever you want to end up displaying to the player as far as quest instructions.

So it helps to have an idea first ... then try to use these tools to make that happen.

Just remember conditions are more limited than other condition fields because they are limited to the stage or quest target on the objective tab.

Which I am not exactly sure what kind of conditions can apply in the stages tab since I have never used them. It just says nothing that applies to a reference ^shrug^

But the objective tab condition field is only for evaluating conditions on the quest target (a persistent reference)

 

And remember that the indices are not an indication that they need be run in that order ... you can skip all over the place with those. They are only for organization and assigning what specifically to do in the quest.

Hence a stage path the player actually goes through may be 10>40>20>50 ... which would only be possible because you laid the scripting frame work to render that .... hope that makes sense ???

 

Oh but also if it wasn't clear ... the optional paths are pretty much the same concept as the difference between "And" "OR" operators.

 

Player does this path of { this AND that = completed }

But also could be { this OR that = completed }

 

However I think in the tutorial when they say optional , they mean something as an Easter Egg ... and not required for a completion path .

Link to comment
Share on other sites

I'm getting a handle on it, I took your first advice and stuck to scripting, using the quest only to display info not manage it.

Seems to be working, no references or conditions on the Objectives and only a few Result Script on Stages.

Cuz I'd already scripted everything, I'm just adding Displayed, Completed and SetStage where necessary.

What was throwing me off is the Result Script was for when the Stage was activated not when it was completed, kept getting my 30's mixed up.

Link to comment
Share on other sites

 

What was throwing me off is the Result Script was for when the Stage was activated not when it was completed, kept getting my 30's mixed up.

 

Now it sounds like you dont know what you are talking about. A result script of a stage is the last scripting besides those flags below it.

The conitions keep the result script from running ... that is it. You can have multiple conditions ... but also you can have an input fork so to speak.

So this condition if true will run a result script.

Or another condition will run a diff result script.

Which is key to know ... each item has its own result script. a diff item will not run the result script of another.

The thing that is confusing ... is you have to click in the bottom field to add a condition. Not the upper field that displays it more coherently.

And Rememeber ... the item on top must be highlighted for it to count under its tree. Just like dialogue.

 

The tool is just not very user friendly ... so you have to get friendly with it ... hehe

Link to comment
Share on other sites

oh wait /// if you do not put any conditions ... the result script runs as soon as the stage is set . So you are thinking it is first ? Which I would like to point out ... as stage even with its condition field and result script separate.

It is not much different than with "On Activate" script block.

 

And is the interesting thing imo , about a quest and the stage tab. You could essentially use it as a multi frame script. Have each stage at end of result script set the next stage.

so each stage would be the same as a 1 frame block thereby letting you make up to a 255 frames of reading script lines. But is very light weight per frame read ... cuz the 100ish line script that runs every frame in game mode ... is Heavier ...

 

Just a mention for how to get some utility out of that feature.

Link to comment
Share on other sites

Well sorry ... I do tend to ramble off on superfluous details. So I guess just stick to only using the Objective tab ... which is the only thing necessary for making it show in the pipboy.

And just think of the Stage section as another way to run "Begin OnActivate" scripts . Which I think normally putting conditions per stage is of limited use. Because you probably had what ever conditions satisfied before using the "SetStage" command. At least until you get to needing/wanting to use the input fork . . . albeit there is certainly many ways to achieve the same functionality with the geck.

Link to comment
Share on other sites

Yeah, I'm almost done with the quest and I've stuck purely, mostly, to Objectives. By using a Quest, as well as my scripted approach, it did introduce a few new problems but I've manged to overcome them now. I'm in the, hopefully, final stages of testing; running end to end, starting at different points, trying to do it backwards, etc. My only real concern, at release, is how the few minor vanilla scripts I've had to alter will play.

Link to comment
Share on other sites

Yeah, I'm almost done with the quest and I've stuck purely, mostly, to Objectives. By using a Quest, as well as my scripted approach, it did introduce a few new problems but I've manged to overcome them now. I'm in the, hopefully, final stages of testing; running end to end, starting at different points, trying to do it backwards, etc. My only real concern, at release, is how the few minor vanilla scripts I've had to alter will play.

 

Awesome ! So you're ready for a new challenge ? Like how to make that resource gathering node use an array ?

 

Add edit: sorry I mean resource dumping node ... so basically an area trigger below a given ground level ... employing gravity physics on dropped items to trigger it.

And I imagine I need an array to sort this plethora of items that can be dropped ... to increment different variables ?

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...