Hello,
I have a player quest board set up and everything works great except that players are able to get multiple quests notes for the same quest. When they finish the quest they are rewarded for all of them at the same time. Is there a way to limit them to one at a time or will I need to use a timer?

Here is my current kill task:

questnote/autoreward/true/name/Slay Zombies/description1/Kill zombies/Notestring/Lord British has hired you to rid the world of 10 zombies/objective1/KILL,zombie,10/playermade/false/rewardstring/@bag/ADD/gold,300/

Thanks!
 
Short answer to your question: Yes.
Check through the first part of this tutorial as well: https://www.servuo.com/wiki/Tutorials/XmlDialog-XmlEdit-XmlQuestNPC-KILL-Objective-Part-1 (read Step 2)

What you will need to do is setup the XmlQuestNPC so that you're checking if the player is carrying the questbook and/or has the quest attachment. This will prevent them from getting the quest more than once when they already have it. You can also set up a delay (say 24 hours) where players have to wait until X amount of time has passed before they can get the quest again, in which case you'd be using an attachment on the players that expires.
 
Thanks! I read the post and have tried the repeat timer and notriggeroncarried but they dont work correctly with my setup. All that I know how to edit is the questholder. The board is a container with an xmlspawner inside that spawns the questholders that are listed as available quests on the board. Players are still able to get multiples of the same quests. The only thing I can think of is to make them gather type quests and just add the items to the marks. Thanks again for the response.
 
Last edited:
Save the Xmlspawner to a file and upload it here please.

[Xmlsave Filename XmlspawnerName

Or you can take a bunch of screenshots and post those. There's a way to do it, I just need to see how you've got it set up. ;)
 
I think I fixed it. I was adding the notriggeroncarried to my questholder instead of in the spawner properties. I added an entry for each quest on the board and it seems to be working great. Thanks again for your help!
 
Last edited:
Glad you got it figured out. Was this the Player Quest Board you were using btw (that's where actual players can create quests for other players to do)?
I planned on writing a tutorial on Player Quests in the future, perhaps I should do that next.
 
Glad you got it figured out. Was this the Player Quest Board you were using btw (that's where actual players can create quests for other players to do)?
I planned on writing a tutorial on Player Quests in the future, perhaps I should do that next.

Yes thats exactly what we are using. It was set up by another admin who is on hiatus. We had turned them off due to the multiples at one time problem and I had finally got around to attempting a fix. I have no idea how these are supposed to work, how a player can add a quest, or if that is a feature my colleague has managed to turn off. These are a container only accessible by admin that have the spawner inside that spawns the questholders which are added to the list on the board.

I am having a hard time finding the right format to add fame and karma both using the attachmentstring. I can do one or the other but not both.

Thanks again for your help.
 
No, you cannot do both. XmlSpawner won't accept the additional attachment in the attachmentstring and I don't recall ever getting two attachmentstrings to work from one Xmlspawner or even using an XmlQuestNPC.
However, that being said you CAN do it, but in a round-a-bout way. Say the quest has 2 Objectives, if one is set up requiring players to go to a specific place, you can add another Xmlspawner there that triggers when players get close and are carrying the questbook without that objective complete. Then you can just add the additional entry lines for Completing the objective and you could reward them with Fame or karma, etc. It's tricky to do without it looking clunky and it's more complicated than just using a generic situation to create the solution. I wrote some quests on my shard where players can complete a quest one of two ways. The first way would reward them with +Fame and +Karma and the second would reward them with -Fame and -Karma. The completed questbook handled one of the rewards and the second was given by an Xmlspawner that was triggered when the quest was completed (It was set with TriggerOnCarried = ThisQuest,2 then NoTriggerOnCarried = QuestReward). That was the only efficient way to do it.
 
Thanks again Tass. I wanted to add also, in case someone runs into this problem, that I had to also add proximity activated and spawn on trigger for this to work.
 
Thanks again Tass. I wanted to add also, in case someone runs into this problem, that I had to also add proximity activated and spawn on trigger for this to work.
Xmlspawner is really robust, but there are a few holes here and there, like you found out. A few people have picked up Arte's mantle over the years and filled some of the holes, but not all of them (filling all of them might require re-writing the framework from scratch). For those folks that aren't great with C#, Xmlspawner is a very viable alternative. :)
 
Back