Project1

标题: 求教怎么在普通攻击中满足条件触发特技? [打印本页]

作者: derdfyga    时间: 2011-8-31 22:49
标题: 求教怎么在普通攻击中满足条件触发特技?
下面这段是在Game_Battler中
def make_attack_damage_value(attacker)
    damage = attacker.atk * 4 - self.def * 2        # 基本计算
    damage = 0 if damage < 0                        # 减少为 0
    damage *= elements_max_rate(attacker.element_set)   # 修正属性
    damage /= 100
以下为触发特技的条件
    if attacker.name=="good" #攻击者为主角的名字时。已经在前面添加了name的类
      if $game_party.item_number(61) == 1  #当主角包裹里带有IP61的物品时,这个不知如何表达,这个不能用。还请帮忙纠正。
         #这里是发动特技代码,不会写,找了很多资料,也没找到,才寻找帮忙。
         p "gooddd" #验证用。
       end
    end

求知道的朋友帮忙补充一下,谢谢。
dsu_plus_rewardpost_czw
作者: 亿万星辰    时间: 2011-9-1 07:11
判断攻击者为主角可以用attacker.actor? and attacker.id==X来判断
物品数量仅为1个时?

你修改的这段为计算物理攻击的伤害,这里可以实现满足上述条件时对物理攻击的伤害带来一些变化,想要实现你说的发动技能,可以考虑在 Scene_Battle 的 execute_action 处直接修改成技能。
作者: derdfyga    时间: 2011-9-1 16:40
很感谢星辰的答案。让我实现了多次攻击效果的应用.但普攻后再特攻,却不知如何实现.
  def execute_action
    case @active_battler.action.kind
    when 0  # 基本
      case @active_battler.action.basic
      when 0  # 攻击
        execute_action_attack
         if @active_battler.id==1
           p "攻击后使用特技"
           #在这里加入特技的使用ID,摸索良久还是不会,继续在这里求教.
          execute_action_skill
         end
         if @active_battler.id==2
           p "攻击四次"
           execute_action_attack
           execute_action_attack
           execute_action_attack
         end
         
           另外,如何判断包裹里持有某物的表达式?



derdfyga于2011-9-1 17:02补充以下内容:
下面这样,终于可以实行攻击后再使用特技,但是 如何判断包裹里持有某物的表达式却仍不会写,继续求教.

#--------------------------------------------------------------------------
  # ● 执行战斗行动
  #--------------------------------------------------------------------------
  def execute_action
    case @active_battler.action.kind
    when 0  # 基本
      case @active_battler.action.basic
      when 0  # 攻击
        execute_action_attack
         if @active_battler.id==1 # and 角色持有某物是如何表达?
           p "攻击后使用特技"
          @active_battler.action.set_skill(61)
          execute_action_skill
         end
         if @active_battler.id==1
           p "攻击四次"
           execute_action_attack
           execute_action_attack
           execute_action_attack
         end
         
           
      when 1  # 防御
        execute_action_guard
      when 2  # 逃走
        execute_action_escape
      when 3  # 待机
        execute_action_wait
      end
    when 1  # 特技
      execute_action_skill
    when 2  # 物品
      execute_action_item
    end
  end



derdfyga于2011-9-1 17:10补充以下内容:
$game_party.has_item?($data_weapons[1]
原来是这样,跟XP完全不同,好一阵找.终于成了.
作者: 亿万星辰    时间: 2011-9-1 17:52
if @active_battler.id==1
这个.id还要斟酌一下,.id是个比较特殊的方法,它对于rgss里所有的对象都会产生一个值(其实一切都是对象……),所以还是建议用actor?方法来判断一下是否为己方角色。
作者: derdfyga    时间: 2011-9-1 21:15
if @active_battler.actor?
这个方法能指具体角色名不
我想加入几个角色,每个角色都有不同的特性,如刺客攻击速度快,一次攻击四次,其他人不能。
而特攻魔师则可以普通攻击后施放一个魔法等,都需要指明具体的角色,然后满足一些条件触发这种攻击特性。




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