欢迎光临散文网 会员登陆 & 注册

UndertaleModTool介绍&使用 #6 (UT常用Scripts分析)

2021-06-12 10:29 作者:真是滑稽了啊  | 我要投稿

    为避免在修改过程中摸不到头绪,了解ut中常用的script非常有用,本篇截取其中关键的部分进行说明

一.肮脏黑客 attention_hackerz_no_2

    一个写着toby对拆包修改者的留言的script,在1.00版本中,它是这样的

二.SCR_TEXT

    一个包含游戏大多数对话的script,里面是一个巨大的switch结构,你可以在一个对话obj里这样使用

如果你输入的数字是1,那么会显示标志性的错误文本

如果你的游戏版本是1.05以上及ps4版/switch版,SCR_TEXT里面不会包含对话,而是起到了一个指向性作用。由于toby在1.00/1.001里把对话写死了,因此后续增加日语翻译时,把对话集中在textdata_en和textdata_ja里,游戏开始时,英语对话和日语对话被使用ds_map系列函数进行储存,你可以理解为给每个对话都编了一个编号,写对话时使用scr_gettext(编号)来读取对应对话,scr_gettext会根据语言设置自动调节读取到的是日语还是英语。

三.snd系列

    toby用来播放音效用的,有snd_play,snd_stop,snd_isplaying,分别用来播放,暂停,检测。

四.caster系列

    这是个历史遗留问题,toby在把ut移植到gms上发布之前,使用gm8上的caster插件进行播放ogg格式音频,而gms原生支持。移植到gms后toby写了caster系列来避免要一个个改代码替换掉原本caster插件函数的麻烦

五.scr_dogcheck

读档时用于检测你是否处于正常的房间,若不正常则dogcheck为0,此时会被传送到坏档狗房间

六.scr_namingscreen

    绘制并控制给玩家命名的界面,在这里我进行了修改,将命名为gaster设为被允许的,删去“game_restart()”,加入一个文本

七.scr_roomname

    提供保存时显示的地点名称,这个Script在新旧版本里差别很大,在旧版中以这种形式进行硬编码

而在新版中考虑到双语互换问题,改成了从textdata_en和textdata_ja定义的映射里获取文本

这里我们对新版进行修改(以我自制的史莱姆房间为例)

效果如下

八.scr_levelup

    升级方面的计算与定义

九.scr_saveprocess

    保存游戏的相关代码,本script负责file文件部分,而.ini文件部分由scr_save负责,后者也起到了引用scr_saveprocess的作用

十.SCR_GAMESTART

    游戏启动时的初始化设置,把这里面的global.debug=0改成global.debug=1可以打开debug模式

十一.物品相关的script

    scr_itemdesc:储存物品的说明文本内容

    scr_itemuseb:物品的使用相关代码

    scr_itemnamelist:物品名称清单

    scr_itemnameb:物品名称显示

    scr_recoitem:治疗类物品实现

    scr_itemname:获取物品名称

    scr_itemget:获得物品

十二.scr_shake

    实现一些屏幕晃动的场景使用

十三.scr_steps

玩家运动步数与遭遇战斗的计算

十四.文本相关script

    scr_textskip:跳过文本

    SCR_TEXTTYPE:根据对话object的alarm事件中设置的global.typer值进行匹配字体,对话音效等等,其中,设置为666就是gaster

    SCR_TEXTSETUP:配合上一个script使用

十五.scr_battlegroup

    匹配战斗,设置战斗音乐,创建战斗所需怪物object,通过pcy.ulyssis.be/undertale/battles这个网站可以查到对应的情况

十六.scr_gameoverb

    进行玩家死亡方面的操作





UndertaleModTool介绍&使用 #6 (UT常用Scripts分析)的评论 (共 条)

分享到微博请遵守国家法律