ShowMessage("ˢű汾 $Rev: 194 $")

--[[
[author]
class=2
cmd0str=ȥɽˢ
cmd0=6
cmd1str=
cmd1=7
cmd2str=̫
cmd2=4
cmd3str=ػ
cmd3=8
cmd4str=ɽ
cmd4=3
cmd_default=99
chk0str=ֻʰȡBoss
chk1str=
]]--
script_name="ˢ"

local g_bosspick = 0
local g_yinguai = 1 

g_mapFanzei = {
	-- ɽ
	[6] = {
		{x=63, y=172},
		{x=69, y=162},
		{x=75, y=167},
		{x=82, y=191},
		{x=64, y=189},
		{x=68, y=207},
		{x=90, y=210},
		{x=50, y=230},
		{x=50, y=250},
		{x=49, y=266},
		{x=70, y=270},
		{x=132, y=249},
		{x=202, y=230},
		{x=248, y=238},
		{x=231, y=249},
		{x=238, y=224},
		{x=180, y=180},
		{x=148, y=179},
		{x=132, y=196},
		{x=99, y=167},
		{x=120, y=160},
		{x=142, y=154},
		{x=158, y=150},
		{x=180, y=150},
		{x=190, y=140},
		{x=175, y=130},
		{x=172, y=122},
		{x=200, y=90},
		{x=198, y=88},
		{x=184, y=86},
		{x=186, y=79},
		{x=185, y=63},
		{x=170, y=50},
		{x=149, y=50},
		{x=129, y=50},
		{x=110, y=50},
		{x=90, y=50},
		{x=70, y=50},
		{x=93, y=69},
		{x=41, y=75},
		{x=47, y=109},
		{x=50, y=130},
	},

	-- 
	[7] = {
		{x=46, y=275},
		{x=70, y=271},
		{x=80, y=248},
		{x=66, y=247},
		{x=51, y=241},
		{x=48, y=197},
		{x=47, y=181},
		{x=49, y=153},
		{x=49, y=133},
		{x=56, y=128},
		{x=46, y=52},
		{x=90, y=47},
		{x=147, y=52},
		{x=153, y=70},
		{x=158, y=81},
		{x=173, y=92},
		{x=224, y=43},
		{x=270, y=60},
		{x=270, y=47},
		{x=273, y=83},
		{x=262, y=104},
		{x=231, y=126},
		{x=222, y=129},
		{x=221, y=148},
		{x=213, y=157},
		{x=178, y=195},
		{x=168, y=229},
		{x=97, y=203},
		{x=108, y=221},
		{x=119, y=236},
		{x=132, y=238},
		{x=114, y=260},
		{x=127, y=261},
		{x=133, y=271},
		{x=161, y=257},
		{x=202, y=244},
		{x=258, y=228},
		{x=278, y=275},
		{x=233, y=268},
		{x=219, y=270},
		{x=197, y=270},
		{x=187, y=272},
		{x=133, y=271},
		{x=89, y=269},
	},
	-- ̫
	[4] = {
		{x=212, y=272},
		{x=242, y=267},
		{x=255, y=264},
		{x=272, y=218},
		{x=269, y=203},
		{x=267, y=191},
		{x=249, y=188},
		{x=239, y=184},
		{x=232, y=219},
		{x=238, y=229},
		{x=236, y=237},
		{x=222, y=228},
		{x=213, y=223},
		{x=198, y=241},
		{x=190, y=234},
		{x=170, y=210},
		{x=181, y=202},
		{x=192, y=190},
		{x=167, y=189},
		{x=189, y=174},
		{x=202, y=142},
		{x=211, y=152},
		{x=221, y=139},
		{x=240, y=143},
		{x=250, y=143},
		{x=237, y=120},
		{x=224, y=118},
		{x=240, y=102},
		{x=223, y=102},
		{x=178, y=93},
		{x=167, y=92},
		{x=220, y=87},
		{x=181, y=52},
		{x=195, y=44},
		{x=198, y=48},
		{x=238, y=62},
		{x=275, y=70},
		{x=281, y=116},
		{x=195, y=43},
		{x=182, y=50},
		{x=168, y=52},
		{x=162, y=47},
		{x=111, y=52},
		{x=127, y=72},
		{x=126, y=96},
		{x=130, y=107},
		{x=107, y=99},
		{x=110, y=110},
		{x=112, y=121},
		{x=133, y=129},
		{x=137, y=137},
		{x=152, y=145},
		{x=148, y=147},
		{x=162, y=148},
		{x=129, y=150},
		{x=118, y=139},
		{x=111, y=147},
		{x=120, y=210},
		{x=109, y=229},
		{x=93, y=241},
		{x=104, y=250},
		{x=53, y=220},
		{x=40, y=236},
		{x=87, y=271},
		{x=132, y=265},
		{x=174, y=254},
	},
	-- ػ
	[8] = {
		{x=279, y=180},
		{x=249, y=169},
		{x=240, y=168},
		{x=229, y=152},
		{x=229, y=81},
		{x=249, y=65},
		{x=266, y=58},
		{x=266, y=41},
		{x=200, y=89},
		{x=169, y=96},
		{x=188, y=151},
		{x=169, y=157},
		{x=158, y=180},
		{x=113, y=99},
		{x=69, y=91},
		{x=52, y=111},
		{x=94, y=108},
		{x=108, y=116},
		{x=108, y=146},
		{x=92, y=145},
		{x=70, y=140},
		{x=112, y=171},
		{x=120, y=179},
		{x=87, y=173},
		{x=73, y=168},
	},
	-- ɽ
	[3] = {
		{x=74, y=72},
		{x=52, y=50},
		{x=59, y=50},
		{x=66, y=92},
		{x=62, y=110},
		{x=68, y=119},
		{x=70, y=125},
		{x=80, y=131},
		{x=83, y=140},
		{x=86, y=200},
		{x=69, y=199},
		{x=63, y=190},
		{x=52, y=187},
		{x=59, y=185},
		{x=49, y=179},
		{x=50, y=173},
		{x=85, y=143},
		{x=114, y=146},
		{x=117, y=138},
		{x=148, y=160},
		{x=144, y=190},
		{x=137, y=206},
		{x=132, y=206},
		{x=79, y=243},
		{x=62, y=252},
		{x=180, y=250},
		{x=224, y=249},
		{x=228, y=251},
		{x=230, y=238},
		{x=231, y=235},
		{x=235, y=219},
		{x=257, y=190},
		{x=259, y=169},
		{x=270, y=131},
		{x=280, y=117},
		{x=277, y=78},
		{x=211, y=273},
		{x=229, y=273},
		{x=249, y=272},
		{x=267, y=282},
		{x=243, y=253}
	}
}



