Как сделать рандомное число это понятно
Но, при создании нестандартной способности например Сильный удар, возникает проблема возникает проблема
Но, при создании нестандартной способности например Сильный удар, возникает проблема возникает проблема
Допустим поставим на карту 2 юнитов с такой способностью и заставим их друг друга бить
Допустим шанс срабатывания способности 20%. Два юнита бьют друг друга и тут замечается, что у одного, например способность либо почти не срабатывает, либо срабатывает очень редко, что в принципе полный бред. Потому что 20%, это как никак, но раз за 5 ударов должно пройти. НО
Допустим шанс срабатывания способности 20%. Два юнита бьют друг друга и тут замечается, что у одного, например способность либо почти не срабатывает, либо срабатывает очень редко, что в принципе полный бред. Потому что 20%, это как никак, но раз за 5 ударов должно пройти. НО
Совсем куда смешнее ситуация была, когда были две разные абилки, у двух разных героев, и тот у кого была абилка с шансом 15%, срабатывала бывало чаще, чем например у того, у которого была абилка с шансом 30%. Напоминаю, всё та же ситуация, когда два героя одновременно бьют друг друга.
Суть в принципе ясна. Варик генерирует числа, типа например 20,50,60,43,54,78,35,1,32,88 и т.д., а так как для всех войск на карте используется один рандом, то так получается, что когда два героя бьют друг друга, у того, у кого шанс 15% по счастливай случайности срабатывает, а у того у кого 30, нет и поэтому, у того, у кого 30% шанс, способность может не пройти даже после 5 и больше ударов, хотя по логике она должна срабатывать куда чаще.
Получается, что для каждого юнита на карте со способностью, имеющей вероятность срабатывания нужно сделать свою БД рандомов, так сказать сгенерировать ряд рандомных чисел? Или даже не для отдельного юнита, а для отдельной способности каждого юнита?
Или как это реализовать? Подскажите, кто разбирается, как например в том же Варике устроен этот рандом для скилов или в той же Дота2
Или как это реализовать? Подскажите, кто разбирается, как например в том же Варике устроен этот рандом для скилов или в той же Дота2
Принятый ответ
И вот ещё в теме по этому поводу рассуждал
Получается, что для каждого юнита на карте со способностью, имеющей вероятность срабатывания нужно сделать свою БД рандомов, так сказать сгенерировать ряд рандомных чисел? Или даже не для отдельного юнита, а для отдельной способности каждого юнита?
avuremybe:
ClotPh:
А именно, то что он может прокрутиться 3 раза, когда его бьют 3 юнита всего
И не крутиться почти, когда его бьют 5 крипов
Если бы оно работало, как ты говоришь, то он бы крутился всегда идеально, но там по-моему как раз вот этот безумный рандом
Ну вот получается к этому и приходим, что нужно делать для каждогоProshel_Doty, ну так втули 20 циклов с рандомом. Будет тебе для 20 абилок.
ClotPh:
По-моему про крутилку акса ты чего-то не знаешь)Proshel_Doty, да вот хотя бы крутилка акса в доте 2 уже именно так работает, и заряды, и перезарядка, и фактически увеличивающийся шанс
другое дело, что не обязательно в базовой информации игрокам слишком много мозги компостировать, им достаточно условно знать про шанс там 15%, 20% или 30%, ну и мб перезарядку
А именно, то что он может прокрутиться 3 раза, когда его бьют 3 юнита всего
И не крутиться почти, когда его бьют 5 крипов
Если бы оно работало, как ты говоришь, то он бы крутился всегда идеально, но там по-моему как раз вот этот безумный рандом
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Я как бы про результы тестов и говорю
Или о каких тестах ты говоришь?
Я тему то создал для того, чтобы найти нормальное решение и понять как работате рандом в Варике и Дота 2
ВОт я хочу сделать абилку на 20% шанс. Какое колво каких кулдаунов и кол-во ударов нужно брать и как это реализовывать
Ред. PROSHELDOTU
Я сделал вот так
n=0
a=4
b=4
c=1
d=3
Что же это значит?
Как раз то, о чём я говорю
Допустим это 5 юнитов, одновременно дерущихся между собой с одинаковой скоростью атаки и имеют способность с 20% шансом
Все сделали по 10 ударов
И что же мы видим
За 10 ударов у юнита N ни разу не сработала способность, тогда как у юнита A и B она сработала аж по 4 раза, что в теории должно было быть только за 20 ударов
У юнита C она сработала только 1 раз, ну что ж, хоть что-то
У юнита D 2 раза, вот это уже норм.
В итоге мы снова возвращаемся сюда
А вот ещё интересный ряд
n=4
a=1
b=2
c=5
d=2
В этом случае аж 5 раз у одного юнита, ну это вообще кайф)
Это прям как видео про Войда, там где его бэктрэк срабатывает 6 раз подряд и потом через удар ещё 2 раза
Или про Морту, у которой уклонение прокнуло 13 раз подряд
Или Снайпер с 8 хедшотами подряд
Но его понять ещё можно, у него всё-таки 35 или 40% шанс, точно не помню
Ред. ClotPh
все я как раз знаю
с лотереей не правильный пример
там выигрыш одному из пяти гарантирован
а тут тебе уже писали, что по-хорошему случайность срабатывания в первый раз не должна влиять на случайность срабатывания в следующий
ну так повесь на юнита реалку через хэш-таблицу
и приплюсовывай ее на сколько считаешь нужным за каждое НЕсрабатывание пассивки и прибавляй к шансу срабатывания, а при срабатывании обнуляй
все
получится именно то, что ты хочешь, и настраиваемое
/////////////
рандом именно на то или рандом, что теоретически даже при 50% шансе может 20 раз подряд быть провал
иначе все на мартингейле уже миллионерами были бы
если хочешь уменьшить рандом, то см. выше
Но я тебе выше написал, как она наглядно работает в это же Доте
ClotPh:
ClotPh:
Но не так, что он не срабатывает почти никогда или наоборот по 5 раз из 10
Я посмотрю на тебя, когда ты бомбанёшь, играя в доту или другую игру, не важно, потому что твой перс за 20 ударов ни разу не сможет забашить противника, и этот же противник это сделает за 5 ударов с тобой
Тогда я думаю ты откажешься от этих своих слов