Project1

标题: 关于战斗中死亡的事件 [打印本页]

作者: jeremy0714    时间: 2007-8-24 18:00
标题: 关于战斗中死亡的事件
我队伍里有4个人

我想设置一下, 如果其中的某1个  或者几个人在战斗中死亡的话
那么游戏就失败了

请问这个事件在哪里加上?
我是新手 还请详细说一下  3Q
作者: jeremy0714    时间: 2007-8-24 18:00
标题: 关于战斗中死亡的事件
我队伍里有4个人

我想设置一下, 如果其中的某1个  或者几个人在战斗中死亡的话
那么游戏就失败了

请问这个事件在哪里加上?
我是新手 还请详细说一下  3Q
作者: 橡让    时间: 2007-8-24 18:04
在战斗事件里设一个条件:某角色HP为0%以下
事件内容:游戏结束
作者: 索尔迦·蓝    时间: 2007-8-24 18:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: 36763183    时间: 2007-8-24 18:07
在SENCE_BATTER1里面 找到这个
#--------------------------------------------------------------------------
  # ● 战斗结束
  #     result : 結果 (0:胜利 1:失败 2:逃跑)
  #--------------------------------------------------------------------------
  def battle_end(result)
    # 清除战斗中标志
    $game_temp.in_battle = false
    # 清除全体同伴的行动
    $game_party.clear_actions
    # 解除战斗用状态
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    # 清除敌人
    $game_troop.enemies.clear
    # 调用战斗返回调用
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(result)
      $game_temp.battle_proc = nil
    end
    # 切换到地图画面
    $scene = Scene_Map.new
然后在下面添加
    #########################################################################
    $game_temp.common_event_id = 1
    $scene = Scene_Map.new
    #########################################################################
    在公共事件1里进行设置
条件分歧--当某某状态为战斗不能时 结束游戏

作者: K’    时间: 2007-8-24 18:09
另一种:
Sprite_Battler
从       # korapusu
到        # 设置活动块的坐标
中间部分改为

     if @battler.damage == nil and @battler.dead?
        if @battler.is_a?(Game_Enemy)
          $game_system.se_play($data_system.enemy_collapse_se)
            collapse
        else
          $game_system.se_play($data_system.actor_collapse_se)
            collapse
            $scene = Scene_Gameover.new
        end
      
        @battler_visible = false
      end
    end

作者: jeremy0714    时间: 2007-8-24 18:27
  36763183

$game_temp.common_event_id = 1
$scene = Scene_Map.new

你这个是不是 要等战斗结束了再判断啊?
战斗途中 挂了就结束 怎么弄 ?

作者: 36763183    时间: 2007-8-24 19:01
那就用索尔迦·蓝的,
以下引用索尔迦·蓝于2007-8-24 10:06:34的发言:

SceneBattle的第105行
   if $game_party.all_dead? or $game_party.actors.size == 0
变成
   if $game_party.all_dead? or $game_party.actors.size == 0 or $game_party.actors[0].hp == 0
这样当队伍中第一个人死亡(HP为0),就gameover。

要判断其他角色把$game_party.actors[0].hp == 0 括号中的0改成其他 再添加一行就可以了

作者: jeremy0714    时间: 2007-8-24 19:49
$game_party.actors[0].hp == 0

0  是人物的第1个角色?

我设置后测试    第1个角色 挂了后 其他的人还可以继续战斗
作者: 36763183    时间: 2007-8-24 19:53
好像是  {/fd} 为什么我的成功了?
作者: 索尔迦·蓝    时间: 2007-8-24 19:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: jeremy0714    时间: 2007-8-24 23:35
SENCE_BATTER1里的  改了 没效果

我还是 用公共事件里的条件分歧  
缺点就是必须战斗结束才能够判断
作者: K’    时间: 2007-8-25 00:02
我点点点。
宁愿用公共事件也要54我{/gg}
作者: jeremy0714    时间: 2007-8-25 00:16
    if @battler.damage == nil and @battler.dead?
       if @battler.is_a?(Game_Enemy)
         $game_system.se_play($data_system.enemy_collapse_se)
           collapse
       else
         $game_system.se_play($data_system.actor_collapse_se)
           collapse
           $scene = Scene_Gameover.new
       end
     
       @battler_visible = false
     end
   end



关键是不晓得这代码到底是做什么的?
怎么判断哪个角色死亡了
作者: K’    时间: 2007-8-25 01:33
   if @battler.damage == nil and @battler.dead?  #如果战斗者死亡
      if @battler.is_a?(Game_Enemy) #如果是敌人 以下无视
        $game_system.se_play($data_system.enemy_collapse_se)
          collapse
      else #如果是角色
        $game_system.se_play($data_system.actor_collapse_se) #音效
          collapse #红光一闪,消失
          $scene = Scene_Gameover.new #结束画面
      end

这个适用于只要有任何一个队员死亡就GAME OVER
要判断ID的话 把 $scene = Scene_Gameover.new 改为

$scene = Scene_Gameover.new  if @bettler.id = XXX   
多个队员的话就

$scene = Scene_Gameover.new if ( @battler.id = XXX or  @battler.id = XXX or  @battler.id = XXX...)
这样可懂?
[LINE]1,#dddddd[/LINE]
销毁证据完毕{/hx}
作者: 索尔迦·蓝    时间: 2007-8-25 05:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: 黑鏻    时间: 2007-8-25 18:44
楼上说的都可以~~~~~~~
不过,LZ你有没有想过一个伙伴死了~~~~就完了,好象很没趣啊~~~~~~




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