g_nIndex = 1
g_szNpcName = "췴"

function On170()
	DbgPrintf("븱")
	System:LoadScript("41.txt")
end


function FindObject(fX, fY, nScene)
	
	local sid = INVALID_ID
	
	sid = LockNearestTarget( g_szNpcName , CHA_TYPE_NPC|CHA_RELATION_FRIEND|CHA_RELATION_ENEMY|CHA_OCCUPANT_FREE|CHA_OCCUPANT_MYSELF|CHA_OCCUPANT_TEAM|CHA_STATE_ALIVE )
		
	if sid == INVALID_ID then
		return INVALID_ID
	end

	if Character:IsPresent(sid) == false then 
		return INVALID_ID
	end
		
	return sid
end


local PreRide = false 

function _callback(fX, fY, nScene)

	if GetMount() ~= INVALID_ID then
		if PreRide == false then
			 Player:EnableTeamFollow(true)
			UpdateMsg("CheckTeamFollow")
		else
			if IsMsgCold("CheckTeamFollow" , 10000) == true then
				Player:EnableTeamFollow(true)
				UpdateMsg("CheckTeamFollow")
			end
		end

		PreRide = true 
	else
		if PreRide == true then 
			Player:EnableTeamFollow(false)
			UpdateMsg("CheckTeamFollow_False")
		else
			if IsMsgCold("CheckTeamFollow_False" , 10000) == true then
				Player:EnableTeamFollow(false)
				UpdateMsg("CheckTeamFollow_False")
			end
		end
		PreRide = false
	end

	if FindObject(fX, fY, nScene) == INVALID_ID then
		return true 
	end

	return false
