Jump to content

Recommended Posts

KTouchNewMapEvent

XP + VX + ACE + MV

by Kyonides Arkanthes


Introduction

Did you ever want that the engine would autorun events right after being touched by the player or another event?

Especially once it finishes transferring the player to a new map...

Now you can do that! Just copy and past the following snippet on your script editor!

Download the Scripts!

XP Version

# * KTouchNewMapEvent XP
#   Scripter : Kyonides Arkanthes
#   2022-09-29

# * Plug & Play Script * #

# This scriptlet allows you to run an event after being transferred to another
# map. It will run even if the trigger were the Player Touch or Event Touch one.

# * Aliased Method: Game_Event#initialize

class Game_Event
  alias :kyon_touch_new_map_event_init :initialize
  def initialize(map_id, event)
    kyon_touch_new_map_event_init(map_id, event)
    check_shared_location
  end

  def touch_trigger?() [1, 2].include?(@trigger) end
  def player_new_x?() $game_temp.player_new_x == @x end
  def player_new_y?() $game_temp.player_new_y == @y end

  def check_shared_location
    start if touch_trigger? and player_new_x? and player_new_y?
  end
end


VX Version

# * KTouchNewMapEvent VX
#   Scripter : Kyonides Arkanthes
#   2022-09-29

# * Plug & Play Script * #

# This scriptlet allows you to run an event after being transferred to another
# map. It will run even if the trigger were the Player Touch or Event Touch one.

# * Aliased Method: Game_Event#initialize

class Game_Player
  attr_reader :new_x, :new_y
end

class Game_Event
  alias :kyon_touch_new_map_event_init :initialize
  def initialize(map_id, event)
    kyon_touch_new_map_event_init(map_id, event)
    check_shared_location
  end

  def touch_trigger?() [1, 2].include?(@trigger) end
  def player_new_x?() $game_player.new_x == @x end
  def player_new_y?() $game_player.new_y == @y end

  def check_shared_location
    start if touch_trigger? and player_new_x? and player_new_y?
  end
end


VX ACE Version

# * KTouchNewMapEvent ACE
#   Scripter : Kyonides Arkanthes
#   2022-09-29

# * Plug & Play Script * #

# This scriptlet allows you to run an event after being transferred to another
# map. It will run even if the trigger were the Player Touch or Event Touch one.

# * Aliased Method: Game_Event#setup_page

class Game_Player
  attr_reader :new_x, :new_y
end

class Game_Event
  alias :kyon_touch_new_map_event_setup_page :setup_page
  def touch_trigger?() [1, 2].include?(@trigger) end
  def player_new_x?() $game_player.new_x == @x end
  def player_new_y?() $game_player.new_y == @y end
  def check_shared_location
    start if touch_trigger? and player_new_x? and player_new_y?
  end

  def setup_page(new_page)
    kyon_touch_new_map_event_setup_page(new_page)
    check_shared_location
  end
end


MV Version

//==================================
// * KTouchNewMapEventMV.js
//==================================
/*:
* @plugindesc This plugin will be triggered if any given event's coordinates
* match the player's and its trigger is either a Player or Event Touch.
* @author Kyonides Arkanthes
* @help Date: 2023-01-29
* 
*/

const KTouchNewMap_event_setupPage = Game_Event.prototype.setupPage;

Game_Player.prototype.newMapX = function() {
  return this._newX;
}

Game_Player.prototype.newMapY = function() {
  return this._newY;
}

Game_Event.prototype.setupPage = function() {
  KTouchNewMap_event_setupPage.call(this);
  this.checkEventTriggerNewMapTouch();
};

Game_Event.prototype.checkEventTriggerNewMapTouch = function() {
  if (this._trigger == 1 || this._trigger == 2) {
    if ($gamePlayer.newMapX() == this.x && $gamePlayer.newMapY() == this.y) {
      this.start();
    }
  }
};


Notes

Honestly, there are other ways to trigger events without using scripts. Yet, you can still use my scriptlet to make it possible by setting its trigger as Player Touch or Event Touch.


Terms & Conditions

Free as in beer and as in speech.
Please include my nickname in your game credits.

Edited by kyonides

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
Top ArrowTop Arrow Highlighted