HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
5 голосов
Страницы (245): « Первая ... « 236 237 238 239 [240] 241 242 243 244 » ... Последняя »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 30064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Aynekko писал:
И только после сейврестора уже показывает нужные числа.

Ну естественно. Вазелин для новой карты создаётся для тех энтить, что на ней расположены. А для рестора - для всех энтить, сохранённых в сейв. Туда вообще лезть не следует, не читать не писать. Единственное исключение - ворлдспаун.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 211309

Старое сообщение 03-10-2022 13:54
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 872
Возраст: 30

Рейтинг



Цитата:
Ku2zoff писал:
Aynekko а зачем ты на клиенте берёшь свойства из вазелина? Надо брать из курстейта.

Я постоянно меняю curstate на клиенте, а в baseline хранится оригинальное число, которое я использую, как отправную точку. Впрочем, выход я уже нашел.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 211312

Старое сообщение 03-10-2022 14:30
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6697
Возраст: 31

Рейтинг



Цитата:
Aynekko писал:
Я постоянно меняю curstate на клиенте, а в baseline хранится оригинальное число, которое я использую, как отправную точку.

Как вариант можно использовать для хранения исходных значений пользовательскую структурку. А вообще для чего тебе это? Удобней управлять значениями на сервере, потому что в классе энтити можно завести 100500 переменных для хранения исходных значений.

Сообщить модератору | | IP: Записан
Сообщение: 211313

Старое сообщение 03-10-2022 14:37
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 872
Возраст: 30

Рейтинг



Цитата:
Ku2zoff писал:
вообще для чего тебе это?

Плавное исчезание энтити на расстоянии для оптимизации, ну и чтоб красиво было. На сервере - значит попрощаться с плавностью в мультиплеере

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 211314

Старое сообщение 03-10-2022 15:21
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 30064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Aynekko писал:
Я постоянно меняю curstate на клиенте

curstate - только для чтения. Менять его нельзя ни в коем случае.
Впрочем все три стейта - baseline, curstate, prevstate нельзя менять.

Цитата:
Aynekko писал:
а в baseline хранится оригинальное число, которое я использую, как отправную точку

Это никакая не отправная точка. Удивительно, что оно у тебя вообще работает.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 211316

Старое сообщение 03-10-2022 15:51
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 872
Возраст: 30

Рейтинг



Цитата:
Дядя Миша писал:
curstate - только для чтения. Менять его нельзя ни в коем случае.

Почему нельзя? Я так понял он каждый раз с сервера приходит все равно. Я его прям на входе ловлю и пишу туда свое. Все работает

Добавлено 03-10-2022 в 19:18:

Цитата:
Дядя Миша писал:
Это никакая не отправная точка.

Я же говорю, я ее просто так использую. Ну, главное работает.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 211317

Старое сообщение 03-10-2022 16:18
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 30064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Aynekko писал:
Я так понял он каждый раз с сервера приходит все равно

В мультике он далеко не каждый кадр приходит с сервера. Да и вообще, потом не удивляйся, если начнётся что-то странное. Автор XDM тоже занимался подобными вещами, в результате его мод работал всё хуже и хуже.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 211318

Старое сообщение 03-10-2022 16:28
-
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 872
Возраст: 30

Рейтинг



Ну я тестирую, экспериментирую. Конечно в случае чего переделаю. Я тестил на пинге 100 (фейковом), никаких проблем не обнаружил пока что.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 211319

Старое сообщение 03-10-2022 16:33
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6697
Возраст: 31

Рейтинг



Цитата:
Aynekko писал:
На сервере - значит попрощаться с плавностью в мультиплеере

Должно быть решение на уровне рендерера, не затрагивающее энтварсы.

Добавлено 07-10-2022 в 20:35:

Есть идея. Пометь энтить каким-нибудь флагом, и запрети для таких энтить передачу pev->renderamt по сети:
C++ Source Code:
1
state->rendermode    = ent->v.rendermode;
2
if (!FBitSet(ent->v.flags, FL_MYFLAG)) state->renderamt     = ent->v.renderamt;
3
state->renderfx      = ent->v.renderfx;
4
state->rendercolor.r = ent->v.rendercolor.x;
5
state->rendercolor.g = ent->v.rendercolor.y;
6
state->rendercolor.b = ent->v.rendercolor.z;

Так, на всякий случай. А оригинальное значение renderamt замени на кастомный keyvalue и передавай свободным энтварсом, например iuser1.

Отредактировано Ku2zoff 07-10-2022 в 13:37

Сообщить модератору | | IP: Записан
Сообщение: 211336

Старое сообщение 07-10-2022 13:35
- За что?
Aynekko
Маппер

Дата регистрации: Jun 2016
Проживает: г. Подольск, Россия
Сообщений: 872
Возраст: 30

Рейтинг



Цитата:
Дядя Миша писал:
curstate - только для чтения. Менять его нельзя ни в коем случае.

