Project1
标题:
战斗系统的一些问题
[打印本页]
作者:
闪电
时间:
2007-8-14 16:23
标题:
战斗系统的一些问题
1.如果制作敌人死亡后立即复活
我试过用某敌人HP=0的时候改变另外一个敌人的状态:死亡-正常
不过可耻得失败了....
如何制作失去攻击目标的状态:
比如敌人钻地或者飞起打不到
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
闪电
时间:
2007-8-14 16:23
标题:
战斗系统的一些问题
1.如果制作敌人死亡后立即复活
我试过用某敌人HP=0的时候改变另外一个敌人的状态:死亡-正常
不过可耻得失败了....
如何制作失去攻击目标的状态:
比如敌人钻地或者飞起打不到
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
黑鏻
时间:
2007-8-14 17:41
第一个问题你可以设置当敌人死了,然后又添了一个同样的敌人,效果看起来就像该敌人复活了.(具体自己设置,其实我也不太懂)
关于敌人钻地或者飞起打不到,很难做到,你干脆设置自己的命中率低.
作者:
shamoyu0224
时间:
2007-8-14 18:00
提示:
作者被禁止或删除 内容自动屏蔽
作者:
kaze
时间:
2007-8-14 18:37
1其实这个在RATB的系统中有的,我试了下,在默认的系统中无法使用,不过那脚本不长,参照那个脚本不难改的
2战斗事件让敌人变身
作者:
闪电
时间:
2007-8-14 19:44
RATB的系统中有吗?我是没看到过,能不能告知是哪个脚本,谢谢
作者:
kaze
时间:
2007-8-14 19:55
# ▼▲▼ 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
复制代码
[LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1