Project1

标题: 如何禁止角色无法被复活的状态 [打印本页]

作者: 578783944    时间: 2015-4-26 20:35
标题: 如何禁止角色无法被复活的状态
如何做出类似梦幻 死亡召唤  几回合无法被复活的状态
作者: 芯☆淡茹水    时间: 2015-4-26 20:56
复活法术 + 公共事件
公共事件判断角色如果处于 禁止复活状态  , 减少HP 999999
作者: 578783944    时间: 2015-4-26 21:16
芯☆淡茹水 发表于 2015-4-26 20:56
复活法术 + 公共事件
公共事件判断角色如果处于 禁止复活状态  , 减少HP 999999 ...

我不知道如何才能让复活法术的解除死亡状态失效
作者: H·H·Y    时间: 2015-4-26 23:17
578783944 发表于 2015-4-26 21:16
我不知道如何才能让复活法术的解除死亡状态失效

试试这个……



虽然会有点缺陷但是应该是不使用脚本情况下的最佳方案了……
作者: 578783944    时间: 2015-4-27 10:57
H·H·Y 发表于 2015-4-26 23:17
试试这个……

这个状态一附加目标就直接死亡了吧,我要的效果是目标在有该状态期间如果死亡无法被复活
作者: 汪汪    时间: 2015-4-27 17:32
附加一个状态,此状态不会被战斗不能解除 ,如2号
修改脚本中的
  def hp=(hp)
    @hp = [[hp, maxhp].min, 0].max
    @hp = 0 if state?(2) and state?(1)
    # 解除附加的战斗不能状态
    for i in 1...$data_states.size
      if $data_states[i].zero_hp
        if self.dead?
          add_state(i)
        else
          remove_state(i)
        end
      end
    end
  end
  def remove_state(state_id, force = false)
    # 无法附加本状态的情况下
    if state?(state_id)
      return if state?(2) and state_id==1
      # 被强制附加的状态、并不是强制解除的情况下
      if @states_turn[state_id] == -1 and not force
        # 过程结束
        return
      end
      # 现在的 HP 为 0 当作选项 [当作 HP 0 的状态]有效的场合
      if @hp == 0 and $data_states[state_id].zero_hp
        # 判断是否有另外的 [当作 HP 0 的状态]状态
        zero_hp = false
        for i in @states
          if i != state_id and $data_states[i].zero_hp
            zero_hp = true
          end
        end
        # 如果可以解除战斗不能、将 HP 更改为 1
        if zero_hp == false
          @hp = 1
        end
      end
      # 将状态 ID 从 @states 队列和 @states_turn hash 中删除
      @states.delete(state_id)  
      @states_turn.delete(state_id)
    end

    # 检查 HP 及 SP 的最大值
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
  end
当 2号存在时,死亡不能复活。额,直接附加的死亡状态。正常死亡不知如何。
作者: 芯☆淡茹水    时间: 2015-5-2 13:31
  1. #==============================================================================
  2. class Game_Battler
  3.   #--------------------------------------------------------------------------
  4.   alias old_remove_state_xr remove_state
  5.   def remove_state(state_id, force = false)
  6.     return if $data_states[state_id].zero_hp and ! force and state?(不可复活状态ID)
  7.   end
  8. end
  9. #==============================================================================
复制代码

作者: 578783944    时间: 2015-5-3 17:37
芯☆淡茹水 发表于 2015-5-2 13:31

我现在的问题是 只要法术作用对象是己方HP为0 就算状态不勾选消除战斗不能状态  也能复活  改来改去都能复活。。。。




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