前言

  由于国内处于疫情期间,我和小表弟在家“禁足”,故而两个人玩起了以前的经典游戏 War3 (魔兽争霸3),并且尝试了之前从未接触过的塔防地图——火影忍者羁绊。然后我们俩就被电脑虐了一天,连新手难度都没有打通关,这让我萌生了一丝投(zuo)机(bi)的想法。当然,这仅针对于局域网内的私下娱乐,并且是单机游戏,我个人是坚决抵制利用不正当手段破坏游戏(有其他玩家参与的)公平性的行为。

准备

  我先想到的是利用游戏自带的World Editor工具来直接修改地图里边的数值,例如降低Boss的属性或者提高玩家的属性,但载入后发现火影忍者羁绊这个地图是加密的,无法正常显示内容,于是我就想起了脚本注入。 但是网上的资料是少的可怜,而专门做这类地图的某论坛也是每篇帖子都收费,于是在我半个多小时的摸索和误打误撞下竟也成功了,还尝试了自己编写脚本。

JASS

  JASS(正确地说是JASS 2),也就是上述的脚本,它是 War3 的程序语言,用于控制游戏和地图的进行,是游戏和地图的基础。具体请参考:

HWM

  玩过 War3 的人或多或少都知道HKE,俗称改图机,这是一个可以一键将脚本注入地图的工具,其作者 wuhansen 开发过一系列修改 War3 地图的工具,由此还掀起过了一阵“血雨腥风”,至今某论坛仍在出产出售由这些工具制作的神仙地图。

  但HKE并不适用于加密的地图,强行注入会使地图损坏,无法创建。而HWM,这款工具出自同一作者之手,相比HKEHWM并不是纯粹为了注入脚本而制作的,它有许多功能,更适合手动修改地图,尤其是经过加密的地图。

开始

  War3 地图的脚本文件是war3map.j,很好辨认,它的地位举足轻重,游戏的逻辑控制就靠它了。使用HWM分析地图并筛选出war3map.j将其解压至本地,可以用记事本一类的工具打开,也可以用专门的JASS编辑器打开。

1.png

  提取出war3map.j后,我们需要修改文件内的各类属性或另外写一些功能脚本添加进去以达到作弊的目的,网上有许多现成可用的作弊脚本,通常它们以g.jf.jm.j三个单独的文件呈现,我不知道其中缘由,但我猜这是为了诸如HKE等一键注入工具识别而设置的。很可惜的是,对于加密过的地图是无法一键注入的,需要自己手动添加修改,所以这三个文件里的代码,要一一复制粘贴进war3map.j里的对应位置。

  一般情况下生成的war3map.j里的不同的代码区域都会有注释,在代码量大的情况下,可以查找这些注释方便定位我们即将要修改的地方(如果地图的作者将这些注释删除掉的话,就得费一点功夫慢慢找了)。

  这是位置对应表:

脚本文件代码区域备注
g.jUser-defined注释下类似于声明变量,对象初始化等
f.jTriggers注释下类似于函数、方法
m.jInitCustomTriggers函数内类似于调用函数、方法

  完成对war3map.j的添加或修改后,用HWM替换原来的war3map.j即可。

后话

  HWM虽然可无视任何加密地图提取出地图里的脚本文件,但这个“任何”是几年前的说法了,随着时间的流逝,作者也不再更新,地图的加密方式也愈发复杂,对于崭新出炉的加密地图也不一定有效了。

  JASS也不是一个合格的编程语言,说实话体验不是很好,但貌似它兼容LUA,有兴趣的朋友可以研究研究。

  题外话,上一年暴雪推出了War3重制版,我还没来得及玩它就遭到了玩家们的重锤,铺天盖地的负面评价,我还想着重拾童年为情怀买它一手,现在可能需要观摩一段时间再说。

Last modification:May 25th, 2020 at 07:27 pm
如果觉得我的文章对您有用,请我喝一杯咖啡吧,您的鼓励就是我的动力,感谢~
  留言