请大佬帮我看下为什么会被抓包
引擎版本:问题描述:如何防止抓包[@一键回收]
#if
#act
NEWREADCSV ..\QuestDiary\数值表\装备回收.csv
mov N$初始行 1
GetHLCSV ..\QuestDiary\数值表\装备回收.csv 0 N$最大行
while N$初始行 < <$STR(N$最大行)>
goto @进入回收判断
inc N$初始行 1
endwhile
break
[@进入回收判断]
#if
EQUAL <$GETSTRVALUE(HUMAN(回收勾选),<$STR(N$初始行)>)> 1
#act
NEWDQCSV ..\QuestDiary\数值表\装备回收.csv <$STR(N$初始行)> 1 S1
NEWDQCSV ..\QuestDiary\数值表\装备回收.csv <$STR(N$初始行)> 2 S2
NEWDQCSV ..\QuestDiary\数值表\装备回收.csv <$STR(N$初始行)> 3 S3
TakeBagItem <$STR(S1)> 126N10
mul N$回收货币 <$STR(S3)> <$STR(N10)>
#IF
LARGE S$回收倍数 0
LARGE N$回收货币 0
LARGE N10 0
#ACT
MUL N$会员额外回收 <$STR(N$回收货币)> <$STR(S$回收倍数)>
Div N$会员额外回收 10
MONEY <$STR(S2)> + <$STR(N$会员额外回收)>
MOV N10
MOV N$回收货币
break
#elseact
MONEY <$STR(S2)> + <$STR(N$回收货币)>
MOV N10
MOV N$回收货币
break
被刷了吗 你不是已经 每次回收后
N$回收货币 N10 都归0了
应该不可能在刷了呀
版本防止被刷方法:
刷封包工具Wpe
原理:通过玩家对功能执行时获取二进制对应的执行功能,再用获取的执行功能函数进行截获然后通过截获的功能指令进行无限调用!Ps:[@函数]
解决方案:在执行时前加好判断条件!
玩家在操作物品或点击NPC执行触发的条件下,一定要做好符合逻辑性的判断条件!
执行调用:【@link、goto、#call、messagebox执行等@字段】时在对应的调用函数的接口上一定要做好指纹判断!
31类双击:必须要判断使用的道具名称
用Lua做面板时虽然客户端可以进行一些常规的检测判断,但服务端也必须要同时做判断,因客户端是可修改的就像微信可以改变任意余额一样,所以在客户端满足的情况下服务端也要同时判断
输入框中请必须判断是否包含“<,>,/,\,@”符号,如有请禁止
作为判断的变量及临时计算或赋值时尽量使用(S$、N$)类型的自定义变量
常见被刷的几种方式:
错误示例:
[@main]
#IF
checkmoney 元宝 > 1000
#ACT
money 元宝 - 1000
goto @给予屠龙
[@给予屠龙]
#IF
checklevelex ? 40
#ACT
give 屠龙
#elseact
messagebox 条件不满足无法给予!
正确示例:
[@main]
#IF
checkmoney 元宝 > 1000
#ACT
MOV S$调用指纹判断 已开启
goto @给予屠龙
[@给予屠龙]
#IF
NOT EQUAL S$调用指纹判断 已开启
#ACT
messagebox 非法封包!
BREAK
#IF
checklevelex ? 40
#ACT
money 元宝 - 1000
give 屠龙
MOV S$调用指纹判断
#elseact
MOV S$调用指纹判断
messagebox 条件不满足无法给予!
错误示例:
[@StdModeFunc150]
#if
checkitem 1000元宝
#ACT
messagebox 是否确定要领取? @确定 @取消
[@确定]
#IF
#ACT
GAMEGOLD + 1000
[@取消]
#if
#ACT
GIVE 1000元宝
正确示例:
[@StdModeFunc150]
#if
checkitem 1000元宝
#ACT
MOV 双击150判断 已开启
messagebox 是否确定要领取? @确定 @取消
[@确定]
#IF
EQUAL 双击150判断 已开启
#ACT
MOV 双击150判断
GAMEGOLD + 1000
[@取消]
#if
EQUAL 双击150判断 已开启
#ACT
MOV 双击150判断
GIVE 1000元宝 检测判断条件 基本等于无效检测。。
感谢楼上的回复
页:
[1]