Project1
标题:
如何设定角色自动复活
[打印本页]
作者:
wuwei0923
时间:
2012-7-7 13:49
标题:
如何设定角色自动复活
就是战斗中角色死亡一定回合后自动复活
(个人能为方法就是被指定角色死亡后进入其特有死亡状态) dsu_plus_rewardpost_czw
作者:
liuziyuan201019
时间:
2012-7-7 14:10
那么如果队友全部死亡呢?全灭的情况下还是几回合就复活吗?那不是无敌了?
作者:
明特·布兰马修
时间:
2012-7-7 14:57
嗯
RTAB有个脚本可以实现这种功能。
# ▼▲▼ XRXS27. 特殊効果 SuperEX「リレイズ」 ▼▲▼
# by シムナフ
#==============================================================================
# □ カスタマイズポイント
#==============================================================================
class Game_Battler
RERAISE_STATE_NAME = "自动复活" # 「自动复活」状态名
end
class Scene_Battle
RERAISE_STATE_NAME = "自动复活" # 「自动复活」状态名
RERAISE_HP = 1 # 「自动复活」复活时的HP
RERAISE_HP_PERCENT = 0 # 「自动复活」复活时的HP%
RERAISE_ANIMATION_ID = 26 # 「自动复活」复活时的动画ID
end
#=============================================================================
# ◇ リレイズステート by シムナフ
#=============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● HP の変更
#--------------------------------------------------------------------------
def hp=(hp)
@hp = [[hp, maxhp].min, 0].max
# 戦闘不能を付加または解除
for i in 1...$data_states.size
if $data_states[i].zero_hp
if self.dead?
# 追加
for x in 1...$data_states.size
# ステート名は変更可。
if $data_states[x].name[RERAISE_STATE_NAME] != nil
reraise_id = $data_states[x].id
break
end
end
# リレイズ復活
if reraise_id != nil && self.state?(reraise_id)
self.remove_state(reraise_id)
@reraised = true
@reraise_state = 0
# 戦闘不能マイナスステートに設定されているものを解除
if $data_states[i].minus_state_set != []
for j in $data_states[i].minus_state_set
remove_state(j)
end
end
elsif
# ここまで
add_state(i)
end
else
remove_state(i)
end
end
end
end
end
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias reraise_initialize initialize
def initialize(troop_id, member_index)
reraise_initialize(troop_id, member_index)
@reraised = false
@reraise_state = 0
end
end
class Scene_Battle
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 2 : アクション開始)
#--------------------------------------------------------------------------
alias reraise_update_phase4_step2 update_phase4_step2
def update_phase4_step2(battler)
#リレイズ判定
next_phase_ok = true
next_phase_ok = update_reraise_effect(battler)#@active_battler
if next_phase_ok
# ステップ 2 へ
reraise_update_phase4_step2(battler)
end
end
#--------------------------------------------------------------------------
# ● フレーム更新 (メインフェーズ ステップ 6 : リレイズ表示→リフレッシュ)
#--------------------------------------------------------------------------
alias reraise_update_phase4_step6 update_phase4_step6
def update_phase4_step6(battler)
next_phase_ok = true
#リレイズ判定
for enemy in $game_troop.enemies
next_phase_ok = update_reraise_effect(enemy)
if !next_phase_ok
return
end
end
for actor in $game_party.actors
next_phase_ok = update_reraise_effect(actor)
if !next_phase_ok
return
end
end
reraise_update_phase4_step6(battler)
end
#===================================================
#リレイズエフェクト
#===================================================
def update_reraise_effect(battler)
if battler.reraised == true
case battler.reraise_state
when 0
battler.reraise_state = 1 # コラプス待ち
@wait_count = 16
return false
when 1
battler.reraise_state = 2 # 復活アニメーション
##IDは好きなアニメーションIDを指定
battler.animation.push([RERAISE_ANIMATION_ID])
@wait_count = 8
return false#
when 2
#復活処理
battler.hp = battler.maxhp * RERAISE_HP_PERCENT / 100 + RERAISE_HP
battler.reraise_state = 3 #アピアーアニメーション
@wait_count = 8
return false#
when 3
battler.reraise_state = 0 #終了・通常処理に戻る
battler.reraised = false #フラグを初期値へ
@status_window.refresh
return true
end
else
return true
end
end
end
class Game_Battler
#--------------------------------------------------------------------------
# ● 追加公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :reraise_state
attr_accessor :reraised # リレイズしたかどうか
end
复制代码
作者:
chd114
时间:
2012-7-7 19:15
明特·布兰马修 发表于 2012-7-7 14:57
嗯
RTAB有个脚本可以实现这种功能。
你这个脚本恐怕是不行因为这是为RTAB制作的RMXP默认用了会出错
作者:
zhangzzzz4
时间:
2012-7-8 02:37
额...作为新人兼小白我弱弱的说一句..........其实战斗不能是一种状态...而状态页面里貌似有个东西可以设定状态的失效几率...所以..........好吧...实际测试..达到条件时我方死亡角色以生命1自动复活...当然...这个太简单...只是给大家一个思路...退散...
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1