最开始的时候我曾经提到过,想起来写这个,主要是有人问数据库能不能突破上界,结果都写完了才发现没有写出突破上界的方法.....那么补写一个吧......
在第13章也就是最后一章里,我写了修改属性名,开关名/变量名的方法,这些都是可以突破系统上界的。 $data_system.elements = [nil, 属性名1(字串),属性名2, ....] 当然,你没有必要用这个写法,只是更改其中一个的话,可以用 $data_system.elements[下标] = 字串 的方法
在数据库预设好的之外,想要增加,则用 $data_system.elements.push(字串) 这个方法,假如你的最大值是10个属性,执行这个命令后,就会变成11个属性,假如最大值是999个……就突破了……
那么其他的项目呢,这里就要解释一下$data_xxxx的数据结构 除了$data_system以外,其他的$data_xxxx都是一个数组,并且下标0是nil以便和数据库从1开始的一一对应,当下标不为0时,每一个下标里的内容,都是一个游戏实例的对象,见以下: $data_actors 角色 RPG::Actor 数组 $data_classes 职业 RPG::Class 数组 $data_skills 特技 RPG::Skill 数组 $data_items 物品 RPG::Item 数组 $data_weapons 武器 RPG::Weapon 数组 $data_armors 防具 RPG::Armor 数组 $data_enemies 敌人 RPG::Enemy 数组 $data_troops 队伍 RPG::Troop 数组 $data_states 状态 RPG::State 数组 $data_animations 动画 RPG::Animation 数组 $data_tilesets 图块 RPG::Tileset 数组 $data_common_events 公共事件 RPG::CommonEvent 数组
这个在帮助文件的“脚本入门”里有提及 既然是数组,那么要突破上界就沿用先前的那个方法,生成一个对应的实例,设置好属性,然后push到数组里去,以增加一个特技为例: new_skill = RPG::Skill.new # 生成一个实例 这里的new_skill有着和$data_skills[编号]一样的功能,可以调用我写出的那些方法: new_skill.name = .... new_skill.sp_cost = .... ..... 设定完以后,不要忘了加上这样一条: new_skill.id = $data_skills.size + 1 实际上,id是这些RPG::开头对象的共同属性,标识了它们在数据库中的编号,以便程序进行比较和识别。令它等于系统对象的大小加上1,就可以在加入它到数据库后,和编号下标能对上。 最后是 $data_skills.push(new_skill),这样就新增了一个特技。 |