Page: << 1 >>
EO+ issue
Author Message
Post #203446 EO+ issue

Greetings friends! 

I finished a quest it doesn't load any errors but when I click the NPC to start the quest no dialog shows up at all...it starts the quest in the history page, but it doesn't allow me to make any choices for the quest. 


Here is the code, sorry not sure how to add code blocks to make it less annoying. 

//Archer Quest level 1-3??

main

{

questname "Letter to Jean"

version 1.0

}


state begin

{

desc "Awoken"

action AddNPCText (14, "Hello there! I see frank has transported you! Welcome to Archer's Cove! I am Duke the leader of the Archer's. Can you help me with something?");

action AddNPCInput (14, 1, "Yes");

action addnpcinput (14, 2, "No..I want to explore");

rule InputNpc(1) goto Yes

rule Inputnpc(2) goto No

}

state Yes

{

desc "talk to Jean"

action addnpctext (14, "Great! I need you to go talk to Jean, she is the Archer trainer, I have this letter for her that I need you to bring to her can you please bring it to her for me?");

action addnpcinput (14, 1, "I'm on it!");

action giveitem (507, 1);

action showhint ("talk to Jean");

action addnpctext (6, "Hello! Glad to see a new recruit! Ah..the letter from Duke thank you! Please take these items for training!");

action giveitem (297,1);

action giveitem (423,1);

action showhint ("You where given training Items");

rule talkedtonpc(6) end();

}

state No

{

action addnpctext(14, "Alright then come back to me when your ready");

action addnpcinput(14, 1, "Ok");

action showhint ("You've aborted the quest");

action resetquest(3);

}

Each NPC in this is spawned an exsits, Duke the main NPC has quest 3 in it's Quest id # but he still wont show anything, I've reloaded rebooted deleted quests out of my characters history via database. But still can't get anything to show up

6 years, 42 weeks ago
Post #203447 Re: EO+ issue

If it loads perfectly and gives no errors the only things I can think off are that the Npc might not be a quest type or that you've used the Npc ID and not the Npc quest ID

6 years, 42 weeks ago
Post #203448 Re: EO+ issue

*Edit*

I noticed several issues so I've fixed it up for you -

Some notes, it seems as if you are using quest ID's 3, 6 and 14, so I've set them all to 3 or 6?. May have to correct that if it's wrong.

Also, if you use an action AddNpcInput(1,"Choice"); - I think it requires you to follow it with a rule InputNpc(1) goto state - so I've split up your states for you.

Further, I find it best practice to isolate any giving of items in its own state, to not allow possible ways for players to glitch the script and receive multiple rewards etc.

And if you are resetting or ending the quest you are working on, can just use an action Reset(); or End(); - you can use the way you were doing it for resetting or ending a separate quest.

main

{

questname "Letter to Jean"

version 1.0

}

state Begin

{

desc "Awoken"

action AddNpcText (3,"Hello there! I see frank has transported you! Welcome to Archer's Cove! I am Duke the leader of the Archer's. Can you help me with something?");

action AddNpcInput (3, 1,"Yes");

action AddNpcInput (3, 2,"No..I want to explore");

rule InputNpc(1) goto Yes

rule Inputnpc(2) goto No

}

state Yes

{

desc "talk to Jean"

action AddNpcText (3,"Great! I need you to go talk to Jean, she is the Archer trainer, I have this letter for her that I need you to bring to her can you please bring it to her for me?");

action AddNpcInput (3, 1,"I'm on it!");

rule InputNpc(1) goto Yes1

}

state Yes1

{

action GiveItem (507,1);

action SetState("Yes2");

}

state Yes2

{

action ShowHint ("talk to Jean");

action AddNpcText (6,"Hello! Glad to see a new recruit! Ah..the letter from Duke thank you! Please take these items for training!");

action AddNpcInput (6, 1,"Thank you!");

rule InputNpc(1) goto Yes3

}

state Yes3

{

action GiveItem (297,1);

action GiveItem (423,1);

action ShowHint ("You where given training Items");

action End();

}

state No

{

action AddNpcText(3,"Alright then come back to me when your ready");

action AddNpcInput(3,1,"Ok");

rule InputNpc(1) goto ResetWithHint

}

