не подскажете как сделать выбор героя, на пустом месте спавнятся герои при нажатии на них наклабывается бафф на 1 сек. если игрок нажмет на героя еще раз то он получит этого героя при наличии баффа тоесть своеобразная выбора по клику не знаю как сделать так чтоб бафф держался 1 сек. обычно они длятся 2-3 сек. если не ошибаюсь

Принятый ответ

Гуванч, когда игрок кликает на юнита проверяешь, что кликнутый юнит равен прошлому под индексом игрока и булевая под индексом игрока тоже равна да, меняешь юнита, иначе - показываешь информацию о юните, переменишь его, устанавливаешь булевую на да и запускаешь таймер, который выставит булевую обратно на нет

и прекрати полное сообщение пересылать, просто нажми на ник человека)
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
14
3 года назад
0
rsfghd:
Ага, только первый клик сделан для получения информации о герое, а второй клик для его выбора. А если ты сделаешь через бафф - то другой игрок, кликнувший на бафнутого юнита - сразу выберет его, не получив информации. Впрочем это твоё дело. Баффы убираются сразу, мб есть исключения. Вот ауры не сразу убираются, их нужно вручную удалять
оу щет спасибо а не подскажешь как сделать так чтоб таких вещей не было
0
27
3 года назад
0
Гуванч, массив булевой с индексом игрока тебе нужен, а не бафф
0
8
3 года назад
0
Для такой системы не жалко запускать по 1му самоуничтожающемуся таймеру для игрока (ну или делать то же самое с глобальным таймером, что чуть сложнее) .
Пока клик не произошел есть массив заполненный нулями.
Второй массив - для хранения юнитов, которые были последними, в которых кликнул игрок.
Соответственно, клик произошел, если в ячейке игрока ноль - запустить таймер., сложить в массив. Сложить юнита в массив. Если игрок кликнул до его истечения, то в соотв. ячейке массива не ноль. Уничтожить таймер. Дать героя. запретить игроку использовать систему. Если таймер закончился - в соответствующую ячейку массива положить ноль, а таймер уничтожить. Кликнутого юнита в массиве занулить.
Конечно, система чуть не оптимальна, но это мелочь, не заслуживающая нашего внимания. Вряд ли она будет использоваться хоть сколько-нибудь часто.
0
14
3 года назад
0
goodlyhero:
Для такой системы не жалко запускать по 1му самоуничтожающемуся таймеру для игрока (ну или делать то же самое с глобальным таймером, что чуть сложнее) .
Пока клик не произошел есть массив заполненный нулями.
Второй массив - для хранения юнитов, которые были последними, в которых кликнул игрок.
Соответственно, клик произошел, если в ячейке игрока ноль - запустить таймер., сложить в массив. Сложить юнита в массив. Если игрок кликнул до его истечения, то в соотв. ячейке массива не ноль. Уничтожить таймер. Дать героя. запретить игроку использовать систему. Если таймер закончился - в соответствующую ячейку массива положить ноль, а таймер уничтожить. Кликнутого юнита в массиве занулить.
Конечно, система чуть не оптимальна, но это мелочь, не заслуживающая нашего внимания. Вряд ли она будет использоваться хоть сколько-нибудь часто.
не совсем понял что ты сказал
0
27
3 года назад
0
Гуванч, когда игрок кликает на юнита проверяешь, что кликнутый юнит равен прошлому под индексом игрока и булевая под индексом игрока тоже равна да, меняешь юнита, иначе - показываешь информацию о юните, переменишь его, устанавливаешь булевую на да и запускаешь таймер, который выставит булевую обратно на нет

и прекрати полное сообщение пересылать, просто нажми на ник человека)
Принятый ответ
0
14
3 года назад
0
rsfghd:
Гуванч, когда игрок кликает на юнита проверяешь, что кликнутый юнит равен прошлому под индексом игрока и булевая под индексом игрока тоже равна да, меняешь юнита, иначе - показываешь информацию о юните, переменишь его, устанавливаешь булевую на да и запускаешь таймер, который выставит булевую обратно на нет

и прекрати полное сообщение пересылать, просто нажми на ник человека)
о спасибо
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.