| 赞 | 5  | 
 
| VIP | 620 | 
 
| 好人卡 | 38 | 
 
| 积分 | 70 | 
 
| 经验 | 125468 | 
 
| 最后登录 | 2015-7-27 | 
 
| 在线时间 | 1666 小时 | 
 
 
 
 
 
Lv4.逐梦者 
	- 梦石
 - 0 
 
        - 星屑
 - 6955 
 
        - 在线时间
 - 1666 小时
 
        - 注册时间
 - 2008-10-29
 
        - 帖子
 - 6710
 
 
  
 
 | 
	
利用 数据库->职业 的属性有消毒 单独把职业相克分离出来. 
本质上还是属性的关系.只是做了点手脚而已= =. 
 
1.把 数据库->系统->属性 扩容. 
有多少个 数据库->职业 就要扩容多少个属性. 
至于这些属性的名字写不写都无所谓.只要自己认识就行. 
不过最好还是设置为对应职业的名字为好.比较直观. 
 
2.设置脚本开头处的常量 ClassIdDeviant 
这个常量的值为 职业属性 的起始id-1 
比如下面的范例工程里的 战士 的属性是第 17 号. 
那么这个 ClassIdDeviant 就应该设置为 17-1=16 
这个就相当于是从 职业id 到 职业属性id 的偏移值 
 
3.在 数据库->敌人 的行动命令里给敌人设置敌人的职业id 
行动的具体行为不用管.反正敌人也不会使用这条命令. 
给 气血 条件打上勾.然后输入这个敌人的职业id.也就是把气血堪称是职业来设置. 
再把下面的 开关 条件打上勾.然后选择一个游戏从头到尾都不会为ON的开关. 
并且把这个开关的id写入脚本开头的常量 ConditionSwitchId 中 
范例工程里设置的是 1 号开关. 
 
4.在脚本开头处设置 RateTable 常量表 
这个就和 属性有消毒 是一个概念了. 
 
5.将新方法 class_correct 的调用写到伤害计算公式里去. 
具体可参考范例工程的 Game_Battler 3 的第 55-57行、148-150行. 
 
6.在 数据库->职业 设置对于这些新增的属性的有效度即可. 
概念完全和默认的一样.只是影响倍率和别的属性分离开了而已. 
 
在范例工程里. 
幽灵被设置为了 4 号职业. 
被 1 号职业(战士)打会很痛.被 7 号职业(僧侣)打不掉血 
蜥蜴被设置为了 5 号职业. 
被 2 号职业(枪兵)打会很痛.被 8 号职业(魔导士)打不掉血 
 
最后再说一下 RateTable 的设置.首单元那个 0 可改不能删.改了也没什么用. 
从 200 开始往右一次就是 ABCDEF 
C 位置上的那个 100 最好别动.其余的 5 个就根据需要改吧. 
 
脚本核心部分:- #==============================================================================
 
 - # ■ Game_Battler
 
 - #==============================================================================
 
  
- class Game_Battler
 
 -   ConditionSwitchId = 1
 
 -   ClassIdDeviant = 16
 
 -   RateTable = [0,200,150,100,50,0,-100]
 
 -   def class_correct(active_battler_class_id)
 
 -     element_id = active_battler_class_id + ClassIdDeviant
 
 -     return RateTable[$data_classes[@class_id].element_ranks[element_id]]
 
 -   end
 
 - end
 
 - #==============================================================================
 
 - # ■ Game_Enemy
 
 - #==============================================================================
 
  
- class Game_Enemy < Game_Battler
 
 -   attr_accessor :class_id
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对像
 
 -   #--------------------------------------------------------------------------
 
 -   alias creat_enemy_class_id_initialize initialize
 
 -   def initialize(troop_id, member_index)
 
 -     creat_enemy_class_id_initialize(troop_id, member_index)
 
 -     enemy = $data_enemies[@enemy_id]
 
 -     @class_id = 1
 
 -     for hzhj in enemy.actions
 
 -       if hzhj.condition_switch_id == ConditionSwitchId
 
 -         @class_id = hzhj.condition_hp
 
 -         break
 
 -       end
 
 -     end
 
 -   end
 
 - end
 
 
  复制代码 范例工程: 
 
职业相克.rar
(187.11 KB, 下载次数: 168)
 |   
 
 
 
 |