ShowMessage("一千零一个愿望 $Rev: 213 $")

--[[
[author]
descript="每天可以许愿1次"
]]--
script_name="一千零一个愿望"


local g_szMission = "一千零一个愿望"
local g_nIndex = -1
local g_idMission = 0
local g_idScript = 0
local g_nParam = {}

local g_Pos = { 
	[0] = {szNpcName="梁道士", fX = 282 , fY = 275 , nSceneID=1 } ,
	[1] = {szNpcName="" , fX = 157 , fY = 185 , nSceneID=4}
}



function _SMain(...)

	while true do
		g_nIndex, g_idMission, g_idScript = DataPool:GetPlayerMission(g_szMission)	-- 判断是否已接任务
		
		-- 判断愿灵泉数量
		local nCount = DataPool:UserBag_CountItemByName("愿灵泉")

		if g_nIndex ~= -1 then
		
			-- 已接任务处理
	
			for i=0,2 do
				g_nParam[i] = DataPool:GetPlayerMission_Variable(g_nIndex, i)
				DbgPrintf("[%d]%d", i, g_nParam[i])
			end
		
			-- 判断是否完成任务
			if DataPool:IsMissionCanCommit(g_idMission) then
				MoveToNPC( g_Pos[0].fX , g_Pos[0].fY , g_Pos[0].nSceneID , g_Pos[0].szNpcName ) 
				QuestFrameOptionClicked(g_szMission, CMP_PART_MATCH)	-- 选择选项
				QuestFrameMissionContinue()	-- 继续
				QuestFrameMissionComplete()	-- 完成
				QuestFrameMissionClose()
			else
				if nCount < 1 then
					ShowMessage("愿灵泉数量不足，脚本结束！")
					break
				end
				MoveTo(g_Pos[1].fX, g_Pos[1].fY, g_Pos[1].nSceneID, "", 1)
				Dismount()
				UseItem("愿灵泉")
			end
		else
			-- 未接任务处理
			if GetQuestTimesInfo("一千零一个愿望") == 0 then
				ShowMessage("今日许愿任务已经完成!")
				break
			end

			DbgPrintf("愿灵泉数量 %d" , tonumber(nCount))
			-- 前往苏州接去任务
			MoveToNPC( g_Pos[0].fX , g_Pos[0].fY , g_Pos[0].nSceneID , g_Pos[0].szNpcName ) 
			QuestFrameOptionClicked(g_szMission, CMP_PART_MATCH)	-- 选择选项
				
			local strType,_,_,_,szText = DataPool:GetNPCEventList_Item(0);

			if strType == "text" then
				if string.find(szText, "您今天已经参加过此活动了") then
					ShowMessage("许愿已经结束")
					break	-- 退出循环，结束脚本
				end
			end

			if nCount < 5 then
				ShowMessage("愿灵泉数量不足，脚本结束！")
				break
			end
	
			QuestFrameAcceptClicked()
			QuestFrameMissionClose()
		end

		System:Sleep(1000)
	end
end

_SMain()