Новости Анонс The Elder Scrolls VI уже этим летом?
  • 299
  • 1
По данным инсайдера eXtas1s, Bethesda может впервые показать The Elder Scrolls VI летом 2025 года Обсуждается возможность анонса игры на одной из крупных презентаций Xbox - в июне или августе...
Новости Of Ash and Steel: разработка в цифрах
  • 309
  • 0
На днях авторы игры Of Ash and Steel поблагодарили игроков за поддержку и положительные отклики, а также поделились цифрами во время разработки. В игре будут: 300+ квестов; 30 000+ строк...
Новости Clair Obscur: Expedition 33 – новая ролевая игра, ломающая стереотипы
  • 480
  • 1
Clair Obscur: Expedition 33 – уникальная ролевая игра, которая могла появиться только у инди-разработчика Раз в год Художница просыпается и рисует на Монолите. Выводит свое проклятое число. И...
Новости Состоялся релиз The Elder Scrolls IV: Oblivion Remastered
  • 1.416
  • 18
22 апреля 2025 года состоялся релиз игры The Elder Scrolls IV: Oblivion Remastered. Это ремастер игры 2006 года, разработанный студиями Virtuos и Bethesda Game Studios, изданный Bethesda...

Union / Юнион zCSkyState презеты дня и ночи

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.074
Реакции
11.528
Баллы
1.071
Лучшие ответы
5
#1
Комрады, никто случаем не баловался с этим? Собственно задача полностью заменить дневные пресеты на ночные для определенной локации. То есть в локации всегда должна быть ночь вне зависимости от времени суток. Понятно, что можно постоянно играться с игровым временем и тогда пресет не сменится. Но это не комильфо и хотелось бы все таки разобраться с этим моментом.

void zCSkyState:: PresetDay1()
{
time = TIME_KEY_0;
polyColor = zVEC3(255,250,235);
fogColor = zVEC3(120,140,180);
domeColor1 = zVEC3(255,255,255);
// domeColor0 = zVEC3(130,130,130);
fogDist = 0.05F;
sunOn = TRUE;
layer[0].texName = "SKYDAY_LAYER1_A0.TGA";
layer[0].texAlpha = 215;
layer[1].texAlpha = 255;
domeColor0=fogColor;
};

Вот пример пресета. Лист пресетов грузит в список состояний zCSkyState. Но никак не могу в курить на каком этапе происходит замена пресета на другой. Если есть мысли по этому поводу, буду рад выслушать.
 

Haart

Герой
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
3 Дек 2012
Сообщения
6.447
Реакции
3.607
Баллы
741
Лучшие ответы
405
#2
@TraZag, void zCSkyControler_Outdoor::Interpolate (), там проверяется время, которое соответствует time в пресете, от 0.0 (что вроде 12 часов дня) до 0.75 (6 утра). В каждом пресете время соответствует определенному времени, на котором и меняется пресет.

Я совершенно далек от этого, просто немного посмотрел.) Так что вполне могу ошибаться.
 
Автор
Автор
TraZag

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.074
Реакции
11.528
Баллы
1.071
Лучшие ответы
5
#3
@TraZag, void zCSkyControler_Outdoor::Interpolate (), там проверяется время, которое соответствует time в пресете, от 0.0 (что вроде 12 часов дня) до 0.75 (6 утра). В каждом пресете время соответствует определенному времени, на котором и меняется пресет.

Я совершенно далек от этого, просто немного посмотрел.) Так что вполне могу ошибаться.
Тут вопрос в том, что под дх11 эта функция не пашет я хз почему. Скорей всего она хукнута в самом дх11. Но ведь как то они сам скайконтроллер там меняют. Убирают солнце и прочее взависимости от времени. Либо они презеты вобще не используют под дх11.
 

Liker

Демиург
Команда форума
Редактор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
21 Фев 2016
Сообщения
25.638
Реакции
21.679
Баллы
1.381
Лучшие ответы
958
#4
@TraZag, под dx11 свое небо, из движка пресеты вроде не юзаются)
 
