Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Возможна ли такая механика телепортации в rpg make

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105778

  • Azio
  • Azio аватар
  • Вне сайта
  • Путник
  • Сообщений: 7
  • Спасибо получено: 2
Вопрос по rpg maker mv: есть ли возможность сделать такую механику - в инвентаре вещь, при ее использовании тебя переносит в другую локацию, но не в одну точку, а в зависимости от твоего расположении в локации откуда переносишься, в соответственную точку другой локации (такой же по размеру)? Описание: открываешь инвентарь,используешь предмет, затемнение или вспышка, звуковой эффект,все дела, но главный концепт - от положения в на карте, зависит то куда перенесёт. Есть вариант сделать что-то подобное в принципе, не в rpg maker,а в других?
Последнее редактирование: 5 года 6 мес. назад от Azio.
Администратор запретил публиковать записи гостям.

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105779

  • AnnTenna
  • AnnTenna аватар
  • Вне сайта
  • Администратор
  • ловлю волны настроения
  • Сообщений: 4533
  • Спасибо получено: 4677
  • Проект месяца 1 местоКоммерсант3 место в КодировкеПроект месяца 3 местоВетеран2 место ГотвДаритель СтимкеяПобедитель конкурса3 местоУчитель
Конечно, возможно! Просто нужно запоминать координаты персонажа в переменную, как я это вижу, а потом игрока в эту точку из переменных х и y и переносить.

Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Doctor_Bug

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105780

  • Azio
  • Azio аватар
  • Вне сайта
  • Путник
  • Сообщений: 7
  • Спасибо получено: 2
Я новичок, можно с примером или по-лучше объяснить?
Администратор запретил публиковать записи гостям.

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105781

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • Поддержка Фонда2 место ОраторПроект месяца 3 местоРазработчикУчительПрограммист RubyПаладинЗа 2 место на конкурсе маппингаДаритель Стимкея
Вот как реализовать то, о чём написала АннТенна (я описываю работу с RPG Maker MV, современный перевод):

I. Создать общее событие. Предмет будет вызывать общее событие. Общее событие — это событие без внешнего вида, которое доступно на всех картах. Откройте Базу данных (F9 или значок с шестерёнкой), перейдите на вкладку «Общие события».

Если у вас уже есть общие события, добавьте новое («Изменить максимум») и щёлкните по нему, чтобы его редактировать. Если нет — выберите одно из стандартных четырёх, они пустые.


Добавьте команду, которая будет сохранять координату X игрока в переменную:

1. Дважды щёлкните по пустому месту в поле «Содержимое», чтобы добавить команду.
2. Выберите команду «Переменная...» (страница 1, левый столбик, раздел «Внутренние данные»)
3. Выберите переменную, в которую будет записана координата X на карте. Для этого нажмите на кнопку справа «Один» («Один» значит, что будет использована только одна переменная). Откроется окно выбора переменной, выберите какую-то незанятую (если вы раньше не использовали переменные, то берите переменную 0001). Дайте ей название (напиши в поле внизу «Координата X») и нажми ОК.
4. Операцию оставьте «=» (это значит, что после выполенения команды ваша переменная будет равна номеру карты; а старое значение переменной будет выкинуто).
5. В поле «Операнд» выберите «Данные игры»
6. Щёлкните по кнопке справа от «Данные игры» и выберите «Персонаж» → «Игрок» → «X карты» («X карты» — это количество клеток от левого края карты до игрока).

Повторите то же самое для координаты Y, только используйте «Y карты». Сохраните её в какую-то другую переменную.

Затем присвойте какой-то переменной номер той карты, куда вы хотите переместить героя:

1. Дважды щёлкните по пустому месту в поле «Содержимое», чтобы добавить команду.
2. Выберите команду «Переменная...» (страница 1, левый столбик, раздел «Внутренние данные»)
3. Выберите переменную, в которую будет записан номер карты. Для этого нажмите на кнопку справа от «Один», выбери переменную (например, 0003) и присвойте ей постоянную величину («Постоянная», введите номер своей карты, например, 2). Чтобы узнать номер карты, можно открыть её в RPG Maker’е — номер будет показан внизу экрана, например, 002:Название.

Потом добавьте команду перемещения игрока по координатам:

1. Дважды щёлкните по пустому месту в поле «Содержимое», чтобы добавить команду.
2. Выберите команду «Переместить игрока» (страница 2, левый столбик, в самом верху).
3. Выберите местоположение «Из переменных», и выберите свои переменные — в «Номер» переменную с номером карты, в «X» переменную с координатой X, а в Y — переменную с координатой Y.


II. Создаёте предмет. В Базе данных выбираете слева вкладку «Предметы», увеличиваете максимальное количество на 1 («Изменить максимум»), добавляете новый предмет. В поле «Эффекты» щёлкаете дважды по пустому месту, чтобы открыть окно добавления эффекта. Выбираете вкладку «Прочее», пункт «Общее событие» (последний) и выбираете то общее событие, которое вы создали.

Ура! Вы создали телепортирующий предмет! Дальше можно расширить событие (например, проверять, на какой карте находится игрок, и запрещать использование предмета на некоторых картах), но, надеюсь, основная идея понятна.


Я также сделал небольшой пример:
TeleportationExample.zip (7 мегабайт)
(Запустить пример онлайн)

