Так же проигнорируем нормальный нейминг, ибо при объяснении он нам будет мешать.
Заведём массивы содержашие номера игроков. Всегда старайтесь работать с примитивами.
integer array ALL // массив для всех игроков
integer array A // массив для первой комманды
integer array B // массив для второй комманды комманды
Заведём курсор для каждого массива. Для удобства используем их имя в нижнем регистре:
integer all = -1
integer a = -1
integer b = -1
Почему не используется ноль вы поймёте позже.
Итак, для примера заполним массив ALL игроками
set all = all + 1 // 0
set ALL[all] = 3 // возьмём произвольные номера игроков
set all = all + 1 // 1
set ALL[all] = 5
set all = all + 1 // 2
set ALL[all] = 7
set all = all + 1 // 3
set ALL[all] = 9
Итак, как видите у нас в массиве четыре игрока, тобишь курсор + 1 = количество элементов массива.
Теперь необходимо заполнить массивы комманд случайными игроками. Для этого существует простой алгоритм:
local integer r // заведём временную переменную для хранения случайного числа
loop
set random = GetRandomInt(0, all) // Получаем случайный индекс массива ALL
if a + 1 < FirstTeamCount then // если в первой комманде недостаточно игроков добавляем их туда
set a = a + 1
set A[a] = ALL[random]
else // если первая комманда полная пихаем всех во вторую
set b = b + 1
set B[b] = ALL[random]
endif
set ALL[random] = ALL[all] // Помещаем последний элемент массива на место случайного элемента
set all = all - 1 // Двигаем курсор влево
exitwhen all < 0 // Выходим из цикла, если мы вышли за пределы массива
endloop
Теперь у вас есть два массива A и B заполненные индексами случайных игроков. На этом мои полномочия всё.
MpW, чтот я не понял. Юнит умер и его трупик начинает валяться и разлагаться. На полпути разложения прибегает паладин и воскрешает его. Как это всё отследить?
» Castle Revival / Главная страница
» WarCraft 3 / Стаки предметов
Отредактирован nazarpunk
» WarCraft 3 / Стаки предметов
» IntelliJASS / Типы данных
» WarCraft 3 / Способность Оживление мертвых
» WarCraft 3 / Оседлать
Отредактирован nazarpunk
» WarCraft 3 / Способность Оживление мертвых
» WarCraft 3 / возможно ли сохронить framehandle в глобальную переменую ?? jass
» WarCraft 3 / возможно ли сохронить framehandle в глобальную переменую ?? jass
» WarCraft 3 / возможно ли сохронить framehandle в глобальную переменую ?? jass
» WarCraft 3 / Интересная идея карты но... Яжнепрограммист
Подсчёт игроков
Перемешивание массива
» WarCraft 3 / Интересная идея карты но... Яжнепрограммист
» IntelliJASS / Функции
» WarCraft 3 / Интересная идея карты но... Яжнепрограммист
» Блог им. Immortal_Zodd / НЕДОСТАТОК ЖЕСТОКОСТИ В ИГРАХ
» WarCraft 3 / Интересная идея карты но... Яжнепрограммист
» IntelliJASS / Функции
» Game Dev / Создание второстепенных персонажей и их влияние на игровой мир
» IntelliJASS / Типы данных
» IntelliJASS / Типы данных
» IntelliJASS / Типы данных
» WarCraft 3 / Можно ли отследить конец разложения юнита?
» WarCraft 3 / Список в JASS
» WarCraft 3 / Список в JASS
» Game Dev / Интерактивное повествование и нелинейный геймплей в играх