Автор
Автор
TraZag

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.074
Реакции
11.528
Баллы
1.071
Лучшие ответы
5
#5
@TraZag, под dx11 свое небо, из движка пресеты вроде не юзаются)
Жопа, ясно... А переменная отвечающая за о счёт времени реального относительно игрового не помните какая? Есть тогда мысль просто замедлять игровое время.
 

Хедин

Герой
Пользователь VIP
Модостроитель
Почётный пользователь
Участник форума
Регистрация
10 Июл 2013
Сообщения
6.095
Реакции
7.865
Баллы
776
Лучшие ответы
121
#6
Автор
Автор
TraZag

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.074
Реакции
11.528
Баллы
1.071
Лучшие ответы
5
#7
@TraZag, Plugins_2021/src/zMiscUtils/Workspace/Entry/SetTimeScale.h at 94740ee93b2a912ec031b5cab21cd4ef05b8ab3e · UnresolvedExternal/Plugins_2021

Кстати, @Liker не хотите в НБ сделать такую возможность? Удобная фича. Ее бы включать и выключать по мере необходимости, было бы здорово.
Нет ничего хуже, чем вкуривать чужой код :) тут немного не то... тут берутся, как я понял, значения из ини, а этого не нужно. Нужно именно хукать родную функцию где идет просчет самих таймеров.

const zREAL WLD_TICKSPERHOUR = 250.0f * 1000.0f; // 250 Ticks
const zREAL WLD_TICKSPERMIN = WLD_TICKSPERHOUR / 60.0f;
const zREAL WLD_TICKSPERSEC = WLD_TICKSPERMIN / 60.0f;
const zREAL WLD_TICKSPERDAY = WLD_TICKSPERHOUR * 24.0f;

Наверное это...

Что такое Unlocked<float> даже Ликер не в курсе.
 
Последнее редактирование:

Хедин

Герой
Пользователь VIP
Модостроитель
Почётный пользователь
Участник форума
Регистрация
10 Июл 2013
Сообщения
6.095
Реакции
7.865
Баллы
776
Лучшие ответы
121
#8
@TraZag, Unlocked это класс у TopLayer в SDK ) Вообще TopLayer писал пример для тебя в 2021

1688213234282.png

Union - мини плагины
--- Добавлено: ---

Добавлю ка я тоже в улучшения НБ (Hedin_Union_NB_Small_Improvements.vdf) эту фичу. Полезная :)
 
Последнее редактирование:
Автор
Автор
TraZag

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.074
Реакции
11.528
Баллы
1.071
Лучшие ответы
5
#9
@TraZag, Unlocked это класс у TopLayer в SDK ) Вообще TopLayer писал пример для тебя в 2021

Посмотреть вложение 131151

Union - мини плагины
--- Добавлено: ---

Добавлю ка я тоже в улучшения НБ (Hedin_Union_NB_Small_Improvements.vdf) эту фичу. Полезная :)
Вот что значит молодость. А я уж и забыл про этот пост :D ну да у Топлеера свой особенный код в его плагинах. Мне его читать всегда было крайне трудно.

Да вещь полезная реально. Особенно когда вот такие вилы выходят с хуками из дх11
 

Хедин

Герой
Пользователь VIP
Модостроитель
Почётный пользователь
Участник форума
Регистрация
10 Июл 2013
Сообщения
6.095
Реакции
7.865
Баллы
776
Лучшие ответы
121
#10
Ну во, теперь еще комфортнее будет играть в НБ :) Захотел играешь с обычной продолжительностью дня, захотел растянул себе время. Я обычно в zMiscUtils ставил 1000 (в 4 раза длиннее день, дефолт 250). Но иногда нужно было вернуть обычный и приходилось выходить из игры.
longDayColor=0,179,0
longDayPosX=3000
longDayPosY=50
longDayTime=1000
longDayText=Долгий день
needLongDay=1
longDayKeyBase=KEY_RSHIFT
longDayKeySecond=KEY_T

Особенно когда вот такие вилы выходят с хуками из дх11
Ну да, в DX11 лучше самому добавлять, по возможности. Когда мне понадобилось масштабировать размер шрифта в зависимости от расстояния, пришлось в DX11 самому добавить эту фичу, она там с dev9 сейчас.

5.jpg
 
Сверху Снизу