Это небольшой скрипт для RPG Maker XP! Если понадобится демка для VX Ace или MV, напишите мне об этом, я сделаю.

Ни для кого не секрет, что в мейкере для того, чтобы прыгнуть в нужные координаты, вам нужно тщательно подсчитать смещение этих координат относительно игрока или ивента, который должен прыгать.


Конечно, для ивентов есть команда "Set Event Location" ("Задать положение события"), но тогда ивент просто телепортируется, а не прыгнет!

Это все не очень удобно и многие хотели бы прыгать сразу в нужную точку, а не высчитывать смещение.

И написал небольшой скрипт, в котором объясняется, как это сделать. Просто установите его как обычно и используйте!

Скрипт позволяет совершать прыжки игроком, событием или даже группой событий (куда может входить и игрок).
Код:
=begin
  
  Прыжок игрока или ивента в указанные координаты
  Автор: DeadElf79
  
  ВНИМАНИЕ: Игрок/ивент не прыгает в непроходимые области!
  Чтобы обойти это, перед прыжком сделайте игрока/иент проходимым сквозь все,
  а после - верните ему нормальную проходимость
  
  Инструкция:
  1. Чтобы прыгнуть игроком в координаты, заданные константой, вызовите:
  
  event_jump_to 0, 10, 13
  
  Он прыгнет на тайл с координатами 10, 13.
  
  2. Чтобы прыгнуть ивентов в координаты, заданные константой, вызовите:
  
  event_jump_to 2, 5, 7
  
  Тогда ивент под намером 2 прыгнет в координаты 5, 7.
  
  3. Чтобы игроком прыгнуть в координаты из переменных, вызоите:
  
  event_jump_to 0, var(10), var(11)
  
  Игрок прыгнет в координаты, указанные в переменных 10 и 11.
  
  4. Чтобы ивентом прыгнуть в координаты, указанные в переменных, вызовите:
  
  event_jump_to 10, var(123), var(456)
  
  Тогда ивент под номером 10 прыгнет в координаты, указанные в переменных 123 и 456
  
  5. Чтобы ивенту под номером из переменной прыгнуть в координаты из переменных,
  вызовите:
  
  event_jump_to var(1), var(2), var(3)
  
  Тогда ивент под номером, указанным в переменной 1, прыгнет в координаты,
  указанные в координатах, указанных в переменных 2 и 3.
  
  6. Чтобы совершить несколько прыжков подряд, вызовите команду "Ожидание" (Wait)
  как минимум на 10 кадров. Чем дольше прыжок, тем дольше должно быть ожидание!
  
  7. Если вы ставите два ивента-стартовых площадки для прыжка, которые
  указывают прыгать друг на друга, обязательно проверяйте перед прыжком,
  в какую сторону смотрит игрок, иначе вы можете зациклить прыжки и они
  никогда не закончатся!
  
  8. Для группового прыжка нужно уметь программировать!
  Сложный пример:
  
  for index 1..3
  event_id = index + 6
  event_jump_to event_id,index,4-index
  end

  Тогда ивент под номером 7 прыгнет в координаты 1, 3;
  ивент под номером 8 прыгнет в координаты 2, 2;
  а ивент под номером 9 окажется в координатах 3, 1.
  
  И все они прыгнут одновременно!

=end

class Game_Character
  def jump_to(dest_x,dest_y)
    x = self.x
    y = self.y
    self.jump(
      dest_x - x,
      dest_y - y
    )
  end
end

def event_jump_to(event_id, dest_x, dest_y)
  if event_id == 0
    $game_player.jump_to(dest_x,dest_y)
  else
    $game_map.events[event_id].jump_to(dest_x,dest_y)
  end
end

def var(id)
  $game_variables[id]
end

def switch(id)
  $game_switches[id]
end
Если вы не поняли инструкций из скрипта, то можете скачать небольшую демку: https://yadi.sk/d/-ZYvwsa2mJToD (Внимание: требуется установленное RTP для XP)

Просьба модераторов переместить тему в нужный раздел, если я ошибся ^_^