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

--[[
[author]
descript="每天可以许愿1次"
]]--
perday_max=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
				-- 未接任务处理
		

				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("许愿已经结束")
						System:UpdateRecord( script_name )
						break	-- 退出循环，结束脚本
					end
				end

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

_SMain()