找回密码
 registerss
搜索
查看: 27|回复: 0

[自写函数] 测试代码:让"一个都不能跑"立即完成的Lua代码

[复制链接]
Waylee 发表于 2026-9-6 19:24 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?registerss

×
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
您需要登录后才可以回帖 登录 | registerss

本版积分规则

QQ|手机版|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )

GMT+8, 2026-9-21 16:10 , Processed in 0.061732 second(s), 25 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表