传世服务端彩虹3引擎脚本引擎刷元宝问题的解决
传世服务端彩虹3引擎脚本引擎刷元宝问题的解决近期,有用户反馈出现刷元宝的问题,经过我们分析是水上漂工具利用客户端发送给服务端的相关数据进行篡改后,导致出现刷元宝的现象。在这里告诉GM的是,客户端所发送来的所有数据都是可以用工具进行修改,我们只能从脚本严谨的检测中进行杜绝外挂发包!
案例1:
QUERYVAL 0 1 9 @发红包 请输入你本次红包元宝的数量!
//这个命令就是属于玩家通过客户端写入值然后发送给传世服务端!这个值同时水上漂也可以修改成任意值!
这个脚本后面的触发普遍的GM都是这样写。
[@发红包]
#IF
CHECKGAMEGOLD < $STR(M10)
#ACT
SENDMSG 5 元宝不足,无法发送红包!
break
#ELSEACT
GAMEGOLD - $STR(M10)
.......(扣除元宝后的其他操作省略)
.......(扣除元宝后的其他操作省略)
break
从这触发脚本M10的值是玩家任意输入,虽然字符长度可限制,但水上漂可将M10改成任意值,也可超过21亿,甚至几百亿!
重点来了,如果CHECKGAMEGOLD 的值超过21亿,彩虹引擎判断就会出现问题,因为引擎执行出错,都是false,
所以上面的脚本如果检测元宝超过21亿,引擎会去执行GAMEGOLD - $STR(M10) 。
同样的道理,GAMEGOLD 给玩家减少元宝的值超过21亿。那么引擎也就不会去减少玩家元宝!
这样就造成水上漂工具修改M10的值超过21亿,玩家不用一个元宝,就可以给全服任何玩家发元宝!
那么我们现在从脚本检测上严谨杜绝的正确写法!
[@发红包]
#IF
SMALL M10 1
#ACT
SENDMSG 5 你输入的元宝不正确!
break
#IF
LARGE M10 2100000000;// SMALL、LARGE、MOV、DEC等支持42亿以上数值运算;
#ACT
SENDMSG 5 你输入的元宝不正确!
break
#IF
CHECKGAMEGOLD < $STR(M10)
#ACT
SENDMSG 5 元宝不足,无法发送红包!
break
#ELSEACT
GAMEGOLD - $STR(M10)
.......(扣除元宝后的其他操作省略)
.......(扣除元宝后的其他操作省略)
break
我们要在前面对M10变量进行检测,防止水上漂将M10的值改成负数,或者超过21亿,这样就可以防止元宝!
案例2:
QUERYMSG 本服有人发红包啦,大家点击确定领取吧! @领取红包
//这命令也是属于玩家通过客户端点击确定后发送给服务端!水上漂可截取@领取红包后重复多次直接发送这标签!
这个脚本后面的触发普遍的GM都是这样写。
[@领取红包]
#IF
RANDOM 1
#ACT
GAMEGOLD + 5000
SENDMSG 5 你领取了5000元宝红包
break
从这个触发脚本,@领取红包 水上漂可以发多少次,就加多少次元宝。
那么我们现在从脚本检测上严谨杜绝的正确写法!
#ACT
MOV D10 1 ;//发送这个弹窗的时候,我们给一个D变量赋值
QUERYMSG 本服有人发红包啦,大家点击确定领取吧! @领取红包
[@领取红包]
#IF
EQUAL D10 1 ;/领取元宝的时候,我们检测这个D变量
#ACT
MOV D10 0 ; //领取完元宝我们还原这个D变量
GAMEGOLD + 5000
SENDMSG 5 你领取了5000元宝红包
break
#ELSEACT
SENDMSG 5 领取红包错误...
break
这样才能杜绝水上漂利用客户端发送给服务端的包来刷元宝。
最后想说的是,客户端所发送的东西是不可信的,只有我们自己的脚本才是可信的!
案例3
很多GM最近反馈出合成装备,使用物品放入框点确定后,会出现刷装备的问题!
各位用户请仔细检查您的相关脚本!!!
<合成麻痹戒指/@合成麻痹戒指>
[@合成麻痹戒指]
#ACT
ShowSpotDlg 6 请放入麻痹戒指碎片 @收取对应材料
//理论上,玩家放入材料后,点确定,是触发到 [@收取对应材料] 标签
//注意:当物品框放入是麻痹戒指,是会直接触发到 [@麻痹戒指] 标签!
//以至于很多GM有些合成给物品的标签正好是 [@麻痹戒指] 将会造成严重后果!
//如果放入的是护体戒指,也是会直接触发 [@护体戒指] 这个标签!
//请GM不要将物品名字直接作为触发标签!!!!
[@收取对应材料]
#ACT
SENDMSG 5 本次是收取对应材料触发!
[@麻痹戒指]
#ACT
give 麻痹戒指 1
SENDMSG 5 麻痹戒指的触发!
[@护体戒指]
#ACT
give 护体戒指 1
SENDMSG 5 护体戒指的触发!
案例4
[@首饰强化中级]
#ACT
ShowSpotDlg 6 放入要强化的装备: @首饰类型中级
break
物品放入框之后,点确认
然后把 $PRRAM(0) 和 $PARAM(1) 赋予到S变量中,再使用S变量去执行之后的相关脚本!
// 这样就防止 $PRRAM(0) 和 $PARAM(1) 两个变量会在未知情况中发生改变的情况!
// 同时,S变量尽量不要在其他脚本中使用,保证唯一性!
本站承接传世版本修改,开区一条龙服务技术QQ307319058 传世服务端下载
雁过留声 走过路过留下脚印 我只是路过打酱油的【支持传世服务端论坛 www.rrwoool.com】 共计三个文件
;--------------------------------------------------------------
[彩虹引擎]脚本加解密工具.exe 脚本加密工具
;--------------------------------------------------------------
zPlugOfIPLocal.dll
zPlugOfScript.dll
脚本解密加密插件.dll
PlugList.txt
以上4个文件复制到服务端下的Mir200文件内即可
1. 支持彩虹1代、2代、3代引擎
2. 支持单个脚本加密
3. 支持批量脚本加密
3. 锁定脚本插件
4. 脚本插件无需注册
5. 绑定脚本加密KEY
页:
[1]