火炎焱 发表于 2010-6-12 16:26:51

请问变身之后怎么变回来呢?

用特技+公共事件做了一个变身技,就是附加状态并变更角色图
但几回合后,状态解除了,角色图却变不回来了
条件分歧、开关都试过了,哪位能帮个忙呢?

secondsen 发表于 2010-6-12 18:55:43

工程在哪里。。我看看先

火炎焱 发表于 2010-6-12 20:17:30

条件分歧:男主角 为 毁灭者状态 变为
更改角色图形:男主角,,0,毁灭者,0
    除此以外的场合

分歧结束

做一个“毁灭者”的状态,变身技可使男主角变为该状态,然后把以上事件作为变身技的公共事件

结果男主角变完了身变不回来了…………

secondsen 发表于 2010-6-12 21:30:36

事件的触发条件是??

火炎焱 发表于 2010-6-13 11:46:36

嗯……没什么条件吧……
设置特技时不是可以附带公共事件嘛,然后使用该特技公共事件就被触发了啊

secondsen 发表于 2010-6-13 14:04:30

哦哦 我不用默认的战斗系统,不清楚。。。这个我看看先。。。改战斗系统前我都要先问清楚的

secondsen 发表于 2010-6-13 14:14:54


#--------------------------------------------------------------------------
# ● 仿造set_graphic
#   重载图形
#--------------------------------------------------------------------------
def reset_graphic
    actor = $data_actors[@actor_id]
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    @battler_name = actor.battler_name
    @battler_hue = actor.battler_hue
end
def remove_state(state_id, force = false)
    super(state_id, force = false)
    reset_graphic
end

放到 Game_Actor 的最后一个end 的前面。。其实位置不固定

理论上可行

火炎焱 发表于 2010-6-13 20:31:29

成功了!感谢版主~~~~~~
不过还有点不稳定,有时候1回合就变回原战斗图,有时候是2回合,而不是状态解除才变回原样
不知为何…………

secondsen 发表于 2010-6-13 21:29:44

def remove_state(state_id, force = false)

可能是这个改的地方不对,我再看看

secondsen 发表于 2010-6-13 22:28:53

还是原来那个地方

#--------------------------------------------------------------------------
# ● 仿造set_graphic
#--------------------------------------------------------------------------
def reset_graphic
    actor = $data_actors[@actor_id]
    @character_name = actor.character_name
    @character_hue = actor.character_hue
    @battler_name = actor.battler_name
    @battler_hue = actor.battler_hue
end
#--------------------------------------------------------------------------
# ● 解除状态
#   state_id : 状态 ID
#   force    : 强制解除标志 (处理自动状态时使用)
#--------------------------------------------------------------------------
def remove_state(state_id, force = false)
    # 无法附加本状态的情况下
    if state?(state_id)
      # 被强制附加的状态、并不是强制解除的情况下
      if @states_turn == -1 and not force
      # 过程结束
      return
      end
      # 现在的 HP 为 0 当作选项 [当作 HP 0 的状态]有效的场合
      if @hp == 0 and $data_states.zero_hp
      # 判断是否有另外的 [当作 HP 0 的状态]状态
      zero_hp = false
      for i in @states
          if i != state_id and $data_states.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)
      reset_graphic
    end
    # 检查 HP 及 SP 的最大值
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
end
页: [1] 2
查看完整版本: 请问变身之后怎么变回来呢?