9

» WarCraft 3 / Диалог возвращающий номер или имя выбранного игрока.

PT153:
Первая проблема решается просто, ещё один массив PlayerIndex.
Set PlayerIndex[Buf_B] = Integer A

А ещё после цикла ячейка Buf_B пропускается, потому новая кнопка записывается в ячейку Buf_B + 1.
Вторую часть не cовсем понял. Т.е. вы имеете ввиду что новая кнопка может перезаписать старую?
Но ведь создастся B кнопок? А последнюю я записываю в B +1
Obelick:
Можно использовать на цикл, а выбрать всех играющих игроков.
И я не знаю, можно ли показывать кнопки локально для каждого игрока. Если сначала один игрок откроет диалог, а затем через несколько секунд другой, то у первого он так же обновится. Я в своем случае не стал парится и показываю всех игроков, а уже на момент нажатия кнопки проверяю, что с собой игрок ничего не может сделать.
При таком подходе если допустим первый игрок не играет. В массиве под номером 0(или 1) не будет ничего записано. И это вроде бы повлияет потом на отслеживание нажатой кнопки?
9

» WarCraft 3 / Отследить что все игроки закрыли диалоговое окно.

Спасибо всем за ответы.
В общем решил что буду принудительно закрывать через N-е время. Т.к. человек и правда может быть афк.
9

» WarCraft 3 / Отследить что все игроки закрыли диалоговое окно.

PyCCKuu_4eJl:
+костыль - закрывайте диалог через 30 секунд после показа - игрок может быть и афк :d
Разве диалог можно принудительно закрыть?
Скрыть и очистить вроде видел, но закрыть? Или это и есть оно?
9

» WarCraft 3 / Динамический диалог

PyCCKuu_4eJl:
DarKRs, тык , тык
учтите что Return Bug больше не работает
А есть ли смысл их использовать в данной задаче?
Я пока сделал так prnt.sc/mdmz0u
Не тестил конечно. Но похожая схема с другим моим диалогом работает.
9

» WarCraft 3 / Динамический диалог

PyCCKuu_4eJl:
Ну это вы загнули
  1. создаём диалог для каждого игрока (пустой)
  2. вешаем на диалог событие
  3. при необходимости, заполняем диалог нужными кнопками
  4. 3.1) записываем на хендлы созданных кнопок числа, нужно будет ниже
  5. при срабатывании события, проверяете число из хендла нажатой кнопки, если оно соответствует определённому - дальше уже ваши действия.
  6. 4.1) Чистите диалог когда понадобится. При уничтожении диалога от него отвязывается и событие, даже если вы присвоили диалог равен переменной.
Что такое хэндлы?
9

» WarCraft 3 / Отследить что все игроки закрыли диалоговое окно.

pro100master:
узнаем количество игроков который получил голосование если 6 игрок то 6 голос. Создаем переменную 6 пока все голосует уменшает по 1 единиц если равен 0 то голосование окончено и подводим итог. Не вижу сложного главное воображай механику.
Если слот игрока пуст то на него же тоже создается диалог? Т.к. я не знаю кому именно и на каких слотах показывать диалог, поэтому показываю и создаю всем возможным
9

» WarCraft 3 / Динамический диалог

8gabriel8:
Можно конкретнее описать проблему, как это должно выглядеть?
Ну что же попробую. Если играли в цивилизацию то там есть Съезд ООН (или типо того) там игроки вносят свои предложения(резолюции) и голосуют за них.
Итак: Должно быть несколько диалогов (для каждого игрока).
Диалог примерно должен выглядеть следующим образом
(За взаимоисключает против и наооборот)
Вроде все.
Диалог с предложением резолюции я уж сам сделаю

Учимся пользоваться форматированием
Загруженные файлы
9

» WarCraft 3 / Динамический диалог

Clamp:
Создай один раз и показывай по необходимости
Ну а мне нескольким игрокам и разные по содержанию показывать.
9

» WarCraft 3 / Проверка на нахождение региона на неровной поверхности или воде

8gabriel8:
Функции native называют нативками. В данном случае эта функция проверяет проходимость и должна иметь ответы Да или Нет, то есть она логическая, ищи условие в Boolean Comparsion.
Вот оно:
Cпасибо, помогло. А есть что то такое для проверки есть ли в области разрушаемые объекты? (деревья например)
9

» WarCraft 3 / Проверка на нахождение региона на неровной поверхности или воде

pro100master:
там есть нативка поиск пути возможно из точки в точку передвигать если вернут false значит нет.
Нативка? Что это?
9

» WarCraft 3 / Проверка на наличие юнитов рядом с областью

Steal nerves:
Ну это просто:
если они спавнятся в центре области, а область перемещается периодически. Значит возьмем этот центр как основную точку. лучше конечно перемещать точку, чем рект. Но дело ваше
  1. проверять расстояние между осн точкой и центром поселения. Указываете сами опр дистанцию. если больше указанного расстояния, значит спавнить можно
  2. проверка. пикаете все здания игроков на карте. перебираете циклом каждое здание: чекаете расстояние между выбранным зданием и осн точкой. Если ни одно здание не попала в радиус, можно спавнить
  3. Заранее в вашем поселении на карте расставить области, объединить их в один регион. Лучше объединить в один, тк проще проверять будет. Это будет своего рода метка. И будешь проверять попала ли осн точка в регион или область (есть нативки).
Типо такого? Но как можно оптимизировать это? Для множества событий