设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2394|回复: 6
打印 上一主题 下一主题

[已经解决] 战斗中如何让我方队友死亡(无法战斗状态)离队

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2009-3-25
帖子
38
跳转到指定楼层
1
发表于 2014-4-4 11:04:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
默认战斗系统里,当一个角色HP<0后会获得‘无法战斗’状态,但他还在战场上,可以被复活。

请问如何将其改成一旦一个角色获得无法战斗状态就马上离队
只有在特定的情况下,才允许他像默认的设定那样留在战场上但无法行动。

另,我觉得也要考虑团灭的时候,如果全都离队会不会出现bug……是否要加一条“如果该角色已是队伍里最后一人,他就不要离队了“?

以上,请赐教,谢谢!

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2009-3-25
帖子
38
2
 楼主| 发表于 2014-4-4 17:03:25 | 只看该作者
翻帖子找到答案了,晚上回去试一下。但似乎做不到团灭后继续游戏?
http://rpg.blue/forum.php?mod=vi ... D479%26typeid%3D479
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
94
在线时间
900 小时
注册时间
2012-11-13
帖子
893
3
发表于 2014-4-6 14:33:41 | 只看该作者
但似乎做不到团灭后继续游戏?

团灭后继续游戏

评分

参与人数 1星屑 +150 收起 理由
Sion + 150 认可答案

查看全部评分

废弃
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2009-3-25
帖子
38
4
 楼主| 发表于 2014-4-6 18:39:35 | 只看该作者
3106345123 发表于 2014-4-6 14:33
团灭后继续游戏

非常感谢!这就去试~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2009-3-25
帖子
38
5
 楼主| 发表于 2014-4-17 10:06:42 | 只看该作者
追加一个问题:
在这段代码的基础上,
  1. #==============================================================================
  2. # ■ Game_BattlerBase
  3. #==============================================================================
  4. class Game_BattlerBase
  5.   #--------------------------------------------------------------------------
  6.   # ● 增减 HP (事件用)
  7.   #--------------------------------------------------------------------------
  8.   def change_hp(value, enable_death)
  9.     if !enable_death && @hp + value <= 0
  10.       self.hp = 1
  11.     else
  12.       self.hp += value
  13.       $game_party.remove_actor(self.id) if self.dead?
  14.     end
  15.   end
  16. end

  17. #==============================================================================
  18. # ■ Game_Battler
  19. #==============================================================================
  20. class Game_Battler < Game_BattlerBase
  21.   #--------------------------------------------------------------------------
  22.   # ● 应用技能/物品的效果
  23.   #--------------------------------------------------------------------------
  24.   alias default_item_apply item_apply
  25.   def item_apply(user, item)
  26.     default_item_apply(user, item)
  27.     $game_party.remove_actor(self.id) if self.actor? and self.dead?
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● HP 自动恢复
  31.   #--------------------------------------------------------------------------
  32.   alias default_regenerate_hp regenerate_hp
  33.   def regenerate_hp
  34.     default_regenerate_hp
  35.     $game_party.remove_actor(self.id) if self.actor? and self.dead?
  36.   end
  37. end
  38.   
  39. #==============================================================================
  40. # ■ Game_Actor
  41. #==============================================================================
  42. class Game_Actor < Game_Battler
  43.   #--------------------------------------------------------------------------
  44.   # ● 地图画面上回合结束的处理
  45.   #--------------------------------------------------------------------------
  46.   alias default_turn_end_on_map turn_end_on_map
  47.   def turn_end_on_map
  48.     default_turn_end_on_map
  49.     $game_party.remove_actor(self.actor_id) if self.dead?
  50.   end
  51. end

  52. #==============================================================================
  53. # ■ Game_Interpreter
  54. #==============================================================================
  55. class Game_Interpreter
  56.   #--------------------------------------------------------------------------
  57.   # ● 增减 HP
  58.   #--------------------------------------------------------------------------
  59.   alias default_command_311 command_311
  60.   def command_311
  61.     default_command_311
  62.     SceneManager.goto(Scene_Gameover) unless $game_party.exists
  63.   end
  64. end

  65. #==============================================================================
  66. # ■ Scene_Base
  67. #==============================================================================
  68. class Scene_Base
  69.   #--------------------------------------------------------------------------
  70.   # ● 游戏结束的判定
  71.   #    如果全灭则切换到游戏结束画面。
  72.   #--------------------------------------------------------------------------
  73.   alias default_check_gameover check_gameover
  74.   def check_gameover
  75.     default_check_gameover
  76.     SceneManager.goto(Scene_Gameover) unless $game_party.exists
  77.   end
  78. end
