=begin RGSS3 ★ ☆タイル判定下プレイヤー強調 ★ プレイヤーが木の裏などの☆判定のタイル下にいる際、 プレイヤー頭上にカーソルを描画&再生することで現在地を強調します。 ● 仕様 ●========================================================== 表示されるカーソルは、 指定したウィンドウスキンのポーズサイン用カーソルになります。 ==================================================================== ver1.00 Last Update : 2013/06/28 06/28 : RGSS2からの移植 ろかん   http://kaisou-ryouiki.sakura.ne.jp/ =end #=================================== # ●設定箇所 #=================================== module Rokan module Star_Push_Player # プレイヤー強調に使用するカーソルを収めたウィンドウスキン名 PUSH_SKINNAME = "Window" # カーソル表示位置調整(Y座標) ADJUST_PUSH_POSITION = 0 # イベント時は☆タイル下にプレイヤーが存在しても強調を行わない EVENT_NOPUSH = true end end #=================================== # ここまで #=================================== $rsi = {} if $rsi == nil $rsi["☆タイル判定下プレイヤー強調"] = true class Game_Map #-------------------------------------------------------------------------- # ● 指定位置☆判定 #-------------------------------------------------------------------------- def on_star?(x, y) if events_xy(x, y).any?{|event| event.priority_type == 2} true elsif all_tiles(x, y).any?{|tile_id| tileset.flags[tile_id] == 0x610} true else false end end end class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ● インクルード Rokan::Star_Push_Player #-------------------------------------------------------------------------- include Rokan::Star_Push_Player #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias push_window_initialize initialize def initialize(viewport, character = nil) creat_push_window(character) push_window_initialize(viewport, character) end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias dispose_push_window dispose def dispose @push_window.dispose if @push_window dispose_push_window end #-------------------------------------------------------------------------- # ● ☆判定下プレイヤー強調カーソル表示用のウィンドウ生成 #-------------------------------------------------------------------------- def creat_push_window(character) @push_window = Window_Push.new if character.is_a?(Game_Player) end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias push_window_update update def update if @character.is_a?(Game_Player) if !$game_map.interpreter.running? || !EVENT_NOPUSH @push_window.x = @character.screen_x - 16 @push_window.y = @character.screen_y - 80 + ADJUST_PUSH_POSITION @push_window.visible = $game_map.on_star?(@character.x, @character.y) @push_window.update else @push_window.visible = false end end push_window_update end end #============================================================================== # ■ Window_Push #------------------------------------------------------------------------------ #  pauseが真の際にカーソルの表示再生のみを行うシンプルなウィンドウクラスです。 #============================================================================== class Window_Push < Window #-------------------------------------------------------------------------- # ● インクルード Rokan::Star_Push_Player #-------------------------------------------------------------------------- include Rokan::Star_Push_Player #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super() self.windowskin = Cache.system(PUSH_SKINNAME) self.z = 100 self.width, self.height = 32, 32 self.opacity = 0 self.visible = false self.pause = true end end