Тем временем в CL_FxBlend():
C++ Source Code:
1
case kRenderFxFadeFast:
2
  if( RP_NORMALPASS( ))
3
  {
4
    if( e->curstate.renderamt > 3 )
5
      e->curstate.renderamt -= 4;
6
    else e->curstate.renderamt = 0;
7
  }
8
blend = e->curstate.renderamt;
9
break;

Цитата:
Ku2zoff писал:
передавай свободным энтварсом, например iuser1.

Это ксашмод, тут все уже занято, увы. Ну, можно конечно найти, если порыться, но я стараюсь идти по этому пути, когда уже совсем нет вариантов.

__________________
Мой мод на Xash

Сообщить модератору | | IP: Записан
Сообщение: 211339

Старое сообщение 08-10-2022 12:10
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 30064
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Aynekko писал:
Тем временем в CL_FxBlend():

Хак от Вальвы. Еще и не timebased.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 211342

Старое сообщение 08-10-2022 13:44
-
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 206
Возраст: 16

Рейтинг



Вернёмся к моему старому вопросу!

Цитата:
Ku2zoff писал:
значит, между анимациями контроллер сбрасывается в дефолтное положение. ent->curstate.controller[0] нужно задавать значение не в функции выстрела, а каждый кадр. Или в HUD_Frame, или в StudioDrawModel/StudioSetupBones.

Ну посылать переменную я способен, а работать с HUD_Frame/StudioDrawModel/StudioSetupBones не умею. Что, как, зачем, и почему?

Добавлено 12-10-2022 в 13:53:

так, я смог это сделать но ничего не дало, как сбрасывалось так и сбрасывается

Добавлено 12-10-2022 в 13:54:

C++ Source Code:
1
extern int iWpnId;
2
 
3
void DLLEXPORT HUD_Frame( double time )
4
{
5
  ServersThink( time );
6
  if (iWpnId == WEAPON_TIHAR || iWpnId == WEAPON_GAUSS)
7
  {
8
    gEngfuncs.GetViewModel()->curstate.controller[0] = gHUD.m_iBone1;
9
  }
10
  GetClientVoiceMgr()->Frame(time);
11
}


Добавлено 12-10-2022 в 14:46:

при этом curstate.controller[0] имеет заданное ему значение и не поднимается плавно до него

Добавлено 12-10-2022 в 15:20:

Я починил баг! Один товарищ написал мне следующее:
Цитата:

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

Я изучил код связанный с костями и увидел что там идёт расчет с curstate.controller и latched.prevcontroller, который у меня всегда был равен 0, потому стрелка и прыгала до 0

Добавлено 12-10-2022 в 15:52:

https://youtu.be/Lri8ifPxxSc вот результат

__________________
https://www.moddb.com/mods/metro-2031-last-chance

Сообщить модератору | | IP: Записан
Сообщение: 211352

Старое сообщение 12-10-2022 12:52
- За что?
Ku2zoff
Мастер Ёда из Деревни Дуракоф

Дата регистрации: Apr 2007
Проживает: В Деревне дураков
Сообщений: 6697
Возраст: 31

Рейтинг



Цитата:
hgrunt_2020 писал:
curstate.controller и latched.prevcontroller

Поэтому надо было сразу глядеть StudioSetupBones, а следом StudioCalcBoneAdj. Там как раз эта интерполяция делается. Понятно, что для вьюмодельки нету latched.prevcontroller, у неё нет никакой информации из предыдущего кадра. Поэтому нельзя сделать интерполяцию между анимациями. Да и не нужно, стрёмно будет выглядеть, надо по-хитрому высчитывать тайминги. Ну нафиг такой геморрой.

Сообщить модератору | | IP: Записан
Сообщение: 211359

Старое сообщение 12-10-2022 15:04
- За что?
 Дядя Миша
who said meow?

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 30064
Нанёс повреждений: 392 ед.

Рейтинг



На вьюмодельках, я вообще не припоминаю, чтобы контроллеры костей использовались.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

>> так а раньше почему падало ?
> Потому что говно ваш С++, вот почему

Сообщить модератору | | IP: Записан
Сообщение: 211364

Старое сообщение 12-10-2022 18:29
-
hgrunt_2020
учусь методом тыка,проб и ошибок

Дата регистрации: Aug 2021
Проживает: Московское метро
Сообщений: 206
Возраст: 16

Рейтинг



Дядя Миша ну я первый кто их использует)

__________________
https://www.moddb.com/mods/metro-2031-last-chance

Сообщить модератору | | IP: Записан
Сообщение: 211368

Старое сообщение 12-10-2022 22:28
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 19:51. Новая тема    Ответить
Страницы (245): « Первая ... « 236 237 238 239 [240] 241 242 243 244 » ... Последняя »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Нубские вопросы от <censored> и других нубов
Чтобы не создавать сто тем
5 голосов
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2022