Full Version : Strange quest bug?
xmlspawner >>Troubleshooting >>Strange quest bug?
<< Prev | Next >>
TWiG- 09-07-2006
I just recently discovered this issue.. wondered if I could ask here for help..
I am using RunUO v1.0 and XmlSpawner2 v3.11 (Addons: CustomAttacks,Points,MobFactions & Siege)
The problem I am having is that when a player has a quest partialy completed.. then log out for any reason and back in.. their quest objectives are then not being counted when completed. Seems to happen for all objective types.
For example.. Objective1 could be to kill 75 orcs... they go out and kill 25 of them.. then log out.. log back in (anytime.. right away or later on) and then when they kill orcs again it does not count the kills.
The quests will not have any problems being completed if the character does not log out before its finished.
I have no clue where to start to figure it out.. hehehe
Thanks in advance..
-= TWiG =-
godfood- 09-07-2006
*Please ensure that you are posting in the correct place before posting.*
ArteGordon- 09-13-2006
that is a strange one. I am going to have to think about that a bit.
ArteGordon- 09-15-2006
are these repeatable quests? Can you take a look at the attachments that the players have using [getatt when they log out and then log in again.
When you look at the
You could also take a look at the Owner property of the questholder and make sure that hasnt been changed somehow by logging out and then back in again.
Also look at the IsCompleted, IsValid, and IsExpired properties.
(edit)
do you have any other systems using any custom playermobile PlayerFlags by any chance?
There might be some interaction with the quest systems use of the custom CarriedXmlQuestFlag to flag players that have quests and some other custom system that you have installed that somehow flips the flag on logout/login.
in xmlquest.cs

CODE
public abstract class XmlQuest { public const PlayerFlag CarriedXmlQuestFlag = (PlayerFlag)0x00100000;

You could try changing that to something like

CODE
public abstract class XmlQuest { public const PlayerFlag CarriedXmlQuestFlag = (PlayerFlag)0x00800000;

and see if that has any effect. The change would only apply to new questholders.
TWiG- 09-16-2006

QUOTE (ArteGordon @ September 15, 2006 02:09 pm)
do you have any other systems using any custom playermobile PlayerFlags by any chance? There might be some interaction with the quest systems use of the custom CarriedXmlQuestFlag to flag players that have quests and some other custom system that you have installed that somehow flips the flag on logout/login.
in xmlquest.cs

CODE
public abstract class XmlQuest { public const PlayerFlag CarriedXmlQuestFlag = (PlayerFlag)0x00100000;

You could try changing that to something like

CODE
public abstract class XmlQuest { public const PlayerFlag CarriedXmlQuestFlag = (PlayerFlag)0x00800000;

and see if that has any effect. The change would only apply to new questholders.
The PlayerFlag was the problem...
I did have MANY additions .. I changed the xmlquest.cs file to be after those (and marked a note to reserve that number for xml in the future) and things seem to be going fine. I'll bark back if anything else comes up with it.
This realy didnt come up before I guess for me because I just now started making longer quests that may take players many "game sessions" to complete.
Thanks for the help, Im an old school Dungeon Master, not much of a coder, so I miss simple things often. hehehe.. and super thanks for the awesome system.. I have used your stuff for YEARS it seems.. hahaha
ArteGordon- 09-16-2006
yeah, flags can always be an issue since they dont guarantee that some other system wont try to use the same one. The purpose of the flag is to optimize quest functions so that they dont bother checking quest objectives for people that arent carrying any quests. It is not essential but it does improve performance.