You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

GameGuardian Lua脚本报错:尝试索引nil值的'start'字段求协助

GameGuardian Lua脚本报错:attempt to index ? (a nil value) with key 'start' (field '2')

报错信息

Tester=gg.getRangesList('libil2cpp.so')[2].start

attempt to index ? (a nil value) with key 'start' (field '2')

level = 1, const = 30, proto = 0, upval = 1, vars = 4, code = 79

GETTABLE v0 v0 "start"

 ; PC 36 CODE 00434007 OP 7 A 0 B 0 C 269 Bx 269 sBx -130802

脚本代码

function money1()

gg.setVisible(false)

gg.alert ("CLICK LEVEL 3 THEN CLICK ON THE GG LOGO TO START")

gg.clearResults()

gg.clearList()

while true do

if gg.isVisible() then

break

else

gg.sleep(50)

end end gg.setVisible(false) gg.clearResults()

Tester=gg.getRangesList('libil2cpp.so')[2].start

Lua=0x5D28E08 setvalue(Tester+Lua,16,1917191729192019001910)

gg.setRanges(32)

gg.searchNumber("40", 16)

gg.getResults(9999)

gg.editAll("50000000", 16)

gg.alert ("CLICK LEVEL 1")

gg.toast("ON")

gg.clearResults()

gg.clearList()

end

解决方案

  • 核心问题gg.getRangesList('libil2cpp.so')返回的列表长度不足2,直接访问索引[2]对应的元素为nil,进而访问其start字段触发报错。
  • 修复步骤
    1. 先验证libil2cpp.so的实际加载范围,添加调试代码确认返回列表的内容:
      local ranges = gg.getRangesList('libil2cpp.so')
      gg.toast("libil2cpp.so范围数量: " .. #ranges)
      for i, r in ipairs(ranges) do
          gg.toast(i .. ": start=0x" .. string.format("%X", r.start))
      end
      
      根据弹出的提示信息,选择正确的索引(比如如果仅返回1个范围,就用ranges[1].start)。
    2. 修正API调用错误:脚本中的setvalue应为GameGuardian标准APIgg.setValue,否则会触发未定义函数错误。
    3. 检查数值合法性:1917191729192019001910作为16进制数值长度超出常规64位整数范围,需确认目标地址对应的数值类型和合法范围,避免写入无效值。

内容的提问来源于stack exchange,提问作者DiazArmn

火山引擎 最新活动