偶久网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

首页 改图教学 查看内容

地图反作弊破解常用命令

2017-5-22 15:38| 发布者: 邪恶叔| 查看: 15978

1、去掉常规反MH脚本
搜索检测MH时用的命令 test 找到这样的语句:
call TriggerRegisterPlayerChatEvent(gg_trg_NOMH,Player(index),"TEST",true)
// 隐藏人物、密技密码调用语句,密码:TEST

这个就是输入触发函数:call TriggerAddAction(gg_trg_NOMH,function Trig_NOMH_Actions)

触发器gg_trg_NOMH 触发事件Trig_NOMH_Actions 也就是触发后会运行函数 Trig_NOMH_Actions 反作弊的核心代码就在这函数中找

如果 是-MH 这种命令的话就会类似这样
if(chat=="-MH" or chat=="-mh")then
call MapHack()
同时会配合这条语句完成-mh的触发 那么反MH的核心函数就是“MapHack”了
call TriggerRegisterPlayerChatEvent(触发器名,Player(9),"-",false)
如果结束。。。。

2、去除核心惩罚代码:
然后往上找 因为地图对作弊者的惩罚是踢出去 也就是这条语句 (搜索失败时对话框的标题“作弊!踢除”也可以找到这句话 )
call CustomDefeatBJ(Player(index),"作弊!踢除")
如果是是提示某某人开全图了 就是删除这样的语句
call DisplayTimedTextToPlayer(GetLocalPlayer(),0,0,30,"XXXXXX 正在作弊 日他")
去掉后就不会对作弊者有任何惩罚了 而且test时还会显示"MH检测中...(作弊者将自动掉线)"
迷惑别人 也就是保留了正常功能 去掉了对作弊者的惩罚
输入型的作弊检测都是这样找的

3、模型反MH
就是检测到MH后魔兽会出错 (检测MH时屏幕会闪一下的话 基本就是这种了)
简单的办法,用火龙的HWM分析文件后,把那个模型删除就OK了 。。。。。。。。
hyp-modelcrash.mdx,或者名为MHCrash.mdx的(把这两个文件名加入MPQ软件的文件列表中),还不行就看单位用的哪个模型添加到list,找不到用下面的方法吧
先按常规反MH搜索命令,然后往上找
把触发函数中这种死的语句删了
call KillUnit(GetLastCreatedUnit() )
call SetUnitAnimation(f[0],"death")
call SetDoodadAnimation(C,D,300,'D000',false,"death",false)
之类的 惩罚代码
语句含有有death 或者dead的语句一行都删掉就行了
总之死东西的语句删掉

4、防止按键盘的脚本的去除
道理差不多,搜索
找这样的语句搜索TriggerRegisterPlayerKeyEventBJ 就是按键触发的函数
call TriggerRegisterPlayerKeyEventBJ(O1205064,Player(0),bj_KEYEVENTTYPE_DEPRESS,bj_KEYEVENTKEY_LEFT)

触发器:O1205064

因为对某些bj变量有以下这样子的定义
constant integer bj_KEYEVENTTYPE_DEPRESS = 0
constant integer bj_KEYEVENTTYPE_RELEASE = 1
constant integer bj_KEYEVENTKEY_LEFT = 0
constant integer bj_KEYEVENTKEY_RIGHT = 1
constant integer bj_KEYEVENTKEY_DOWN = 2
constant integer bj_KEYEVENTKEY_UP = 3
所以这条语句有时会被缩减成这样:call TriggerRegisterPlayerKeyEventBJ(O1205064,Player(0),0,0)
触发语句的下面会有这样的语句:call TriggerAddAction(O1205064,function O4896033)
找到触发函数 O4896033 其实一般就在触发语句所在函数的上面那个函数
然后找到相应会惩罚玩家的语句 删掉就可以了
也可以删掉所有键盘触发函数(我一般删这个 别把你添加的作弊脚本的键盘触发删了就行)
也可以删掉整个反键盘作弊函数,如果没其他什么功能的话

> 注意:键盘触发也可以用这条更深沉的语句
TriggerRegisterPlayerEvent(触发器名, whichPlayer, EVENT_PLAYER_ARROW_UP_DOWN)
而且又有如下定义 虽然没见过 但也不是没人会这样子做吧。。。。。。。。。。
constant playerevent EVENT_PLAYER_ARROW_LEFT_DOWN = ConvertPlayerEvent(261)
constant playerevent EVENT_PLAYER_ARROW_LEFT_UP = ConvertPlayerEvent(262)
constant playerevent EVENT_PLAYER_ARROW_RIGHT_DOWN = ConvertPlayerEvent(263)
constant playerevent EVENT_PLAYER_ARROW_RIGHT_UP = ConvertPlayerEvent(264)
constant playerevent EVENT_PLAYER_ARROW_DOWN_DOWN = ConvertPlayerEvent(265)
constant playerevent EVENT_PLAYER_ARROW_DOWN_UP = ConvertPlayerEvent(266)
constant playerevent EVENT_PLAYER_ARROW_UP_DOWN = ConvertPlayerEvent(267)
constant playerevent EVENT_PLAYER_ARROW_UP_UP = ConvertPlayerEvent(268)
代码去多去少都行,一般骗其他玩家,只删除惩罚和提示代码,了解函数的功能就能游刃有余

5、无BJ加密
破解方法很简单,把地图内blizzard.j的内容拷贝到地图里的war3map.j中的对应位置,然后语法检查一下,删除重复定义的,
语法检查出太多错误可能导致pjass卡死,结束进程即可,然后把地图里的blizzard.j去掉,最好能用软件删除未用过的函数,
搜索关键字: -test  17gamebbs  -mh


6、[手动添加]·虽然有些麻烦不过出错率要比用火龙添加器低得多
1.用火龙添加器[HKE]打开地图之后,解压出地图的war3map.j
2.打开你拥有的脚本,g.j,复制所有内容粘贴war3map.j的globals下面
3.打开f.j,复制所有内容粘贴war3map.j的endglobals下面
4.打开m.j,复制所有内容,在war3map.j搜索function InitCustomTriggers,然后粘贴在下面
5.保存war3map.j,替换原war3map.j(有时用手动添加了也会出错,所以做好备份工作)

function InitCustomTeams takes nothing returns nothing
// 添加
endfunction



function main takes nothing returns nothing
call DisplayTextToPlayer(GetLocalPlayer(),0,0,"脚本修改:hellour")
endfunction


返回顶部