Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

Добрый день.

Подскажите, кто знает, как правильно уменьшить вероятность возникновения дождя в игре и (или) в определённое время суток в частности. Интересует снижение вероятности появления дождя, именно как погодного явления, а не исключение его отображения на экране путём обнуления параметра плотности дождя: rain_density в конфигах погодных секций.

*Требуется сие для ТЧ + АМК_1.4.1.

Изменено пользователем antreg
Ссылка на комментарий

antreg, осмелюсь предположить следующее:

amk_mod.script содержит таблицу dynweathers в которой указаны вероятности перехода на другую погодную схему относительно текущей.

Например, сейчас погода clear (ясно). Для нее имеем:

    clear={
        clear=75,
        pasmurno=15,
        rain=10,
        groza=5
    },

Ниже в процедуре генерится случайное число от 0 до 100 и делается сравнение с табличными значениями. Когда случайное число окажется меньше табличного, принимается соответствующая погода. Например:

- случайное число 65 (65<75, но 65 > 15) - применяется погода clear.

- случайное число 12 (12<15, но 12 > 10) - применяется погода pasmurno.

Таким образом можно менять вероятность той или иной погоды. ВАЖНО только, чтобы числа в таблице убывали! Погоды можно переставлять местами, но их численные значения должны убывать всегда. Например:

    clear={
        clear=75,
        rain=15,
        pasmurno=10,
        groza=5
    },

 

И так для каждого из четырех вариантов погоды.

Изменено пользователем boryan67
Ссылка на комментарий

boryan67 Привет. Я менял. Как-то странно оно все работает. Такое впечатление что не работает.

п.с. Меньше пяти правда лучше не писать. Вылетит.

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

boryan67,

Погоды можно переставлять местами, но их численные значения должны убывать всегда.

Непонятное утверждение, а что изменится, если они будут возрастать или же будут равнозначны, например все по 25?

Ссылка на комментарий

boryan67, твои предположения НЕ верны.

В данной таблице критически важно, чтобы сумма всех вероятностей была равна (не менее) 100, а порядок и конкретные значения уже не имеют никаких ограничений.

Чтобы убрать дождливую погоду нужно всего лишь задать 0-ую вероятность для rain и groza, пропорционально увеличив оставшиеся секции, например так:

clear = { clear=80, pasmurno=20, rain=0, groza=0 },

и аналогично в остальных секциях.

Можно еще проще и надежнее, вообще убрать "дождливые" секции и оставить:

dynweathers = { clear = { clear = 80 pasmurno = 20 }, pasmurno = { clear = 80, pasmurno = 20 } }

Кстати, "ошибка" в исходной таблице для секции clear (сумма вероятностей более 100) приводит к тому, что после "ясно" нокогда не наступит сразу "гроза", хотя ... примененный метод pais (а не ipairs) смазывает это.

 

Добавлено через 9 мин.:

Альпинист, постарайся понять алгоритм рандомного выбора - тогда будет ясно что произойдет при "будут равнозначны, например все по 25?"

Генерится рандомное число в диапазоне 0...100 и это число последовательно сравнивается с попаданием в диапазон вероятностей секций, если нет попадания в текущую - переход к следующей.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos,

Спасибо! Всё понятно объяснено.

А если тоже самое необходимо проделать на чистом ТЧ,

в случае отключения динамической погоды в АМК.

В этом случае видимо что-то нужно менять уже в конфигурационных погодных файлах?

Если да, то каким образом это правильнее осуществить?

 

Ссылка на комментарий
antreg, если в динамической погоде АМК сразу ясно какие секуции дождливые и их достаточно просто исключить из циклов, то для оригинальной погоды тебе придется порыться в конфигах оригинальной погоды и там исключить(заменить) те, в которых есть дождь. Тебе нужно чтобы после текущего цикла погоды не наступал тот, в котором есть дождь. Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos "0" нельзя ставить, будет вылет (не сразу, а при переходе). Это не теория а практика :)

antreg В конфигах только rain_density.

...

Да, 100-вка была... это как бы по логике срабатывает, даже у тех кто в скриптах "не очень".

Я так понял (тогда еще, при настройке) что все из-за файла weather_default_dynamic.ltx но копать перестал, просто снизил вероятность до "5" и вылета не стало.

Можно все повторить опять это не сложно.

...

Да, извиняюсь за гон на погоду. Сейчас попробовал все на чистом амк1412, менял только скорость игры и вероятность выпадения погоды.

Попробовал два варианта, этот был последним:

dynweathers={

clear={

clear=100,

pasmurno=0,

rain=0,

groza=0

},

pasmurno={

clear=100,

rain=0,

groza=0,

pasmurno=0

},

rain={

clear=0,

groza=20,

pasmurno=70,

rain=10

},

groza={

clear=0,

rain=50,

pasmurno=0,

groza=50

}

}

Все нормально работает (двое суток по крайней мере), всегда ясно.

а можно и ... тяп-ляп и гадать отчего вылетает
Так что скорее всего так и было :blush:
Изменено пользователем amik

Мой архив

Сталкером не занимаюсь.

Ссылка на комментарий

