|
![]() |
#11 | |
Местный
|
![]() Цитата:
![]() По поводу завязки вероятности на время. У тебя же есть код (rangerandom.nextDouble(0.0D, 10D) < d2) Плюс, ты все равно каждый такт считаешь разницу (Time.current() < tmAAAScared + какаято константа). Поэтому особого зла не будет, если ты заведешь в классе еще одну переменную timePrevious = Time.current(), обновляемую в конце targetGun, и в свою формулу рассчета вероятности добавишь учет разности (Time.current() - timePrevious), чтобы чем больше была разность - тем больше была вероятность. Это - решение с минимальными изменениями твоего кода. Но, вообще - я б предложил несколько поменять логику работы. Идея в том, чтобы: 1. Каждый такт делать все твои проверки на подавление (без всякой вероятности): - Если они прошли успешно - установить переменную timeStartSuppression = Time.current() - Если они не прошли - сбросить эту переменную (timeStartSuppression = 0). 2. А дальше - работаешь сугубо с этой timeStartSuppression. Можно (да наверное, и нужно) даже не в targetGun с ней работать, а в Interpolate.tick(). И работать очень просто - грубо, задать максимальное время подавления timeSuppressionMax и минимально возможное время подавления timeSuppressionMin и написать примерно такое: if (world.rnd().nextDouble(1,timeSuppressionMax/timeSuppressionMin)*(time.Current() - timeStartSuppression) > timeSuppressionMax ) { //Установить подавленный режим } Формула конечно приблизительная, по ней время подавления гарантированно не превысит timeSuppressionMax и гарантированно не будет меньше чем timeSuppressionMin. Коэффициенты можно задавать в зависимости от уровня зены. ИМХО, такой режим с точки зрения геймплея - лучше (чтобы фичей пользоваться, она должна быть предсказуемой, никто не захочет "подавлять" зены, если нет гарантии, что они вообще подавятся - ну а так ты хоть знать будешь, что если секунд 5 выдержишь полет в лоб зене - она заткнется). Ну это моё имхо, не хочешь - оставляй как есть, конечно. А человечеки на мне, копаю в этом направлении. Плюс я проверю, как оно все по сети передаётся, и если чего там вылезет - пофикшу. |
|
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
Опции темы | Поиск в этой теме |
Опции просмотра | |
|
|