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,然后通过它返回值的名字可以看出,它就是我们要的可接任务信息
-- 更新任务日志中指定类型的任务显示
-- 参数:任务类型ID
function 更新任务日志_任务类型(任务类型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), 颜色)endendendend
end
修改一下代码,改成下方的代码就可以获取可领取的任务了
-- 更新任务日志的任务大纲
function 更新任务日志_任务大纲()-- 遍历所有任务类型(共200种)for 任务类型ID = 1, 200 do-- 获取当前任务类型下的任务数量local 任务数量 = 获取任务大纲数量(任务类型ID)-- 遍历当前任务类型下的所有任务for 任务索引 = 1, 任务数量 do-- 任务等级颜色(当前未使用,保留变量结构)local 颜色 = ""-- 获取任务详细信息:任务等级、最低等级、最高等级、NPC名称、NPC位置、场景名称、任务名称local 任务等级, 最低等级, 最高等级, NPC名称, NPC位置, 场景名称, 任务名称 = 获取任务大纲信息(任务类型ID, 任务索引)-- 将任务名称输出到调试信息中推送调试信息(任务名称)endend
end