Войти на сайт

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

ТЕМА: Как правильно изменение переменной настроить?

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124137

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
Добрый день! RPG Maker MV.
Я сделал такую переменную, которая за каждый шаг игрока отнимает -1 у этой переменной.
Добавил в игру лёд, по которому сделав один шаг будешь скользить до упора.
Но пока я скольжу, переменные тратятся так, будто я делаю шаги, хотя должно потратиться по задумке -1 за скольжение по (к примеру 5ти клеткам), а отнимается все 5. И по сути всё верно с точки зрения логики, которую я там сделал. У меня -1 делается тогда, когда изменяется координаты игрока по Х или Y.
Я ничего не могу придумать, как сделать так, чтобы именно по льду когда ГГ скользит, то за одно скольжение отнималось только -1?
А за движение не по льду за каждый шаг отнималось.
За движение по льду отнималось только за один шаг (ведь движение по льду - это всё равно что ГГ просто шагает до упора)
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124138

  • LalalalalaBB
  • LalalalalaBB аватар
  • Вне сайта
  • Светлый дракон
  • Раз в год и палка стреляет
  • Сообщений: 570
  • Спасибо получено: 437
  • ОраторПроект месяца 2 местоПроект года 3 местоПроект месяца 1 местоКомпозиторХудожник
Будет работать криво, но можно сделать так, чтобы переменная изменяла значение только тогда, когда игрок нажимает
на клавишу ходьбы (стрелка вверх, стрелка вниз и т.д.).
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: VaNyuHa

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124139

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
я так уже пробовал делать, только вот в ситуации если ГГ будет удерживать стрелку вперед, а там не лёд, а обычная дорога, то переменная так же не будет изменятся, хотя должна. Но на это есть конечно выход, что если наступить например на лёд, то правила изменения переменной меняются, типо не по координатам. а по нажатию.
Однакож, если я на льду упрусь в угол например и захочу повернутся к другой стенке, при том я останусь на льду, ведь стенка же. То игра посчитает, что я нажал кнопку и изменит переменную, хотя я не переместился. Опять же в таком случае можно прописать в событии, что при нажатии кнопки и при условии изменении координат, тогда да, возможно нормально будет работать, щас попробую, но пока не уверен, что косяков с этим способом не будет.
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124140

  • LalalalalaBB
  • LalalalalaBB аватар
  • Вне сайта
  • Светлый дракон
  • Раз в год и палка стреляет
  • Сообщений: 570
  • Спасибо получено: 437
  • ОраторПроект месяца 2 местоПроект года 3 местоПроект месяца 1 местоКомпозиторХудожник
Можно сделать это через регионы. То есть поставить на лёд тайл региона с номером, к примеру, 1. И в параллельном
событии на карте прописать другие условия изменения переменной, если игрок касается региона.
Если же он их не касается, сделать условие изменения переменной, которое было изначально.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: VaNyuHa

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124141

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
Да, это можно, но я так подумал щас, что можно впринципе сделать событие, которе и на лёд и на обычную тропу будет одинаково работать как надо)
Уже почти получилось. Я сделал следующее: То событие что проверяло координаты и если меняются, то меняется на -1 переменная + проверка условий нажата ли кнопка движения. Да это получилось, если по обычной земле ходить, то всё работает и ничего не сломалось, каждый шаг отнимает -1. А на льду немного косяк с этим решением... Каждый раз, когда я от одной точки до другой катаюсь по льюду, отнимается по -2, да и если во время того, пока катимся нажимать стрелочки, то ещё отнимается, типо игра воспринимает, что мы же нажимаем, хоть он и катиться, надо подумать.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: LalalalalaBB

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124142

  • Демий
  • Демий аватар
  • Вне сайта
  • Модератор
  • Здесь могла быть ваша реклама
  • Сообщений: 1597
  • Спасибо получено: 1520
  • Учитель3 место ГотвВетеран1 место в ГотвТестерРазработчик3 местоПисатель 2 место
