首先你需要读本区置顶的F1汉化帮助文档,认识Ruby脚本语言的基本语法,操作符与方法。
你需要知道的是:
1. $game_actors是包含角色资料的数组(不懂的词汇请看帮助文档或者百度搜索)
2. $game_variables是包含变量的数组
组合起来,1号变量内存着的角色:
v = $game_variables[1]
actor = $game_actors[v]
为啥分两行是因为VA1.00版里面事件脚本指令窗很小容纳不下太长的
如果是脚本编辑器内的话,actor = $game_actors[$game_variables[1]]
那么现在actor这个当局变量里面存着角色数据了,要怎么改呢?
首先在这里传授一下两个黑科技方法:
instance_variable_set 设置实例变量
instance_variable_get 获取实例变量
怎么用?那么你要知道的是,角色是Game_Actor的实例!
看到那些橘黄色的字了吗?绿色注释应该很明显了吧。
那么如果要更改名字的话:
actor.instance_variable_set(:@name, "新名字")
注意冒号和@这两个符号是并用的
所以整合起来,如果我要改东西:
actor = $game_actors[$game_variables[1]] if actor #检查角色是否存在,否则超出最大角色数量会报错,如果确定不会出现这种情况可以移除这行 actor.instance_variable_set(:@name, "新名字") actor.instance_variable_set(:@nickname, "新称号") actor.instance_variable_set(:@character_name, "新行走图图片") actor.instance_variable_set(:@character_index, 0) #行走图序号,0到7 actor.instance_variable_set(:@face_name, "新脸图图片") actor.instance_variable_set(:@face_index, 0) #脸图图序号,0到7 actor.instance_variable_set(:@class_id, 1) #就…职业ID啊 end #这个是配对上面的if的
actor = $game_actors[$game_variables[1]]
if actor #检查角色是否存在,否则超出最大角色数量会报错,如果确定不会出现这种情况可以移除这行
actor.instance_variable_set(:@name, "新名字")
actor.instance_variable_set(:@nickname, "新称号")
actor.instance_variable_set(:@character_name, "新行走图图片")
actor.instance_variable_set(:@character_index, 0) #行走图序号,0到7
actor.instance_variable_set(:@face_name, "新脸图图片")
actor.instance_variable_set(:@face_index, 0) #脸图图序号,0到7
actor.instance_variable_set(:@class_id, 1) #就…职业ID啊
end #这个是配对上面的if的
那么有个问题就是,如果脚本框太短太小怎么办?
那就把这段脚本作为一个方法,包进去Game_Interpreter里面
就可以直接在事件脚本指令内调用了
脚本编辑器:(开新的插件脚本)
事件脚本指令:
最后要说下,脚本是魔法,基本上什么都能做。学好脚本,对于独立游戏制作者来说是很重要的事。
还有就是,其实很多东西都能从默认脚本的注释里面学到,至少你得知道默认脚本提供了你什么。
嗯…你可能会发现,没有提到改装备?自己去研究吧!给个提示:去查看Game_Interpreter脚本
Game_Interpreter里面含有所有事件指令的脚本定义,基本上摸透了这一块儿,就非常强了。 |