В этом примере идея чуть расширена: там ещё есть проверка старой карты (чтобы с зимы был телепорт в лето, а с лета в зиму) — надеюсь, разберётесь.

Если будут вопросы, спрашивайте!
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Seibur, Cabbit, Doctor_Bug, Aiaz Marx

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105782

  • Azio
  • Azio аватар
  • Вне сайта
  • Путник
  • Сообщений: 7
  • Спасибо получено: 2
спасибо, вроде понял. Просто давно была идея такой механики для книги, но в игре будет даже лучше.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105786

  • Azio
  • Azio аватар
  • Вне сайта
  • Путник
  • Сообщений: 7
  • Спасибо получено: 2
Проблема. Сделал всё как написано, но оно перемещает на карту, а обратно нет. И ещё, есть ли вариант сделать также, но чтобы из разных локаций(разных карт) перемещало в одну карту, но в разные её точки. Словно разбить на сегменты? То есть, разным местам одной большой карты,соответствуют координаты нескольких маленьких карт, или это не возможно? Интереса ради.
Администратор запретил публиковать записи гостям.

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105789

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • Поддержка Фонда2 место ОраторПроект месяца 3 местоРазработчикУчительПрограммист RubyПаладинЗа 2 место на конкурсе маппингаДаритель Стимкея
Azio пишет:
Проблема. Сделал всё как написано, но оно перемещает на карту, а обратно нет.
Вам нужно, чтобы со всех мест перемещались в одну, а из одного назад?

Можно сделать как-то так так:

◆ Переменная : Номер текущей карты = Номер карты
◆ Переменная : Координата X = X карты из Игрок
◆ Переменная : Координата Y = Y карты из Игрок
◆ Если : Номер текущей карты = 2 (вместо 2 поставьте номер той карты, куда происходит телепортация)
  ◆ Переместить игрока: {Номер сохранённой карты} ({Координата X}, {Координата Y})
  ◆
: Иначе
  ◆ Переменная : Номер сохранённой карты = Номер карты
  ◆ Переменная : Номер текущей карты = 2 (вместо 2 поставьте номер той карты, куда происходит телепортация)
  ◆ Переместить игрока: {Номер текущей карты} ({Координата X}, {Координата Y})
  ◆
: Конец


То есть в этом примере в «Номер сохранённой карты» будет сохраняться номер карты (не №2), из которой мы попали на карту №2.

То есть проверяем: если игрок уже на карте №2, то возвращаем его на сохранённую карту. Если он не на карте №2, то сохраяем карту и переносим его на карту №2.

Чтобы сохранить в переменную номер карты, выбираете в команде «Переменная» операнд «Данные игры» → «Прочее» → «Номер карты». Проверка «Если» делается с помощью команды «Ветвление условий» (на первой странице, левый столбел, группа «Управление процессом»). Ну и можно добавить дополнительную проверку.

Если непонятно — говорите, могу сделать пример.
Azio пишет:
И ещё, есть ли вариант сделать также, но чтобы из разных локаций(разных карт) перемещало в одну карту, но в разные её точки. Словно разбить на сегменты? То есть, разным местам одной большой карты,соответствуют координаты нескольких маленьких карт, или это не возможно? Интереса ради.
Можно проверять координаты и прибавлять. Например, если у нас шесть карт 20*20 и одна большая 60*40, то можно получить координаты в картах, разделив координаты в клетках на 20:

(карта x=0, y=0) (карта x=1, y=0) (карта x=2, y=0)
(карта x=0, y=1) (карта x=1, y=1) (карта x=2, y=1)

«Картовая» координата X и Y будет увеличиватся по 20 клеток. Чтобы узнать координату X в картах, можно разделить X в клетках на 20 (т.к. все карты у нас размера 20*20 клеток):
◆ Переменная : X в картах = X карты из Игрок
◆ Переменная : X в картах /= 20
◆ Переменная : Y в картах = Y карты из Игрок
◆ Переменная : Y в картах /= 20

Чтобы узнать X в клетках внутри карты, можно использовать остаток от деления. Вот так:
◆ Переменная : X в клетках на карты = X карты из Игрок
◆ Переменная : X в клетках на карты %= 20
◆ Переменная : Y в клетках на карты = Y карты из Игрок
◆ Переменная : Y в клетках на карты %= 20

«%= 20» значит «записать в переменную остаток от деления прошлого значения на 20».

«X в картах» и «Y в картах» будут использоваться, чтобы определить, на какую карту переместить игрока. А «X в клетках на карты» и «Y в клетках на карты» будут использоваться, чтобы определить, на какую клетку внутри этой маленькой карты переместить игрока.

Если надумаете такое делать, могу сделать пример.

Старый (неправильный) ответ: я неверно понял вопрос, этот ответ не подходит [ Нажмите, чтобы развернуть ]
Последнее редактирование: 5 года 6 мес. назад от Dmy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Seibur, Cabbit, Noxmils, Azio

Возможна ли такая механика телепортации в rpg make 5 года 6 мес. назад #105812

  • Azio
  • Azio аватар
  • Вне сайта
  • Путник
  • Сообщений: 7
  • Спасибо получено: 2
Спасибо, хоть с тем чтобы возвращался назад уже понял и так(вспомнил работу с renpy, там тоже можно использовать if и else). А вот про добавление к координатам, это интересно, попробую.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy
Время создания страницы: 0.235 секунд