local missionId = 1260
local tokenId = 40004315
assert(type(sceneId) == "number" and type(selfId) == "number",
"缺少当前玩家的 sceneId/selfId")
assert(IsHaveMission(sceneId, selfId, missionId) > 0,
"请先接取任务:一个都不能跑")
local misIndex = GetMissionIndexByID(sceneId, selfId, missionId)
assert(misIndex ~= nil and misIndex >= 0, "获取任务索引失败")
-- 补齐任务所需令牌,已有则不重复发放。
if GetItemCount(sceneId, selfId, tokenId) < 1 then
BeginAddItem(sceneId)
AddItem(sceneId, tokenId, 1)
local canAdd = EndAddItem(sceneId, selfId)
assert(canAdd ~= nil and canAdd > 0,
"无法领取令牌,请检查背包空间和疲劳状态")
AddItemListToHuman(sceneId, selfId)
assert(GetItemCount(sceneId, selfId, tokenId) >= 1,
"令牌发放失败")
end
-- 填满击杀进度,并将任务状态设为完成。
local counts = {50, 10, 1, 1, 1}
for i = 1, 5 do
SetMissionByIndex(sceneId, selfId, misIndex, i, counts[i])
end
SetMissionByIndex(sceneId, selfId, misIndex, 0, 1)
assert(GetMissionParam(sceneId, selfId, misIndex, 0) == 1,
"任务完成状态写入失败")
BeginEvent(sceneId)
AddText(sceneId, "一个都不能跑:已标记完成,任务保留,尚未提交。")
EndEvent(sceneId)
DispatchMissionTips(sceneId, selfId)
-- 离开宋辽副本,避免逃兵定时器覆盖完成状态。
if LuaFnGetSceneType(sceneId) == 1 then
if LuaFnGetCopySceneData_Param(sceneId, 0) == 960 then
local backSceneId = LuaFnGetCopySceneData_Param(sceneId, 3)
if backSceneId >= 0 then
NewWorld(sceneId, selfId, backSceneId, 60, 161)
end
end
end