ivvanek
New Member
- Joined
- Mar 24, 2009
- Messages
- 113
- Reaction score
- 3
Good day!
How to fix questlog working? for example i need to add Postman Quest in quests.xml but i dont see storageid value or im blind... can u explain me how to?
here is my
Here is NPC
How to connect it correctly?
How to fix questlog working? for example i need to add Postman Quest in quests.xml but i dont see storageid value or im blind... can u explain me how to?
here is my
quests.xml
Code:
<quest name="The Postman Missions" startstorageid="100171" startstoragevalue="1">
<mission name="Method" storageid="100171" startvalue="1" endvalue="1">
<missionstate id="1" description="You have joined the Postman guild."/>
</mission>
<mission name="Mission 1 - Check Postal Routes" storageid="100171" startvalue="2" endvalue="7">
<missionstate id="2" description="First travel with Captain Bluebear's ship from Thais to Carlin."/>
<missionstate id="3" description="Head to Fermor Hills and travel with Uzon to Edron."/>
<missionstate id="4" description="Travel with Captain Seahorse to the city of Venore."/>
<missionstate id="5" description="Find the technomancer Brodrosch and travel with him to the Isle of Cormaya."/>
<missionstate id="6" description="Now report back to Kevin about your mission."/>
<missionstate id="7" description="You have finished this mission."/>
</mission>
<mission name="Mission 2 - Fix Mailbox" storageid="100171" startvalue="8" endvalue="10">
<missionstate id="8" description="Kevin wants you to repair a broken mailbox top of Folda mountain."/>
<missionstate id="9" description="Now return to Kevin and ask for a advancement."/>
<missionstate id="10" description="You have finished this mission."/>
</mission>
<mission name="Mission 3 - Bill Delivery" storageid="100171" startvalue="11" endvalue="13">
<missionstate id="11" description="Your mission is to deliver a bill for a Magician Hat, to a famous magician."/>
<missionstate id="12" description="Now return to Kevin and report about your mission."/>
<missionstate id="13" description="You have finished this mission."/>
</mission>
<mission name="Mission 4 - Aggressive Dogs" storageid="100171" startvalue="14" endvalue="15">
<missionstate id="14" description="The Postman office are running low on bones in the Post Officer's Fund and need you to collect 20 bones. After ask Kevin for a advancement."/>
<missionstate id="15" description="You have finished this mission."/>
</mission>
<mission name="Mission 5 - Present Delivery" storageid="100171" startvalue="16" endvalue="18">
<missionstate id="16" description="Your mission is to deliver a present to Dermot on Fibula."/>
<missionstate id="17" description="Now return to Kevin and report about your mission."/>
<missionstate id="18" description="You have finished this mission."/>
</mission>
<mission name="Mission 6 - New Uniforms" storageid="100171" startvalue="19" endvalue="27">
<missionstate id="19" description="Kevin wants you to ask Hugo for new uniforms."/>
<missionstate id="20" description="Now return to Kevin and report about your mission."/>
<missionstate id="21" description="Now he wants you to ask Talphion for new dress patterns."/>
<missionstate id="22" description="Now return to Kevin and report about your mission."/>
<missionstate id="23" description="Now he wants you to talk with Queen Eloise in Carlin."/>
<missionstate id="24" description="Now return to Kevin and report about your mission."/>
<missionstate id="25" description="Now he wants you head to Noodles in Thais and let him SNIFF some samples."/>
<missionstate id="26" description="Now return to Kevin and report about your mission."/>
<missionstate id="27" description="Now return to Hugo and talk about the new dress then you have finished this mission."/>
</mission>
<mission name="Mission 7 - Measurements" storageid="100171" startvalue="28" endvalue="30">
<missionstate id="28" description="Hugo told Kevin that he needs the measurements of all of the Post Officers. So talk with Ben, Lokur, Dove, Liane, Chrystal and Olrik about measurements."/>
<missionstate id="29" description="Now return to Kevin and report about your mission."/>
<missionstate id="30" description="You have finished this mission."/>
</mission>
<mission name="Mission 8 - Missing Courier" storageid="100171" startvalue="31" endvalue="32">
<missionstate id="31" description="Kevin told you that the mail courier Waldo is missing, and that you need to find him, or at least his posthorn."/>
<missionstate id="32" description="You have finished this mission."/>
</mission>
<mission name="Mission 9 - Dear Santa" storageid="100171" startvalue="33" endvalue="35">
<missionstate id="33" description="This time Kevin wants you to deliver some letters to Santa Claus on Vega."/>
<missionstate id="34" description="Now return to Kevin and report about your mission."/>
<missionstate id="35" description="You have finished this mission."/>
</mission>
<mission name="Mission 10 - Mintwallin" storageid="100171" startvalue="36" endvalue="38">
<missionstate id="36" description="Kevin gave you a letter to deliver to Markwin."/>
<missionstate id="37" description="Now return to Kevin and report about your mission."/>
<missionstate id="38" description="You have finished this mission."/>
</mission>
</quest>
Here is NPC
Kevin.lua
Code:
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
local function getPlayerBones(cid)
local player = Player(cid)
return player:getItemCount(2230) + player:getItemCount(2231)
end
local function doPlayerRemoveBones(cid)
local player = Player(cid)
return player:removeItem(2230, player:getItemCount(2230)) and player:removeItem(2231, player:getItemCount(2231))
end
local function creatureSayCallback(cid, type, msg)
if not npcHandler:isFocused(cid) then
return false
end
local player = Player(cid)
if msgcontains(msg, "mission") then
if player:getStorageValue(Storage.postman.Mission01) < 1 then
npcHandler:say("You are not a member of our guild yet! We have high standards for our members. To rise in our guild is a difficult but rewarding task. Are you interested in joining?", cid)
npcHandler.topic[cid] = 1
elseif player:getStorageValue(Storage.postman.Mission01) == 5 then
npcHandler:say("So you have finally made it! I did not think that you would have it in you ... However: are you ready for another assignment?", cid)
npcHandler.topic[cid] = 8
elseif player:getStorageValue(Storage.postman.Mission02) == 2 then
npcHandler:say("Excellent, you got it fixed! This will teach this mailbox a lesson indeed! Are you interested in another assignment?", cid)
npcHandler.topic[cid] = 9
elseif player:getStorageValue(Storage.postman.Mission03) == 2 then
npcHandler:say("You truly got him? Quite impressive. You are a very promising candidate! I think I have another mission for you. Are you interested?", cid)
npcHandler.topic[cid] = 11
elseif player:getStorageValue(Storage.postman.Mission04) == 1 then
npcHandler:say("Do you bring ONE bone for our officers' safety fund or ALL bones at once?", cid)
npcHandler.topic[cid] = 12
elseif player:getStorageValue(Storage.postman.Mission04) == 2 and player:getStorageValue(Storage.postman.Mission05) < 1 then
npcHandler:say("You have made it! We have enough bones for the fund! You remind me of myself when I was young! Interested in another mission?", cid)
npcHandler.topic[cid] = 15
elseif player:getStorageValue(Storage.postman.Mission05) == 3 then
npcHandler:say("Splendid, I knew we could trust you. I would like to ask for your help in another matter. Are you interested?", cid)
npcHandler.topic[cid] = 16
elseif player:getStorageValue(Storage.postman.Mission06) == 12 then
npcHandler:say("Excellent! Another job well done! Would you accept another mission?", cid)
npcHandler.topic[cid] = 19
elseif player:getStorageValue(Storage.postman.Mission07) == 7 then
npcHandler:say("Once more you have impressed me! Are you willing to do another job?", cid)
npcHandler.topic[cid] = 21
elseif player:getStorageValue(Storage.postman.Mission08) == 2 then
npcHandler:say("So Waldo is dead? This is grave news indeed. Did you recover his posthorn?", cid)
npcHandler.topic[cid] = 23
elseif player:getStorageValue(Storage.postman.Rank) == 4 and player:getStorageValue(Storage.postman.Mission09) == 0 then
npcHandler:say("So are you ready for another mission?", cid)
npcHandler.topic[cid] = 25
elseif player:getStorageValue(Storage.postman.Mission09) == 3 then
npcHandler:say("You did it? I hope you did not catch a flu in the cold! However theres another mission for you. Are you interested?", cid)
npcHandler.topic[cid] = 26
elseif player:getStorageValue(Storage.postman.Mission10) == 2 then
npcHandler:say("You have delivered that letter? You are a true postofficer. All over the land bards shallpraise your name. There are no missions for you left right now.", cid)
player:setStorageValue(Storage.postman.Mission10, 3)
npcHandler.topic[cid] = 0
end
elseif msgcontains(msg, "dress pattern") then
if player:getStorageValue(Storage.postman.Mission06) == 2 then
npcHandler:say("Oh yes, where did we get that from ...? Let's see, first ask the great technomancer in Kazordoon for the technical details. Return here afterwards.", cid)
player:setStorageValue(Storage.postman.Mission06, 3)
npcHandler.topic[cid] = 0
elseif player:getStorageValue(Storage.postman.Mission06) == 4 then
npcHandler:say("The mail with Talphion's instructions just arived. I remember we asked Queen Eloise of Carlin for the perfect colours. Go there, ask her about the UNIFORMS and report back here.", cid)
player:setStorageValue(Storage.postman.Mission06, 5)
npcHandler.topic[cid] = 0
elseif player:getStorageValue(Storage.postman.Mission06) == 6 then
npcHandler:say("The queen has sent me the samples we needed. The next part is tricky. We need theuniforms to emanate some odor that dogs hate.The dog with the best 'taste' in that field is Noodles,the dog of King Tibianus. Do you understand so far?", cid)
npcHandler.topic[cid] = 18
elseif player:getStorageValue(Storage.postman.Mission06) == 10 then
npcHandler:say("Fine, fine. I think that should do it. Tell Hugo that we order those uniforms. The completed dress pattern will soon arrive in Venore. Report to me when you have talked to him.", cid)
player:setStorageValue(Storage.postman.Mission06, 11)
npcHandler.topic[cid] = 0
end
elseif msgcontains(msg, "all") then
if npcHandler.topic[cid] == 12 then
npcHandler:say("Do you bring ONE bone for our officers' safety fund or ALL bones at once?", cid)
npcHandler.topic[cid] = 13
end
elseif msgcontains(msg, "advancement") then
if player:getStorageValue(Storage.postman.Mission04) == 2 and player:getStorageValue(Storage.postman.Rank) == 1 then
npcHandler:say("You are worthy indeed. Do you want to advance in our guild?", cid)
npcHandler.topic[cid] = 14
elseif player:getStorageValue(Storage.postman.Mission06) == 13 and player:getStorageValue(Storage.postman.Rank) == 2 then
npcHandler:say("You are worthy indeed. Do you want to advance in our guild?", cid)
npcHandler.topic[cid] = 20
elseif player:getStorageValue(Storage.postman.Mission08) == 3 and player:getStorageValue(Storage.postman.Rank) == 3 then
npcHandler:say("You are worthy indeed. Do you want to advance in our guild?", cid)
npcHandler.topic[cid] = 24
elseif player:getStorageValue(Storage.postman.Mission10) == 3 and player:getStorageValue(Storage.postman.Rank) == 4 then
npcHandler:say("You are worthy indeed. Do you want to advance in our guild?", cid)
npcHandler.topic[cid] = 27
end
elseif msgcontains(msg, "yes") then
if npcHandler.topic[cid] == 1 then
npcHandler:say("Hm, I might consider your proposal, but first you will have to prove your worth by doing some tasks for us. Are you willing to do that?", cid)
npcHandler.topic[cid] = 2
elseif npcHandler.topic[cid] == 2 then
npcHandler:say("Excellent! Your first task will be quite simple. But you should better write my instructions down anyways. You can read and write?", cid)
npcHandler.topic[cid] = 3
elseif npcHandler.topic[cid] == 3 then
npcHandler:say("So listen, you will check certain tours our members have to take to see if there is some trouble. First travel with Captain Bluebear's ship from Thais to Carlin, understood?", cid)
npcHandler.topic[cid] = 4
elseif npcHandler.topic[cid] == 4 then
npcHandler:say("Excellent! Once you have done that you will travel with Uzon to Edron. You will find him in the Femor Hills. Understood?", cid)
npcHandler.topic[cid] = 5
elseif npcHandler.topic[cid] == 5 then
npcHandler:say("Fine, fine! Next, travel with Captain Seahorse to the city of Venore. Understood?", cid)
npcHandler.topic[cid] = 6
elseif npcHandler.topic[cid] == 6 then
npcHandler:say("Good! Finally, find the technomancer Brodrosch and travel with him to the Isle of Cormaya. After this passage report back to me here. Understood?", cid)
npcHandler.topic[cid] = 7
elseif npcHandler.topic[cid] == 7 then
npcHandler:say("Ok, remember: the Tibian mail service puts trust in you! Don't fail and report back soon. Just tell me about your {MISSION}.", cid)
player:setStorageValue(Storage.postman.Mission01, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 8 then
npcHandler:say("I am glad to hear that. One of our mailboxes was reported to be jammed. It is located on the so called 'mountain' on theisle Folda. Get a crowbar and fix the mailbox. Report about your mission when you have done so.", cid)
player:setStorageValue(Storage.postman.Mission01, 6)
player:setStorageValue(Storage.postman.Mission02, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 9 then
npcHandler:say("For your noble deeds I grant you the title Assistant Postofficer. All Postofficers will charge you less money from now on. After every second mission ask me for an ADVANCEMENT. Your next task will be a bit more challenging. Do you feel ready for it?", cid)
player:setStorageValue(Storage.postman.Rank, 1)
npcHandler.topic[cid] = 10
elseif npcHandler.topic[cid] == 10 then
npcHandler:say("I need you to deliver a bill to the stage magician David Brassacres. He's hiding from his creditors somewhere in Venore. It's likely you will have to trick him somehow to reveal his identity. Report back when you delivered this bill.", cid)
player:setStorageValue(Storage.postman.Mission02, 3)
player:setStorageValue(Storage.postman.Mission03, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 11 then
npcHandler:say("Ok, listen: we have some serious trouble with agressive dogs lately. We have accumulated some bones as a sort of pacifier but we need more. Collect 20 bones like the one in my room to the left and report here.", cid)
player:setStorageValue(Storage.postman.Mission03, 3)
player:setStorageValue(Storage.postman.Mission04, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 13 then
if getPlayerBones(cid) >= 20 then
doPlayerRemoveBones(cid)
npcHandler:say("You have collected all the 20 bones needed. Excellent! Now let's talk about further missions if you are interested.", cid)
player:setStorageValue(Storage.postman.Mission04, 2)
npcHandler.topic[cid] = 0
end
elseif npcHandler.topic[cid] == 14 then
npcHandler:say("I grant you the title of postman. You are now a full member of our guild. Here have your own officers hat and wear it with pride.", cid)
player:setStorageValue(Storage.postman.Rank, 2)
player:addItem(2665, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 15 then
npcHandler:say("Since I am convinced I can trust you, this time you must deliver a valuable present to Dermot on Fibula. Do NOT open it!!! You will find the present behind the door here on the lower right side of this room.", cid)
player:setStorageValue(Storage.postman.Mission05, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 16 then
npcHandler:say("Ok. We need a new set of uniforms, and only the best will do for us. Please travel to Venore and negotiate with Hugo Chief acontract for new uniforms.", cid)
player:setStorageValue(Storage.postman.Mission05, 4)
player:setStorageValue(Storage.postman.Mission06, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 18 then
npcHandler:say("Good. Go there and find out what taste he dislikes most: mouldy cheese, a piece of fur or abananaskin. Tell him to SNIFF, then the object. Show him the object and ask 'Do you like that?'.DONT let the guards know what you are doing.", cid)
player:setStorageValue(Storage.postman.Mission06, 7)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 19 then
npcHandler:say("Good, so listen. Hugo Chief informed me that he needs the measurements of our postofficers. Go and bring me the measurements of Ben, Lokur, Dove, Liane, Chrystal and Olrik.", cid)
player:setStorageValue(Storage.postman.Mission06, 13)
player:setStorageValue(Storage.postman.Mission07, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 20 then
npcHandler:say("From now on it shall be known that you are a grand postman. You are now a privilegedmember until the end of days. Most captains around the world have an agreement with our guild to transport our privileged members, like you, for less gold.", cid)
player:setStorageValue(Storage.postman.Rank, 3)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 21 then
npcHandler:say("Ok but your next assignment might be dangerous. Our Courier Waldo has been missing for a while. I must assume he is dead. Can you follow me so far?", cid)
npcHandler.topic[cid] = 22
elseif npcHandler.topic[cid] == 22 then
npcHandler:say("Find out about his whereabouts and retrieve him or at least his posthorn. He was looking for a new underground passage that is rumoured to be found underneath the troll-infested Mountain east of Thais.", cid)
player:setStorageValue(Storage.postman.Mission07, 8)
player:setStorageValue(Storage.postman.Mission08, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 23 then
npcHandler:say("Thank you. We will honour this. Your next mission will be a very special one. Good thing you are a special person as well. Are you ready?", cid)
player:setStorageValue(Storage.postman.Mission08, 3)
player:setStorageValue(Storage.postman.Mission09, 0)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 24 then
npcHandler:say("From now on you are a grand postman for special operations. You are an honoured member of our guild and earned the privilege of your own post horn. Here, take it.", cid)
player:setStorageValue(Storage.postman.Rank, 4)
player:addItem(2078, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 25 then
npcHandler:say("So listen well. Behind the lower left door you will find a bag. The letters in the bag are for none other than Santa Claus! Deliver them to his house on the isle of Vega, USE thebag on his mailbox and report back here.", cid)
player:setStorageValue(Storage.postman.Mission09, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 26 then
npcHandler:say("Excellent. Here is a letter for you to deliver. Well, to be honest, no one else volunteered. It's a letter from the mother of Markwin, the king of Mintwallin. Deliver that letter to him, but note that you will not be welcome there.", cid)
player:setStorageValue(Storage.postman.Mission09, 4)
player:setStorageValue(Storage.postman.Mission10, 1)
player:addItem(2333, 1)
npcHandler.topic[cid] = 0
elseif npcHandler.topic[cid] == 27 then
npcHandler:say("I grant you the title of archpostman. You are a legend in our guild. As privilege of your newly aquired status you are allowed to make use of certain mailboxes in dangerous areas. Just look out for them and you'll see.", cid)
player:setStorageValue(Storage.postman.Rank, 5)
player:setStorageValue(Storage.postman.Door, 1)
npcHandler.topic[cid] = 0
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
quests.xml
is getting from different 8.6 datapack tfs 0.4 How to connect it correctly?