end

function OnMemberKill()

	AI:SetAI("ɱ")
	AI:SetParameter("ʼ")
	AI:SetParameter("ʰȡ", PM_PICKUP)
	AI:SetParameter("շͨ" , true )
	AI:SetParameter("ʹô͵" , false )
	--AI:SetParameter("ʱԶѡ" , false )
	AI:Start(true)

	AI:SetParameter("в" ,"Ӹ", 1)
	AI:SetParameter("в" , "ֻʰȡBOSS" , g_bosspick )

	while true do 
		local sceneNow = GetActiveDataSceneID()

		if sceneNow == 170 then
			AI:SetParameter("в" ,"ɱ", 1)
			AI:SetParameter("в" ,"", 1)
			AI:SetParameter("в" , "" , g_yinguai)
		else
			AI:SetParameter("в" ,"ɱ", 0)
			AI:SetParameter("в" ,"", 0)
			AI:SetParameter("в" , "" , 0 )

			if DataPool:GetTeamMemCount() <= 1 then 
				break
			end
		end

		if DataPool:IsTeamLeader() == true then 
			break
		end

		if AI:IsStop() == true then
			break 
		end

		System:Sleep(1000)
	end

	AI:Stop()
end

function _SMain()

	local nScene = nil 
	if _CommandLine ~= nil then
		nScene = tonumber(_CommandLine)
	end

	if _CommandChk0 ~= nil and tonumber(_CommandChk0) > 0 then
		g_bosspick = 1
	end

	if _CommandChk1 ~= nil and tonumber(_CommandChk1) > 0 then
		g_yinguai = 0
	end

	if GetActiveDataSceneID() ~= 170 and DataPool:GetTeamMemCount() < 3 then
		ShowMessage("鲻3,űԶֹͣ")
		return
	end

	while true do 
		
		System:Sleep(1000) ;

		if DataPool:IsTeamLeader() == true then

			local sceneNow = GetActiveDataSceneID()

			if sceneNow == 170 then

				Player:EnableTeamFollow(false)
				On170()
				UpdateMsg("Fanzei_End_Hunt")
			else	

				if g_mapFanzei[nScene] ~= nil then
					if sceneNow == nScene and DataPool:GetTeamMemCount() < 3 then
						ShowMessage("鲻3,űԶֹͣ")
						return
					end
					sceneNow = nScene
				end
	
				if g_mapFanzei[sceneNow] == nil then
					ShowMessage("Ӷػ͡ɽɽ̫֮һĵͼʼнű")
					return
				end
				
				mapPos = g_mapFanzei[sceneNow]
						
				if g_nIndex > table.getn(mapPos) then
					g_nIndex = 1
				end
								
				if mapPos[g_nIndex] ~= nil then

					local id = FindObject(g_szNpcName)
							
					if id ~= -1 then
						QuestFrameSpeak( id , "")
						QuestFrameOptionClicked("ѵ", CMP_PART_MATCH)
						System:Sleep(1000)
						Player:EnableTeamFollow(false)
					else
						while IsMsgCold("Fanzei_End_Hunt" , 3000) == false do
							DoMount(true)
						end
						Player:EnableTeamFollow(true)
						DbgPrintf("Ŀĵ %d (%d,%d)", g_nIndex, mapPos[g_nIndex].x, mapPos[g_nIndex].y)
						MoveTo(mapPos[g_nIndex].x, mapPos[g_nIndex].y, sceneNow , "" , 3 , true , _callback )
						local xNow, yNow = Player:GetPos()

						if FindObject(xNow , yNow , sceneNow ) ~= INVALID_ID then
							continue
						end
					end
				end
								
				g_nIndex = g_nIndex + 1
			end
		else
			OnMemberKill()
		end

	end
end

_SMain()