Project1

标题: 如何让敌我双方同时攻击 [打印本页]

作者: hy2000    时间: 2015-12-1 18:01
标题: 如何让敌我双方同时攻击
RT 我想作出使用属性技能同时能免疫几个属性的效果。
例如使用高阶火魔法,则对手使用的冰魔法0伤。
我开始觉得可以用加BUFF处理,但是突然想起来有先后手区别。
如果这样的话就得拖到下一回合了这不好。
所以问一下。VA能不能修改成同时攻击?
或者有没有其他方便的办法解决我的问题?
作者: howhow1314    时间: 2015-12-2 23:14
RUBY 代码复制
  1. class Game_Battler
  2.   def xiyangyang(yang, allies = false)
  3.     temp = allies ? friends_unit : opponents_unit
  4.     case yang.class.to_s
  5.     when "String"
  6.       return temp.actions.any? {|action| action.subject != self && action.item.note.include?(yang)}
  7.     when "RPG::Skill"
  8.       return temp.actions.any? {|action| action.subject !=self && action.item == yang}
  9.     end
  10.   end
  11. end
  12.  
  13. class Game_Unit
  14.   attr_accessor :actions
  15. end
  16.  
  17. class Game_Troop
  18.   alias increase_turn_alibi02122015 increase_turn
  19.   def increase_turn
  20.     increase_turn_alibi02122015
  21.     self.actions = []
  22.     members.each {|battler| self.actions += battler.actions}
  23.     $game_party.actions = []
  24.     $game_party.members.each {|battler| $game_party.actions += battler.actions}
  25.   end
  26. end


冰魔法傷害公式
RUBY 代码复制
  1. a.xiyangyang($data_skills[高阶火魔法id]) ? 0 : 原傷害公式

()裡可以是$data_skills[x]或$data_items[x]或字串,比如
  1. a.xiyangyang("<美羊羊>")
复制代码
,如果是字串的話會檢查該技能備注是否包含該字串

括號裡加上,1的話,則會判斷己方有沒有其他成員使用符合條件的技能 (己方/敵方是相對的,比如敵人使用這技能,己方就是敵隊)
比如這樣
RUBY 代码复制
  1. (a.mat * 4 - b.mdf * 2) * (a.xiyangyang($data_skills[2], 1) ? 1.3 : 1)

傷害為(a.mat * 4 - b.mdf * 2),己方有人使用2號技能的話, 傷害*1.3






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1