Jump to content

Quest dialog conditions help


tg08096

Recommended Posts

I hate asking for help but I'm stuck. I just started making my own mods about a week ago, so I'm a noob. I went through the tutorials for the ck, and I cant figure out how to do what i want to do. I am not in the business, so my knowledge/understanding is limited, but I have a great desire to teach myself this stuff and all I need is a little help.

 

For the dialog condition of the quest, I want my quest to be given by any apothecary, so instead of GetIsID = (npc), I tried GetInFaction = JobApothecaryFaction. It didn't work. I *could* just do GetIsID (apothecarynpcname) OR, and do this for each apothecary (there are 11 in vanilla), but I want this quest to also be given by any new npc (expansions, other mods) that has the JobApothecaryFaction.

 

The other thing I need help with is I want a condition of the dialog to check the PC's Alchemy skill level. If the level is too low or too high, the quest wont be offered. The reason for this is that let's say there are 4 quests, but each one is meant for a different skill level. Here is a very crude example of what I mean for the quests' conditions (the commands are fictional):

 

Quest 1

GetStage 'MyQuest1' < 10 AND

GetIsFaction JobApothecaryFaction == 1 AND

PCSkillLvl 'Alchemy' >= 20 AND

PCSkillLvl 'Alchemy' < 40 AND

 

Quest 2

GetStage 'MyQuest2' < 10 AND

GetIsFaction JobApothecaryFaction == 1 AND

PCSkillLvl 'Alchemy' >= 40 AND

PCSkillLvl 'Alchemy' < 60 AND

 

Quest 3

GetStage 'MyQuest3' < 10 AND

GetIsFaction JobApothecaryFaction == 1 AND

PCSkillLvl 'Alchemy' >= 60 AND

PCSkillLvl 'Alchemy' < 80 AND

 

Quest 4

GetStage 'MyQuest4' < 10 AND

GetIsFaction JobApothecaryFaction == 1 AND

PCSkillLvl 'Alchemy' >= 80 AND

PCSkillLvl 'Alchemy' < 100 AND

 

The point of this is that the 2nd, 3rd, and 4th quests will give an upgrade of the same item type, but if the player's alchemy level is high enough for a better version of the item when they download the mod, they wont have to get the lesser versions first.

 

The other way I could do this is to have one repeating quest, and the game will check the PC's alchemy level when they start the quest, and at that moment place the proper object on the alias. The problem with this is A) How to do it and B) I dont want a new character to have to do the same quest 4 times. I could solve B by having a set of LocationHasRefType(s) and LocationHasKeyword(s), but this also limits my ability to diversify the quests, unless the game ALSO checked the PC's Lvl and only offered certain functions or sets of functions based on PC Level. But I feel like that would be getting out of hand, plus that would add another giant "A"

 

 

As you can see, I'm pretty messed up here. Please understand that I am trying to teach myself and am not asking someone to hold my hand; I just need some kind of direction, suggestions, light at the end of the tunnel sort of thing.

 

Thank you for reading and any help that I can get will be greatly appreciated.

Link to comment
Share on other sites

Looking at CKwiki, i can answer your first question

 

This console command works if used in Console, but doesn't work if used as Condition (for example, as a condition for a Message Box).

 

I think that condition is bugged. Try using GetFactionRank returning 0.

 

For the rest, i don't understand. You want, let's say, if i have 60 in alchemy i get the quest n.3 and only it? So if i get 80 i don't have access to the 4th quest?

Link to comment
Share on other sites

@gasti89

 

What I did was I created 20 new items in the CK. Mortar and pestle, alembic, calcinator, and retort, and 5 versions of each - novice, apprentice, journeyman, expert, and master. Each piece of apparatus is equipped in the unused equipment slots 57, 58, 59, ad 60. In order to use them, they have to be equipped. Using equipment slots, only one piece of each apparatus may be used at a time. Each has an enchantment on it - fortify alchemy 1, 2, 3, 4, and 5 for each piece of novice, apprentice, journemay, expert, and master, respectively. For balance reasons, the quest to get the first piece - novice mortar and pestle - will be (when i figure it out) only available at level 20 and above. Each piece thereafter will be available at 5 levels higher, and the quest for the novice m&p will no longer be valid at alchemy lvl 40, at which time the quest for the apprentice mortar and pestle will "take over." To illustrate:

 

20 < 40 - novice mortar and pestle

25 < 45 - novice alembic

30 < 50 - novice calcinator

35 < 55 - novice retort

40 < 60 - apprentice mortar and pestle - since the alchemy skill req for novice m&p is <40, it will no longer be available to the player, the apprentice m&p will

45 < 65 - apprentice alembic

 

. . .and so on

 

If let's say your alchemy skill is 60 (to use your example) when you download the mod, 4 quests will be available to you immediately, all 4 novice pieces. If you downloaded at say, 80 alchemy, all 4 journeyman quests would be available, but not any novice or apprentice.

 

*edit: The novice pieces are for sale at Arcadia's Cauldron in Whiterun, so I will do quests for the other 16 pieces, not sure what level to begin at, want it to be balanced.

Edited by tg08096
Link to comment
Share on other sites

Then i think you conditions are ok.

 

You can set every quest as "start game enabled".

 

With that conditions, the dialogues will only be accessible if you match them.

 

So i see no problems, if you fixed the faction problem.

 

That's the problem, I didn't fix the problem. Those conditions are an example of what I want to do, not what I did, and I don't know how to do it lol

Link to comment
Share on other sites

Well, since i can't look at the CK now, i just looked at the wiki under "conditions".

 

The only condition i found for the skill is GetBaseActorValue

 

So you conditions should be this:

 

GetStage myQuest < 10

GetFactionRank JobApothecaryFaction == 0

GetBaseActorValue Alchemy >= whatever or <= whaterver

 

NOTE: i think the last condition MUST be run on "Target", not "Subject", cause the subject is the actor, while target (in this case) should be the player.

 

Then (since i still don't understand this part).

 

If you want the player to only do 1 quest (so if you do the lev1 you can't do the other levels when you reach the proper skill level) you just call the stop() script for the quest you want to stop in the final stage fragment of your quest.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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