Новости Gothic 1 Remake - Demo (Nyras Prologue)
  • 2.892
  • 2
Ну что, заключённые, готовы к встрече с колонией? Мир, где каждый встречный мечтает вас зарезать за кусок хлеба, а единственный закон - сила. Вас ждёт совершенно новый пролог к легендарной...
Новости Большое интервью с HotA Crew - часть 2
  • 2.360
  • 0
HotA Crew о Кронверке и будущих обновлениях (часть 2) Какие герои будут вести армии Кронверка? Герои-воины зовутся Вожди, маги — Старейшины. Их параметры и способности подчеркнут сильные стороны...
Новости Большое интервью с HotA Crew - часть 1
  • 1.971
  • 0
HotA Crew о Кронверке и будущих обновлениях Важно: весь контент по Кронверку и системе событий находится в разработке, и может ещё поменяться. Итак, следующим городом будет Кронверк. Почему...
Новости В Heroes of Might and Magic 3 теперь можно поиграть в веб-браузере
  • 2.917
  • 7
Совсем недавно энтузиасты из России смогли портировать игру HoMM3 в браузер. Причем веб-версия позволяет пройти все сюжетные компании и даже поиграть по сети. Чтобы сыграть в классику необходимо...

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

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.053
Реакции
11.495
Баллы
1.071
Лучшие ответы
4
#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.431
Реакции
3.584
Баллы
741
Лучшие ответы
403
#2
@TraZag, void zCSkyControler_Outdoor::Interpolate (), там проверяется время, которое соответствует time в пресете, от 0.0 (что вроде 12 часов дня) до 0.75 (6 утра). В каждом пресете время соответствует определенному времени, на котором и меняется пресет.

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

TraZag

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

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

Liker

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

TraZag

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

Хедин

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

TraZag

Полубог
Команда форума
Модератор раздела
Модостроитель
Почётный пользователь
 
Участник форума
Регистрация
6 Окт 2012
Сообщения
13.053
Реакции
11.495
Баллы
1.071
Лучшие ответы
4
#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
Сообщения
5.832
Реакции
7.458
Баллы
776
Лучшие ответы
117
#8
@TraZag, Unlocked это класс у TopLayer в SDK ) Вообще TopLayer писал пример для тебя в 2021

1688213234282.png

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

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

TraZag

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

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

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

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

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

Хедин

Герой
Пользователь VIP
Модостроитель
Почётный пользователь
Участник форума
Регистрация
10 Июл 2013
Сообщения
5.832
Реакции
7.458
Баллы
776
Лучшие ответы
117
#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
 
Сверху Снизу