Project1

标题: 有没有脚本或事件可以让人攻击后解除某个状态? [打印本页]

作者: 烤猫    时间: 2011-1-15 16:24
标题: 有没有脚本或事件可以让人攻击后解除某个状态?
本帖最后由 烤猫 于 2011-1-16 16:17 编辑

比如有一个技能是让自己隐身,攻击就会消失,不攻击就3回合后消失。这个攻击一次就消失该怎么做?要是公共事件的话,有多个角色都会这技能,都使用分歧容易把其他人的状态下了,而且普通攻击没法调用。

不要无视我啊
作者: 烁灵    时间: 2011-1-15 18:46
本帖最后由 烁灵 于 2011-1-15 19:57 编辑

在数据库→状态 里设置解除条件 受到伤害后解除 3回合后100%解除就行了


##############################################

随便在哪写
  1.     $ss = [2,4]#2,4什么的是状态编号,逗号分开
复制代码
,然后把scene_battle
  1.   #--------------------------------------------------------------------------
  2.   # ● 执行战斗行动
  3.   #--------------------------------------------------------------------------
  4.   def execute_action
  5.     case @active_battler.action.kind
  6.     when 0  # 基本
  7.       case @active_battler.action.basic
  8.       when 0  # 攻击
  9.         execute_action_attack
  10.       when 1  # 防御
  11.         execute_action_guard
  12.       when 2  # 逃跑
  13.         execute_action_escape
  14.       when 3  # 等待
  15.         execute_action_wait
  16.       end
  17.     when 1  # 使用技能
  18.       execute_action_skill
  19.     when 2  # 使用物品
  20.       execute_action_item
  21.     end
  22.   end
复制代码
改成
  1.   #--------------------------------------------------------------------------
  2.   # ● 执行战斗行动
  3.   #--------------------------------------------------------------------------
  4.   def execute_action
  5.     case @active_battler.action.kind
  6.     when 0  # 基本
  7.       case @active_battler.action.basic
  8.       when 0  # 攻击
  9.         execute_action_attack               
  10.         ####################################
  11.         for st in @active_battler.states        
  12.           if $ss.include?(st.id)
  13.             @active_battler.remove_state(st.id)
  14.           end         
  15.         end
  16.         ####################################
  17.       when 1  # 防御
  18.         execute_action_guard
  19.       when 2  # 逃跑
  20.         execute_action_escape
  21.       when 3  # 等待
  22.         execute_action_wait
  23.       end
  24.       when 1  # 使用技能
  25.         execute_action_skill  
  26.         ####################################
  27.         for st in @active_battler.states        
  28.           if $ss.include?(st.id)
  29.             @active_battler.remove_state(st.id)
  30.           end
  31.         ####################################  
  32.         end      
  33.     when 2  # 使用物品
  34.       execute_action_item
  35.     end
  36.   end
复制代码
这样吧
作者: 烤猫    时间: 2011-1-16 10:58
本帖最后由 烤猫 于 2011-1-16 16:17 编辑

弄好了,检测状态和执行战斗位置替换一下。
  1. #--------------------------------------------------------------------------
  2.   # ● 执行战斗行动
  3.   #--------------------------------------------------------------------------
  4.   def execute_action
  5.     case @active_battler.action.kind
  6.     when 0  # 基本
  7.       case @active_battler.action.basic
  8.       when 0  # 攻击
  9.       
  10.         ####################################

  11.         for st in @active_battler.states        

  12.           if $ss.include?(st.id)

  13.             @active_battler.remove_state(st.id)

  14.           end         

  15.         end

  16.         ####################################
  17.         execute_action_attack

  18.       when 1  # 防御
  19.         execute_action_guard
  20.       when 2  # 逃跑
  21.         execute_action_escape
  22.       when 3  # 等待
  23.         execute_action_wait
  24.       end
  25.     when 1  # 使用技能

  26.         ####################################

  27.         for st in @active_battler.states        

  28.           if $ss.include?(st.id)

  29.             @active_battler.remove_state(st.id)

  30.           end

  31.         ####################################  

  32.         end      
  33.       execute_action_skill


  34.     when 2  # 使用物品
  35.       execute_action_item
  36.     end
  37.   end
复制代码
继续问:在哪认可啊。。。




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