ShowMessage("Ὠű $Rev: 187 $")

--[[
[author]
class=3
]]--

local NEED_ACTIVEPOINT = 10

local g_szMission = ""
local g_nParam = {}
local g_nIndex = 0
local g_idMission = 0
local g_idScript = 0
local g_dwNextTime = 0

local g_NpcInfo = {
	[0] = {szNpcName="֣", fX=99, fY=54},
	[1] = {szNpcName="", fX=45, fY=73},
	[2] = {szNpcName="ҩ̨", fX=48, fY=98},
	[3] = {szNpcName="д", fX=73, fY=93},
	[4] = {szNpcName="", fX=165, fY=141},
}

function OnMission_600036()

	local nNpcID = 0
	
	if g_nParam[2] == 5 then
		nNpcID = tonumber(g_nParam[5])
	else
		nNpcID = tonumber(g_nParam[3])
	end

	local szNpcName, fX, fY, nScene = DataBase:GetMissionNPCInfo(nNpcID)

	if fX == 0 then
		ShowMessage("޷ȡNPCϢ")
		return
	end

	GuildToCity(nScene)

	if g_nParam[2] == 5 then

		MoveTo(fX, fY, nScene)
		AI:SetAI("ɱ")
		AI:SetParameter("ʼ")
		AI:SetParameter("Ŀ", "", szNpcName)
		AI:SetParameter("ͼ", nScene)
		AI:Start(false)
		while DataPool:IsMissionCanCommit(g_idMission) == false do
			System:Sleep(200)
		end
		AI:Stop()

	elseif g_nParam[2] == 3 then

		local szSceneName = GetActiveSceneName()

		if szSceneName ~= "м" then

			--CityToGuild()
			MoveToNPC(fX, fY, nScene, szNpcName)
			QuestFrameOptionClicked(g_szMission, CMP_FULL_MATCH)	-- ѡѡ
			QuestFrameOptionClicked("м", CMP_FULL_MATCH)	-- ѡѡ

		else

			AI:SetAI("ɱ")
			AI:SetParameter("ʼ")

			AI:SetParameter("ͼ", -1)
			AI:SetParameter("", "", 43, 41)
			AI:SetParameter("", "", 30, 42)
			AI:SetParameter("", "", 13, 51)
			AI:SetParameter("", "", 20, 30)
			AI:SetParameter("", "", 14, 15)
			AI:SetParameter("", "", 30, 20)
			AI:SetParameter("", "", 49, 12)
			AI:SetParameter("", "", 46, 32)

			AI:Start(false)
			while DataPool:GetPlayerMission_Variable(g_nIndex, 2) == 3 do
				System:Sleep(200)
			end
			AI:Stop()

			while GetActiveSceneName() == "м" do
				System:Sleep(1000)
			end
		end
	else
		MoveToNPC(fX, fY, nScene, szNpcName)
	end


end

function OnMission_600038()

	local nNpcID = 0
	
	if g_nParam[2] == 1 then
		nNpcID = tonumber(g_nParam[3])
	elseif g_nParam[2] == 2 then
		nNpcID = tonumber(g_nParam[5])
	end

	local szNpcName, fX, fY, nScene = DataBase:GetMissionNPCInfo(nNpcID)

	if fX == 0 then
		ShowMessage("޷ȡNPCϢ")
		return
	end

	GuildToCity(nScene)

	if g_nParam[2] == 1 then

		MoveToNPC(fX, fY, nScene, szNpcName)

	elseif g_nParam[2] == 2 then

		MoveTo(fX, fY, nScene)
		AI:SetAI("ɱ")
		AI:SetParameter("ʼ")
		AI:SetParameter("Ŀ", "", szNpcName)
		AI:SetParameter("ͼ", nScene)
		AI:Start(false)
		while DataPool:GetPlayerMission_Variable(g_nIndex, 2) == 2 do
			System:Sleep(200)
		end
		AI:Stop()
	end
end

