Нужна помощь?
Создайте тему в соответствующем разделе
Не нужно писать всё в чат!Загляните на торговую площадку
Там вы можете купить
всё что касается игровых серверовНе хотите бан?
Пожалуйста, ознакомьтесь с нашими правилами
Не нарушайте порядок!Продаёте или покупаете?
Пользуйтесь услугами гаранта
Мы сделаем вашу сделку безопасной
-
Объявления
-
⚙️ Новые онлайн-инструменты для DayZ 07/26/26
-
- 0

Пытаюсь правильно продумать рандом, сделал несколько вариантов и все не годятся =(
Вариант 1:
Рандом прямолинейно зависящий от шанса, то есть на каждых 10спаунов будет конкретно столько сколько забили шанс.
_agentTypes = [["citizen1",30],["ru_doctor",50],["policeman",20]]; _totalqty = 10; _position = getPosATL player; _procent = _totalqty / 100; { _type = _x select 0; _qty = (_x select 1) * _procent; _posit = [_position, 0, 20, 10, 0, 2000, 0] call BIS_fnc_findSafePos; for "_i" from 1 to _qty do { _agent = _type createagent _posit }; //hint str (_type \n _qty); } foreach _agentTypes;Вариант 2:
Рандом с вероятностью, то есть не четкое разделение в пропорциях а вероятность спауна:
_agentTypes = [["citizen1",30],["ru_doctor",50],["policeman",20]]; _position = getPosATL player; _qty = 10; for "_i" from 1 to _qty do { { _type = _x select 0; _chance = _x select 1; _posit = [_position, 0, 10, 10, 0, 2000, 0] call BIS_fnc_findSafePos; _rnd = (random 1) * 100; if (_rnd < _chance) then { _agent = _type createagent _posit }; } foreach _agentTypes; };При чем во втором варианте что цикл по типам внутри цикла по кол-ву что наоборот происходит примерно следующее:
1)Когда цикл по типам внутри цикла по кол-ву, то на каждый цикл (у нас их 10) получается перебирается каждый тип в итоге можно получить как меньше планируемого колва заспавненых атк и большее, в зависимости как шансы будут выпадать
2)Так же как и пред этим только на каждый тип юнита по 10 циклов, то есть опять таки в зависимости от того как будет шанс выпадать может заспавнится и больше 10 и меньше
Думал сперва кол-во циклов для каждого типа делить на общее кол-во типов, но тут опять если не прошел шанс, то в итоге их будет меньше чем 10
А я хочу сделать так что бы четко контролировать кол-во юнитов но что бы они спавнились по определенному шансу, но не так как в первом варианте.
ТО есть хочу сделать как то так что бы по любому спавнилось 10 юнитов и у юнитов был шанс заспавнится, просто не могу что то структуру додуплить, как бы логику понимаю, нужно делать 10 циклов, и внутри каждого цикла перебирать все типы но как то с проверкой, если заспанился то прекратить перебирать типы и переходить к следующему циклу, если не заспавнился то к следующему типу, если после прохождения всех типов всеравно не заспавнился то добавлять 1 цикл.
Поделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах