Частично по файлу weather.bin. С остальным возиться пока точно не буду.
Есть шесть таких блоков (выделено) идущих друг за другом и отвечающих за отдельные периоды дня:
- самое начало игры (6 часов утра первого дня)
- утро
- день ясный (1,2 и 12 дни)
- день пасмурный (3-11 дни)
- вечер
- ночь
Каждый блок, за некоторым исключением*, содержит 8 значений. Первые шесть значений разделены байтами 16 00 или 13 00 00 (их лучше не трогать). Справа эти разделения хорошо видны как две или три точки.
1. Тон дополнительного освещения падающего с одной стороны (примеры на скриншотах) и на землю. Первые выделенные 12 байт.
2. Цвет освещения. Вторая группа из 12 байт.
3. Дальность тумана. После 13 00 00 идет 3 нужных байта.
4. Дальность прорисовки, которая должна быть всегда значительно дальше тумана. 3 байта.
5. Цвет тумана. Третья группа из 12 байт.
6. Цвет тумана в дождь. Четвертая группа из 12 байт. Чем сильнее дождь, тем выраженнее данный цвет и гуще туман.
7. Время, в которое данный период полностью сменяет прошлый. Через 17 байт от шестого значения идет два нужных байта (на скриншоте это 00 41)
8. Время, в которое начинает наступать следующий период. Два байта идущих после промежутка в несколько строк. Данное значение хорошо видно справа (в данном примере это последние выделенные байты 20 41).
*- У первого блока 7 и 8 значений нет. 8 значение (4 блок) одно на двоих у ясных и пасмурных дней.
Цвет (значения 1,2,5,6).
Пример голубого тумана (почти как в моде)
36 36 34 3F 36 36 34 3F 4A 4A 48 3F
Значение состоит из 3 групп КРАСНЫЙ-ЗЕЛЕНЫЙ-СИНИЙ, из которых и получается нужный цвет. В данном случае значения красного и зеленого равны, а синего больше.
36 36 34 3F........36 36 34 3F........4A 4A 48 3F
или десятичные:
54 54 52 63........54 54 52 63........74 74 72 63
4 байта в каждой группе. 3 и 4 определяют интенсивность и яркость цвета в диапазоне примерно 01 3C (почти черный) - FF 3F (очень яркий, например синий), или в десятичных 1 60 - 255 63.
Если грубо, то третий означает выраженность, а четвертый - яркость. Хотя такой взгляд и неправилен (в 01 3F "больше" цвета чем в FA 3E), но он удобен при подборе тона. Первые два байта лучше делать примерно равными третьему.
Зеленый цвет (50 190 40):
32 32 32 3E BE BE BE 3E 28 28 28 3E - hex
50 50 50 62 190 190 190 62 40 40 40 62 - dec
Расстояние (значения 3,4).
Например оригинальный утренний туман - 80 3B 45, прорисовка - 40 9C 45.
Первый байт можно не менять, дальность определяется вторым и третьим в примерном диапазоне 01 45 (близко) - FF 46 (далеко). Значение второго байта у прорисовки должно быть как минимум на несколько десятков больше, чем у тумана. Ну и при очень дальнем появлении объектов сложно сделать близкий туман.
Время (значения 7,8).
Приведены некоторые примерные значения, нужное теперь легко определить.
06:00 - C0 40
08:00 - 00 41
09:00 - 10 41
10:00 - 20 41
14:00 - 60 41
18:00 - 90 41
19:00 - 98 41
20:00 - A0 41
21:00 - A8 41
Средняя сила дождя.
Немного ниже шестого блока идет значение HML>. или CD CC 4C 3E 12
Не обращая внимания на первые байты:
4C 3E 12 - вроде оригинальный дождь
FF 3F 12 - очень сильный дождь
01 3A 12 - слабый дождь
CC 3D 13 - очень слабый дождь (как в моде)
Последнее значение должно быть 13 или 12.
В конце файла находятся значения для заколоченных и зараженных кварталов. В них, насколько помню, важны тон и время (или расстояние...
), через которое "включается" нужное освещение в квартале.
При загрузке сохранения, скрипт погоды обновляется только при следующей смене периода дня. Скорее всего понадобятся данные консольные команды:
go city
gt_speed 0.03 - время идет очень быстро (2.0 - норма)
gametime 12 00
trigger quest_d1_01 completed - (d/b - даниил/бурах) закончить главный квест первого дня, чтоб иметь возможность перейти в следующий
gametimed 3 12 00 - перейти в нужный день (0-11)