amik, знаешь чем отличается теория от практики? - Исполнением, т.е. можно сделать как в теории, а можно и ... тяп-ляп и гадать отчего вылетает ... Не знаю какая у тебя практика, но в моей - не припоминаю ошибок при установке вероятности в 0.

Взгляни на функцию, которая применена в погоде от АМК, где там возможна ошибка из-за 0 (нуля)? Как уже сказал выше - критически важно только одно - сумма вероятностей должна быть 100 (или более). Любое(!) численное значение для вероятности, в том числе и 0 - допустимо и ни при каких условиях не может приводить к ошибке.

Ну а чтобы и при сумме вероятностей менее 100 не было вылета - достаточно определять начальное значение для local next_weather = "clear", а не как в оригинале - nil.

 

P.S. файл weather_default_dynamic.ltx и прочее из конфигов тут никаким боком не влияют и не зависимы. Зависимость только одна - есть четыре погодных секции (точнее маски) и рандомная функция по заданным вероятностям выбирает одну. Даже если будут 3 из четырех секций с нулевыми вероятностями, а четвертая - 100, то никакой ошибки не будет ни при каких условиях. Остается только в теории, что рандомное число тоже выпадет =0 (мизерная вероятность), - ну так и в этом случае выпадет одна из этих "забаненых" секций ... но ошибки(вылета) не будет.

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos, amik,

Условно понятно.

Снизить вероятность дождливой погоды:

есть доступные для обывателя варианты?

Ссылка на комментарий

antreg

Во-первых, мы все же находимся в разделе "Школа", в котором нечего делать "обывателям", желающим поменьше утруждать себя ...

Во-вторых, управление погодой не может быть простеньким занятием (с точки зрения обывателя), т.к. или бы получаешь статичную погоду (ну так и отключи погодный апдейт!) или окунаешься в дебри конфигов.

Т.о. в контексте твоей пожелалки -для обывателя доступно: а) использовать готовые моды б) отключить апдейт погоды, т.е. будет всегда одно и то же и не заморачиваться на правке коныигов.

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Artos,

Сложно понять даже профессионала с таким количеством орфографических ошибок.

Но тем не менее, может всё-таки возможно выдать элементарный тутор (только намёки)

для начинающих, как работать с погодой?

Наверняка есть знающие люди, не такие как "звёздный" Артос,

которые реально могут посоветовать конструктивный способ решения.

Изменено пользователем antreg
Ссылка на комментарий

antreg,

сожалею, что "снизошел" до обывателя, приняв его за познающего ... впредь буду осторожнее.

Приятного времени препровождения в ожидании обывательского тутора ...

 

Ну а как куратор топика - делаю предупреждение: будешь переходить на личности и коверкать ники (даже если тебе не разжевали и в ротик не положили) - получишь конструктивный и адекватный ответ от модератора ...

Изменено пользователем Artos

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Ссылка на комментарий

Помогите пожалуйста. У меня было два выброса в сутки: time = 720.0, shift = 960. Решил поставить один выброс. Изменил time = 1440, shift = 180. Уже двое игровых суток прошло, а ничего не изменилось. Так и остались два радомных выброса. Почему?

 

Изменено пользователем Алексей 1966

НС от 19.04 + доп от 14.08 + ООП + К + МА

Ссылка на комментарий
Привет Всем. Скажите, пожалуйста, возможно ли такое в ТЧ: поменять внешний вид НПС, скажем, через диалог? Желательно после: через некоторое время чтоб поменялось модель, или когда ГГ не видит НПС...

 

И еще: возможно ли телепортация НПС в ТЧ?

 

От того, что ты повторяешь вопрос - ничего не изменится ...

Во-первых, напрашиваются ответы - да, возможно, делай.

Во-вторы[. если тебе лень посмотреть в многочисленных модах как это сделано, то другим лень в очередной раз перcонально разжевывать.

--/Artos

Изменено пользователем Artos
Ссылка на комментарий

Когда-то давно был такой относительно популярный вылет:

[error]Expression    : assertion failed
[error]Function      : CSafeFixedRotationState::create
[error]File          : e:\stalker\sources\trunk\xr_3da\xrgame\phvalidevalues.h
[error]Line          : 81
[error]Description   : dBodyStateValide(b)

 

Как правило - при зомбировании неписей контролером, но не только. С оружием, вроде, тоже было.

Кто-нибудь помнит, с чем он связан ? Это хотя-бы что: код, конфиги, модели ?

 

Desertir, Ну, исторически так сложилось, что модели не могут быть кривыми в принципе. Всегда виноват кто угодно, и что угодно, кроме моделей. ;)

 

Изменено пользователем Dennis_Chikin
Ссылка на комментарий

Dennis_Chikin, единственный такой вылет у меня был с тупо не настроенными костями модели.

Всегда удивлялся, почему его приписывают к другим ситуациям, неужели из-за чего то еще это лезет?

 

Лечение простое, отлов кривой модели сложен, ибо не знаешь, в какой автор накосячил. Достаточно обратно перегнать в СДК, настроить все шейпы, и обратно в огф. Либо, если автор сам (как в моем случае), в исходнике все заделать. Я на этом попался, долго ломал голову, что не доделал, а иногда просто забывал доделать.

Изменено пользователем Desertir

ТЧ 1.0004. SAP и Trans mod

github

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   2 пользователя

×
×
  • Создать...