Project1
标题:
战斗中如何让我方队友死亡(无法战斗状态)离队
[打印本页]
作者:
tottoyea
时间:
2014-4-4 11:04
标题:
战斗中如何让我方队友死亡(无法战斗状态)离队
默认战斗系统里,当一个角色HP<0后会获得‘无法战斗’状态,但他还在战场上,可以被复活。
请问如何将其改成
一旦一个角色获得无法战斗状态就马上离队
?
只有在特定的情况下,才允许他像默认的设定那样留在战场上但无法行动。
另,我觉得也要考虑团灭的时候,如果全都离队会不会出现bug……是否要加一条“如果该角色已是队伍里最后一人,他就不要离队了“?
以上,请赐教,谢谢!
作者:
tottoyea
时间:
2014-4-4 17:03
翻帖子找到答案了,晚上回去试一下。但似乎做不到团灭后继续游戏?
http://rpg.blue/forum.php?mod=vi ... D479%26typeid%3D479
作者:
3106345123
时间:
2014-4-6 14:33
但似乎做不到团灭后继续游戏?
团灭后继续游戏
作者:
tottoyea
时间:
2014-4-6 18:39
3106345123 发表于 2014-4-6 14:33
团灭后继续游戏
非常感谢!这就去试~
作者:
tottoyea
时间:
2014-4-17 10:06
追加一个问题:
在这段代码的基础上,
#==============================================================================
# ■ Game_BattlerBase
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 增减 HP (事件用)
#--------------------------------------------------------------------------
def change_hp(value, enable_death)
if !enable_death && @hp + value <= 0
self.hp = 1
else
self.hp += value
$game_party.remove_actor(self.id) if self.dead?
end
end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 应用技能/物品的效果
#--------------------------------------------------------------------------
alias default_item_apply item_apply
def item_apply(user, item)
default_item_apply(user, item)
$game_party.remove_actor(self.id) if self.actor? and self.dead?
end
#--------------------------------------------------------------------------
# ● HP 自动恢复
#--------------------------------------------------------------------------
alias default_regenerate_hp regenerate_hp
def regenerate_hp
default_regenerate_hp
$game_party.remove_actor(self.id) if self.actor? and self.dead?
end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 地图画面上回合结束的处理
#--------------------------------------------------------------------------
alias default_turn_end_on_map turn_end_on_map
def turn_end_on_map
default_turn_end_on_map
$game_party.remove_actor(self.actor_id) if self.dead?
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 增减 HP
#--------------------------------------------------------------------------
alias default_command_311 command_311
def command_311
default_command_311
SceneManager.goto(Scene_Gameover) unless $game_party.exists
end
end
#==============================================================================
# ■ Scene_Base
#==============================================================================
class Scene_Base
#--------------------------------------------------------------------------
# ● 游戏结束的判定
# 如果全灭则切换到游戏结束画面。
#--------------------------------------------------------------------------
alias default_check_gameover check_gameover
def check_gameover
default_check_gameover
SceneManager.goto(Scene_Gameover) unless $game_party.exists
end
end
复制代码
如果想
在队友离队前再触发某个公共事件
,能够让他说句台词或者施放一个技能,该如何实现?
谢谢!
作者:
sh0016
时间:
2014-4-19 06:18
注意死亡时触发的公共事件=成员ID。
#==============================================================================
# ■ Game_BattlerBase
#==============================================================================
class Game_BattlerBase
#--------------------------------------------------------------------------
# ● 增减 HP (事件用)
#--------------------------------------------------------------------------
def change_hp(value, enable_death)
if !enable_death && @hp + value <= 0
self.hp = 1
else
self.hp += value
if self.actor? and self.dead?
$game_temp.reserve_common_event(self.id)
$game_party.remove_actor(self.id)
end
end
end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# ● 应用技能/物品的效果
#--------------------------------------------------------------------------
alias default_item_apply item_apply
def item_apply(user, item)
default_item_apply(user, item)
if self.actor? and self.dead?
$game_temp.reserve_common_event(self.id)
$game_party.remove_actor(self.id)
end
end
#--------------------------------------------------------------------------
# ● HP 自动恢复
#--------------------------------------------------------------------------
alias default_regenerate_hp regenerate_hp
def regenerate_hp
default_regenerate_hp
if self.actor? and self.dead?
$game_temp.reserve_common_event(self.id)
$game_party.remove_actor(self.id)
end
end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 地图画面上回合结束的处理
#--------------------------------------------------------------------------
alias default_turn_end_on_map turn_end_on_map
def turn_end_on_map
default_turn_end_on_map
if self.actor? and self.dead?
$game_temp.reserve_common_event(self.id)
$game_party.remove_actor(self.id)
end
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 增减 HP
#--------------------------------------------------------------------------
alias default_command_311 command_311
def command_311
default_command_311
SceneManager.goto(Scene_Gameover) unless $game_party.exists
end
end
#==============================================================================
# ■ Scene_Base
#==============================================================================
class Scene_Base
#--------------------------------------------------------------------------
# ● 游戏结束的判定
# 如果全灭则切换到游戏结束画面。
#--------------------------------------------------------------------------
alias default_check_gameover check_gameover
def check_gameover
default_check_gameover
SceneManager.goto(Scene_Gameover) unless $game_party.exists
end
end
复制代码
作者:
tottoyea
时间:
2014-4-19 14:52
sh0016 发表于 2014-4-19 06:18
注意死亡时触发的公共事件=成员ID。
$game_temp.reserve_common_event(self.id)
起作用的就是这个对吧?
我去试试~谢谢!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1