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

x040014_g_scriptId = 040014

--副本参数
x040014_g_CSParamIdxCurStage = 0			  --大阶段	
x040014_g_CSParamIdxCurSubStage = 1           --小阶段
x040014_g_CSParam1 = 2
x040014_g_CSParam2 = 3
x040014_g_CSParamAnimationID = 5038           --mov动画ID

x040014_g_MonstorList={}
x040014_g_MonstorList[1]={1004106,1004106,1004106,1004106,1004106,1004106,1004106,1004106,1004106,1004106}  --小怪
x040014_g_MonstorList[2]={1004107}                                  --BOSS


x040014_g_TargetList = {}                      --目标
x040014_g_TargetList[1]={1004106}  --第一阶段目标1
x040014_g_TargetList[2]={1004107}   --第2阶段目标1   
x040014_g_TargetList[3]={}

x040014_g_FirstMissionId = 1813	-- 第一个任务
x040014_g_SecMissionId = 1814 -- 第2个任务

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

x040014_g_MonstorPosList={}
x040014_g_MonstorPosList[1]={{40.91,24.75,-1.32},{43.01,24.75,-1.32},{41.96,25.83,-1.32},{40.75,26.65,-1.32},{43,26.74,-1.32},{48.19,26.74,-2.06},{45.94,26.65,-2.06},{47.15,25.83,-2.06},{48.2,24.75,-2.06},{46.1,24.75,-2.06}} --小怪坐标
x040014_g_MonstorPosList[2]={{44.37,33.29,-1.57}}

function x040014_OnCopySceneTimeOut(scene)
	ClearPlayer(scene)
end
function x040014_OnCopySceneOpen(scene)
	AddCSMission(scene,x040014_g_FirstMissionId)
	AddCSMission(scene,x040014_g_SecMissionId)
end
function x040014_ClearAllMonster(scene)
	--print(count)
    --DeleMonsterByRoleId(scene,  x040014_g_TargetList[1][1])
    --DeleMonsterByRoleId(scene,  x040014_g_TargetList[2][1])
    DeleHostileMonster(scene)
end
--死亡回调
function  x040014_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 x040014_OnObjEnter(scene, objId)
	SetCopySceneParam(scene, x040014_g_CSParamIdxCurStage, 0)
	SetCopySceneParam(scene, x040014_g_CSParamIdxCurSubStage, 0)
	SetCopySceneParam(scene, x040014_g_CSParam1, 0)
	SetCopySceneParam(scene, x040014_g_CSParam2, 0)
	x040014_ClearAllMonster(scene)
	SetCopySceneParam(scene, 7, 0)
	SynCsStageData(scene, objId, true)
--	AutoCombat(scene,objId,true)
end

function x040014_OnDieCountDown1(scene, rolebaseId,  stage)
	local TargetId = x040014_g_TargetList[stage+1][1]
	if(TargetId == rolebaseId) then
		local OldValue = GetCopySceneParam(scene, x040014_g_CSParam1)
		SetCopySceneParam(scene, x040014_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 x040014_OnObjDie( scene,objId,rolebaseId,killerId )
	local nCurStage = GetCopySceneParam(scene,x040014_g_CSParamIdxCurStage)
	local MonCount = GetHostileMonsterCount(scene)
	local oldStage = GetCopySceneParam(scene, 7)
	x040014_OnDieCountDown1(scene, rolebaseId, oldStage)
	if MonCount == 0 then
		if(rolebaseId == x040014_g_MonstorList[2][1]) then
			x040014_StageControl(scene, 2)
			SetCopySceneSuccess(scene)
		elseif rolebaseId ~= x040014_g_MonstorList[2][1] then
			x040014_Stage_2(scene, 2, 1)
		end
		SetCopySceneParam(scene,x040014_g_CSParamIdxCurStage,nCurStage+1)
		SetCopySceneParam(scene,x040014_g_CSParamIdxCurSubStage,0)
	end
end

--动画/对话回调
function x040014_OnStoryEventEnd(scene,nStoryId,nAnimationId)
	if nAnimationId == x040014_g_CSParamAnimationID then
		local nCurStage = GetCopySceneParam(scene,x040014_g_CSParamIdxCurStage)
		local MonCount = GetHostileMonsterCount(scene)
		if nCurStage == 0 then
			SetCopySceneParam(scene,x040014_g_CSParamIdxCurStage,1)
			SetCopySceneParam(scene,x040014_g_CSParamIdxCurSubStage,0)
			x040014_Stage_1(scene, 1, 1)
		end
	end
end

--副本Tick
function x040014_OnCopySceneTick(scene,tickCount)
	local curStage = GetCopySceneParam(scene,x040014_g_CSParamIdxCurStage)
	local curSubStage = GetCopySceneParam(scene,x040014_g_CSParamIdxCurSubStage)
	SetCopySceneParam(scene, x040014_g_CSParamIdxCurSubStage, curSubStage+1)
	if curStage == 0 then  
		x040014_Stage_0(scene, curStage, curSubStage)
		if curSubStage >= 20 then
			SetCopySceneParam(scene,x040014_g_CSParamIdxCurStage,1)
			SetCopySceneParam(scene,x040014_g_CSParamIdxCurSubStage,0)
			x040014_Stage_1(scene, 1, 1)
		end
	end
end

--第0阶段 播放MOV 刷第一波小怪
function x040014_Stage_0(scene ,stage,substage)
	local nCurStage = GetCopySceneParam(scene,x040014_g_CSParamIdxCurStage)
	if substage == 1 then
		StoryAnimation(scene, x040014_g_CSParamAnimationID)
	end
end

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

--第2阶段 刷BOSS
function x040014_Stage_2(scene ,stage,substage)
	if substage == 1 then
		OnCSMissionStage(scene,stage-1)
		TellPlayerAutoCombat(scene)
		x040014_StageControl(scene, 1)
		CreateMonster(scene, x040014_g_MonstorList[2][1], x040014_g_MonstorPosList[2][1][3], x040014_g_MonstorPosList[2][1][1], x040014_g_MonstorPosList[2][1][2])
	end
end

