Код:
=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
Если вы не поняли инструкций из скрипта, то можете скачать небольшую демку:
Социальные закладки