Pokescript 详细图文教程(一)

Pokescript 详细图文教程
本文版权归liuyanghejerry及口袋技术盒子共有,转载请先询问!
不知道大家有没有玩过类似于ShinyGold的改版游戏呢?玩过的人可能就要惊叹于作者对游戏剧情的修改幅度了.那么这样的一款作品又是怎样做成的,其过程究竟有多难呢?今天我就来带领大家走进剧情修改的神秘殿堂,Follow Me!

一、准备知识
1.基础知识
亲自尝试过修改游戏的人可能知道,GBA上的游戏采用的是16进制的方式来储存游戏数据的.16进制比10进制多出了6个”数字”,它们分别是:A、B、C、D、E、F,这些数字加上0、1、2、3、4、5、6、7、8、9,就是16进制的直观表达了,其中0最小,而F最大.我们在修改游戏时不需要对16进制进行深入的了解,但必须记住:16进制的数据在ROM中遵循的规则是高位排高数,低位排低数.另外,为了区分两种进制,我们通常以”0xFF”或者”&HFF”的形式来表示一个16进制的数据.
我们所进行的游戏修改,其原理一共有两个,一是依靠BMP这种图片存储格式来识别游戏中未被加密的图片,以替换成我们想要的图;而另一个则是在破解了《口袋妖怪》游戏的部分数据含义的前提下进行的,比如我们在知道了A1=0的前提下才得以用A1替换其它数据以让0显示出来.这两种原理其本质相同,但使用的方法并不相同.在游戏汉化中,二者都被用上了.而在我们游戏修改当中,前者用来改地图和人物形象,后者就用来改剧情,这比对ROM数据的理解要求比汉化还要严,因为不是只知道码表就可以的.
说到这大家可能都有点害怕了,其实不用紧张,外国的达人已经破解了绝大部分游戏信息,并制作了一些工具来极大的简化游戏修改,使得我们不需要埋头于大量的火星符号中拼凑,我们所需要做的,就是学会工具的使用方法,以自己的想象力来创造自己的剧情.
因为是外国人开发的工具,所以只支持美版的游戏修改,请大家用时一定注意!

 2.所需软件及安装、使用
下面就该请出我们的主角Pokescript了.
Pokescript是外国人Irish Witch编的一个小程序,它能根据破解出的游戏指令对照表,把玩家写的指令编译成游戏可以识别的16进制数据.当然,这并不是唯一的一款编译器,著名的EliteMap中同样附带了名为Scripted的工具,其功能更加强大.不过Pokescript的语言更简单易学,所以我们就从它开始吧!
那么,第一步就是安装Pokescript了.Pokescript下载:poketscript.exe
Pokescript的安装极其简单,几乎就是一路Next.其安装默认路径为C:/pokewitch.


安装完Pokescript之后我们需要安装一个库文件,其中包含了众多版本游戏的对应指令表,它的名字就是PkmAdv.
PkmAdv的下载与Pokescript在一个地方,我提供给大家的既有自解压版也有RAR版,大家可以自由选择.安装时请保持它们在相同的文件夹内.

到这是不是就OK了呢?对于外国玩家来说的确如此,但对于我们来说还要多出一步:设置计算机的语言区域选项.

 就像NB一样,Pokescript也属于非unicode程序,直接使用的话会出现乱码.与NB不同的是,Pokescript是必须含参运行的,而我们又不知道它的参数是什么,所以只能按照下面的步骤设置计算机了.
首先进入控制面板。
打开语言与区域的选项。
按照下图的样子变更你的设置。注意,一共有3处需要修改。(我不知道前两个是否必要,但是后一个是必须的!)

设置完毕后系统会提示重启,这时用不着犹豫了,重启吧!
重启之后所有中文软件都无法使用,各位最好自觉的关闭,避免不必要的错误。
现在来看看测试成功的图片。

嗯……终于可以正常说话了……

另外需要注意到是,在修改设置的系统中,任何软件在运行时,其路径绝不能包含中文,类似于C:/我的软件/..是不允许的!

除了Pokescript,我们还需要一样地图编辑软件,这里我推荐Advance Map,它的最新版本是1.92,大家可以在我的博客上下载到含带中文语言包的版本(不过英文计算机环境下会乱码).该软件无须安装,解压运行即可.不过由于之前计算机被设置为英文,所以解压的路径中一定不要有中文.

最后我们要在互联网上找一份原版的美版ROM,笔者这里以火红为例,其它版本也可.(救助队不行)
好了,现在准备工作就算完成了,下面跟着我的第一个脚本来看看软件的工作流程吧!
3.软件是如何工作的

设置停当后,打开Windows自带的记事本(notepad.exe),原封不动的写下如下的文字:

#org $start
lock
faceplayer
message $1
boxset 6
release
end
#org $1
$1 1 =Hi.nWelcome to poketb.com!

之后选择”另存为”,在下拉菜单中选择”所有格式”然后取名为1.rbc.注意哦,是*.rbc的样子.另外保存路径中同样禁止中文出现,下文也是一样的.


保存过之后,在文件上按鼠标右键,选择图中的”complie script”

这时会有一个窗口弹出来,瀑布一样的出来文字,最后弹出一个小窗口,如图:

现在按住键盘上的Ctrl或者shift,选中两个选项,然后点那个书一样的按钮,选择ROM(这里是火红的美版):

这时会弹出一个如图的搜索框,直接按手电的那个按钮,选择返回数字中的第一组,再按下底下的”assign”按钮.

回到之前的窗口,点击”file”菜单中的”Burn”,程序就开始工作了.不到一秒,程序就输出了日志,这时千万不要关闭程序.

现在脚本已经写进ROM了,但是我们还没有告诉游戏哪里用我们的脚本.一般的,脚本都是给地图中的NPC的,所以这会就要用到Advance Map了.
打开Advance Map并载入已经写入脚本的ROM,在左边的树状图中展开”by header”并双击地图(3,0),很熟悉吧?这里就是初始的城镇了.

为了不干扰脚本工作,我们挑选一个没有剧情关联的NPC,比如右下角的那个胖子.(如果你的Advance Map没有显示出人物模型,那么就在设置中勾选”show spirits”)
我们可以看到,右边的属性中有offset一项,更改它为$800000.那么800000这个数字是怎么来的呢?还记得日志吗?现在赶快瞧瞧:原来800000对应的正是$1.


保存之后进入游戏和那个胖子说话:

看看他说的话,再看看脚本的内容,你有什么发现呢?
好了,本次的内容就说到这里.以上的步骤都至关重要,大家一定要记住.当然,大家不要看着步骤单调就没有兴趣了,更不要因为”高深”的技术术语而退缩了,下次我将教大家如何让NPC给你想要的道具、精灵等等,再见咯~~

About 口袋技术盒子

口袋技术盒子 管理员
This entry was posted in 脚本教程 and tagged , , , . Bookmark the permalink.

一条评论

  • At 2012.05.06 22:30, MarcusZ321 said:

    谢了,但还是用XSE比较好,我初学改版时是用pokescript的。

    (Required)
    (Required, will not be published)