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 |