赞 | 1 |
VIP | 141 |
好人卡 | 7 |
积分 | 1 |
经验 | 16961 |
最后登录 | 2015-10-26 |
在线时间 | 66 小时 |
Lv1.梦旅人 巴斯克维尔的猎犬
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 66 小时
- 注册时间
- 2007-6-25
- 帖子
- 8320
|
光在 Game_Battler里写不行,因为要用到角色或者敌人的ID,而这两个ID是定义在 Game_Battler的子类里的, Game_Battler类不可见它们。
所以可以写在Scene_Battle 4类里,调用Game_Battle处理技能伤害之前的地方。
大概354行开始- # ★特殊技能31
- skiId = @active_battler.current_action.skill_id
- for target in @target_battlers
- validSki = false
- # 仅当目标是actor_id在1~20间的Game_Actor实例,或者是Game_Enemy实例时,31号技能才有效
- if (target.is_a?(Game_Actor) && (target.actor_id>=1 || target.actor_id<=20)) ||
- target.is_a?(Game_Enemy)
- validSki = true
- end
- # 只有非31号技能,或者有效的31号技能时,才会做伤害处理
- if skiId!=31 || validSki
- target.skill_effect(@active_battler, @skill)
- end
- end
复制代码 skill_effect这个方法就是具体处理技能伤害的了,你可以把你要写的31号技能伤害写在里面,就像你写的那样
if skill.id == 31
self.damage = 500 + user.level
end
具体怎么写自己看吧。
然后还有一个地方记得千万要改,就是Game_Actor类,
在24行加上- attr_reader :actor_id # 角色ID
复制代码 因为actor_id默认是私有的,在Scene_Battle里访问不到它,需要让它能访问。
|
评分
-
查看全部评分
|