#============================================================================== # ■ RGSS3 移動ルート:イベントへ接近/遠ざかる Ver1.00 by 星潟 #------------------------------------------------------------------------------ # 移動ルートとして、指定IDのイベントへ接近、もしくは # 指定IDのイベントから遠ざかるという物を設定可能になります。 #============================================================================== # イベントの自律移動:カスタムもしくはイベントコマンドの移動ルートの設定で # 移動コマンド:スクリプトで使用します。 #============================================================================== # move_toward_event(3) # # イベントID3のイベントに接近。 #============================================================================== # move_away_from_event(4) # # イベントID4のイベントから遠ざかる。 #============================================================================== # イベントの自律移動:カスタムで使用します。 #============================================================================== # move_type_toward_event(1,25) # # この場合、ゆらぎを持った移動ルート設定になります。内訳は以下の通り。 # 25歩分以上離れている場合、ランダム移動。その他の場合は確率で分岐。 # 2/3の確率でイベントID1のイベントに接近。 # 1/6の確率でランダム移動。 # 1/6の確率で正面方向へ移動。 #============================================================================== # move_type_away_from_event(2,30) # # この場合、ゆらぎを持った移動ルート設定になります。内訳は以下の通り。 # 30歩分以上離れている場合、ランダム移動。その他の場合は確率で分岐。 # 2/3の確率でイベントID2のイベントから遠ざかる。 # 1/6の確率でランダム移動。 # 1/6の確率で正面方向へ移動。 #============================================================================== class Game_Character < Game_CharacterBase #-------------------------------------------------------------------------- # イベントへ接近 #-------------------------------------------------------------------------- def move_toward_event(event_id) event = $game_map.events[event_id] return unless event move_toward_character(event) end #-------------------------------------------------------------------------- # イベントから遠ざかる #-------------------------------------------------------------------------- def move_away_from_event(event_id) event = $game_map.events[event_id] return unless event move_away_from_character(event) end #-------------------------------------------------------------------------- # 指定イベントからの距離が指定範囲内か? #-------------------------------------------------------------------------- def near_the_character_by_num?(character,num) sx = distance_x_from(character.x).abs sy = distance_y_from(character.y).abs sx + sy < num end end class Game_Event < Game_Character #-------------------------------------------------------------------------- # イベントへ接近(ゆらぎあり) #-------------------------------------------------------------------------- def move_type_toward_event(event_id,d_data = 40) event = $game_map.events[event_id] return unless event return move_random unless near_the_character_by_num?(event,d_data) case rand(6) when 0..3;move_toward_event(event_id) when 4; move_random when 5; move_forward end end #-------------------------------------------------------------------------- # イベントから遠ざかる(ゆらぎあり) #-------------------------------------------------------------------------- def move_type_away_from_event(event_id,d_data = 40) event = $game_map.events[event_id] return unless event return move_random unless near_the_character_by_num?(event,d_data) case rand(6) when 0..3;move_away_from_event(event_id) when 4; move_random when 5; move_forward end end end