Project1

标题: 【提问】这种技能怎么做? [打印本页]

作者: xiaolang96163    时间: 2014-7-21 02:14
标题: 【提问】这种技能怎么做?
这是敌人使用的单体攻击技能。使用这个技能时,如果敌人攻击的我方角色没有状态1,则对我方角色使用一个增加状态1的技能,技能结束。如果有状态1没有状态2时,则对我方角色使用一个增加状态2的技能,技能结束。如果有状态1状态2没有状态3时,则对我方角色使用一个增加状态3的技能,技能结束。如果有状态1妆台2状态3都有时,对我方角色使用一个秒杀技能。

大神们能提供个思路么?
作者: VIPArcher    时间: 2014-7-21 04:56
  1. class Game_Battler < Game_BattlerBase
  2.   
  3.   alias make_damage_value2 make_damage_value
  4.   #计算伤害
  5.   def make_damage_value(user, item)
  6.     make_damage_value2(user, item)
  7.     if item.is_a?(RPG::Skill)
  8.       case item.id
  9.         when 20  #设置20号技能
  10.           if self.state?(11) && self.state?(12) && self.state?(13)  #3种状态
  11.             
  12.               self.add_state(1)    # "秒杀" 1号为 "战斗不能"
  13.             
  14.             elsif self.state?(11) && self.state?(12)  #2种状态
  15.               
  16.               self.add_state(13)   # 目标附加"3"状态 ID为13
  17.             
  18.             elsif self.state?(11)  #1种状态
  19.               
  20.               self.add_state(12)   # 目标附加"2"状态   ID为12
  21.             
  22.             else  #没有状态
  23.               
  24.               self.add_state(11)    # 目标附加"1"状态   ID为11
  25.           end
  26.         end
  27.       end            
  28.     end
  29. end
复制代码
思路就是这样,未测试
作者: xiaolang96163    时间: 2014-7-21 15:15
VIPArcher 发表于 2014-7-21 04:56
思路就是这样,未测试

谢谢大神指导,经测试,技能不设置伤害时无效,设置时有效。还有一个小问题想请教一下,就是如果想改成判断状态之后敌人对我方释放一个技能,self.add_state可以改成什么指令?
作者: xiaolang96163    时间: 2014-7-21 17:43
xiaolang96163 发表于 2014-7-21 15:15
谢谢大神指导,经测试,技能不设置伤害时无效,设置时有效。还有一个小问题想请教一下,就是如果想改成判 ...

换完出现错误 undefined method "user" for #<Game_Actor:0xabcb27c>  

想到可能可以用force_action(skill_id, target_index),不出错,但是也不使出技能,不知道什么原因。
作者: xiaolang96163    时间: 2014-7-21 17:52
xiaolang96163 发表于 2014-7-21 17:43
换完出现错误 undefined method "user" for #  

想到可能可以用force_action(skill_id, target_index), ...

class Game_Battler < Game_BattlerBase
  
  alias make_damage_value2 make_damage_value
  #计算伤害
  def make_damage_value(user, item)
    make_damage_value2(user, item)
    if item.is_a?(RPG::Skill)
      case item.id
        when 900  #设置20号技能
          if self.state?(29) && self.state?(30) && self.state?(31)  #3种状态
            
             self.user.use_item($data_skills[752])   # "秒杀" 1号为 "战斗不能"
            
            elsif self.state?(29) && self.state?(30)  #2种状态
              
              self.add_state(31)   # 目标附加"3"状态 ID为13
            
            elsif self.state?(29)  #1种状态
              
              self.add_state(30)   # 目标附加"2"状态   ID为12
            
            else  #没有状态
              
              self.add_state(29)    # 目标附加"1"状态   ID为11
          end
        end
      end            
    end
end




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