Добавлен Obelick
Раньше никогда не занимался мультиплеерными картами и таких проблем как-то не возникало.
Есть 8 начальных точек. С помощью какого костыля можно случайным образом расположить в них игроков?
Пробовал так:
Игрок 1 занимает случайную точку из 8. Логическая переменна с ее номером выключается.
Когда игрок 2 пытается занять точку, проверяется эта логическая переменная. Если она выключена, запускаю триггер снова до тех пор, пока игрок 2 не встанет в свободную точку. И так для остальных. Но почему-то в игре происходит рассихрон для всех, кроме красного игрока.
Вот код
Есть 8 начальных точек. С помощью какого костыля можно случайным образом расположить в них игроков?
Пробовал так:
Игрок 1 занимает случайную точку из 8. Логическая переменна с ее номером выключается.
Когда игрок 2 пытается занять точку, проверяется эта логическая переменная. Если она выключена, запускаю триггер снова до тех пор, пока игрок 2 не встанет в свободную точку. И так для остальных. Но почему-то в игре происходит рассихрон для всех, кроме красного игрока.
Вот код
После Run trigger пытался поставить функцию skip remaning actions, но разницы нет.
Рассихрон не случается по другим причинам, это тестировалось.
Рассихрон не случается по другим причинам, это тестировалось.
Сделать спавн по не фикс. исходным позициям игроков - не предлагать, ибо точки появления игроков динамически меняются от их количества, а поэтому это не сработает.
Как починить или какие еще есть варианты сделать такую вещь?
Принятый ответ
Можно заносить все актуальные точки в массив, брать рандом в пределах этого массива, а потом заменять выпавший элемент массива последним и укорачивать массив на 1. В условиях варкрафта это будет чуть иначе чем в нормальных языках, но суть та же. Ну и игроков перебирать циклом, а не каждому свой if выдавать.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Показан только небольшой набор комментариев вокруг указанного.
Перейти к актуальным.
0
Показать
XGM Bot
7 лет
0
Показать
Похожие вопросы:
- Получение игрока на позиции
ответ
quq_CCCP:
Поиск по всем ресурсам на сайте
7
Показать
prog
7 лет
7
Показать
Можно заносить все актуальные точки в массив, брать рандом в пределах этого массива, а потом заменять выпавший элемент массива последним и укорачивать массив на 1. В условиях варкрафта это будет чуть иначе чем в нормальных языках, но суть та же. Ну и игроков перебирать циклом, а не каждому свой if выдавать.
Принятый ответ
0
Показать
quq_CCCP
7 лет
0
Показать
Для начала считаем кол-во играющих игроков не ботов, создаем массив точек в которых будут спаунится юниты игроков, помещаем всех игроков в группу игроков, и с помощью цыкла ForForce (в гуях он находится в разделе группа игроков) задаем случайную переменную и записываем её в массив для каждого игрока, и тут же проверяем было ли уже такое число, если было геннерируем новое, иначе создаем юнитов и все.
1
Показать
prog
7 лет
1
Показать
quq_CCCP, зачем плодить непредсказуемые рекурсивные потенциально бесконечные циклы с проверкой угадали ли мы рандомом в свободный слот, если можно получить тот-же результат за линейное время выполнения?
2
Показать
Obelick
7 лет
2
Показать
prog, спасибо! Все оказалось намного проще, чем я думал.
Оставляю скриншот для потомков

Загруженные файлы
- 6.png
2
Показать
prog
7 лет
2
Показать
Obelick, проверку на то играет ли игрок не забудь, а то в таком виде у тебя проблемы начнутся если играют, например, 1, 2, 4 и 5 игроки, а 3 вышел до срабатывания триггера.
Показан только небольшой набор комментариев вокруг указанного.
Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.