设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

运行时设定数据库(1) 总论,角色部分

2005-10-28 00:00| 发布者: 柳柳| 查看: 5053| 评论: 0|原作者: 66RPG

摘要:    作者 SailCat(本站论坛发布)  版本与更新  2005年10月28日  相关网址  点此进入发布贴 有关数据库保存方法点此进入  范例工程 不提供  教程内容 看到
 

 作者

SailCat(本站论坛发布)

 版本与更新

 2005年10月28日

 相关网址

 点此进入发布贴

有关数据库保存方法点此进入

 范例工程

不提供



 教程内容

看到前面有人问,如何在运行时改变数据库,更改道具的使用可能等,那我就在这里汇总一下吧

运行时设定数据库是完全可能的,而且,只要是你能在数据库中预先设定的项目,都可以在运行时重新设定.

一般来说重设数据库的方法是在公共事件里用脚本,然后调用公共事件,这样比较清晰也比较安全,更可在同类更改时通过变量的引入而实现套用,你要是不怕引起麻烦的话,直接在事件里用脚本或者更改RGSS也是可以的,但一旦想反悔或微调设定就比较麻烦了.

总的说明:
1. 所有的设定方法都不牵涉对RPG数据底层(module RPG)的任何改动,因此无需修改RGSS,只要懂得如何在事件中用脚本即可放心使用。
2. 设定方法会按数据库的标签顺序一一放出,但"动画"和"公共事件"两项跳过,因为我实在找不到什么理由会有人在运行时去设定这两个东西(理论上并非不可能)。
3. 在运行时设定数据库可能影响游戏的表现,也可能不影响,例如:运行时更改已入队角色的EXP值,不会影响其升级进程,但更改其未来等级的能力值,则会受到影响。这个已经超出了本文的讨论范围,有兴趣的可以自己看RGSS的定义。一般说来,RGSS中引用到$game_xxxxx的对象时,修改数据库不会影响,若引用到$data_xxxxx的对象时,修改数据库就会影响。
4. 以下的设定我会先列出系统对象和一般实例(通常都是系统对象的一个下标),在此后的更改方法里,只写出.后面的方法和设置值的类型,比如:
   .name = 字串
说明在实际调用时应使用
   实例名称.name = 字串
的方法, 例如:
   $data_actors[编号].name = 字串
或者你事先定义了某变量actor是系统对象$data_actors的一个下标,就用
   actor.name = 字串
此外,对于设置值有取值范围的限制情况,我会用Ruby的子界(m..n)格式说明上下限.
5. 运行时的设定都是暂时的,只要返回标题画面就会丢失(重载数据库),因此在这里建议,凡是较大规模重设数据库的,最好不要做成随时能存档的那种,当然这个问题是可以解决的,就是修改RGSS,在存档时将$data_xxxx的对象都写到存档文件里去,关于这些我在最后一章会说明.

角色设定:
系统对象: $data_actors
一般实例: $data_actors[编号]
设定方法:
名称: .name = 字串
     一般直接用事件"更改角色姓名"修改
职业: .class = 职业编号
     一般直接用事件"更改角色职业"修改
初期等级: .initial_level = 1..100
最终等级: .final_level = initial_level..100
         在默认的脚本里,角色是允许升到100级(不是99级)的
EXP基本值: .exp_basis = 正整数
EXP增加度: .exp_inflation = 正整数
          更改这两个值可以突破10-50的界限,比如你可以都改成1让角色打一场就升N级
角色头像: .character_name = 文件名(字串)
角色色相: .character_hue = 0..360
战斗图: .battler_name = 文件名(字串)
战斗图色相: .battler_hue = 0..360
各项能力指数: .parameters[项目,等级] = 0..9999
             在能力值的默认设定里,只有99个等级的值,不能直接用parameters[项目,100] 来指定100(或以上级别)的能力值。如果有必要,应先用脚本: parameters.resize(5,最大级别+1)来更改能力表的上限。
             项目的含义如下:0-HP 1-SP 2-力 3-巧 4-速 5-魔
             要更改42级时的力量为185,则用: 实例名.parameters[2,42]=185
初期装备:
 .weapon_id = 初期武器ID
 .armor1_id = 初期盾ID
 .armor2_id = 初期盔ID
 .armor3_id = 初期甲ID
 .armor4_id = 初期饰物ID
 .weapon_fix = true/false 武器装备是否固定
 .armor1_fix = true/false 盾装备是否固定,以下义同
 .armor2_fix = true/false
 .armor3_fix = true/false
 .armor4_fix = true/false

运用例子:
 例如想实现设定,某角色加入一段时间后与队伍失散,再回来时,等级上升了10级,装备也换了一套全新的,样子也变了.则可以在角色离队前更改数据库
 .initial_level = $game_party.actors[角色队列序号].level + 10
 .character_name = xx
 .battler_name = xx
 .weapon_id = xx
 .armor1_id = xx
 .armor2_id = xx 等等
 之后该角色要加入时,直接使用事件"加入队伍",并勾上"初始化"这个选项即可.
 当然,如果你非要说以上这些都可以用纯事件来做(加入队伍,变更等级,变更装备,变更角色图片....)就当我没说好了-,-


 

教程的通用说明

本站发布的教程,大多经过一些测试,应该都能够实现相应功能。但不保证所有的教程都是最优化的制作方法。

相关问题,点击发布贴进行讨论。谢谢您的鼓励与支持。


鲜花
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-3-29 07:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部