|
我好像查出來 只要高於我底下這個腳本就會出錯,而低於則會導致底下這個腳本出錯... 底下這個可以做出一點事件位移的效果,然而同作者的腳本居然打架了... [pre lang="ruby"]=begin 作者:tomoaky webサイト:ひきも記は閉鎖しました。 (http://hikimoki.sakura.ne.jp/) キャラクタースプライトに以下の機能を追加します。 ・表示座標の補正 ・任意の拡大率に変更 ・任意の回転角度に変更 イベントコマンド『スクリプト』で以下のコマンドが使えるようになります。 set_shift(shift_x, shift_y, event_id) 指定したIDのイベントのをX方向に shift_x、Y方向に shift_y だけ ずらして表示します。 set_angle(angle, event_id) 指定したIDのイベントの回転角度を angle に変更します(0 ~ 360) set_zoom(zoom_x, zoom_y, event_id) 指定したIDのイベントの拡大率を zoom_x, zoom_y に変更します、 set_zoom(1.5, 3.0, 1) とした場合はイベントID1を横1.5倍、縦3倍。 event_id を省略、あるいは 0 を指定した場合は実行中のイベントを対象とし、 -1 が指定されればプレイヤーが対象となります。 すべての値を省略することでパラメータを初期値に戻すことができます。 スクリプトコマンドを使う方法以外に、イベント名や注釈コマンドを使って 設定することもできます。以下の文字列をイベント名か注釈に加えてください。 <st 4, 8> … 座標補正の設定、右に4、下に8ドット <zm 1.5, 2.0> … 拡大率の設定、横1.5倍、縦2倍 <an 45> … 回転角度の設定、半時計回りに45度 注釈コマンドを使う場合は必ずイベント実行内容の一番上で設定してください。 === 注意 === ・設定したパラメータはイベントページの変更などによって初期化されます、 イベントコマンドとイベント名、注釈をうまく使い分けてください。 2015/10/01 Ver1.01 ・説明にあるのに実装されていなかった機能を実装 2015/09/11 Ver1.0 公開 =end #============================================================================== # □ モジュール #============================================================================== module TMSUPERSPR REGEXP_ST = /<st\s*(\-*\d+)\s*\,\s*(\-*\d+)>/i REGEXP_ZM = /<zm\s*(\d+(?:\.\d+)?)\s*\,\s*(\d+(?:\.\d+)?)>/i REGEXP_AN = /<an\s*(\-*\d+)>/i module Commands #-------------------------------------------------------------------------- # ○ キャラクタースプライトの座標補正値を変更 #-------------------------------------------------------------------------- def set_shift(shift_x = 0, shift_y = 0, event_id = 0) target = get_character(event_id) return unless target target.shift_x_ex = shift_x target.shift_y_ex = shift_y end #-------------------------------------------------------------------------- # ○ キャラクタースプライトの回転角度を変更 #-------------------------------------------------------------------------- def set_angle(angle = 0, event_id = 0) target = get_character(event_id) return unless target target.angle = angle end #-------------------------------------------------------------------------- # ○ キャラクタースプライトの拡大率を変更 #-------------------------------------------------------------------------- def set_zoom(zoom_x = 1.0, zoom_y = 1.0, event_id = 0) target = get_character(event_id) return unless target target.zoom_x = zoom_x target.zoom_y = zoom_y end end # module Commands end # module TMSUPERSPR #============================================================================== # ■ Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :shift_x_ex # X方向の座標補正値 attr_accessor :shift_y_ex # Y方向の座標補正値 attr_accessor :zoom_x # X方向の拡大率 attr_accessor :zoom_y # Y方向の拡大率 attr_accessor :angle # 回転角度 #-------------------------------------------------------------------------- # ● 公開メンバ変数の初期化 #-------------------------------------------------------------------------- alias tmsuperspr_game_character_init_public_members init_public_members def init_public_members tmsuperspr_game_character_init_public_members clear_ex_param end #-------------------------------------------------------------------------- # ● 画面 X 座標の取得 #-------------------------------------------------------------------------- def screen_x super + @shift_x_ex end #-------------------------------------------------------------------------- # ● 画面 Y 座標の取得 #-------------------------------------------------------------------------- def screen_y super + @shift_y_ex end #-------------------------------------------------------------------------- # ○ キャラクター拡張用パラメータの初期化 #-------------------------------------------------------------------------- def clear_ex_param @shift_x_ex = 0 @shift_y_ex = 0 @zoom_x = 1.0 @zoom_y = 1.0 @angle = 0 end end #============================================================================== # ■ Game_Event #============================================================================== class Game_Event < Game_Character include TMSUPERSPR::Commands #-------------------------------------------------------------------------- # ● イベントページの設定をセットアップ #-------------------------------------------------------------------------- alias tmsuperspr_game_event_setup_page_settings setup_page_settings def setup_page_settings tmsuperspr_game_event_setup_page_settings clear_ex_param if @list @shift_x_ex, @shift_y_ex = $1.to_i, $2.to_i if TMSUPERSPR::REGEXP_ST =~ @event.name @zoom_x, @zoom_y = $1.to_f, $2.to_f if TMSUPERSPR::REGEXP_ZM =~ @event.name @angle = $1.to_i if TMSUPERSPR::REGEXP_AN =~ @event.name @list.each do |list| if list.code == 108 || list.code == 408 text = list.parameters[0] @shift_x_ex, @shift_y_ex = $1.to_i, $2.to_i if TMSUPERSPR::REGEXP_ST =~ text @zoom_x, @zoom_y = $1.to_f, $2.to_f if TMSUPERSPR::REGEXP_ZM =~ text @angle = $1.to_i if TMSUPERSPR::REGEXP_AN =~ text else break end end end end #-------------------------------------------------------------------------- # ○ キャラクターの取得 # param : -1 ならプレイヤー、0 ならこのイベント、それ以外はイベント ID #-------------------------------------------------------------------------- def get_character(param) if param < 0 $game_player else $game_map.events[param > 0 ? param : @id] end end end #============================================================================== # ■ Sprite_Character #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias tmsuperspr_sprite_character_update update def update tmsuperspr_sprite_character_update self.zoom_x = @character.zoom_x self.zoom_y = @character.zoom_y self.angle = @character.angle end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter include TMSUPERSPR::Commands end[/pre] |
|
排除读旧档和冲突的问题, 如果是事件要用这个效果的话,还要另外设置一些东西, 在事件的名字或者事件内容里使用【注释】功能输入上面代码框的53~58行的内容…… |