state ResetWithHint

{

action ShowHint("You've aborted the quest");

action Reset();

}

---
Host of a blacklisted server...
6 years, 42 weeks ago
Post #203449 Re: EO+ issue

Make sure the quest file name and the NPC's quest ID in the begin state are the same. You can use any other quest NPC's after the quest has been started. Example 00004.eqf and Quest ID = 4.

6 years, 42 weeks ago
Post #203450 Re: EO+ issue
sob posted: (10th Jul 2017, 05:31 pm)

*Edit*

I noticed several issues so I've fixed it up for you -

Some notes, it seems as if you are using quest ID's 3, 6 and 14, so I've set them all to 3 or 6?. May have to correct that if it's wrong.

Also, if you use an action AddNpcInput(1,"Choice"); - I think it requires you to follow it with a rule InputNpc(1) goto state - so I've split up your states for you.

Further, I find it best practice to isolate any giving of items in its own state, to not allow possible ways for players to glitch the script and receive multiple rewards etc.

And if you are resetting or ending the quest you are working on, can just use an action Reset(); or End(); - you can use the way you were doing it for resetting or ending a separate quest.

main

{

questname "Letter to Jean"

version 1.0

}

state Begin

{

desc "Awoken"

action AddNpcText (3,"Hello there! I see frank has transported you! Welcome to Archer's Cove! I am Duke the leader of the Archer's. Can you help me with something?");

action AddNpcInput (3, 1,"Yes");

action AddNpcInput (3, 2,"No..I want to explore");

rule InputNpc(1) goto Yes

rule Inputnpc(2) goto No

}

state Yes

{

desc "talk to Jean"

action AddNpcText (3,"Great! I need you to go talk to Jean, she is the Archer trainer, I have this letter for her that I need you to bring to her can you please bring it to her for me?");

action AddNpcInput (3, 1,"I'm on it!");

rule InputNpc(1) goto Yes1

}

state Yes1

{

action GiveItem (507,1);

action SetState("Yes2");

}

state Yes2

{

action ShowHint ("talk to Jean");

action AddNpcText (6,"Hello! Glad to see a new recruit! Ah..the letter from Duke thank you! Please take these items for training!");

action AddNpcInput (6, 1,"Thank you!");

rule InputNpc(1) goto Yes3

}

state Yes3

{

action GiveItem (297,1);

action GiveItem (423,1);

action ShowHint ("You where given training Items");

action End();

}

state No

{

action AddNpcText(3,"Alright then come back to me when your ready");

action AddNpcInput(3,1,"Ok");

rule InputNpc(1) goto ResetWithHint

}

state ResetWithHint

{

action ShowHint("You've aborted the quest");

action Reset();

}


I was using NPC Id's not quest ID's lol thats the last time I write a quest when I take a pain killer xD anyways 

I'll fix my quest an see how it works, also question to either Apollo or Sob whomever can answer lol when I am having the quest talk to more then 1 NPC for the text part am I still using the quest ID? I noticed that when you did it you used a different number then the start of the quest. Is the Id I use for the second NPC the NPC id #? Or a second quest in a quest? Also do each  NPC need to have a state of being a quest NPC? if none of that makes sense I can reask 
6 years, 42 weeks ago
Post #203451 Re: EO+ issue
Drewbob posted: (10th Jul 2017, 07:46 pm)

sob posted: (10th Jul 2017, 05:31 pm)

*Edit*

I noticed several issues so I've fixed it up for you -

Some notes, it seems as if you are using quest ID's 3, 6 and 14, so I've set them all to 3 or 6?. May have to correct that if it's wrong.

Also, if you use an action AddNpcInput(1,"Choice"); - I think it requires you to follow it with a rule InputNpc(1) goto state - so I've split up your states for you.

Further, I find it best practice to isolate any giving of items in its own state, to not allow possible ways for players to glitch the script and receive multiple rewards etc.

And if you are resetting or ending the quest you are working on, can just use an action Reset(); or End(); - you can use the way you were doing it for resetting or ending a separate quest.

main

{

questname "Letter to Jean"

version 1.0

}

state Begin

