--setMissionParam
-- 0采集任务阶段==0 采集 1 杀怪
-- 1杀怪计数;
-- 2,3杀怪，传说，宝图任务时间;
-- 4随机地点任务 场景id*1000*1000+坐标x*1000+坐标z
-- 5过期监听
-- 6失败监听，
-- 7失败达成
-- 8攻击次数
-- 9,10 任务接取时间

-- 脚本任务数据
-- 11 类型 用来确定寻路后的回调（100对话 101送信 102杀怪，103采集，104杀怪掉落,105买道具,106传说道具类型，107传说道具id） 
--12目标id
--13目标个数
--14完成目标id（-1自动完成）
--15额外数据1
--16额外数据2

--setMissionState
-- Mission_Invalid = 0,  
-- Mission_Accepted = 1,  任务进行中
-- Mission_Completed = 2, 任务可交
-- Mission_Failed = 3,    任务失败

--SetMissionCaredEvent
-- Event_Kill_Object  =0  杀怪
-- Event_EnterArea    =1  进入区域
-- Event_ItemChange   =2 
-- Event_LevelUp      =3 
-- Event_CollectItem  =4  采集
-- Event_UseItem      =5 
-- Event_Puzzle       =6 
-- Event_TeamKill     =7 
-- Event_TeamCollect  =8 
-- Event_CopyScene    =9 
-- Event_Guide        =10
-- Event_Attacks      =11
-- Event_Attribute    =12
-- Event_Round        =13

--传说任务--根据道具的classid subclassid完成

--脚本号
x211205_g_scriptId=211205
--任务id
x211205_g_missionId=11205

x211205_g_RoundConfigId =12

x211205_g_MinItemLevel=1
x211205_g_AdapteItemLevel=10
x211205_g_ItemClass={}
--shoptype 商店类型  classid subclassid 道具分类 dropid 掉落 strId 道具名称描述 jumpItemId 跳转到商店的道具id链接
x211205_g_ItemClass[1]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[2]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[3]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[4]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[5]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[6]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[7]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[8]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[9]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}
x211205_g_ItemClass[10]={{shopType=1,classId=4,subClassId=0,strId=28030,jumpItemId=106000007}}

--- 任务函数 
--任务接受，已接受到任务id请求，通过接受验证，未执行添加逻辑
function x211205_OnMissionAccept( scene,selfId )

	-- body
	if AddMissionNN(scene,selfId,x211205_g_missionId) then  --添加任务，不同步
		local level = GetLevel(scene,selfId)
		local itemClass =x211205_GetRandomItemClass(level)
		local classData = itemClass.subClassId*10000+itemClass.classId*10+itemClass.shopType
		local params = {{0,itemClass.jumpItemId},{1,0},{4,itemClass.strId},{11,106}, {15,classData}}
		
		SetMissionParams(scene,selfId,x211205_g_missionId,params) --设置客户端需要的脚本任务参数，不同步

		DispatchMission(scene, selfId, x211205_g_missionId, x211205_g_RoundConfigId)      --同步任务

		SetMissionCaredEvent(scene, selfId, x211205_g_missionId, 2, true)
		
		local  count =GetItemCountByClass(scene,selfId,itemClass.classId,itemClass.subClassId)
		SetMissionParam(scene, selfId, x211205_g_missionId, 1, count, true) 
		if count >=1 then
			SetMissionState(scene, selfId, x211205_g_missionId, 2)
		else 	
			SetMissionState(scene, selfId, x211205_g_missionId, 1)	  --设置任务状态为进行中
		end
	end
end

--检查任务是否可以完成
function x211205_CheckCompleted( scene,selfId )
	-- body
	return true
end

--任务完成，执行在删除任务之前，执行一些清理操作，比如清楚任务相关的道具
function x211205_OnMissionBindCompleted( scene,selfId,bindData)
	-- body
		DelItemByGuid(scene,selfId,bindData)
end


--放弃任务，同任务完成
function x211205_OnMissionAbandon( scene,selfId )
	-- body

end


function x211205_OnItemChange( scene,selfId )
	-- body
	local  classData = GetMissionParam(scene, selfId, x211205_g_missionId, 15)
	local  subClassId=classData/10000
	local  classId =classData%10000/10
	local count=GetItemCountByClass(scene,selfId,classId,subClassId)
	SetMissionParam(scene, selfId, x211205_g_missionId, 1, count, true) 
	if count>=1 then
		SetMissionState(scene, selfId, x211205_g_missionId, 2)	
	else
		SetMissionState(scene, selfId, x211205_g_missionId, 1)	
	end
end

function x211205_GetRandomItemClass(level)

	local levelIndex = math.floor((level - x211205_g_MinItemLevel) / x211205_g_AdapteItemLevel) + 1
	if levelIndex > #x211205_g_ItemClass then
		levelIndex = #x211205_g_ItemClass
	end
	local itemIndex=math.random(#x211205_g_ItemClass[levelIndex])
	
	print(levelIndex, itemIndex,x211205_g_ItemClass[levelIndex][itemIndex])
	return x211205_g_ItemClass[levelIndex][itemIndex]
end	