65.第二阶段x64游戏实战-替换游戏lua打印可接任务
免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!
本次游戏没法给
内容参考于:微尘网络安全
上一个内容:64.第二阶段x64游戏实战-改装lua任务道具多选1
本次来找可接任务的lua,还是跟之前一样,先监控lua,看看点击任务窗口中的可接任务执行的lua是什么,下图是点击可接任务时执行的lua函数
然后打开 LuaStudio.exe 搜索这个函数,点击下图红框
在下图红框写函数名,然后点击查找
然后点击下图红框,前面带function的,函数的创建就会使用 function 这个单词来表示
伪代码,下方的代码中调用了 更新任务( i ) 这个,然后按着CTRL + 鼠标左键单机进入这个方法中查看
-- 更新任务日志中的任务大纲列表function 更新任务日志_任务大纲() -- 如果当前列表是已接任务列表(1表示已接任务) if (1 == 当前列表) then -- 切换到可接任务列表(2表示可接任务) 当前列表 = 2 -- 勾选\"可接任务\"复选框 任务日志_可接任务:设置勾选(1) -- 隐藏\"放弃任务\"按钮 任务日志_放弃按钮:隐藏() -- 隐藏\"接取任务\"按钮 任务日志_接取任务按钮:隐藏() -- 清空任务目标显示 任务日志_目标任务:设置文本(\"\") end -- 获取列表当前显示的第一个项 local 首个项 = 任务日志_列表框:获取当前首个项() -- 收集任务大纲数据 收集任务大纲() -- 清空列表框内容 任务日志_列表框:清空列表框() -- 清空任务描述区域 任务日志_描述:清除所有元素() -- 遍历所有任务类型(最多200种)并更新显示 for i = 1, 200 do 更新任务日志_任务类型(i) end -- 保持列表滚动位置不变 任务日志_列表框:设置当前首个项(首个项) -- 更新追踪按钮状态 任务日志_追踪按钮状态()end
进入 更新任务 函数,下方的代码调用 获取任务大纲信息(任务类型ID, i) 这个lua,然后通过它返回值的名字可以看出,它就是我们要的可接任务信息
-- 更新任务日志中指定类型的任务显示-- 参数:任务类型IDfunction 更新任务日志_任务类型(任务类型ID) -- 任务大纲名称字符串 local 任务大纲名称 = \"\" -- 根据任务大纲部署状态设置前缀符号(-或+) -- 并添加颜色标记和任务类型名称 if (1 == 任务大纲部署状态[任务类型ID]) then 任务大纲名称 = \"#gFE7E82- \" .. 数据池:获取任务信息_类型(任务类型ID) else 任务大纲名称 = \"#gFE7E82+ \" .. 数据池:获取任务信息_类型(任务类型ID) end -- 检查任务大纲名称是否有效(非空且非0) if (任务大纲名称 ~= \"\" or 任务大纲名称 ~= 0) then -- 计算起始索引(用于列表项排序) local 起始索引 = 任务类型ID * 10000; -- 获取该类型下的任务大纲数量 local 部署数量 = 获取任务大纲数量(任务类型ID) -- 如果有任务大纲,添加到列表中 if (部署数量 > 0) then -- 添加任务类型标题到列表 任务日志_列表框:添加项(任务大纲名称, 起始索引) -- 如果任务大纲处于展开状态(1表示展开) if (1 == 任务大纲部署状态[任务类型ID]) then -- 获取玩家当前等级 local 玩家等级 = 玩家:获取数据(\"等级\") -- 遍历该类型下的所有任务大纲 for i = 1, 部署数量 do -- 任务等级颜色标记 local 颜色 = \"\" -- 获取任务大纲详细信息 local 任务等级, 最低等级, 最高等级, NPC名称, NPC位置, 场景名称, 任务名称 = 获取任务大纲信息(任务类型ID, i) -- 设置任务颜色 颜色 = \"FFB9B9B9\"; -- 添加任务项到列表(包含缩进、等级和任务名称) 任务日志_列表框:添加项(\" \" .. 任务等级 .. \" \" .. 任务名称, (起始索引 + i), 颜色) end end end endend
修改一下代码,改成下方的代码就可以获取可领取的任务了
-- 更新任务日志的任务大纲function 更新任务日志_任务大纲() -- 遍历所有任务类型(共200种) for 任务类型ID = 1, 200 do -- 获取当前任务类型下的任务数量 local 任务数量 = 获取任务大纲数量(任务类型ID) -- 遍历当前任务类型下的所有任务 for 任务索引 = 1, 任务数量 do -- 任务等级颜色(当前未使用,保留变量结构) local 颜色 = \"\" -- 获取任务详细信息:任务等级、最低等级、最高等级、NPC名称、NPC位置、场景名称、任务名称 local 任务等级, 最低等级, 最高等级, NPC名称, NPC位置, 场景名称, 任务名称 = 获取任务大纲信息(任务类型ID, 任务索引) -- 将任务名称输出到调试信息中 推送调试信息(任务名称) end endend