In CompleteQuestByName, when it goes to click the quest, it keeps trying until the quest is complete. Because getQuestStatus can't tell the difference between daily or public, it thinks the quest hasn't been completed so it keeps trying to 'click' the quest even though the dialog has closed. When it tries to click the quest it uses this command
Code: Select all
RoMScript("OnClick_QuestListButton(3, "..i..")")You were right that my QuestLog userfunction doesn't fix the problem because CompleteQuestByName just sends the quest name to getQuestStatus so it has no way to know which it is, whichever version of getQuestStatus is used. Both versions can accept ids now but CompleteQuestByName sends the quest name even if the id is used.
The solution is to change it so it sends whatever the user wrote so if the user uses an id it sends that to getQuestStatus which will then be able to tell the difference.
Ok then, the solution. Edit functions.lua. Around line 1955 you will find
Code: Select all
until (getQuestStatus(questOnBoard)~="complete")Code: Select all
until (getQuestStatus(_nameorid)~="complete")Things to note:
- With this fix you don't need QuestLog userfunction.
Use the quest id to differenciate between 2 quests with the same name.
If you use the id then you don't need to use "daily", "public", etc.
Code: Select all
player:target_NPC("Myan Kellas");
yrest(6000);
CompleteQuestByName(425504)