--任务副本1
--进入副本→播放MOV→刷第一波小怪→击杀第一波小怪→刷BOSS→击杀BOSS→副本完成→传出副本

x040009_g_scriptId = 040009

--副本参数
x040009_g_CSParamIdxCurStage = 0			  --大阶段	
x040009_g_CSParamIdxCurSubStage = 1           --小阶段
x040009_g_CSParam1 = 2
x040009_g_CSParam2 = 3   -- 7为当前阶段
x040009_g_CSParamAnimationID = 5032           --mov动画ID

x040009_g_MonstorList={}
x040009_g_MonstorList[1]={1002110,1002110,1002110,1002110,1002110,1002110,1002110,1002110,1002110,1002110}  --小怪
x040009_g_MonstorList[2]={1002111}      

x040009_g_TargetList = {}                      --目标
x040009_g_TargetList[1]={1002110}  --第一阶段目标1
x040009_g_TargetList[2]={1002111}   --第2阶段目标1   
x040009_g_TargetList[3]={}

x040009_g_Tickout = 7   -- 防止掉线的最小切换副本阶段时间戳，需要减2

x040009_g_FirstMissionId = 1805	-- 第一个任务
x040009_g_SecMissionId = 1806 -- 第2个任务
x040009_g_MonstorPosList={}
x040009_g_MonstorPosList[1]={{31.39,35.89,-1.39},{32.81,35.89,-1.39},{32.04,36.54,-1.39},{31.3,37.23,-1.39},{32.71,37.24,-1.39},{36.23,37.24,-2.02},{34.82,37.23,-2.02},{35.56,36.54,-2.02},{36.33,35.89,-2.02},{34.91,35.89,-2.02}} --小怪坐标
x040009_g_MonstorPosList[2]={{33.69,41.02,-1.57}}

function x040009_OnCopySceneTimeOut(scene)
	ClearPlayer(scene)
end
function x040009_OnCopySceneOpen(scene)
	AddCSMission(scene,x040009_g_FirstMissionId)
	AddCSMission(scene,x040009_g_SecMissionId)
end
function x040009_ClearAllMonster(scene)
	--print(count)
		DeleHostileMonster(scene)
end
function  x040009_StageControl(scene,nstage)
	SetCopySceneParam(scene, 2, 0)
	SetCopySceneParam(scene, 3, 0)
	SetCopySceneParam(scene, 4, 0)
	SetCopySceneParam(scene, 7, nstage)
	local nUserCount = GetSceneUserCount(scene)
	for j=0,nUserCount-1 do   
		local nUserObjId = GetUserObjIdByIdx(scene,j)   
		SynCsStageData(scene, nUserObjId)
	end 
end
function x040009_OnObjEnter(scene, objId)
	SetCopySceneParam(scene, x040009_g_CSParamIdxCurStage, 0)
	SetCopySceneParam(scene, x040009_g_CSParamIdxCurSubStage, 0)
	SetCopySceneParam(scene, x040009_g_CSParam1, 0)
	SetCopySceneParam(scene, x040009_g_CSParam2, 0)
	x040009_ClearAllMonster(scene)
	SetCopySceneParam(scene, 7, 0)
	SynCsStageData(scene, objId, true)
--	AutoCombat(scene,objId,true)
end

function x040009_OnDieCountDown1(scene, rolebaseId,  stage)
	local TargetId = x040009_g_TargetList[stage+1][1]
	if(TargetId == rolebaseId) then
		local OldValue = GetCopySceneParam(scene, x040009_g_CSParam1)
		SetCopySceneParam(scene, x040009_g_CSParam1, OldValue+1)
		local nUserCount = GetSceneUserCount(scene)
		for i=0,nUserCount-1 do   
			local nUserObjId = GetUserObjIdByIdx(scene,i)   
			SynCsStageData(scene, nUserObjId)
		end    
	end
end
--死亡回调
function x040009_OnObjDie( scene,objId,rolebaseId,killerId )
	local nCurStage = GetCopySceneParam(scene,x040009_g_CSParamIdxCurStage)
	local MonCount = GetHostileMonsterCount(scene)
	local oldStage = GetCopySceneParam(scene, 7)
	x040009_OnDieCountDown1(scene, rolebaseId, oldStage)
	if MonCount == 0 then
		if(rolebaseId == x040009_g_MonstorList[2][1]) then
			SetCopySceneSuccess(scene)
			x040009_StageControl(scene, 2)
		elseif rolebaseId ~= x040009_g_MonstorList[2][1] then
			x040009_Stage_2(scene, 2, 1)
		end
		SetCopySceneParam(scene,x040009_g_CSParamIdxCurStage,nCurStage+1)
		SetCopySceneParam(scene,x040009_g_CSParamIdxCurSubStage,0)
	end
end

--动画/对话回调
function x040009_OnStoryEventEnd(scene,nStoryId,nAnimationId)
	if nAnimationId == x040009_g_CSParamAnimationID then
		local nCurStage = GetCopySceneParam(scene,x040009_g_CSParamIdxCurStage)
		local MonCount = GetHostileMonsterCount(scene)
		local OldValue = GetCopySceneParam(scene, x040009_g_CSParamIdxCurStage)
		if OldValue == 0 then
			SetCopySceneParam(scene,x040009_g_CSParamIdxCurStage,1)
			SetCopySceneParam(scene,x040009_g_CSParamIdxCurSubStage,0)
			x040009_Stage_1(scene, 1, 1)
		end
	end
end

--副本Tick
function x040009_OnCopySceneTick(scene,tickCount)
	local curStage = GetCopySceneParam(scene,x040009_g_CSParamIdxCurStage)
	local curSubStage = GetCopySceneParam(scene,x040009_g_CSParamIdxCurSubStage)
	SetCopySceneParam(scene, x040009_g_CSParamIdxCurSubStage, curSubStage+1)
	if curStage == 0 then  
		x040009_Stage_0(scene, curStage, curSubStage)
		if curSubStage >= 20 then
			SetCopySceneParam(scene,x040009_g_CSParamIdxCurStage,1)
			SetCopySceneParam(scene,x040009_g_CSParamIdxCurSubStage,0)
			x040009_Stage_1(scene, 1, 1)
		end
	end
end
--第0阶段 播放MOV 刷第一波小怪
function x040009_Stage_0(scene ,stage,substage)
	local nCurStage = GetCopySceneParam(scene,x040009_g_CSParamIdxCurStage)
	if substage == 1 then
		StoryAnimation(scene, x040009_g_CSParamAnimationID)
	end
end

--第1阶段 刷小怪
function x040009_Stage_1(scene ,stage,substage)
	if substage == 1 then
		OnCSMissionStage(scene,stage-1)
		TellPlayerAutoCombat(scene)
		x040009_StageControl(scene, 0)
		local count = #x040009_g_MonstorList[1]
		for i = 1, count do
			CreateMonster(scene, x040009_g_MonstorList[1][i], x040009_g_MonstorPosList[1][i][3], x040009_g_MonstorPosList[1][i][1], x040009_g_MonstorPosList[1][i][2])
		end
	end
end

--第2阶段 刷BOSS
function x040009_Stage_2(scene ,stage,substage)
	if substage == 1 then
		OnCSMissionStage(scene,stage-1)
		TellPlayerAutoCombat(scene)
		x040009_StageControl(scene, 1)
		CreateMonster(scene, x040009_g_MonstorList[2][1], x040009_g_MonstorPosList[2][1][3], x040009_g_MonstorPosList[2][1][1], x040009_g_MonstorPosList[2][1][2])
	end
end