Насколько я понимаю, для скольжения по льду используется плагин. Я не уверен, как именно он работает, но возможно, он не влияет на количество пройденных шагов(да-да, есть такой показатель), а значит, можно проверять изменился ли этот показатель и если да - отнимать.
Как узнать количество пройденных шагов:
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: VaNyuHa, Sepheyer

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124143

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
хммм, даже не знал что есть проверка шагов, интересно! Спасибо, сейчас попробую!!!
А плагин этот от Yuryol:
(function() {
 
var parameters = PluginManager.parameters('Yuryol_Slip_Tile');
var regionId = parameters['regionId'];
 
var YuryolMoveCommonEvent = Game_Player.prototype.startMapEvent;
Game_Player.prototype.startMapEvent = function(x, y, triggers, normal) {
	this.ABSYuryolSlipTile();
	if (!$gameMap.isEventRunning()) {
			$gameMap.eventsXy(x, y).forEach(function(event) {
					if (event.isTriggerIn(triggers) && event.isNormalPriority() === normal) {
						event.start()
					}
			});
	}
};
 
Game_Player.prototype.ABSYuryolSlipTile	 = function() {
	if ($gameMap.regionId($gamePlayer.x, $gamePlayer.y) == regionId){
		if ($gamePlayer._movementSuccess) $gamePlayer.moveForward();
 
	}
}
})()
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124144

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
Нет, всё таки при скольжении - это всё равно что идти. Даже в плагине прописан скрипт: "$gamePlayer.moveForward" я не силён в скриптах, но предполагаю это означает, что гг будет идти вперёд. Идти, значит будут подсчитываться шаги, блин не знал что есть шаги, в любом случае это проще, чем я делал проверку через координаты)) но проблему это пока что не решило, когда он скользит - всё равно, что идёт и подсчёт шагов идёт, надо ещё думать...

Есть ещё вариант, сейчас попробую и отпишусь)
PS: долго думаю, но я знаю, что я близок, идея есть только допендрить до конца не могу, щас-щас :laugh:
Последнее редактирование: 2 года 8 мес. назад от VaNyuHa.
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124145

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
чтооооо!? обнаружил большую странность для меня!
Если задать маршрут игроку, например "Двигаться вперед 3 раза", то не считается за шаги! Это как вообще?)) странно как-то ничего не понял, такой ладно думаю, пусть тогда пропишу, что при нажатии клавиши например "вниз" будет у игрока маршрут - шаг вниз много раз, если невозможно то пропустить. И так на все направления и сделал параллельное выполнение события, только почему-то жуть происходит... Он двинется в одно направление, а потом кучу раз надо нажать чтобы он двинулся в другое, зато за шаг отнимается на этот раз только -1 по льду даже. В общем теперь он еле двигается из-за этого, так не пойдёт, что же можно сделать, зная, что построив маршрут за шаги не посчитает?

ТАК СТОП! Я делал шаг вперед, а надо шаг в ту сторону в которую нажимаешь, я дурак, ща протестирую.
Последнее редактирование: 2 года 8 мес. назад от VaNyuHa.
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124146

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
В общем ничего у меня не получилось)))
Решил попробовать ещё способ с этими маршрутами. Сделал всю локу ледяную через плагин и сделал, если нажать вверх например, то -1 переменная и маршрут игрока - один шаг вверх. Идеально работает, одно НО: если ты упёрся в стенку и зажмёшь движение в стенку, то переменная будет постоянно уменьшаться, пока ты зажимаешь!
А если вернутся к проверке координат, типо если не сдвигался с места, то не отнимать, а если сдвинулся, то отнять. То снова на льду отнимается -2, а мне так не надо...
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124147

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
В общем, у меня получилось сделать теперь следующее:
Нажимаем направление, маршрут один шаг в то направление. Скользим по льду. В конце движения отнимается -1 при условии если менялись координаты игрока. В общем Лёд заработал как надо.
НО... Если зажать сразу например клавишу вниз и вверх одновременно, ГГ начнёт скользить сначала вверх до конца, потом вниз до конца и из-за того, что кнопку не отпускаем переменные так и не меняются... в общем опять ломается всё...
Можно ли как-то запретить игроку нажимать сразу две кнопки (и более) подряд и удерживать их?
Администратор запретил публиковать записи гостям.

Как правильно изменение переменной настроить? 2 года 8 мес. назад #124149

  • VaNyuHa
  • VaNyuHa аватар
  • Вне сайта
  • Мастер
  • Сообщений: 115
  • Спасибо получено: 62
В общем итоге, вроде получилось, как бы всё норм работает. Сделал условие если вверх то движение вверх ИНАЧЕ если вниз движение вниз ИНАЧЕ и т.д. и этим самым если зажать две и более кнопок он не ползает туда сюда, надеюсь ничего не сломается))
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: LalalalalaBB
Время создания страницы: 0.245 секунд