c-u-nitro-nil/Scripts/_.13.rb
2024-02-07 10:17:27 -06:00

166 lines
No EOL
5.5 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#==============================================================================
# ■ RGSS23兼用 敵座標調整 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