Move Events Ex

Discussion in 'RGSS3 Scripts (RMVX Ace)' started by Engr. Adiktuzmiko, Dec 28, 2013.

    Tags:
  1. Engr. Adiktuzmiko

    Engr. Adiktuzmiko Chemical Engineer, Game Developer, Using BlinkBoy' Veteran

    Messages:
    14,407
    Likes Received:
    2,821
    Location:
    Philippines
    First Language:
    Tagalog
    Overview

    Well, normally you cannot move events in between tiles, and this snippet gives you the power to do so via a simple script call.

    Take note though that this is suggested to only be used for decorative events and those that run autorun/parallel as this might cause activation bug if used on events triggered by Action button and touch events.

    Script

    =beginHow to use:simply make a script call in an event,preferable parallel so it runs beforeyou see the map, then just erase itevent_move_ex(id,x,y)-> id = Event ID-> x = Map X (can have decimals)-> y = Map Y (can have decimals)=endclass Game_Interpreter def event_move_ex(id,x,y) $game_map.events[id].movetox(x,y) endendclass Game_Event def movetox(x, y) @x = x @y = y @real_x = @x @real_y = @y @prelock_direction = 0 straighten update_bush_depth endend
    Terms

    Free for anything, it's a really simple snippet
     
    #1
  2. Mithran

    Mithran Global Moderators Global Mod

    Messages:
    403
    Likes Received:
    211
    First Language:
    English
    Keep in mind that moving events to decimal coordinates like this will make them 'stick' at those decimal coordinates until specifically moved off of them, they will not be able to collide with anything other than things at their same decimal level. Simply using the default character.moveto command has this same behavior, and will also take decimals. If you wanted this command to immediately move the event onto the nearest logical tile so it can still be interacted with, you need to round the @x and @y coordinates in your command, passing the decimals only into real_x and real_y.
     
    #2
  3. tale

    tale Volunteer Veteran

    Messages:
    379
    Likes Received:
    579
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    N/A
    Fixed script format, credit Adiktuzmiko.
    Code:
    =begin
    How to use:
    simply make a script call in an event,
    preferable parallel so it runs before
    you see the map, then just erase it
    event_move_ex(id,x,y)
    -> id = Event ID-> x = Map X (can have decimals)-> y = Map Y (can have decimals)
    =end
    class Game_Interpreter
      def event_move_ex(id,x,y)
        $game_map.events[id].movetox(x,y)
      end
    end
    class Game_Event
      def movetox(x, y)
        @x = x
        @y = y
        @real_x = @x
        @real_y = @y
        @prelock_direction = 0
        straighten
        update_bush_depth
    end
    end
     
    #3
    Engr. Adiktuzmiko likes this.

Share This Page