{

desc "Awoken"

action AddNpcText (3,"Hello there! I see frank has transported you! Welcome to Archer's Cove! I am Duke the leader of the Archer's. Can you help me with something?");

action AddNpcInput (3, 1,"Yes");

action AddNpcInput (3, 2,"No..I want to explore");

rule InputNpc(1) goto Yes

rule Inputnpc(2) goto No

}

state Yes

{

desc "talk to Jean"

action AddNpcText (3,"Great! I need you to go talk to Jean, she is the Archer trainer, I have this letter for her that I need you to bring to her can you please bring it to her for me?");

action AddNpcInput (3, 1,"I'm on it!");

rule InputNpc(1) goto Yes1

}

state Yes1

{

action GiveItem (507,1);

action SetState("Yes2");

}

state Yes2

{

action ShowHint ("talk to Jean");

action AddNpcText (6,"Hello! Glad to see a new recruit! Ah..the letter from Duke thank you! Please take these items for training!");

action AddNpcInput (6, 1,"Thank you!");

rule InputNpc(1) goto Yes3

}

state Yes3

{

action GiveItem (297,1);

action GiveItem (423,1);

action ShowHint ("You where given training Items");

action End();

}

state No

{

action AddNpcText(3,"Alright then come back to me when your ready");

action AddNpcInput(3,1,"Ok");

rule InputNpc(1) goto ResetWithHint

}

state ResetWithHint

{

action ShowHint("You've aborted the quest");

action Reset();

}


I was using NPC Id's not quest ID's lol thats the last time I write a quest when I take a pain killer xD anyways 

I'll fix my quest an see how it works, also question to either Apollo or Sob whomever can answer lol when I am having the quest talk to more then 1 NPC for the text part am I still using the quest ID? I noticed that when you did it you used a different number then the start of the quest. Is the Id I use for the second NPC the NPC id #? Or a second quest in a quest? Also do each  NPC need to have a state of being a quest NPC? if none of that makes sense I can reask 

Yeah so, NPC 1 has Quest ID 3 for example, then the starting quest should be 00003.eqf and any reference to that NPC in the quest should be the Quest ID you assigned to it (3).

Then, if you wanted a second NPC to deliver the letter to, you could set that NPC to Quest ID 6 for example, and in the 00003.eqf file, have some npc text set to Quest ID 6.

Hope that makes sense. - The starting quest should be the same name as the Quest ID tho as above.

I'm pretty sure that should work, though I don't tend to do it this way, I make separate quests for each NPC, and then use rules like IsQuestState to ensure they have completed the previous, or make the second quest only react to a player, if they have the letter from the 1st quest etc.

---
Host of a blacklisted server...
6 years, 42 weeks ago
Post #203452 Re: EO+ issue

Sob can you show me a example of this? 

6 years, 42 weeks ago
Post #203453 Re: EO+ issue
Drewbob posted: (10th Jul 2017, 10:52 pm)

Sob can you show me a example of this? 


So, for example quest 1 gives them the item (the letter), and then tells them where to find the next quest and ends, or finishes on a TalkedToNpc for the next quest if you want to keep an active description in their quest log to guide them.

Quest 2 could be set to the receiver of the letter and start with something like this -

state Begin

{

if GotItems(the letter id, 1) goto Starting

else goto NoLetter

}

state Starting

{

action RemoveItem(the letter id, 1);

action AddNpcText(ID,"Thanks for the letter! Start the quest here!");

}

state NoLetter

{

action ShowHint("Missing the letter!");

action Reset();

}


Just keep in mind, if you later give them an option to reset this quest, they would need another letter to restart it!

You can exchange the GotItems with any number of other rules with this method, to check if they meet a requirement, or multiple requirements, before they can start the quest.


Here's a handy edit that can be used on a repeatable quest, that will check which level range they belong to, and then start the correct quest for their level!


state Begin

{

if StatGreater("level",49) goto Quest50To60

else if StatGreater("level",39) goto Quest40To50

else if StatGreater("level",29) goto Quest30To40

else if StatGreater("level",19) goto Quest20To30

else if StatGreater("level",9) goto Quest10To20

else goto Quest0To10

}


This could help an NPC from becoming obsolete as the player levels passed its usefulness.

---
Host of a blacklisted server...
6 years, 42 weeks ago
Page: << 1 >>