function OnMission_600039()

	local szSceneName = GetActiveSceneName()

	if szSceneName ~= "" then

		CityToGuild()
		MoveToNPC(g_NpcInfo[0].fX, g_NpcInfo[0].fY, -1, g_NpcInfo[0].szNpcName)
		QuestFrameOptionClicked(g_szMission, CMP_FULL_MATCH)	-- ѡѡ
		QuestFrameOptionClicked("빤", CMP_FULL_MATCH)	-- ѡѡ
	else
		AI:SetAI("ɱ")
		AI:SetParameter("ʼ")

		AI:SetParameter("ͼ", -1)
		AI:SetParameter("", "", 30, 44)
		AI:SetParameter("", "", 48, 32)
		AI:SetParameter("", "", 32, 32)
		AI:SetParameter("", "", 12, 32)
		AI:SetParameter("", "", 12, 22)
		AI:SetParameter("", "", 30, 15)
		AI:SetParameter("", "", 30, 26)
		AI:SetParameter("", "", 48, 22)

		AI:Start(false)
		while DataPool:IsMissionCanCommit(g_idMission) == false do
			System:Sleep(200)
		end
		AI:Stop()

		while GetActiveSceneName() == "" do
			System:Sleep(1000)
		end
	end
end

------------------------------------------------------------------------------------------------
function _SMain(...)

	while true do

		g_nIndex, g_idMission, g_idScript = DataPool:GetPlayerMission(g_szMission)

		if g_nIndex ~= -1 then

			DbgPrintf("%s Index:%d MissionID:%d ScriptID:%d", g_szMission, g_nIndex, g_idMission, g_idScript)

			-- ȡ
			for i=0,7 do
				g_nParam[i] = DataPool:GetPlayerMission_Variable(g_nIndex, i)
				DbgPrintf("[%d]%d", i, g_nParam[i])
			end

			if DataPool:IsMissionCanCommit(g_idMission) then

				-- 
				DbgPrintf("")
				
				CityToGuild()
				MoveToNPC(g_NpcInfo[0].fX, g_NpcInfo[0].fY, -1, g_NpcInfo[0].szNpcName)
				QuestFrameOptionClicked(g_szMission, CMP_PART_MATCH)	-- ѡѡ
				QuestFrameMissionContinue()	-- 
				QuestFrameMissionComplete()	-- 
				
				local strType,_,_,_,szText = DataPool:GetNPCEventList_Item(0);

				if strType == "text" then
					if string.find(szText, "Ѿȫ") then
						ShowMessage("Ѿȫ")
						break	-- ˳ѭű
					end
				end

				QuestFrameMissionClose()
				
			else
				-- ѽδ
				DbgPrintf("")

				if g_idScript == 600036 then
					OnMission_600036()
				elseif g_idScript == 600038 then
					OnMission_600038()
				elseif g_idScript == 600039 then
					OnMission_600039()
				else
					ShowMessage("δ֪ű")
					break
				end

			end


		else
			-------------------------------------------------------------------------------------
			-- ȡ


			-- ɳ
			if CityToGuild() == false then
				ShowMessage("ûаɳС")
				break 
			end
			
			MoveToNPC(g_NpcInfo[0].fX, g_NpcInfo[0].fY, -1, g_NpcInfo[0].szNpcName)

			QuestFrameOptionClicked(g_szMission, CMP_FULL_MATCH)	-- ѡѡ

			local bContinue = true
			local isNext,szMsg = GetDebugMessage()
			while isNext == 1 do
				if string.find(szMsg, "޷ȡ") then
					ShowMessage("δ")
					bContinue = false
					break
				end
				isNext,szMsg = GetDebugMessage()
			end

			if bContinue == false then 
				break
			end

			QuestFrameAcceptClicked()

			local strType,_,_,_,szText = DataPool:GetNPCEventList_Item(0);

			if strType == "text" then
				if string.find(szText, "ûн") then
					ShowMessage("񣺰ûн")
					break	-- ˳ѭű
				elseif string.find(szText, "") then
					ShowMessage("񣺰ɽѽϣ򸱰·")
					break	-- ˳ѭű
				end
			end

			System:Sleep(1500)
			QuestFrameOptionClicked("", CMP_PART_MATCH)
			QuestFrameMissionClose()

		end

		System:Sleep(500)
	end

	GuildToCity(0)
end

_SMain()