166 lines
No EOL
5.5 KiB
Ruby
166 lines
No EOL
5.5 KiB
Ruby
#==============================================================================
|
||
# ■ RGSS2&3兼用 敵座標調整 Ver1.00 by 星潟
|
||
#------------------------------------------------------------------------------
|
||
# 敵の座標を敵グループ設定データから更に調整します。
|
||
#------------------------------------------------------------------------------
|
||
# ★使用例
|
||
#------------------------------------------------------------------------------
|
||
# ☆出現時、初期座標を調整する場合(全てエネミーのメモ欄を使用します)
|
||
#------------------------------------------------------------------------------
|
||
# X座標を+50する場合。(右に50)
|
||
#
|
||
# <初期X座標調整:50>
|
||
#
|
||
# Y座標を-100する場合。(下に100)
|
||
#
|
||
# <初期Y座標調整:-100>
|
||
#
|
||
# Z座標を+100する場合。(正面方向に100)
|
||
#
|
||
# <初期Z座標調整:100>
|
||
#------------------------------------------------------------------------------
|
||
# ☆戦闘中のイベントで敵のX・Y・Z座標を変更する場合
|
||
#------------------------------------------------------------------------------
|
||
# 敵グループID1の敵のX座標を+50する場合。(右に50)
|
||
# (この素材スクリプトがなくても出来ます)
|
||
#
|
||
# $game_troop.members[0].screen_x += 50
|
||
#
|
||
# 敵グループID2の敵のY座標を-100する場合。(下に100)
|
||
# (この素材スクリプトがなくても出来ます)
|
||
#
|
||
# $game_troop.members[1].screen_y -= 100
|
||
#
|
||
# 敵グループID3の敵のZ座標を+100する場合。(正面方向に100)
|
||
# (この素材スクリプトがなければ不可能です)
|
||
#
|
||
# $game_troop.members[2].enemy_z_adjust += 100
|
||
#==============================================================================
|
||
module ENEMY_XYZ
|
||
|
||
X_ADJUST = "初期X座標調整"
|
||
|
||
Y_ADJUST = "100"
|
||
|
||
Z_ADJUST = "初期Z座標調整"
|
||
|
||
end
|
||
class Game_Troop < Game_Unit
|
||
#--------------------------------------------------------------------------
|
||
# セットアップ
|
||
#--------------------------------------------------------------------------
|
||
alias setup_xy_reset setup
|
||
def setup(troop_id)
|
||
|
||
#本来の処理を実行。
|
||
|
||
setup_xy_reset(troop_id)
|
||
|
||
#メンバー別に処理を行う。
|
||
|
||
members.each do |member|
|
||
next unless $data_enemies[member.enemy_id]
|
||
member.screen_x += $data_enemies[member.enemy_id].enemy_x_adjust
|
||
member.screen_y += $data_enemies[member.enemy_id].enemy_y_adjust
|
||
end
|
||
end
|
||
end
|
||
class RPG::Enemy
|
||
attr_accessor :enemy_x_adjust
|
||
attr_accessor :enemy_y_adjust
|
||
attr_accessor :enemy_z_adjust
|
||
#--------------------------------------------------------------------------
|
||
# X座標調整値
|
||
#--------------------------------------------------------------------------
|
||
def enemy_x_adjust
|
||
|
||
#キャッシュがあればキャッシュを返す。
|
||
|
||
return @enemy_x_adjust if @enemy_x_adjust != nil
|
||
|
||
#エネミーのメモ欄からデータを取得。
|
||
|
||
memo = @note.scan(/<#{ENEMY_XYZ::X_ADJUST}[::](\S+)>/).flatten
|
||
|
||
#データがない場合は0とする。
|
||
|
||
@enemy_x_adjust = memo != nil && !memo.empty? ? memo[0].to_i : 0
|
||
|
||
#データを返す。
|
||
|
||
@enemy_x_adjust
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# Y座標調整値
|
||
#--------------------------------------------------------------------------
|
||
def enemy_y_adjust
|
||
|
||
#キャッシュがあればキャッシュを返す。
|
||
|
||
return @enemy_y_adjust if @enemy_y_adjust != nil
|
||
|
||
#エネミーのメモ欄からデータを取得。
|
||
|
||
memo = @note.scan(/<#{ENEMY_XYZ::Y_ADJUST}[::](\S+)>/).flatten
|
||
|
||
#データがない場合は0とする。
|
||
|
||
@enemy_y_adjust = memo != nil && !memo.empty? ? memo[0].to_i : 0
|
||
|
||
#データを返す。
|
||
|
||
@enemy_y_adjust
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# Z座標調整値
|
||
#--------------------------------------------------------------------------
|
||
def enemy_z_adjust
|
||
|
||
#キャッシュがあればキャッシュを返す。
|
||
|
||
return @enemy_z_adjust if @enemy_z_adjust != nil
|
||
|
||
#エネミーのメモ欄からデータを取得。
|
||
|
||
memo = @note.scan(/<#{ENEMY_XYZ::Z_ADJUST}[::](\S+)>/).flatten
|
||
|
||
#データがない場合は0とする。
|
||
|
||
@enemy_z_adjust = memo != nil && !memo.empty? ? memo[0].to_i : 0
|
||
|
||
#データを返す。
|
||
|
||
@enemy_z_adjust
|
||
end
|
||
end
|
||
class Game_Enemy < Game_Battler
|
||
#--------------------------------------------------------------------------
|
||
# バトル画面 Z 座標の取得
|
||
#--------------------------------------------------------------------------
|
||
alias screen_z_xyz_ajust screen_z
|
||
def screen_z
|
||
|
||
#本来の処理を実行し、Z座標調整値を足した値を返す。
|
||
|
||
screen_z_xyz_ajust + enemy_z_adjust
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# Z座標調整値
|
||
#--------------------------------------------------------------------------
|
||
def enemy_z_adjust
|
||
|
||
#Z座標調整値が存在しない場合は取得する。
|
||
|
||
@enemy_z_adjust = $data_enemies[@enemy_id].enemy_z_adjust if @enemy_z_adjust == nil
|
||
|
||
#Z座標調整値を返す。
|
||
|
||
@enemy_z_adjust
|
||
end
|
||
#--------------------------------------------------------------------------
|
||
# Z座標調整値の変更
|
||
#--------------------------------------------------------------------------
|
||
def enemy_z_adjust=(data)
|
||
@enemy_z_adjust = data
|
||
end
|
||
end |