Нужно при некоторых условиях дропнуть один случайный предмет из героя или воина со способностью "Носильщик".
Кто подскажет?
Заранее попрошу тех, кто не разбирается не писать. Мне нужно именно случайный предмет дропать, а прямого способа в тригерах, как я вижу, нету.

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

Ну задай рандомную переменную от 1 до 6 и дропай предмет из слота под этим номером
Единственная проблема - если у носильщика меньше 6 слотов, то появляется вероятность не дропнуть ничего, ну тут можно циклом как-то, типа если дропнутый предмет = нет предмета, повторить (ток еще, чтобы цикл не мог стать вечным, проверить, что у юнита хоть 1 предмет вообще есть)
2
21
7 лет назад
2
Ну задай рандомную переменную от 1 до 6 и дропай предмет из слота под этим номером
Единственная проблема - если у носильщика меньше 6 слотов, то появляется вероятность не дропнуть ничего, ну тут можно циклом как-то, типа если дропнутый предмет = нет предмета, повторить (ток еще, чтобы цикл не мог стать вечным, проверить, что у юнита хоть 1 предмет вообще есть)
Принятый ответ
0
6
7 лет назад
0
В таком случает предметы же будут выпадать по очереди - 1 слот, потом 2 и так далее, а мне надо рандомно.
0
13
7 лет назад
0
Почему они у тебя будут по очереди выпадать, если ты используешь рандомное число от 0 до 5?
0
21
7 лет назад
Отредактирован ClotPh
0
Maxwell_Hive, ясное дело, что, как хоть 1 предмет дропнется, цикл надо завершать.
NekoriDes, почему от 0 до 5? Слоты предметов в Jass 0,1,2,3,4,5 нумеруются?
0
28
7 лет назад
Отредактирован nvc123
0
ClotPh, на западе натуральные числа идут с 0
например наш 1 этаж у них 0 и т.д.
а т.к. jass почти все остальные языки программирования изобретены на западе то и нумерация в них идёт с 0
2
27
7 лет назад
2
Единственная проблема - если у носильщика меньше 6 слотов
есть функция. макс. кол-во слотов в инвентаре
native UnitInventorySize takes unit whichUnit returns integer
0
23
7 лет назад
0
есть проверка на количесто слотов инвентаря получаем и делаем с 0 до макс слота рандом
Чтобы оставить комментарий, пожалуйста, войдите на сайт.