复制代码
如果想在队友离队前再触发某个公共事件,能够让他说句台词或者施放一个技能,该如何实现?

谢谢!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
92 小时
注册时间
2013-2-23
帖子
130
6
发表于 2014-4-19 06:18:53 | 只看该作者
注意死亡时触发的公共事件=成员ID。
  1. #==============================================================================
  2. # ■ Game_BattlerBase
  3. #==============================================================================
  4. class Game_BattlerBase
  5.   #--------------------------------------------------------------------------
  6.   # ● 增减 HP (事件用)
  7.   #--------------------------------------------------------------------------
  8.   def change_hp(value, enable_death)
  9.     if !enable_death && @hp + value <= 0
  10.       self.hp = 1
  11.     else
  12.       self.hp += value
  13.       if self.actor? and self.dead?
  14.         $game_temp.reserve_common_event(self.id)
  15.         $game_party.remove_actor(self.id)
  16.       end
  17.     end
  18.   end
  19. end

  20. #==============================================================================
  21. # ■ Game_Battler
  22. #==============================================================================
  23. class Game_Battler < Game_BattlerBase
  24.   #--------------------------------------------------------------------------
  25.   # ● 应用技能/物品的效果
  26.   #--------------------------------------------------------------------------
  27.   alias default_item_apply item_apply
  28.   def item_apply(user, item)
  29.     default_item_apply(user, item)
  30.     if self.actor? and self.dead?
  31.       $game_temp.reserve_common_event(self.id)
  32.       $game_party.remove_actor(self.id)
  33.     end
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● HP 自动恢复
  37.   #--------------------------------------------------------------------------
  38.   alias default_regenerate_hp regenerate_hp
  39.   def regenerate_hp
  40.     default_regenerate_hp
  41.     if self.actor? and self.dead?
  42.       $game_temp.reserve_common_event(self.id)
  43.       $game_party.remove_actor(self.id)
  44.     end
  45.   end
  46. end
  47.   
  48. #==============================================================================
  49. # ■ Game_Actor
  50. #==============================================================================
  51. class Game_Actor < Game_Battler
  52.   #--------------------------------------------------------------------------
  53.   # ● 地图画面上回合结束的处理
  54.   #--------------------------------------------------------------------------
  55.   alias default_turn_end_on_map turn_end_on_map
  56.   def turn_end_on_map
  57.     default_turn_end_on_map
  58.     if self.actor? and self.dead?
  59.       $game_temp.reserve_common_event(self.id)
  60.       $game_party.remove_actor(self.id)
  61.     end
  62.   end
  63. end

  64. #==============================================================================
  65. # ■ Game_Interpreter
  66. #==============================================================================
  67. class Game_Interpreter
  68.   #--------------------------------------------------------------------------
  69.   # ● 增减 HP
  70.   #--------------------------------------------------------------------------
  71.   alias default_command_311 command_311
  72.   def command_311
  73.     default_command_311
  74.     SceneManager.goto(Scene_Gameover) unless $game_party.exists
  75.   end
  76. end

  77. #==============================================================================
  78. # ■ Scene_Base
  79. #==============================================================================
  80. class Scene_Base
  81.   #--------------------------------------------------------------------------
  82.   # ● 游戏结束的判定
  83.   #    如果全灭则切换到游戏结束画面。
  84.   #--------------------------------------------------------------------------
  85.   alias default_check_gameover check_gameover
  86.   def check_gameover
  87.     default_check_gameover
  88.     SceneManager.goto(Scene_Gameover) unless $game_party.exists
  89.   end
  90. end
复制代码

评分

参与人数 1星屑 +150 收起 理由
Sion + 150 认可答案

查看全部评分

梦想是成为触手的新手DE☆SU(<ゝω·)绮罗星 ~☆
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
63 小时
注册时间
2009-3-25
帖子
38
7
 楼主| 发表于 2014-4-19 14:52:50 | 只看该作者
sh0016 发表于 2014-4-19 06:18
注意死亡时触发的公共事件=成员ID。

$game_temp.reserve_common_event(self.id)

起作用的就是这个对吧?
我去试试~谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-25 07:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表