HLFX.Ru Forum Страницы (2): « 1 [2]
Показать все 3892 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Нубские вопросы от <censored> и других нубов (https://hlfx.ru/forum/showthread.php?threadid=4535)


Отправлено Aynekko 02-10-2022 в 14:47:

Вот еще такой вопрос. На сервере мы можем делать тряску экрана

C++ Source Code:
1
MESSAGE_BEGIN( MSG_ONE, gmsgShake, NULL, pPlayer->edict() );		// use the magic #1 for "one client"
2
 
3
WRITE_SHORT( shake.amplitude );				// shake amount
4
WRITE_SHORT( shake.duration );				// shake lasts this long
5
WRITE_SHORT( shake.frequency );				// shake noise frequency
6
 
7
MESSAGE_END();

А как это запустить сразу на клиенте? То есть чтобы клиент посылал движку эти три числа после какого-то действия, и экран бы трясся.

__________________
Мой мод на Xash


Отправлено Ku2zoff 02-10-2022 в 15:53:

Aynekko дёрни клиентскую часть мессаги из движка в дллку и вызывай её сразу на клиенте. Сорцы ксаша открыты. pfnCalcShake, pfnApplyShake, и саму мессагу CL_ParseScreenShake. Делов минут на 10. Ну, точнее, вызывать надо не мессагу, а заполнять структурку screen_shake_t.

C++ Source Code:
1
void CL_ParseScreenShake( sizebuf_t *msg )
2
{
3
  clgame.shake.amplitude = (float)(word)MSG_ReadShort( msg ) * (1.0f / (float)(1<<12));
4
  clgame.shake.duration = (float)(word)MSG_ReadShort( msg ) * (1.0f / (float)(1<<12));
5
  clgame.shake.frequency = (float)(word)MSG_ReadShort( msg ) * (1.0f / (float)(1<<8));
6
  clgame.shake.time = cl.time + max( clgame.shake.duration, 0.01f );
7
  clgame.shake.next_shake = 0.0f; // apply immediately
8
}

Это то, что принимает мессага с сервера. Вот и сделай помимо этого ещё какой-нибудь CL_MakeScreenShake(float amp, float dur, float freq, float time). Я так заставлял экран трястись от ударов альт. атакой разводного ключа прямо в эвенте.


Отправлено Aynekko 02-10-2022 в 18:50:

Понял, уже сделал

Добавлено 02-10-2022 в 21:50:

Столкнулся с такой штукой касаемо baseline. В общем создаю я спрайт на сервере через SpriteCreate. После его создания я задаю ему свойства, рендермод и прозрачность.
И вот незадача - на клиенте мне рапортует, что у него baseline.rendermode и baseline.renderamt равны нулю. И только после сейврестора уже показывает нужные числа.
Вот и собственно вопрос, а как мне обновить baseline после того, как я задал свойства?

__________________
Мой мод на Xash


Отправлено Дядя Миша 03-10-2022 в 09:02:

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 03-10-2022 в 13:39:

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


Отправлено Дядя Миша 03-10-2022 в 13:54:

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

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 03-10-2022 в 14:30:

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

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

__________________
Мой мод на Xash


Отправлено Ku2zoff 03-10-2022 в 14:37:

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

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


Отправлено Aynekko 03-10-2022 в 15:21:

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

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

__________________
Мой мод на Xash


Отправлено Дядя Миша 03-10-2022 в 15:51:

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

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

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

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 03-10-2022 в 16:18:

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

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

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

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

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

__________________
Мой мод на Xash


Отправлено Дядя Миша 03-10-2022 в 16:28:

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

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 03-10-2022 в 16:33:

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

__________________
Мой мод на Xash


Отправлено Ku2zoff 07-10-2022 в 13:35:

Цитата:
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.


Отправлено Aynekko 08-10-2022 в 12:10:

Цитата:
Дядя Миша писал:
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


Отправлено Дядя Миша 08-10-2022 в 13:44:

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

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено hgrunt_2020 12-10-2022 в 12:52:

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

Цитата:
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 вот результат

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено Ku2zoff 12-10-2022 в 15:04:

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

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


Отправлено Дядя Миша 12-10-2022 в 18:29:

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено hgrunt_2020 12-10-2022 в 22:28:

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

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено илья2 23-10-2022 в 18:09:

всем привет: Spawned a NULL entity! к чему относиться данная ошибка ?

__________________
илья


Отправлено hgrunt_2020 24-10-2022 в 06:25:

Дословный перевод: Заспавнена Нуллевая энтитя

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено илья2 24-10-2022 в 09:51:

да вы представьте что я придумал->XVCORE97 или в другом названии СУПЕР ПРОТОТИП-что это ?--->:прототип синтезированной сверх новой колотронной дыры
закупоренном в особом контейнере высокого назначения опасность!!!:--->особо опасное супер сверх оружие !!!.

Да писателям фантастам такое бы понравилось

__________________
илья


Отправлено hgrunt_2020 24-10-2022 в 10:16:

илья2
1. Это надо было писать в фулде
2. Рекомендую немного поизучать русский язык и грамматику в целом

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено илья2 24-10-2022 в 10:44:

Это надо было писать в фулде:да точно надо было

Добавлено 24-10-2022 в 13:44:

кому интересно сейчас я создаю новое оружие XVL989

__________________
илья


Отправлено илья2 31-10-2022 в 17:08:

Появился у меня жоский баг в игре. Не знаю, как его исправить. Баг таков, что когда мы берем оружие вместе с костюмом, то при выборе оружия есть другое оружие, которое мы не брали. У этого оружия пустая обойма. То есть это оружие красное. Во общем, будет более понятно, если выложу скриншот этой хрени.

https://imgur.com/a/OR6i8TQ

Добавлено 31-10-2022 в 16:21:

Может, есть способ изначально удалить это оружие ? с пустой обоймой ?

Добавлено 31-10-2022 в 20:08:

ну все я исправил баг

__________________
илья


Отправлено hgrunt_2020 04-11-2022 в 07:55:

Цитата:
Дядя Миша писал:
А вы как определяете где говнокод, а где нет?
Вот как раз таинственный множитель на 1.5525 это и есть говнокод.
Как вы это число получили? Ни деление 16/9 ни 16/10 его не даёт.

Ух, уже три месяца прошло, а я только щас выяснил чем является этот множитель - это переменная hud_scale. Я был удивлён, когда так получилось, а выяснил я это опытным путём. Изменяя разрешение экрана и значение hud_scale я понял что число 1.5525 и значение hud_scale совпадают при максимальном разрешении, уменьшая же разрешение я заметил что изображение увеличивается

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено Aynekko 04-11-2022 в 17:09:

Как правильно посчитать кол-во активных игроков на сервере?
Я взял код из multiplayer rules:

C++ Source Code:
1
int CountPlayers( void )
2
{
3
  int	num = 0;
4
 
5
  for ( int i = 1; i <= gpGlobals->maxClients; i++ )
6
  {
7
    CBaseEntity *pEnt = UTIL_PlayerByIndex( i );
8
 
9
    if ( pEnt )
10
      num = num + 1;
11
  }
12
 
13
  return num;
14
}

Запускаю сервер, показывает 0. Зашел на сервер - 1. Вышел с сервера... все равно 1.
Команда status в дедикатед сервере не показывает никаких игроков. Как правильно посчитать их тогда?

Добавлено 04-11-2022 в 20:09:

В общем залез я в движок и посмотрел, что делает сервер, когда игрок уходит. А он там обнуляет кейбуфферы.
Так что я сделал вот так:
C++ Source Code:
1
int playercount = 0;// CountPlayers();
2
for( int i = 1; i <= gpGlobals->maxClients; i++ )
3
{
4
  CBasePlayer *pPlayer = (CBasePlayer*)UTIL_PlayerByIndex( i );
5
 
6
  // skip invalid players
7
  if( !pPlayer )
8
    continue;
9
 
10
  const char *model = g_engfuncs.pfnInfoKeyValue( g_engfuncs.pfnGetInfoKeyBuffer( pPlayer->edict() ), "model" );
11
  if( model[0] <= 0 )
12
    continue;
13
 
14
  playercount++;
15
}

Делаю проверку на кейбуффер "model". Работает.
Если у вас будут другие более адекватные варианты, я только приветствую.

__________________
Мой мод на Xash


Отправлено илья2 07-11-2022 в 06:39:

извините что поднимаю старую тему опять на теже грабли:а точно ли 512 лимит прекешей зарыт в движок не в карты ли ? я пробовал сломаные исходники на картах half-life там все нормально работает захожу в карты opossing force все глючит.

Добавлено 07-11-2022 в 09:30:

особенно меня удивляет вот эта ошибка Host_Error: PF_precache_model_I: Model 'models/houndeye.mdl' failed to precache because the item count is over the 512 limit.

houndeye этот объект был в картах халф лайфа захожу в карты opossing force пожалуйста ошибка прекеша

Добавлено 07-11-2022 в 09:32:

кажется это не оптимизированные карты или не совсем правильно скомпилированные где в half-life картах лимит превышен а в opossing force картах лимит занижен

Добавлено 07-11-2022 в 09:36:

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

Добавлено 07-11-2022 в 09:39:

а есть ли оптимизированные карты opossing force где лимит завышен ?

__________________
илья


Отправлено Дядя Миша 07-11-2022 в 08:54:

Цитата:
илья2 писал:
зарыт в движок не в карты ли

Это общий лимит как для встроенных моделей, так и для внешних.
Поэтому он может меняться от карты к карте. Если на карте много всяких дверей, пушаблей и поездов, то слотов для моделей остаётся меньше.
Поэтому уровни действительно влияют на этот лимит.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 07:35:

Поэтому уровни действительно влияют на этот лимит:о все таки прав

Добавлено 08-11-2022 в 10:31:

но я до сих пор не знаю как этот лимит одолеть удаляю монстров оружия из исходников ничего не помогает как же так ?

Добавлено 08-11-2022 в 10:34:

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

Добавлено 08-11-2022 в 10:35:

а прошлое мое исправление все таки не совсем помогло

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 07:55:

Цитата:
илья2 писал:
удаляю монстров оружия из исходников ничего не помогает

Монстры и оружия в исходниках не занимают слоты моделей, до тех пор, пока ты не поставил их на уровень. Так что ты зря их удалял.
Всё зависит от конкретной карты.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 08-11-2022 в 09:48:

Так, а сам лимит увеличить никак нельзя?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 08-11-2022 в 09:54:

я в тупиковой ситуации что делать ?

Добавлено 08-11-2022 в 12:54:

лимит все портит

__________________
илья


Отправлено Aynekko 08-11-2022 в 10:12:

На ксаш перейди и забудь о лимитах.

__________________
Мой мод на Xash


Отправлено илья2 08-11-2022 в 10:25:

Все таки это все из за оружий ! Удалил я больше оружия с не охотой . Все заработало как надо. Мда. плохо, что в Half-life есть такая штука, как лимит.

Добавлено 08-11-2022 в 13:25:

Цитата:
Aynekko писал:
На ксаш перейди и забудь о лимитах.

придется переходить если хочется про лимиты забыть

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 10:31:

Цитата:
FiEctro писал:
Так, а сам лимит увеличить никак нельзя?

Можно, для этого и был написан Xash3D, ну и не только для этого.

Добавлено 08-11-2022 в 13:31:

Цитата:
илья2 писал:
Удалил я больше оружия с не охотой

Надо было удалять не сами оружия а их вызов в UTIL_PrecacheOther.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 11:00:

Цитата:
Дядя Миша писал:
Надо было удалять не сами оружия а их вызов в UTIL_PrecacheOther. [/B]

тогда они работать будут неправильно и все равно будут просить прекеш

Добавлено 08-11-2022 в 13:55:

7 оружий пришлось удалять это ужас

Добавлено 08-11-2022 в 13:56:

надо пробовать на ксаше запустить может и получиться лимит одолеть

Добавлено 08-11-2022 в 14:00:

а что если попробовать удалить 7 монстров если игра требует удалить 7 оружий то это должно по идее и с монстрами прокатить надо попробовать

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 11:39:

Цитата:
илья2 писал:
тогда они работать будут неправильно и все равно будут просить прекеш

Ты не понял. Не в коде самих оружий удаляй, а в util.cpp или в player.cpp где там, я не помню уже. Вообщем код который отвечает за impulse 101.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 12:01:

да теперь понял это в player.cpp

Добавлено 08-11-2022 в 14:49:

можно попробовать

Добавлено 08-11-2022 в 14:51:

Попробовал я монстров По удалять. Не, не работает такой вариант. Только с оружий лимит убирается. Бред, конечно, но это так.

Добавлено 08-11-2022 в 14:52:

Это значит, что монстров можно делать сколько угодно, а вот оружия уже нет. Так не получиться.

Добавлено 08-11-2022 в 14:59:

impulse 101 а толку ну удалю там оружия все равно проблема прекеша

Добавлено 08-11-2022 в 15:01:

проблема то появляется с перехода с карты на карту а не при impulse 101

__________________
илья


Отправлено Chyvachok 08-11-2022 в 12:05:

Ну с модом-солянкой по любому рано или поздно придётся переезжать, или извращаться и как Гуль все запихивать в одну модель.

А вообще не пойму откуда вообще такие анальные лимиты, почему в Думе к примеру можно делать карты на тысячи монстров что даже современный комп тормозит дико от такого кол-ва, на ГЗДум полно всяких оружейных солянок где сотни оружий, или взять тот же Russian Overkill где того оружия мало того что кучи, так еще оно все дикое и убойное что с одного выстрела половину уровня выносит не тянет комп, будешь играть в пошаговую игру, а в Халве запили Flak Cannon из Анрила и какой-то дезматч на 32 игрока уже сломается от него.


Отправлено илья2 08-11-2022 в 12:16:

А вообще не пойму откуда вообще такие анальные лимиты:да вот и мне хотелось бы понять это

Добавлено 08-11-2022 в 15:16:

ведь в халфу еще можно много всего добавлять почему тогда такие лимиты ставят ?

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 12:47:

Цитата:
Chyvachok писал:
А вообще не пойму откуда вообще такие анальные лимиты, почему в Думе к примеру можно делать карты на тысячи монстров

Не в Doom, а в его форке, который появился благодаря открытым исходникам. В оригинальном дууме тоже не сделаешь карты на тысячи монстров.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 15:06:

перешел я на ксаш да баг с прекешом исчез но есть другие баги со звуками с glowshell с shockrifle

Добавлено 08-11-2022 в 15:56:

мда это уже баги самого движка

Добавлено 08-11-2022 в 18:06:

А что нибудь кроме ксаш есть ? Что похоже на Халфу. Но снимет лимит, а то он весь мод мне сломал, Все придется переделывать.

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 15:40:

Да, ксаш хорошо выявляет баганый код. Исправляй теперь ошибки в своём коде.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 15:52:

ксаш хорошо выявляет баганый код:но у меня в халфе все нормально работает значит он не баганый хотя вам виднее

Добавлено 08-11-2022 в 18:52:

Исправляй теперь ошибки в своём коде:да у меня просто выбора нету придется исправлять

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 15:55:

Цитата:
илья2 писал:
но у меня в халфе все нормально работает значит он не баганый хотя вам виднее

Обсуждалось не раз и не два. Голдсорс очень часто игнорирует явные ошибки до поры до времени. А потом всё сыплется нахрен и уже невозможно понять что произошло. Под ксашем протестировано более 2500 модов на предмет корректной работы.

Цитата:
илья2 писал:
да у меня просто выбора нету придется исправлять

Лимиты ты всё равно никак не подымашь другим способом.
Кидай сюда что не работает, я подскажу как исправить.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 16:03:

Цитата:
Дядя Миша писал:
Кидай сюда что не работает, я подскажу как исправить.

ок хорошо

Добавлено 08-11-2022 в 19:03:

в оружии идет двойной повтор анимации

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 16:06:

Цитата:
илья2 писал:
в оружии идет двойной повтор анимации

Ты какой ксаш качал? Мой оригинальный или FWGS?

Попробуй просто выставить в консоли cl_lw 0 для начала.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 16:32:

вот этот https://www.moddb.com/engines/xash3...4-extras-stable

Добавлено 08-11-2022 в 19:10:

прбовал старые версии там еще хуже больше багов

Добавлено 08-11-2022 в 19:11:

Цитата:
Дядя Миша писал:
Попробуй просто выставить в консоли cl_lw 0 для начала.

не не работает

Добавлено 08-11-2022 в 19:32:

вот еще то же самое

__________________
илья


Отправлено илья2 08-11-2022 в 18:04:

еще нож тоже повторяет

Добавлено 08-11-2022 в 20:24:

ну все я исправил баг в функции PrimaryAttack есть двойной повтор Swing
SetThink(&CFists2::SwingAgain); который перенаправляется на

void CFists2::SwingAgain(void)
{
Swing(0);<----вот здесь как раз и есть повтор
}

было
void CFists2::PrimaryAttack()
{
if (!Swing(1))
{
#ifndef CLIENT_DLL
SetThink(&CFists2::SwingAgain);
pev->nextthink = gpGlobals->time + 0.1;

switch (RANDOM_LONG(0, 1))
{
case 0:
m_pPlayer->pev->punchangle.x = -10; // pitch
m_pPlayer->pev->punchangle.y = -10; // yaw
m_pPlayer->pev->punchangle.z = 10; // roll
break;
case 1:
m_pPlayer->pev->punchangle.x = 10; // pitch
m_pPlayer->pev->punchangle.y = 10; // yaw
m_pPlayer->pev->punchangle.z = -10; // roll
break;
}

//UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );
Vector vecSrc = m_pPlayer->GetGunPosition( );
Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
Vector vecDir;
float flZVel = m_pPlayer->pev->velocity.z;
m_pPlayer->pev->velocity = m_pPlayer->pev->velocity - gpGlobals->v_forward * -100;
m_pPlayer->pev->velocity.z = flZVel;
#endif
}
}
стало
void CFists2::PrimaryAttack()
{
if (!Swing(1))
{
#ifndef CLIENT_DLL
pev->nextthink = gpGlobals->time + 0.1;

switch (RANDOM_LONG(0, 1))
{
case 0:
m_pPlayer->pev->punchangle.x = -10; // pitch
m_pPlayer->pev->punchangle.y = -10; // yaw
m_pPlayer->pev->punchangle.z = 10; // roll
break;
case 1:
m_pPlayer->pev->punchangle.x = 10; // pitch
m_pPlayer->pev->punchangle.y = 10; // yaw
m_pPlayer->pev->punchangle.z = -10; // roll
break;
}

//UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );
Vector vecSrc = m_pPlayer->GetGunPosition( );
Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
Vector vecDir;
float flZVel = m_pPlayer->pev->velocity.z;
m_pPlayer->pev->velocity = m_pPlayer->pev->velocity - gpGlobals->v_forward * -100;
m_pPlayer->pev->velocity.z = flZVel;
#endif
}
}

Добавлено 08-11-2022 в 20:24:

надо и в остальных исходниках это исправить

Добавлено 08-11-2022 в 20:40:

правда после таких махинаций идет двойное повторение декаля после удара о стену

Добавлено 08-11-2022 в 21:04:

все исправил if (!Swing(1))->if (Swing(1))

было
void CFists2::PrimaryAttack()
{
if (Swing(1))
{
#ifndef CLIENT_DLL

pev->nextthink = gpGlobals->time + 0.1;

switch (RANDOM_LONG(0, 1))
{
case 0:
m_pPlayer->pev->punchangle.x = -10; // pitch
m_pPlayer->pev->punchangle.y = -10; // yaw
m_pPlayer->pev->punchangle.z = 10; // roll
break;
case 1:
m_pPlayer->pev->punchangle.x = 10; // pitch
m_pPlayer->pev->punchangle.y = 10; // yaw
m_pPlayer->pev->punchangle.z = -10; // roll
break;
}

//UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );
Vector vecSrc = m_pPlayer->GetGunPosition( );
Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
Vector vecDir;
float flZVel = m_pPlayer->pev->velocity.z;
m_pPlayer->pev->velocity = m_pPlayer->pev->velocity - gpGlobals->v_forward * -100;
m_pPlayer->pev->velocity.z = flZVel;
#endif
}
}

стало
void CFists2::PrimaryAttack()
{
switch (RANDOM_LONG(0, 1))
{
case 0:
m_pPlayer->pev->punchangle.x = -10; // pitch
m_pPlayer->pev->punchangle.y = -10; // yaw
m_pPlayer->pev->punchangle.z = 10; // roll
break;
case 1:
m_pPlayer->pev->punchangle.x = 10; // pitch
m_pPlayer->pev->punchangle.y = 10; // yaw
m_pPlayer->pev->punchangle.z = -10; // roll
break;
}

//UTIL_MakeVectors( m_pPlayer->pev->v_angle + m_pPlayer->pev->punchangle );
Vector vecSrc = m_pPlayer->GetGunPosition( );
Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_10DEGREES );
Vector vecDir;
float flZVel = m_pPlayer->pev->velocity.z;
m_pPlayer->pev->velocity = m_pPlayer->pev->velocity - gpGlobals->v_forward * -100;
m_pPlayer->pev->velocity.z = flZVel;
if (Swing(1))
{
pev->nextthink = gpGlobals->time + 0.1;
}
}

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 18:21:

Ты клиентские оружия делал или нет?

Добавлено 08-11-2022 в 21:20:

Я не могу твои архивы открыть, сохраняй в zip.

Добавлено 08-11-2022 в 21:21:

Не знаю, что ты там такое сделал, но cl_lw 0 должно было помочь в данном случае.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 18:55:

Цитата:
Дядя Миша писал:
Ты клиентские оружия делал или нет?

Добавлено 08-11-2022 в 21:20:

Я не могу твои архивы открыть, сохраняй в zip.

Добавлено 08-11-2022 в 21:21:

Не знаю, что ты там такое сделал, но cl_lw 0 должно было помочь в данном случае.

оружия у меня всегда в dlls находятся не знаю что ты имеешь виду под словом клиентские

Я не могу твои архивы открыть, сохраняй в zip:ок

Не знаю, что ты там такое сделал, но cl_lw 0 должно было помочь в данном случае:я же говорю не помогло

Добавлено 08-11-2022 в 21:47:

ууууууууууууу как надоели эти баги

Добавлено 08-11-2022 в 21:47:

голова кипит

Добавлено 08-11-2022 в 21:55:

если ты про клиентские пушки xash weapon system то нет я туда не заглядывал

__________________
илья


Отправлено Дядя Миша 08-11-2022 в 19:15:

Ок, тогда попробуй наоборот cl_lw 1
И кстати после установки этого значения, надо движок полностью перезапускать.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 08-11-2022 в 19:38:

Цитата:
Дядя Миша писал:
Ок, тогда попробуй наоборот cl_lw 1
И кстати после установки этого значения, надо движок полностью перезапускать.

я уже исправил этот баг с повтором. cl_lw не нужен я сейчас с другим багом вожусь

__________________
илья


Отправлено илья2 09-11-2022 в 09:43:

Ну что ж, продолжаем исправлять баги В этом коде я создаю молнию через пушку. Работала функция нормально. Теперь эта функция направляется на оригин карты, а не на позицию forward-а. как исправить?

void CShockrifle::CreateChargeEffect2( void )
{
#ifndef CLIENT_DLL
if( g_pGameRules->IsMultiplayer())
return;
int iBeam = 0;

for( int i = 2; i < 5; i++)
{
if( !m_pBeam[iBeam] )
m_pBeam[iBeam] = CBeam::BeamCreate("sprites/lgtning.spr", 1000);
m_pBeam[iBeam]-> PointEntInit( m_pPlayer->GetGunPosition() + gpGlobals->v_forward * 500, m_pPlayer->entindex() );
m_pBeam[iBeam]->SetStartAttachment(1);
m_pBeam[iBeam]->SetEndAttachment(i);
m_pBeam[iBeam]->SetNoise( 75 );
m_pBeam[iBeam]->pev->scale= 10;
m_pBeam[iBeam]->SetColor( 0, 253, 253 );
m_pBeam[iBeam]->SetScrollRate( 30 );
m_pBeam[iBeam]->SetBrightness( 190 );
iBeam++;
}
#endif
}

Добавлено 09-11-2022 в 12:43:

у меня появляется подозрение что он не считает функцию GetGunPosition

__________________
илья


Отправлено Aynekko 09-11-2022 в 11:01:

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

__________________
Мой мод на Xash


Отправлено илья2 09-11-2022 в 11:31:

не не получилось прописывал это

Vector v_forward;

UTIL_MakeVectors( m_pPlayer->pev->v_angle + gpGlobals->v_forward );

__________________
илья


Отправлено Aynekko 09-11-2022 в 13:21:

Цитата:
илья2 писал:
UTIL_MakeVectors( m_pPlayer->pev->v_angle + gpGlobals->v_forward );

Это неправильно. gpGlobals->v_forward это результат MakeVectors. Ты не можешь его там использовать. Ну, вернее, можешь, только зачем. Оставь только v_angle.

__________________
Мой мод на Xash


Отправлено илья2 09-11-2022 в 14:00:

да все я другой код поставил даже лучше прежнего теперь моя пушка настоящими молниями бьет

Добавлено 09-11-2022 в 16:30:

поставил эвент от гауски и изменил под молнии

Добавлено 09-11-2022 в 16:32:

этот код он создаёт такие слабенькие молнии не массивные

Добавлено 09-11-2022 в 17:00:

Что ж, хотелось бы выдохнуть с облегчением, сказать, что я все баги в своем моде исправил. Но нет, еще один остался.
эти TE_SPRITETRAIL почему то разучились летать нормально как это исправить ?

__________________
илья


Отправлено илья2 09-11-2022 в 14:00:

2 файл

__________________
илья


Отправлено Дядя Миша 09-11-2022 в 14:20:

Цитата:
илья2 писал:
m_pPlayer->pev->v_angle + gpGlobals->v_forward

То есть ты прибавляешь к углам эйлера вектор и удивляешься, почему у тебя пушка неверно стреляет?

Цитата:
илья2 писал:
TE_SPRITETRAIL почему то разучились летать нормально

Ну в гауссе они же нормально летают?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 09-11-2022 в 15:16:

Ну в гауссе они же нормально летают?:не в гаусе в плазменной винтовке

Добавлено 09-11-2022 в 17:36:

в гауссе если ты про это балы то да норм летают но они в эвентах прописаны

Добавлено 09-11-2022 в 17:37:

как их из евентах вызывать я не совсем понимаю

Добавлено 09-11-2022 в 17:39:

хотя если покопаться подольше в гауссе может что то и нарою из этого

Добавлено 09-11-2022 в 18:16:

PLAYBACK_EVENT_FULL( FEV_NOTHOST, edict(), m_usPlasma, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, 0, 0, 0, 0.0, 0, 0.0 );

как этот эвент заставить вызывать через оригин гранаты ? у меня он вызывается на оригин карты

Добавлено 09-11-2022 в 18:16:

гранаты то есть плазмы

__________________
илья


Отправлено Дядя Миша 09-11-2022 в 15:31:

Цитата:
илья2 писал:
в гауссе если ты про это балы то да норм летают но они в эвентах прописаны

А ты как сделал?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 09-11-2022 в 15:39:

Цитата:
Дядя Миша писал:
А ты как сделал?

все просто брал sporelauncher и штудировал его под plasma rifle добаляя всякие эффекты которые я знал

Добавлено 09-11-2022 в 18:35:

а эффект отлёта спрайтов делал через мессагу TE_SPRITETRAIL

Добавлено 09-11-2022 в 18:36:

добавляя скорости этой мессаги

Добавлено 09-11-2022 в 18:36:

вроде ничего сложного нет для plasmarifle

Добавлено 09-11-2022 в 18:38:

ну что дядя миша как вызывать евент TE_SPRITETRAIL через оригин гранаты ?

Добавлено 09-11-2022 в 18:39:

конечно я не все хитрости кодинга знаю поэтому и задаю такие вопросы но кое какие хитрости тесть знания у меня в памяти есть

__________________
илья


Отправлено Дядя Миша 09-11-2022 в 15:39:

Цитата:
илья2 писал:
добавляя скорости этой мессаги

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

Цитата:
илья2 писал:
как вызывать евент TE_SPRITETRAIL через оригин гранаты ?

Там с флагами всё связано, надо нужные флаги прописать, но я уже не помню, какие именно. Попробуй FEV_NOTHOST заменить на FEV_GLOBAL к примеру.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 09-11-2022 в 19:40:

не FEV_GLOBAL ставил не работает
Попробуй назад открутить тоже не работает
Добавлено 09-11-2022 в 18:52:

мда с TE_SPRITETRAIL здесь конкретные проблемы

Добавлено 09-11-2022 в 19:59:

ееее пошло дело пошло исправляю баг да

Добавлено 09-11-2022 в 20:04:

мда правда есть один минус в этом способе размер спрайтов маленький

Добавлено 09-11-2022 в 20:05:

хотя ладно пойдет что есть то есть

Добавлено 09-11-2022 в 20:28:

класс исправил работает как надо

Добавлено 09-11-2022 в 22:22:

мдаа не думал что столкнусь с такой проблемой звук не воспроизводиться !

EMIT_SOUND(ENT(pev), CHAN_VOICE, "weapons/fatrongrenade/hl2ep1citadelexplosion.wav", 1, ATTN_NORM);

функция вроде нормальная точно такие же там стоят нормально воспроизводятся наверное проблема со звуком или нет ?

Добавлено 09-11-2022 в 22:32:

дядя миша а ты уверен что ксаш баги видит может он сам баганутый это как минимум странно такое видеть что все звуки норм воспроизводятся а этот нет

Добавлено 09-11-2022 в 22:40:

я конечно не знаю поможет ли это или нет но вот сам звук может там есть ошибка хотя вряд тли

https://disk.yandex.ru/d/UiDA_iCUOpLxyw

__________________
илья


Отправлено Дядя Миша 09-11-2022 в 19:43:

Частота дискретизации - 48 килогерц. Переконвертируй в 44100 хотя бы.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 09-11-2022 в 20:06:

Цитата:
Дядя Миша писал:
Переконвертируй в 44100 хотя бы.

44100 попробуем

Добавлено 09-11-2022 в 23:06:

о заработало спасибо

__________________
илья


Отправлено Дядя Миша 09-11-2022 в 20:35:

Ну вот, за полдня всё исправил, а говорил - сто тысяч миллионов багов.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 09-11-2022 в 22:08:

ну теперь то да все ксашовские баги я исправил

Добавлено 10-11-2022 в 00:39:

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

Добавлено 10-11-2022 в 01:08:

ксаш еще и проигрывает сам атаку выстрела без разрешения мыши ну и как это понять ?

__________________
илья


Отправлено Дядя Миша 10-11-2022 в 07:31:

Ну значит не все баги ты исправил.
Можешь еще попробовать Xash FWGS, там предиктинг должен лучше работать.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 10-11-2022 в 09:29:

в принципе эти баги в игре особо сильно не мешают можно и забыть про них

Добавлено 10-11-2022 в 12:22:

как сделать не убиваемого монстра ? ничего не получается ставил 100000 хп бестолку

Добавлено 10-11-2022 в 12:29:

а здоровье монстров обязательно надо через gSkillData делать ?

__________________
илья


Отправлено Next Day 10-11-2022 в 09:31:

Посмотри код Gman


Отправлено илья2 10-11-2022 в 09:47:

да кое что есть в TakeDamage

Добавлено 10-11-2022 в 12:43:

найс сработало спасибо

Добавлено 10-11-2022 в 12:47:

да как хорошо что в халф лайф есть такой не убиваемый монстр под названием gman

__________________
илья


Отправлено илья2 10-11-2022 в 22:21:

кто знает можно ли в исходниках ставить вот такие числа>1000000000000 ?

Добавлено 11-11-2022 в 01:10:

это у нас триллион

Добавлено 11-11-2022 в 01:21:

я вот знаю что в java кодинге можно ставить и трилион и квантилион квадриллион а здесь все таки к сожалению есть кое какие ограничения по цифрам миллиард и все а дальше компилятор выдает ошибку. Но можно ли это ограничение снять ?

__________________
илья


Отправлено Gandalv 11-11-2022 в 09:55:

Я вот никогда не делал моды, но не понимаю, как можно делать моды, не зная основ с++

https://metanit.com/cpp/tutorial/2.3.php
Хотя бы эту ссылку открой и читай до просветления.

__________________
Углеродные звезды с древними спутниками, которые колонизируют разумные грибы...
Газовые гиганты, на которых обитает метеорологический разум...
Миры, растянутые на мембранах, где измерения пересекаются...
Это невозможно описать нашим ограниченным языком...


Отправлено илья2 11-11-2022 в 13:38:

а вот так оказываться можно если хочется сильно

Добавлено 11-11-2022 в 16:34:

честно прочитал ничего не понял

Добавлено 11-11-2022 в 16:35:

есть про байты биты наверно надо сначала это понять

Добавлено 11-11-2022 в 16:38:

мдаа и как это понять ? https://ru.wikipedia.org/wiki/%D0%9...%BA%D0%BE%D0%B4

Добавлено 11-11-2022 в 16:38:

вообще не в тему

__________________
илья


Отправлено Дядя Миша 11-11-2022 в 13:43:

илья2 а зачем тебе сто тысяч миллионов? Ты хочешь записать госдолг США?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 11-11-2022 в 14:43:

ну это да я по приколу такие большие цифры пишу

Добавлено 11-11-2022 в 16:48:

вооот смотрите какое больше число 1000000000000000000000000000

Добавлено 11-11-2022 в 16:49:

было бы прикольно такие цифры большие ставить

Добавлено 11-11-2022 в 16:52:

а компилятор мне ошибку выдает что такое число ставить нельзя вот и обидно стало

Добавлено 11-11-2022 в 17:22:

ага вот как прописывается long
long b = 1000000000;

b это уже само число

Добавлено 11-11-2022 в 17:22:

начинаю понимать немного

Добавлено 11-11-2022 в 17:26:

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

Добавлено 11-11-2022 в 17:31:

error C2177: constant too big

Добавлено 11-11-2022 в 17:34:

даааааа сработало круто прописал вот эту функцию:
float num3 = 1000000000000000000000000000000.0f;

Добавлено 11-11-2022 в 17:43:

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

__________________
илья


Отправлено XaeroX 11-11-2022 в 14:55:

Цитата:
илья2 писал:
было бы прикольно такие цифры большие ставить

Ну так ты в коде используй число 100000, а нолики потом при выводе в HUD пририсуй сколько нужно.

__________________

xaerox on Vivino


Отправлено илья2 11-11-2022 в 19:22:

Цитата:
XaeroX писал:
Ну так ты в коде используй число 100000, а нолики потом при выводе в HUD пририсуй сколько нужно.

Ну так ты в коде используй число 100000:число 100000 маленькое
а нолики потом при выводе в HUD пририсуй сколько нужно:смысл не в худе мне же не нужно больше патронов делать на 100000 мне нужно по приколу большое число просто написать чтобы скомпилилось без ошибок. Хотя поняв потом что я ерундой какой та занимаюсь это уже особо не нужно

__________________
илья


Отправлено илья2 19-11-2022 в 13:36:

почему под TakeDamage нельзя делать radiusdamage ставлю radiusdamage монстр просто зависает и все

__________________
илья


Отправлено Vadiman 02-12-2022 в 19:15:

Доброго времени суток!
Несколько вопросов:
1) Хочу доработать зомбаков - чтобы при смерти игрока они шли его жрать (технически проигрывая victory_dance ивент). По идее это сложно реализовать, ведь нужно определять радиус в котором все monster_zombie почуят хрючево и начнут сбегаться к игроку. Я пробовал стащить аналогичную тему у буллсквида, но ничего не вышло.
2) Как сделать у оружия анимацию "первого подбирания"? Ну то есть находит игрок новое оружие и проигрывается единожды анимация, как он его осматривает или там пафосно затвор взводит, итд.
3) Как реализовать смену сабмодели рук у оружия? Слишком ли это заморочное дело? Вроде в спирите такое есть но мне весь функционал этого мода не нужен


Отправлено Shadow762 02-12-2022 в 22:18:

Цитата:
Vadiman писал:
2) Как сделать у оружия анимацию "первого подбирания"? Ну то есть находит игрок новое оружие и проигрывается единожды анимация, как он его осматривает или там пафосно затвор взводит, итд.


Не знаю как это делается у профессионалов, но я бы завел переменную в классе пушки в weapons.h например со значением FALSE по умолчанию.

Далее, в ::DEPLOY методе проверил, равна ли она FALSE, если да, то (на примере mp5) -
C++ Source Code:
1
BOOL CMP5::Deploy( )
2
{
3
  if ( <ПЕРЕМЕННАЯ> == FALSE ) {
4
    <ПЕРЕМЕННАЯ> == TRUE;
5
    return DefaultDeploy( "models/v_9mmAR.mdl", "models/p_9mmAR.mdl", MP5_DEPLOY_FIRST, "mp5" );
6
  }
7
  return DefaultDeploy( "models/v_9mmAR.mdl", "models/p_9mmAR.mdl", MP5_DEPLOY, "mp5" );
8
}


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

Правда после обезоруживания игрока через с Player_weaponstrip и последующего подбора пушки деплой будет штатный скорее всего.

__________________
я Z


Отправлено Luciferchik 11-12-2022 в 02:13:

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

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.


Отправлено Shadow762 12-12-2022 в 04:45:

Цитата:
Luciferchik писал:
Подскажите где можно почитать тутор по вгуи, помню были на хл.ру, а сайт уже давно лёг на покой


http://ralertmod.narod.ru/sham-vgui.htm

__________________
я Z


Отправлено Luciferchik 13-12-2022 в 06:08:

Цитата:
Shadow762 писал:
http://ralertmod.narod.ru/sham-vgui.htm

Благодарю огромное

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.


Отправлено Vadiman 25-12-2022 в 18:26:

Цитата:
Shadow762 писал:
Не знаю как это делается у профессионалов, но я бы завел переменную в классе пушки в weapons.h например со значением FALSE по умолчанию.

Далее, в ::DEPLOY методе проверил, равна ли она FALSE, если да, то (на примере mp5) -
C++ Source Code:
1
BOOL CMP5::Deploy( )
2
{
3
  if ( <ПЕРЕМЕННАЯ> == FALSE ) {
4
    <ПЕРЕМЕННАЯ> == TRUE;
5
    return DefaultDeploy( "models/v_9mmAR.mdl", "models/p_9mmAR.mdl", MP5_DEPLOY_FIRST, "mp5" );
6
  }
7
  return DefaultDeploy( "models/v_9mmAR.mdl", "models/p_9mmAR.mdl", MP5_DEPLOY, "mp5" );
8
}


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

Правда после обезоруживания игрока через с Player_weaponstrip и последующего подбора пушки деплой будет штатный скорее всего.

Спасибо! Правда полноценно работает при load/save, а по факту сразу перебивается (скорее всего WeaponIdle), но я пытался время там регулировать и полностью его убирать, пока не знаю как решить


Отправлено Shadow762 28-12-2022 в 00:53:

Цитата:
Vadiman писал:
Спасибо! Правда полноценно работает при load/save, а по факту сразу перебивается (скорее всего WeaponIdle), но я пытался время там регулировать и полностью его убирать, пока не знаю как решить

Один добрый человек подсказал, ту самую <ПЕРЕМЕННУЮ> следует занести в сейвдату в weapons.cpp
по аналогии с дрободаном
но учти, что у большинства пух сейвдаты нет, так что создавай эти методы на подобии тех пух, что внесены в сейвдату
C++ Source Code:
1
TYPEDESCRIPTION	CShotgun::m_SaveData[] =
2
{
3
  DEFINE_FIELD(CShotgun, m_flNextReload, FIELD_TIME),
4
  DEFINE_FIELD(CShotgun, m_fInSpecialReload, FIELD_INTEGER),
5
  DEFINE_FIELD(CShotgun, m_flNextReload, FIELD_TIME),
6
  DEFINE_FIELD(CShotgun, m_flPumpTime, FIELD_TIME),
7
};
8
IMPLEMENT_SAVERESTORE(CShotgun, CBasePlayerWeapon);

А что касается перебивания анимации - там же есть параметр, которые отвечает за ее длительность
подставить количество кадров деленное на FPS в анимации и все будет отлично

__________________
я Z


Отправлено Vadiman 01-01-2023 в 12:55:

Цитата:
Shadow762 писал:
Один добрый человек подсказал, ту самую <ПЕРЕМЕННУЮ> следует занести в сейвдату в weapons.cpp
по аналогии с дрободаном
но учти, что у большинства пух сейвдаты нет, так что создавай эти методы на подобии тех пух, что внесены в сейвдату
C++ Source Code:
1
TYPEDESCRIPTION	CShotgun::m_SaveData[] =
2
{
3
  DEFINE_FIELD(CShotgun, m_flNextReload, FIELD_TIME),
4
  DEFINE_FIELD(CShotgun, m_fInSpecialReload, FIELD_INTEGER),
5
  DEFINE_FIELD(CShotgun, m_flNextReload, FIELD_TIME),
6
  DEFINE_FIELD(CShotgun, m_flPumpTime, FIELD_TIME),
7
};
8
IMPLEMENT_SAVERESTORE(CShotgun, CBasePlayerWeapon);

А что касается перебивания анимации - там же есть параметр, которые отвечает за ее длительность
подставить количество кадров деленное на FPS в анимации и все будет отлично


Все равно перебивается. Ладно, нафиг тогда эти анимации
Но спасибо за помощь


Отправлено [CFR] B@N@N 01-01-2023 в 16:23:

Легко же ты сдался...


Отправлено FreeSlave 17-01-2023 в 21:17:

TRACE_TEXTURE в TEXTURETYPE_PlaySound возвращает нулевой указатель при ударе монтировкой по скайбоксу. Это нормально?
Хотел проверить на удар по скаю, но вот не вышло. Или возвращение нулевого указателя и есть сигнал о том, что попали в скай?

Ради интереса даже заглянул в код XDM и нашёл там коммент

code:
pTextureName = TRACE_TEXTURE(pEntity->edict(), vecSrc, vecEnd);// BUGBUG: at some strange angles this shit fails and returns "sky"!!

Т.е. при каких-то условиях sky всё-таки может вернуться?

__________________
I'm on github
I'm on opendesktop.org


Отправлено Ku2zoff 19-01-2023 в 11:07:

FreeSlave помнится, в стародавние времена, когда я пользовался 2003-й студией и SDK 2.3, компиляция и в дебаге, и в релизе давала такой результат, что TRACE_TEXTURE возвращала что-то такое, из-за чего тип материала не определялся. Будто бы текстура не прописана в materials.txt.
https://hlfx.ru/forum/showthread.ph...4491#post144491


Отправлено Дядя Миша 19-01-2023 в 13:30:

Там сама система материалов немного бажная, вот и глючит.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FreeSlave 19-01-2023 в 18:44:

Так материалы ни при чем. Вопрос о движковой функции pfnTraceTexture и определение ская.

__________________
I'm on github
I'm on opendesktop.org


Отправлено илья2 05-02-2023 в 20:15:

как сделан основной crosshair из dmc ?

пробовал найти любые ресурсы по этому ничего не нашел

__________________
илья


Отправлено FreeSlave 06-02-2023 в 00:22:

Цитата:
илья2 писал:
как сделан основной crosshair из dmc ?

пробовал найти любые ресурсы по этому ничего не нашел


Код DMC открыт же https://github.com/ValveSoftware/ha...l/ammo.cpp#L846

Там просто рисуется знак плюса
C++ Source Code:
1
/******************* DRAW CROSSHAIR *********************/
2
iCrossLength = gHUD.m_scrinfo.charWidths[ *chCrossHair ];
3
iCrossY = ScreenHeight / 2 - gHUD.m_scrinfo.iCharHeight / 2;
4
iCrossX = ScreenWidth / 2 - iCrossLength / 2;
5
 
6
gHUD.DrawHudString( iCrossX, iCrossY, iCrossX + 50, chCrossHair, 170, 170, 170 );
7
/******************* DRAW CROSSHAIR *********************/

__________________
I'm on github
I'm on opendesktop.org


Отправлено илья2 06-02-2023 в 06:04:

а ну теперь понятно он вырисовываться как отдельный худ

Добавлено 06-02-2023 в 09:04:

все спасибо теперь этот код можно в свои исходники ставить

__________________
илья


Отправлено Luciferchik 18-02-2023 в 13:57:

Здарова всем, играл как-то с друзьями в л4д и стало интересно, а как в мультиплеере рисовать себе в худ хп товарищей?

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.


Отправлено erfty 20-02-2023 в 19:30:

точечные энтити, выполняющие роль брашей будут нагружать карту( по сравнению с обычными брашами)? и кста , есть источник света, чтоб его не надо было компилить(энтитя источника света, свет этот не компилится а накарте отображается)?


Отправлено Skaarj 20-02-2023 в 19:34:

Какие то попытки создать вечный двигатель.
И чтоб ресурсы не ело, и чтоб мильён полигонов. Бесплатно.
Не, это так не работает.


Отправлено erfty 20-02-2023 в 19:54:

Цитата:
Skaarj писал:
Какие то попытки создать вечный двигатель.
И чтоб ресурсы не ело, и чтоб мильён полигонов. Бесплатно.
Не, это так не работает.

гениально, но я планирую просто добавить несколько таких "брашей" на карту. а вот насчёт этого источника света я спрашиваю потому что играл на сервере с кастомной версией кроссфаера и там когда возле бункера то фпс проседал, на остальных участках мапы такого не было.


Отправлено Skaarj 20-02-2023 в 21:32:

Это вроде как плагинами делают, AmxMod и всякое такое.
Ну или ремейк карты с нуля делай. Либо по декомпилу, либо ищи исправленный декомпил, если карта популярная.


Отправлено илья2 04-03-2023 в 07:39:

как скомпилировать исходники decay ? может я неправильный visual studio использую ?
ссылки на исходники:
сорцы:https://github.com/FWGS/hlsdk-portable/tree/decay-pc
сорцы2:https://github.com/hoaxer/Half-Life-Decay

Добавлено 04-03-2023 в 10:39:

выполнял еще такую функцию
mkdir build && cd build
cmake ../
но безрезультатно выдает ошибки

__________________
илья


Отправлено FreeSlave 04-03-2023 в 20:16:

илья2 ветка Decay в hlsdk-portable недоделанная (и пока вообще заброшенная). Не пытайся её использовать.

Сорцы, выложенные самим разработчиком, содержат проект под старые версии Visual Studio. Мб в студии конвертация проекта сработает.

__________________
I'm on github
I'm on opendesktop.org


Отправлено erfty 08-03-2023 в 17:25:

Цитата:
FreeSlave писал:
илья2 ветка Decay в hlsdk-portable недоделанная (и пока вообще заброшенная). Не пытайся её использовать.

Сорцы, выложенные самим разработчиком, содержат проект под старые версии Visual Studio. Мб в студии конвертация проекта сработает.

если будет время то пофикси waf в ветке invasion пж а то там вообще сломано(иль можно на телефон собрать)


Отправлено chakki.skrip 19-04-2023 в 16:13:

В последнее время я стал часто сталкиваться с некорректным воспроизведением анимации у вставленной на карту модели. Анимация воспроизводится рывками, кадры проскакивают. Но дело в том, что сама анимация зациклена и не имеет швов. Изменение значения framerate у cycler_sprite или fps в qc файле модели изменяет характер бага.
https://youtu.be/SSbUEfq-1ps

Опытным путем пришел к тому, что скорость воспроизведения анимации следует задавать в qc файле модели, а при размещении модели с анимацией на карте значение framerate должно быть равно количеству кадров анимации модели. В таком случае анимация воспроизводится практически корректно, но прыгающие кадры все еще имеют место.
Менее наглядное видео (таймкод)
https://youtu.be/5jD2j4DxZbs?t=92

Что можно предпринять, чтобы анимация всегда воспроизводилась корректно?


Отправлено ZGreen 19-04-2023 в 16:41:

А 200 фепсов не многовато для голдовой модельки? Попробуй поднимать фреймрейт от 30 и смотреть, когда начинает проявляться. Как бы там от тикрейта сервера и клиентского фпс не было зависимости еще.


Отправлено chakki.skrip 19-04-2023 в 16:50:

Пробовал множество значений framerate от 0.01 до нескольких тысяч. Также и с fps в qc. Больше всего тестов с framerate провел со значениями 1, 10, 30 и 60.
Количество кадров в самой анимации также менял. В основном 30, 60 240 кадров. Но на полное решение проблемы это не влияло.


Отправлено ZGreen 19-04-2023 в 16:59:

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

Добавлено 19-04-2023 в 23:59:

Во вьюере-то оно как себя ведет?


Отправлено chakki.skrip 19-04-2023 в 17:10:

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


Отправлено Aynekko 19-04-2023 в 17:17:

Этот рывок происходит в 100% случаев? Если просто стоять и смотреть на модель.

__________________
Мой мод на Xash


Отправлено chakki.skrip 19-04-2023 в 17:20:

Да, но он не слишком критичен, поскольку всего один за несколько минут.


Отправлено Дядя Миша 19-04-2023 в 17:48:

Цитата:
chakki.skrip писал:
значение framerate должно быть равно количеству кадров анимации модели

framerate - это множитель.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено chakki.skrip 20-04-2023 в 04:41:

Цитата:
Дядя Миша писал:
framerate - это множитель.

Но почему анимация воспроизводится некорректно?


Отправлено Дядя Миша 20-04-2023 в 06:25:

Ну его не стоит ставить менее 0.01 или более 10.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено chakki.skrip 20-04-2023 в 06:55:

Цитата:
Дядя Миша писал:
Ну его не стоит ставить менее 0.01 или более 10.

framerate 1, fps в qc 30 - скорость вращения высокая; иногда перескакивают кадры;
framerate 1, fps в qc 10 - скорость ниже, но анимация воспроизводится уже некорректно. Кадры идут примерно так: 1 2 3 4 5 3 4 5 6 7 8 9 10 8 9 10 11...
framerate 1, fps в qc 1 - скорость приемлемая, воспроизведение анимации некорректное. Слайдшоу из случайных кадров будто: 1 4 122 124.

framerate 10, fps в qc 30, 10 - высокая скорость вращения
framerate 10, fps в qc 1 - аналогично framerate 1, fps в qc 10
framerate 10, fps в qc 0.125 - воспроизводится отрезок анимации, да и то некорректно. Если в анимации 240 кадров, то воспроизводится лишь несколько кадров, грубо говоря: 1 3 5 7 9 11 1 3 5 7 9 11 1 3 5 7 9 11

framerate 240, fps в qc 0.125 - хорошая скорость анимации и плавность, но иногда проскакивают кадры. Я имею в виду, что был порядок в плане воспроизведения кадров от 1 до 240, но в какой-то момент анимация может пропустить 100 кадров(визуально).

При framerate ниже 0.01 анимации, насколько я помню, вообще не было. А при выставлении значений выше количества кадров анимации(240, 680, 1024 и т.д.) скорость анимации не изменялась, но менялся характер воспроизведения(с пролагами).


Отправлено Дядя Миша 20-04-2023 в 08:03:

Если скорость воспроизведения выше общего фреймрейта, то кадры и будут перескакивать, естественно.
У одинарного вещественного точность не бесконечная, а в голдсорсе фреймрейт не квантизирован, в отличие, от сорса, например.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено erfty 21-04-2023 в 14:31:

кстати, что там с анимироваными текстурами? лимиты повышены или как голдсорсе? а можно туда вообще видева запихнуть?


Отправлено XaeroX 21-04-2023 в 14:33:

erfty
Видева без звука - как водка без пива!

__________________

xaerox on Vivino


Отправлено erfty 21-04-2023 в 14:50:

а если гифка??


Отправлено Aynekko 25-04-2023 в 12:50:

Вопрос - как определить энтитю локального игрока так, чтобы быть уверенным, что это энтитя именно мы, а не кто-то другой?
Поясню: у меня есть боты на сервере. Есть визуальный эффект на экране, который зависит от значения gEngfuncs.GetLocalPlayer()->curstate.vuser1.z. Пока я в игре - все хорошо. Но если я зайду в спектаторы (становлюсь невидимым, несолидным и т.д.) я иногда вижу этот эффект на экране, когда у какого-то бота, по всей видимости, изменилось это значение (ведь он тоже игрок).
В моем понимании выходит, что GetLocalPlayer возвращает мне локального игрока, а т.к. я в спеках и как бы "не совсем игрок", он подсовывает данные бота, ведь он локальный.

__________________
Мой мод на Xash


Отправлено Ku2zoff 27-04-2023 в 11:17:

Aynekko режим спектатора - это когда подключаешься к HLTV Proxy. Прокси, по сути, такой же клиент, подключенный к серверу. А вот подключенные к прокси - уже не клиенты, а зрители-спектаторы. А "зайти в спектаторы" - перейти в режим обсервера. Игрок остаётся таким же подключенным клиентом, так же занимает слот на сервере, и к нему применяются все те же правила, что и к другим клиентам. Единственное, работает фильтр по pev->iuser1, отсекая всё ненужное и добавляя нужное. Чтобы у тебя не вылезал эффект, когда ты обсервер, добавь проверку на g_iUser1. Можно пойти дальше, и рисовать чужой эффект при наблюдении от первого лица. Через g_iUser2 можно получить индекс наблюдаемого игрока, а после его vuser1.z.

Добавлено 27-04-2023 в 18:17:

Цитата:
Aynekko писал:
он подсовывает данные бота, ведь он локальный

Нет, это твои данные. Значение меняется у тебя.


Отправлено Aynekko 27-04-2023 в 14:14:

Цитата:
Ku2zoff писал:
Чтобы у тебя не вылезал эффект, когда ты обсервер, добавь проверку на g_iUser1

Спасибо. Оказалось, дело и не в vuser. Там было еще одно условие, которое я меняю из CHudHealth::MsgFunc_Damage. Почему этот msg вызывают боты, когда я в наблюдателях, я пока не понял. Проверка на g_iUser1 помогла.

__________________
Мой мод на Xash


Отправлено Дядя Миша 27-04-2023 в 19:28:

Цитата:
Aynekko писал:
а т.к. я в спеках и как бы "не совсем игрок", он подсовывает данные бота, ведь он локальный.

В Ксаше спектаторы никогда не тестировались и их работа вообще не гарантируется.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Ku2zoff 03-05-2023 в 11:58:

Цитата:
Aynekko писал:
Почему этот msg вызывают боты, когда я в наблюдателях, я пока не понял.

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


Отправлено erfty 04-06-2023 в 23:32:

Можно ли в хлсдк прямо в коде создать обычный куб вместо использования модельки?Хитбокс то можно создать а я вот иемнно про визуальную часть.


Отправлено hgrunt_2020 05-06-2023 в 09:43:

erfty вопрос: зачем? Чисто теоретически можно, да, теоретически можно что угодно, а на практике чорт его знает.

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено Crystallize 05-06-2023 в 10:26:

erfty ну посмотри как рисовать командами типа GL_QUAD, GL_TRIANGLE (точно не помню) главное координаты вершин и ювишки текстур корректно задать.


Отправлено Luciferchik 05-06-2023 в 13:09:

Стало интересно могут ли кнопки в хл иметь две функции, то есть на примере перезарядки если просто нажать R то играет анимация перезарядки, а если зажать то отображается менюшка или что-то другое


Отправлено erfty 05-06-2023 в 21:48:

Цитата:
Crystallize писал:
erfty ну посмотри как рисовать командами типа GL_QUAD, GL_TRIANGLE (точно не помню) главное координаты вершин и ювишки текстур корректно задать.

а если на всех рендерах хочу?


Отправлено Crystallize 06-06-2023 в 00:48:

erfty так д3д же автоматом транслирует, нет? Я не разбирался.

Добавлено 06-06-2023 в 07:48:

Цитата:
Luciferchik писал:
Стало интересно могут ли кнопки в хл иметь две функции, то есть на примере перезарядки если просто нажать R то играет анимация перезарядки, а если зажать то отображается менюшка или что-то другое

В коде отслеживается отдельно отпускание и нажимание клавиши, так что можно.


Отправлено Luciferchik 06-06-2023 в 04:58:

Цитата:
Crystallize писал:
В коде отслеживается отдельно отпускание и нажимание клавиши, так что можно.


Это оно m_pPlayer->m_afButtonPressed?
Да и ещё чтоб вызвать кастомную анимацию нужно вызвать SendWeaponAnim или есть более разумные методы?

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.


Отправлено Crystallize 06-06-2023 в 11:30:

Luciferchik на клиенте input.cpp, там KeyUp, KeyDown, CL_KeyState.


Отправлено Luciferchik 06-06-2023 в 15:21:

Цитата:
Crystallize писал:
Luciferchik на клиенте input.cpp, там KeyUp, KeyDown, CL_KeyState.
Спасибо, я вспомнил просто очень давно делал прицел который реагировал на движения и он был завязан на стейтах клавиш

__________________
Sometimes you have to get knocked down lower than you've even been to stand up taller than you everwere.
You so sad. No, i just die everyday...
I can't do anything around here without everybody getting up in my shit...
The aim of life is self-development.


Отправлено Deadlocked1337 28-06-2023 в 15:46:

HUD

Как сделать "изогнутый" HUD, как в Crysis 2/Cyberpunk 2077/ULTRAKILL?


Отправлено Crystallize 29-06-2023 в 06:02:

Deadlocked1337 Скорее всего он рендерится в отдельный буфер и искажается шейдером.


Отправлено Дядя Миша 29-06-2023 в 06:25:

Он там наверное в 3D рендерится, но с отключённым тестом на глубину.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Deadlocked1337 06-07-2023 в 21:28:

Visual Studio

Есть ли какая-то особая версия Visual Studio, которая умеет компилировать код Paranoia 2?


Отправлено Crystallize 07-07-2023 в 05:36:

Шестерка Corporate c процессор-паком.


Отправлено Nitrw 09-07-2023 в 06:40:

Всем привет! Сделал свою карту c расширением *.bsp в hammer, теперь появился вопрос - как в неё поиграть?


Отправлено hgrunt_2020 09-07-2023 в 11:14:

Nitrw ну допустим сделал ты карту в формате BSP. Теперь вопрос: для какого движка?

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено Crystallize 15-07-2023 в 16:13:

Цитата:
hgrunt_2020 писал:
Всем привет! Сделал свою карту c расширением *.bsp в hammer, теперь появился вопрос - как в неё поиграть?

Нужно кинуть bsp в папку valve/maps
и набрать в консоли игры:
map имякарты


Отправлено Crystallize 17-07-2023 в 09:53:

А почему при спрыгивании с каната игроку дают инерцию через AbsVelocity, а не через BaseVelocity?


Отправлено Дядя Миша 17-07-2023 в 10:27:

Кто его знает. Может так в опфоре было.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 17-07-2023 в 12:29:

code:
void CRopeSegment :: Touch( CBaseEntity* pOther ) { if( pOther->IsPlayer() ) { CBasePlayer *pPlayer = (CBasePlayer *)pOther; // Electrified wires deal damage. - Solokiller if( m_bCauseDamage ) { if( gpGlobals->time >= pev->dmgtime ) { if( pev->dmg < 0 ) pOther->TakeHealth( -pev->dmg, DMG_GENERIC ); else pOther->TakeDamage( pev, pev, pev->dmg, DMG_SHOCK ); pev->dmgtime = gpGlobals->time + 0.5f; } } if( GetMasterRope()->IsAcceptingAttachment() && !pPlayer->IsOnRope( )) { if( m_bCanBeGrabbed ) { pOther->SetAbsOrigin( m_Data.mPosition ); pPlayer->SetOnRopeState( true ); pPlayer->SetRope( GetMasterRope() ); GetMasterRope()->AttachObjectToSegment( this );

Никак не пойму где класс камеры идет проверка на расстояние до игрока. Там проверяется все что угодно но не это.


Отправлено Дядя Миша 17-07-2023 в 13:07:

Хм, ну если вызвана функция Touch, значит игрок уже дотронулся до веровки.
В противном случае, как бы она вызвалась?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 18-07-2023 в 01:37:

Дядя Миша Я посмотрел, по-моему её никто не вызывает. Ну то есть изначально, так-то она сама может вызвать себя.


Отправлено Дядя Миша 18-07-2023 в 08:05:

Цитата:
Crystallize писал:
Я посмотрел, по-моему её никто не вызывает

Ну как это никто?
Физика её вызывает. Через каллбэки.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 18-07-2023 в 09:14:

Дядя Миша А можно как-то сделать чтоб такие вещи в поиске Студии показывались?


Отправлено Дядя Миша 18-07-2023 в 10:16:

Разумеется нет. Про такие вещи даже компилятор не знает. Только в рантайме.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Deadlocked1337 20-07-2023 в 20:32:

У меня сразу несколько вопросов.
1. Как скомпилировать исходники п2? Компилятор упорно останавливается на 59%.
2. Как выдернуть код худа из п2? Думаю вместо него поставить худ из хл1.

__________________
Leaving this world isn't as scary as it sounds.


Отправлено Дядя Миша 20-07-2023 в 22:28:

Цитата:
Deadlocked1337 писал:
Компилятор упорно останавливается на 59%.

Что это за компилятор такой - проценты пишет?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Deadlocked1337 21-07-2023 в 09:25:

Дядя Миша, батник, что был в комплекте с кодом.

Прерывается на


Цитата:
Добавление mainui\mainui.dsp  59% OK
Прервано пользователем

Добавление mainui\menufont.H
Работа программы прервана

__________________
Leaving this world isn't as scary as it sounds.


Отправлено Дядя Миша 21-07-2023 в 10:44:

Я никакого батника в комплекте с кодом не прикладывал.
Это вопросы к тому, кто приложил.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 21-07-2023 в 16:32:

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

По какому принципу код игрока делится на пре-тчинк и пост-тчинк? Например почему канат именно в претчинке? У меня сложилось впечатление что в претчинке мы ставим какие-то флаги в основном, а в пост-тчинке по ним уже действуем.


Отправлено Дядя Миша 21-07-2023 в 16:53:

PreThink - до запуска физической симуляции игрока. PostThink - соответственно после.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 21-07-2023 в 17:57:

Дядя Миша ну а с точки зрения этой симуляции в чем разница перед или после что-то делать? Это сделано потому что одни процессы физичные, а другие - нет?


Отправлено Дядя Миша 21-07-2023 в 18:21:

Ну допустим ты делаешь что-то такое и хочешь чтобы симулятор физики это учёл уже прямо на этом кадре. Значит надо делать в PreThink. А в PostThink ты уже собираешь результаты симуляции - куда там игрок уткнулся, сколько ящиков задел, нуитд.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено chakki.skrip 30-07-2023 в 18:13:

Здравствуйте. Хотелось бы получить информацию по следующему вопросу.
После уменьшения размера хулла игрока в 4 раза view модель полностью входит в геометрию, если подойти вплотную к стене.

Это происходит с такими размерами хуллов:
( 0 0 0 ) ( 0 0 0 )
( -4 -4 -8 ) ( 4 4 8 )
( -16 -16 -16 ) ( 16 16 16 )
( -4 -4 -4 ) ( 4 4 4 )

Но если увеличить размер хулла в длину/ширину, то уже такое не происходит:
( 0 0 0 ) ( 0 0 0 )
( -6 -6 -8 ) ( 6 6 8 )
( -16 -16 -16 ) ( 16 16 16 )
( -6 -6 -4 ) ( 6 6 4 )

Можно ли решить это на стороне сервера?


Отправлено Дядя Миша 30-07-2023 в 19:48:

Цитата:
chakki.skrip писал:
Можно ли решить это на стороне сервера?

нет.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено chakki.skrip 31-07-2023 в 11:26:

Цитата:
Дядя Миша писал:
нет.

Понял, благодарю за ответ


Отправлено Crystallize 10-08-2023 в 20:30:

Как сделать printf в матчлибе? Там ниче не работает.

Бывает ли что перпендикуляр к прямой косячит? У меня персонаж движется по прямой, и постоянно ищет перпендикуляр к ней. До точки пересечения с прямой разрешено некое расстояние, так что это как бы цилиндр. Скорость небольшая, что-то вроде 5-10 юнитов за кадр. И вот хотя по длине ему остается 20-25 юнитов, персонаж внезапно выпадает из этого объема.


Отправлено Дядя Миша 10-08-2023 в 21:05:

Цитата:
Crystallize писал:
Как сделать printf в матчлибе?

о какой именно матчлибе идёт речь?

Цитата:
Crystallize писал:
Бывает ли что перпендикуляр к прямой косячит?

Точно получить его невозможно - недостаточно информации. Эта штука строится на допусках. В разных реализациях - разные допуски.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 10-08-2023 в 21:37:

Дядя Миша матчлиба в ксашмоде.


Отправлено Дядя Миша 10-08-2023 в 21:42:

А зачем тебе выводить сообщения непременно внутри самой матчлибы?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено SNMetamorph 11-08-2023 в 08:08:

Цитата:
Crystallize писал:
Как сделать printf в матчлибе? Там ниче не работает.

В смысле? А что мешает-то? Есть snprintf, есть fmt если хочется удобно.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord


Отправлено Дядя Миша 11-08-2023 в 11:53:

Цитата:
Crystallize писал:
Я знаю только что в 2010 году чтобы повысить качество на Ютубе, мы в адрес дописывали &fmt=18.

Ну наверное уже неактуально

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 11-08-2023 в 12:15:

Цитата:
SNMetamorph писал:
В смысле? А что мешает-то? Есть snprintf, есть fmt если хочется удобно.

Матчлиба не знает ничего такого и ругается на undeclared identifier.

Добавлено 11-08-2023 в 19:15:

Цитата:
Дядя Миша писал:
А зачем тебе выводить сообщения непременно внутри самой матчлибы?

Я пытаюсь переделать функцию с возвращающей вектор на войд, но ей почему-то не нравится число параметров, хотя параметров как раз сколько надо.


Отправлено Дядя Миша 11-08-2023 в 12:43:

Цитата:
Crystallize писал:
Я пытаюсь переделать функцию с возвращающей вектор на войд, но ей почему-то не нравится число параметров

Покажи что ты там хочешь переделать и главное зачем.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 12-08-2023 в 00:20:

Разобрался, там оставалось магическое число 999 а сегмент рельсы был 1024


Отправлено Crystallize 16-08-2023 в 18:16:

code:
for ( int k = 1; k<gpGlobals->maxEntities; k++, pStartEdict++ ) { if ( pStartEdict->free ) // Not in use continue; if ( !FStrEq ( STRING(pStartEdict->v.classname), "path_track" ) ) // if not match continue; // maps won't be super large, spam segments if 999 units is not long enough if ( (pStartEdict->v.origin - pev->origin).Length() > 1024.0f ) continue; pEndTmp = UTIL_FindEntityByTargetname ( NULL, STRING ( pStartEdict->v.target ) ); if (!pEndTmp ) continue; // test plpos against infinite and finite cylinder TempPos = NearestOnLine ( pStartEdict->v.origin, pEndTmp->pev->origin, pev->origin ); if( !VectorCompareEpsilon( TempPos, g_vecZero, ON_EPSILON ) && ((TempPos - pev->origin ).Length() < 64) ) { NewNearest = TempPos; // good one idStart = ENTINDEX( pStartEdict ); idEnd = ENTINDEX( pEndTmp->edict() ); break; } }


Собственно вот где было число 999.

Кстати внимание вот на этот изврат к энт-индексами в конце. Мне вообще нужно просто найти в цикле пару энтитей. Проблема что когда старался работать сначала с эдиктами (чтобы пореже запускать FindEntityByTargetname), по ходу цикла эти эдикты терялись по какой-то загадочной причине. Понятия не имею в чём может быть дело, цикл это всё же не выход из функции. Разве что это какие-то особенности работы с эдиктами.


Отправлено Дядя Миша 16-08-2023 в 18:40:

1024 вижу, 64 вижу. 999 не вижу.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 16-08-2023 в 19:45:

Дядя Миша 999 было на месте 1024, там вон коммент есть.


Отправлено Crystallize 20-08-2023 в 11:23:

Цитата:
Дядя Миша писал:
1024 вижу, 64 вижу. 999 не вижу.

а эдикты?...

Как делать чтобы на сервере при открытой консоли или при паузе, в коде игрока не накапливалось ускорение у физики? pparams-то на сервере нету.


Отправлено Дядя Миша 20-08-2023 в 11:40:

Цитата:
Crystallize писал:
в коде игрока не накапливалось ускорение у физики?

а оно накапливается? И какая связь с pparams?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 20-08-2023 в 13:45:

Дядя Миша
Накапливается. В коде игрока (player.cpp) у меня каждый кадр что-то прибавляется к скорости. И если открыть консоль то видно что значение продолжает отбиваться и за пару секунд доходит до 2000, т.е. игра замерла но код игрока все ещё продолжает выполняться.
На клиенте это решали проверкой pparams->frametime потому что он обнуляется при паузе. Но на сервере оно не доступно, а gpGlobals->frametime на паузе не обнуляется.


Отправлено Дядя Миша 20-08-2023 в 13:46:

Но если консоль открыта, игрок же всё равно не двигается. А когда консоль закроется, это будет сброшено.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 20-08-2023 в 15:01:

Дядя Миша Любопытно какие механизмы могут существовать которые будут сбрасывать. Потому что на сервере вообще нет ничего связанного с паузами и консолями. Если я неправильно написал код мне бы понять как правильно, может быть надо его в playermove вместо этого пихать?

Добавлено 20-08-2023 в 22:01:

Цитата:
Дядя Миша писал:
Но если консоль открыта, игрок же всё равно не двигается.

GetAbsVelocity тем не менее не зануляется


Отправлено Дядя Миша 20-08-2023 в 17:45:

а pmove->frametime или чёт такое?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 21-08-2023 в 18:09:

Дядя Миша О, обнуляется, спасибо. Интересно почему у него точность только три знака, а потом идут нули.

Почему игрок на которого применили SetAbsVelocity при движении как-то покачивается по синусоиде вверх-вниз как на волнах? Как будто всего на несколько юнитов.


Отправлено Дядя Миша 21-08-2023 в 18:13:

Цитата:
Crystallize писал:
Интересно почему у него точность только три знака

Потому что он восстанавливается из usercmd.msec у которого весь лимит - 250 милисекунд, путём умножения на тысячу.

Цитата:
Crystallize писал:
Почему игрок на которого применили SetAbsVelocity при движении как-то покачивается по синусоиде вверх-вниз как на волнах?

от третьего лица?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 21-08-2023 в 18:27:

Цитата:
Дядя Миша писал:
от третьего лица?

да


Отправлено Дядя Миша 21-08-2023 в 20:54:

Может это какой-нибудь CalcBob чудит?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Aynekko 06-09-2023 в 10:36:

Никак не могу понять, как можно передать строчку текста на клиент. А точнее, прописать в keyvalue энтити текст и потом, зная индекс энтити, получить его на клиенте. Я хотел попробовать ALLOC_STRING и получить id строчки на клиенте, но у меня в клиенте нет такой функции.

__________________
Мой мод на Xash


Отправлено Дядя Миша 06-09-2023 в 18:48:

ALLOC_STRING только на сервере.
Только через MESSAGE_BEGIN и WRITE_STRING.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 07-09-2023 в 03:56:

Цитата:
Дядя Миша писал:
Может это какой-нибудь CalcBob чудит?

Кстати да, я боб отключил и это пропало.


Отправлено APAMk2 28-09-2023 в 06:36:

Вопросец, а можно-ли в MP при смене карты сохранить весь инвентарь игрока как это происходит в сингле? Бегло покопал форум и гуголь, ничего не нашёл, подозреваю просто где-то кусок из сингла в мультиплеер перенести, направьте по верному пути плз.


Отправлено Дядя Миша 28-09-2023 в 07:20:

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

Вообщем надо выделить некоторое место и сохранить туда информацию о броне, здоровье, патронах и пушках для каждого игрока. А при заходе на новый уровень - дать всё это игроку. Какая-то глобальная структурка нужна где всё это держать во время смены уровня.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 28-09-2023 в 11:08:

Цитата:
Дядя Миша писал:
Какая-то глобальная структурка

Вроде game.h подходящее место, только теперь не знаю где остальной код дописывать, multiplay_gamerules.cpp похоже для этого не подходит, либо я не туда дописываю код (пробовал в CHalfLifeMultiplay::ChangeLevel и CHalfLifeMultiplay::Think), т.к. он не исполняется(ни один ALERT не сработал).
Структура:
C++ Source Code:
1
//game.h
2
 
3
extern struct PlayerChangeLevelSave
4
{
5
  int health = 100;
6
  int hev_charge = 0;
7
  int ammo_count[15] = {15};
8
  int have_weapons[23];
9
};


Сохранение и загрузка данных:
C++ Source Code:
1
//multiplay_gamerules.cpp
2
 
3
#include ......
4
 
5
PlayerChangeLevelSave player1, player2;
6
std::vector<PlayerChangeLevelSave> players = {player1, player2};
7
 
8
...
9
 
10
void CHalfLifeMultiplay::Think()
11
 
12
...
13
 
14
for (int i = 0; i <= 1; i++)
15
{
16
  CBaseEntity* pPlayer = UTIL_PlayerByIndex(i);
17
  players[i].health = pPlayer->pev->health;
18
  ALERT(at_console, "1Health:%i", pPlayer->pev->health);
19
  players[i].hev_charge = pPlayer->pev->armorvalue;
20
  ALERT(at_console, "1HEV:%i", pPlayer->pev->armorvalue);
21
  players[i].ammo_count[1] = pPlayer->ammo_9mm;
22
}
23
 
24
ChangeLevel(); //intermission is over
25
 
26
...
27
 
28
void CHalfLifeMultiplay::ChangeLevel()
29
...
30
 
31
CHANGE_LEVEL(szNextMap, NULL);
32
 
33
for (int i = 0; i <= 1; i++)
34
{
35
  CBaseEntity* pPlayer = UTIL_PlayerByIndex(i);
36
  pPlayer->pev->health = players[i].health;
37
  ALERT(at_console, "Health: %i", players[i].health);
38
  pPlayer->pev->armorvalue = players[i].hev_charge;
39
  ALERT(at_console, "HEV: %i", players[i].hev_charge);
40
  pPlayer->ammo_9mm = players[i].ammo_count[1];
41
}


Отправлено Дядя Миша 28-09-2023 в 14:34:

Сохранять надо перед вызовом ChangeLevel, тут всё правильно.
А восстанавливать в PutClientInServer чёт такое вообщем.
Ну и завести ещё переменную, что игрока ожидает инвентарь с прошлого уровня, сделать проверку на мультиплеер.
Там кажется есть PlayerSpawn или подобная функция. Вот в ней попробуй.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 28-09-2023 в 16:57:

Перенёс в PlayerSpawn загрузку параметров, ох и долго-же я себе голову ломал...
По какой-то причине игре немного насрать на тот ChangeLevel что в multiplay_gamerules.cpp, перенёс сохранение в trigger.cpp и всё заработало , спасибо за помощь, пошёл допиливать код в адекватное состояние.


Отправлено SNMetamorph 28-09-2023 в 18:58:

Цитата:
APAMk2 писал:
Вопросец, а можно-ли в MP при смене карты сохранить весь инвентарь игрока как это происходит в сингле? Бегло покопал форум и гуголь, ничего не нашёл, подозреваю просто где-то кусок из сингла в мультиплеер перенести, направьте по верному пути плз.

Ищи на гитхабе исходники gravgun мода, там это было реализовано как-то.

__________________
PrimeXT
GoldSrc Monitor
SMD Splitter
mdl-flip (gFlip analog)
Xash3D Modding Discord


Отправлено Дядя Миша 28-09-2023 в 19:10:

Цитата:
APAMk2 писал:
немного насрать на тот ChangeLevel что в multiplay_gamerules.cpp, перенёс сохранение в trigger.cpp и всё заработало

Это очень просто. Тот чейнджлевел по задумке авторов должен был срабатывать после вызова функции NextLevel в triggers.cpp.
Однако эта функция не вызывается вообще ниоткуда

C++ Source Code:
1
/*
2
go to the next level for deathmatch
3
only called if a time or frag limit has expired
4
*/
5
void NextLevel( void )
6
{

Возможно это наследие из первокваки, которое забыли подключить. Что-то такое я там припоминаю.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 01-10-2023 в 18:43:

Цитата:
Crystallize писал:
Интересно почему у него точность только три знака, а потом идут нули

Цитата:
Дядя Миша писал:
Потому что он восстанавливается из usercmd.msec у которого весь лимит - 250 милисекунд, путём умножения на тысячу.

Это получается у игрока свой особый фреймтайм? Я в PreThink двигаю игрока через SetAbsVelocity, и двигаю рядом спрайт, в основном для отладки, и спрайт держится рядом только если использовать этот калечный pmove->frametime, иначе постепенно уползает вперед.


Отправлено Дядя Миша 01-10-2023 в 19:11:

Цитата:
Crystallize писал:
Это получается у игрока свой особый фреймтайм?

Именно так. И время для него идёт иначе.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 05-10-2023 в 08:20:

Как временно отключить гравитацию конкретно игроку? Чтобы он не дрейфовал вниз когда его передвигает SetAbsVelocity. Просто выставить мувтип fly не срабатывает.


Отправлено Дядя Миша 05-10-2023 в 12:10:

pev->gravity = 0.0f;

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 08-10-2023 в 12:51:

Решил ради тестов попробовать портануть модельку солдата из Q2 под ХЛ, столкнулся конечно-же с проблемой вертексной анимации и перегоне её в скелетную, чёт вспомнил о QR и QW, покопал их подфорум, ничё по этому поводу внятного не нашёл, ну неужели ничего внятного за все эти годы никто не придумал и нужно по классике ручками костылять модель в Т-позу и потом клеить на неё скелет из ХЛ или и того хуже - запиливать код вертексной анимации?


Отправлено Дядя Миша 08-10-2023 в 13:11:

А что тут можно придумать внятного? Вертексная анимация получается путём запекания скелетной, т.е. это конвертация с потерями.
А то что утеряно уже никаким алгоритмом обратно не восстановишь, разве что нейросетью, которая лепит отсебятину, похожую на правду.

Добавлено 08-10-2023 в 16:11:

Цитата:
APAMk2 писал:
или и того хуже - запиливать код вертексной анимации?

Старый ксаш умеет в вертексную анимацию. Новый, впрочем, тоже.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 08-10-2023 в 13:20:

Цитата:
Дядя Миша писал:
pev->gravity = 0.0f;

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


Отправлено APAMk2 08-10-2023 в 13:41:

Цитата:
Дядя Миша писал:
Старый ксаш умеет в вертексную анимацию. Новый, впрочем, тоже.

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


Отправлено Дядя Миша 08-10-2023 в 14:38:

Цитата:
APAMk2 писал:
вылет с указанием на файл gl_context.c

В ксаше нет такого файла. Это наверное FWGS или другой форк. Все вопросы к ним.

Добавлено 08-10-2023 в 17:38:

Ну и разумеется он понимает модельки только от первой кваки.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 08-10-2023 в 18:20:

Цитата:
APAMk2 писал:
Вот тут поподробнее, если можно, для этого нужны какие-то доп. телодвижения, ведь так? Просто сунуть модельку у меня не получилось, вылет с указанием на файл gl_context.c

Env_sprite в ксашмоде загружает анимированные квейковские модели
https://xash3d.ru/doku.php?id=xashx...D0%B8:env_model


Отправлено Дядя Миша 08-10-2023 в 19:13:

Цитата:

env_model может отображать статичный кадр alias-модели формата Quake mdl. env_sprite полноценно загружает её с анимацией. Модель будет видна на стандартном рендере gl_renderer 0. Удивительно но даже сам автор XashXT забыл о наличии такой фичи в своём продукте.

Не забыл, а не счёл нужным упомянуть. Какая же это фича, если для нее приходится выключать рендерер? Это анти-фича.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 08-10-2023 в 19:28:

Цитата:
Crystallize писал:
Env_sprite в ксашмоде загружает анимированные квейковские модели


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

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено APAMk2 10-10-2023 в 10:43:

В дикее был индикатор состояния перса (в т.ч. и на пк), типа прыгаешь, стоишь, сидишь, решил добавить его к себе, полез в исходники пк-порта и таки нашёл нужный файл ( https://github.com/hoaxer/Half-Life...l_dlls/mode.cpp ), перетащил весь связанный код к себе, запускаю и что вижу? Лишь фонарик, прикол в том что если убрать спрайты для него из hud.txt - появляется новый индикатор, фонарика естесна нет, что это такое и как быть не понимаю.

UPD. подкинул hud.txt из дикея - всё заработало, потом добавил строчки индикатора ровно туда где и в дикее - тоже заработало, максимально странная шняга.


Отправлено Ku2zoff 11-10-2023 в 14:02:

Цитата:
APAMk2 писал:
добавил строчки индикатора ровно туда где и в дикее - тоже заработало, максимально странная шняга

Да неважно где находятся строчки. Важны правильные координаты в них и правильное их количество, указанное числом в первой строке hud.txt


Отправлено APAMk2 12-10-2023 в 16:31:

Цитата:
Ku2zoff писал:
Да неважно где находятся строчки

Дело даже не в этом было, кое-кто кривыми ручёнками удалил один из UnpackRGB у фонарика и благополучно об этом забыл, восстановил - заработало всё, тут только одно фиксить - голову.


Но не будем о грустном, пытаюсь добавить акимбо-варианты для оружия, как определить что оружие есть у игрока на сервере и через какую функцию лучше всё провернуть? AddToPlayer похоже вызывается 1 раз при подборе и дальше вызывается AddDuplicate через который я не вкурил как получить указатель на игрока т.к. он принимает в аргументы лишь 1 CBasePlayerItem, а какой-нибудь удобный способ получить указатель на игрока я не нашёл.


Отправлено Ku2zoff 13-10-2023 в 13:18:

Цитата:
APAMk2 писал:
как определить что оружие есть у игрока на сервере и через какую функцию лучше всё провернуть? AddToPlayer похоже вызывается 1 раз при подборе и дальше вызывается AddDuplicate через который я не вкурил как получить указатель на игрока т.к. он принимает в аргументы лишь 1 CBasePlayerItem, а какой-нибудь удобный способ получить указатель на игрока я не нашёл.

Как определить, что оружие есть у игрока:
C++ Source Code:
if (игрок->pev->weapons & (1<<WEAPON_ОРУЖИЕ);

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


Отправлено APAMk2 13-10-2023 в 14:17:

Цитата:
Ku2zoff писал:
Чтобы при наличии одной пушки (именно одной, подобранной один раз, при подбирании второй точно такой же делалось "акимбо")?

Именно так.
Цитата:
Ku2zoff писал:
писать переменную о том, что оно уже есть в энтварсы игрока

Возможно ошибаюсь, но ведь можно сделать переменную в классе стандартной, не "акимбо" пушки (mp5 к примеру) и оно будет работать, разве нет?


Отправлено Ku2zoff 13-10-2023 в 23:16:

Цитата:
APAMk2 писал:
Возможно ошибаюсь, но ведь можно сделать переменную в классе стандартной, не "акимбо" пушки (mp5 к примеру) и оно будет работать, разве нет?

Верно. Заведи в классе пушки переменную, которая будет нулевой при первом поднятии игроком такой пушки. А вот если игрок поднимет вторую такую же пушку, в AddToPlayer присвой этой переменной единицу. В сейвдату пушки это надо сохранять, если мод сингловый. Ну а дальше, если переменная равна единичке, пушка становится акимбо. Класс у неё не меняется, у неё меняются свойства. Плясать нужно уже от этой переменной. Если она не нулевая, то вьюмодель оружия будет уже другая - с двумя пушками в двух руках. Ну и так далее.


Отправлено APAMk2 14-10-2023 в 13:08:

Смог реализовать, но чуть иначе, переменная где-то вообще оказалась не нужна, в класс обычной пушки добавляю AddDuplicate в котором через pOriginal->m_pPlayer получаю игрока и уже проворачиваю всё что мне нужно, только вот теперь единственно нужно вот это:

code:
if (игрок->pev->weapons & (1<WEAPON_ОРУЖИЕ);

но наоборот (проверить что ствола у игрока нет).


Отправлено Crystallize 15-10-2023 в 17:30:

Из флагов блокирующих гравитацию игрока, ONROPE и ONTRAIN бесполезны, а ONBARNACLE ломает код из SetAbsVelocity и SetAbsOrigin.

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


Отправлено Дядя Миша 15-10-2023 в 19:19:

Не пойму, почему у тебя pev->gravity = 0 не работает.
Она обязана работать, иначе бы игрок соскальжевал с лестниц.
Ну засунь в pmove сообщение, посмотри чему равен pmove>gravity.

Добавлено 15-10-2023 в 22:19:

Ты под халфой-то делаешь или под ксашем?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 15-10-2023 в 19:36:

Под ксашем
Я еще не пробовал делать ответвления в PM_ функции и там подменять.
Я сувал туда дебаг, он писал что вычитает 6.4 из pmove->velocity[2]
Гравитация была обычная 800, за один кадр 13, ну и там она по половинкам получается 6


Отправлено Дядя Миша 16-10-2023 в 05:14:

вообщем зануляй гравити у игрока и всё должно работать.
Прямо в классе игрока pev->gravity = 0.0f;

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 17-10-2023 в 10:26:

Обнаружил что в переиздании второй кваки (вот внезапно) все модельки пересадили на кости в формате md5, сгенерил одной утилитой из этой модели smd для компиляции, а вот как для неё написать qc не знаю, дайте какие-нибудь статьи о компиляции моделей для монстров, ничего похожего не нашёл.


Отправлено Дядя Миша 17-10-2023 в 11:09:

Тут статьей не обойтись. Тут целое дело. Я даже studiomdl дорабатывал, чтобы собрать эти модельки в формат халфы.

Может как-нибудь попозже напишу об этом. Но те модельки которые вы видели в сентябрьской демке - это тоже скелетка из ремастера, но уже первой кваки.

Цитата:
APAMk2 писал:
сгенерил одной утилитой из этой модели smd для компиляции

Не подскажешь название утилитки? Я Noesis юзаю, но он весьма неудобен.

Добавлено 17-10-2023 в 14:09:

ЗЫ. Модельки эти с развесовкой, поэтому нормально они будут выглядеть только под старым ксашем. И собирать их можно только моим компилятором моделей. Но да, это вполне реально. Я сам удивился.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 17-10-2023 в 11:16:

Цитата:
Дядя Миша писал:
Noesis

Да, именно он, первым попался по запросу "md5 to mdl".
Пока попробую скомпилить хотя-бы чтобы под старым ксашем на карту в cycler ткнуть, хотя-бы пойму как это делается.


Отправлено Дядя Миша 17-10-2023 в 12:08:

На тебе примерчег QC.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 17-10-2023 в 13:17:

Скомпилил модельку, пришлось немного с qc-шкой пошаманить (некоторых костей не было в том, что выплюнул Noesis), а также текстуру отзеркалить по вертикали т.к. uv-мапа не сходилась, моделька даже под FWGS завелась, единственно солдатик больно уж карликовый получился, но не страшно, со скейлом пошаманить и нормалёк.


Отправлено Дядя Миша 17-10-2023 в 13:56:

Цитата:
APAMk2 писал:
а также текстуру отзеркалить по вертикали т.к. uv-мапа не сходилась

Известная проблема. в настройках экспорта Noesis поставь галку Flip UV Maps или чёт такое.

Добавлено 17-10-2023 в 16:56:

А скейл можно прямо в QC задать.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 17-10-2023 в 16:22:

Попробовал перенести супершотган, вышло неплохо и быстро (модель за 5 минут буквально перекомпилил), с монстрами беда т.к. попробовал налепить солдата на грунтов и они кроме как очень криво стрелять и дохнуть ничего не могут, даже ходить, а так хоть щас садись и делай Q2Remake.


Отправлено Дядя Миша 17-10-2023 в 18:46:

С ходьбой беда - эти анимации не содержат motion vector.

Добавлено 17-10-2023 в 21:46:

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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 19-10-2023 в 15:11:

Цитата:
Дядя Миша писал:
вообщем зануляй гравити у игрока и всё должно работать.
Прямо в классе игрока pev->gravity = 0.0f;

Нифига, PM_ живет своей жизнью.
Я думаю дело в этом:
code:
if (pmove->gravity) ent_gravity = pmove->gravity; else ent_gravity = 1.0;


Добавлено 19-10-2023 в 22:11:

Цитата:
Дядя Миша писал:
Тут статьей не обойтись. Тут целое дело. Я даже studiomdl дорабатывал, чтобы собрать эти модельки в формат халфы.

Может как-нибудь попозже напишу об этом. Но те модельки которые вы видели в сентябрьской демке - это тоже скелетка из ремастера, но уже первой кваки.

Лучше напиши о приключениях углов при передаче между движком клиентом и сервером, как вы с Квероксом дошли до умножения на ШЕСТЬ в попытках это понять, и т.д.


Отправлено Дядя Миша 19-10-2023 в 15:31:

Не на шесть, а на девять. Там не приключения. Есть вью-англес, они следуют за мышкой и есть просто англес, у которых питч поделён на 3, эти ориентируют тушку игрока. Пришло из кваки, понятное дело. В халфе это в принципе было уже не нужно, там тушку можно было ориентировать анимациями, но всё равно оставили. А вот в хл2 по идее этого уже нет.

Добавлено 19-10-2023 в 18:31:

Цитата:
Crystallize писал:
Я думаю дело в этом:

вот в pmove->gravity и приходит pev->gravity. Смотри что там.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено APAMk2 09-11-2023 в 15:00:

Делаю наклоны из за углов как в Сталкере, сделал прототип чисто наклоняющий взгляд на 30 градусов в input.cpp, как оказалось одного наклона камеры недостаточно, как можно сместить камеру? В view.cpp это сделано через изменение vieworg в pparams, может как-то можно его получить? Также думаю как можно интерполировать значение наклона камеры чтобы наклон был плавный.


Отправлено Crystallize 17-01-2024 в 18:19:

Цитата:
Crystallize писал:
Нифига, PM_ живет своей жизнью.
Я думаю дело в этом:

code:
if (pmove->gravity)
ent_gravity = pmove->gravity;
else
ent_gravity = 1.0;



Там получается два компонента у гравитации. Однако не в том смысле в котором она по половинкам применяется в PM_ функциях. Нельзя просто дать разрешение на нулевую гравитацию в пмуве как выше и прописать pev->gravity=0 где-то, это пол-дела. Там ещё остается какая-то гравитация которая приходит из vecAbsVelocity и действует даже если в PM_ функциях всё по нулям.


Отправлено Дядя Миша 17-01-2024 в 19:17:

Цитата:
Crystallize писал:
Там ещё остается какая-то гравитация которая приходит из vecAbsVelocity

Не гравитация, а просто вектор недообнуляется, наверное. Такое вполне может быть. Он же обнуляется не просто с течением времени, а по наступлению некоторого события, например если игрок нащупал дно.

Добавлено 17-01-2024 в 22:17:

Да я же вам рассказывал про забавный баг в первом Квейке. На e1m3 в конце уровня есть такой лифт к выходу с уровня и там игрока подстерегают два демона. Если убить их так, что они останутся на этом подъемнике, то, когда подъемник начнёт опускаться, мёртвые демоны поедут куда-то влево-вправо, ну вообщем кто куда. Почему так происходит? Демоны обычно гибнут в полёте, когда их велосити не равен нулю и падают на землю с актуальным велосити. Но поскольку монстр при падении получает флаг FL_ONGROUND это уже не имеет значения. А вот когда подъемник начинает опускаться вместе с демонами, он им обнуляет флаг FL_ONGROUND и велосити вновь начинает применяться. Вот они и продолжают ехать в ту сторону, куда прыгали перед смертью. Но - строго в 2д плоскости

Добавлено 17-01-2024 в 22:17:

И таких приколов в кушной физике довольно много.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Sigurth 20-01-2024 в 04:16:

Прилипание игрока к полу

Подскажите, как можно убрать "прилипание" игрока к полу по время FlyMove и NoClipMove? Подобный эффект можно наблюдать в режиме спектатора, особенно в кс 1.6, когда в летите прямо, у вас под ногами наклонная поверхность, и вы в итоге летите не прямо, а "скользите" по поверхности вниз. Можете проверить на de_dust2. Но если на режим спектатора мне глубоко начихать, то вот после уменьшения скорости передвижения по лестницам, при малом PITCH игроку не хватает скорости, чтобы отлипнуть от пола и начать подниматься, что меня очень огорчает. Фиксил кто-нибудь такое?

__________________
Никогда не поздно сделать мод под хл1


Отправлено Crystallize 20-01-2024 в 07:25:

Sigurth я такое замечал на ксашмоде в начале 2020 когда игрался с переносом уровней из хл2, но Дядя Миша меня толи не понял, толи не поверил.


Отправлено Aynekko 20-01-2024 в 07:55:

Цитата:
Sigurth писал:
Подскажите, как можно убрать "прилипание" игрока к полу по время FlyMove и NoClipMove?

void PM_CatagorizePosition (void):
C++ Source Code:
1
if( pmove->movetype == MOVETYPE_NOCLIP || pmove->spectator )
2
  point[2] = pmove->origin[2]; // diffusion - no glueing with ground when noclipping or spectating
3
else
4
  point[2] = pmove->origin[2] - 2;

__________________
Мой мод на Xash


Отправлено Дядя Миша 20-01-2024 в 08:49:

Было:

C++ Source Code:
1
// Always try and unstick us unless we are in NOCLIP mode
2
if ( pmove->movetype != MOVETYPE_NOCLIP && pmove->movetype != MOVETYPE_NONE )
3
{
4
  if ( PM_CheckStuck() )
5
  {
6
    return;  // Can't move, we're stuck
7
  }
8
}
9
 
10
// Now that we are "unstuck", see where we are ( waterlevel and type, pmove->onground ).
11
PM_CatagorizePosition();

Стало:
C++ Source Code:
1
// Always try and unstick us unless we are in NOCLIP mode
2
if ( pmove->movetype != MOVETYPE_NOCLIP && pmove->movetype != MOVETYPE_NONE )
3
{
4
  if ( PM_CheckStuck() )
5
  {
6
    return;  // Can't move, we're stuck
7
  }
8
 
9
  // Now that we are "unstuck", see where we are ( waterlevel and type, pmove->onground ).
10
  PM_CatagorizePosition();
11
}

Так сложно догадаться, правда?

Добавлено 20-01-2024 в 11:49:

Собственно вот это говно, которое заставляет игрока "прилипать"
C++ Source Code:
1
// If we are on something...
2
if (pmove->onground != -1)
3
{
4
  // Then we are not in water jump sequence
5
  pmove->waterjumptime = 0;
6
  // If we could make the move, drop us down that 1 pixel
7
  if (pmove->waterlevel < 2 && !tr.startsolid && !tr.allsolid)
8
    VectorCopy (tr.endpos, pmove->origin);
9
}

Но вам вообще не нужен весь этот код в режиме полёта.

Цитата:
Crystallize писал:
но Дядя Миша меня толи не понял, толи не поверил.

Дядя Миша не отвечает на вопросы из разряда, кушоет ли он мёд.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 25-01-2024 в 14:49:

я хотел написать Vector c = array[ (byte)(a*b) ]
а написал Vector c = array[ (byte)a*b ]
И у вектора отдельно компонент x запортился. Не выдался неверный элемент, не запортился весь вектор, а только один компонент. Странно.


Отправлено nemyax 25-01-2024 в 23:38:

Цитата:
Crystallize писал:
я хотел написать Vector c = array[ (byte)(a*b) ]

Что оно должно было делать по твоей задумке?


Отправлено Crystallize 26-01-2024 в 01:28:

nemyax Массив с положительными и отрицательными ячейками, чтобы знать какие рельсины впереди а какие позади тебя. Не все, просто пара ближайших. Один множитель это индекс -2 -1 1 2, другой это направление 1 -1 по или против нумерации. Ну а байт это переполнение буфера чтобы -1 стало 255.


Отправлено Дядя Миша 26-01-2024 в 05:46:

Цитата:
Crystallize писал:
Массив с положительными и отрицательными ячейками, чтобы знать какие рельсины впереди а какие позади тебя


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

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 26-01-2024 в 06:00:

Цитата:
Дядя Миша писал:
if (pmove->onground != -1)


Интересно кстати, почему -1? Он же по идее вообще булевым должен быть.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Crystallize 26-01-2024 в 06:37:

Цитата:
Дядя Миша писал:

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

Да никто не знает что там позади тебя а что впереди. Особенно когда неизвестно с какой стороны ты прилетел и в какую сторону поехал. Есть только сегмент на котором ты сел, чей он таргет, кто его таргет, и переменная с направлением движения. Она и создаёт концепцию "позади тебя", "впереди тебя" и т.д.


Отправлено Дядя Миша 26-01-2024 в 07:05:

Цитата:
FiEctro писал:
Интересно кстати, почему -1? Он же по идее вообще булевым должен быть.

Не, там номер энтити хранится.

Цитата:
Crystallize писал:
Да никто не знает что там позади тебя а что впереди.

Так у тебя же там двусвязный список из патч-треков.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 26-01-2024 в 07:55:

Цитата:
Дядя Миша писал:
Не, там номер энтити хранится.


Там же написано on ground. Зачем в onground хранить номер энтитии? Да ещё и так хардкодить его ?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Crystallize 26-01-2024 в 08:32:

Цитата:
Дядя Миша писал:
Так у тебя же там двусвязный список из патч-треков.

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

Добавлено 26-01-2024 в 15:32:

Цитата:
FiEctro писал:
Там же написано on ground. Зачем в onground хранить номер энтитии? Да ещё и так хардкодить его ?

Наверное потому что энтити бывают брашевыми и при этом солидными.


Отправлено nemyax 26-01-2024 в 09:43:

Цитата:
Crystallize писал:
Есть только сегмент на котором ты сел, чей он таргет, кто его таргет, и переменная с направлением движения.

Тогда зачем ещё и массив строить? Всё ж и так есть.


Отправлено Crystallize 26-01-2024 в 10:20:

Цитата:
nemyax писал:
Тогда зачем ещё и массив строить? Всё ж и так есть.

Там есть ещё и бегунки которые трейсят рельсу как ноги. И если игрок не сильно заехал на текущий сегмент то задний бегунок всё ещё едет на преведущем и для него все индексы рельсов и углов рельсов будут на один меньше (если игрок поехал в направлении нумерации рельсов) или на один больше (если он поехал против нумерации). И тут можно было бы нагромоздить двухуровневую систему условий-макросов, как оно одно время и было. Но чтобы наглядно отразить в коде, что статусы сегментов(leaving, this, coming, postcoming) сдвигаются именно все вместе и на единицу, я дал им индексы и их декрементировал.

Добавлено 26-01-2024 в 17:20:

Т.е. массов нужен чтобы это было бы как бы общее пространство и при сдвиге сразу попадать на новое корректное значение.


Отправлено Дядя Миша 27-01-2024 в 13:11:

Цитата:
FiEctro писал:
Зачем в onground хранить номер энтитии?

Значит понадобилось.

Цитата:
FiEctro писал:
Да ещё и так хардкодить его

В каком смысле?

Цитата:
Crystallize писал:
Если ты на него посмотришь не с той стороны, то для тебя он инвертирован.

А ты через дотпродукт найди сторону

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 27-01-2024 в 13:48:

Дядя Миша я ищу ее один раз когда игрок запрыгивает, сравниваю его вектор скорости с вектором данного сегмента.


Отправлено Дядя Миша 27-01-2024 в 19:13:

Цитата:
Crystallize писал:
сравниваю его вектор скорости с вектором данного сегмента.

И каков же вектор сегмента?

Добавлено 27-01-2024 в 22:13:

Цитата:
Crystallize писал:
сравниваю его вектор скорости

Ну представь что игрок запрыгнул вертикально вверх. Просто нажал прыжок.
И что тогда?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 27-01-2024 в 21:35:

Цитата:
Дядя Миша писал:
И каков же вектор сегмента?

Конец минус начало

Цитата:
Дядя Миша писал:
Ну представь что игрок запрыгнул вертикально вверх. Просто нажал прыжок.
И что тогда?

Я это учел, там усреднение между направлением движения и направлением взгляда. Поэтому он все же поедет потихоньку. Но если он смотрел строго перпендикулярно то не поедет Стрейфиться игрок не может.


Отправлено Дядя Миша 28-01-2024 в 07:38:

Цитата:
Crystallize писал:
Конец минус начало

У любого патч-трека два конца.

Цитата:
Crystallize писал:
Я это учел, там усреднение между направлением движения и направлением взгляда

Это не учёл, это хак.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 29-01-2024 в 15:45:

где можно найти нормальные исходники half-life 2 ? и какой программой их надо комплить ? пробовал сам найти исходники но они нормально не компилятся

__________________
илья


Отправлено FiEctro 29-01-2024 в 15:47:

Цитата:
илья2 писал:
где можно найти нормальные исходники half-life 2 ? и какой программой их надо комплить ? пробовал сам найти исходники но они нормально не компилятся



Гугли Source SDK.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 29-01-2024 в 15:54:

а какой программой компилить ?

__________________
илья


Отправлено FiEctro 29-01-2024 в 16:10:

Цитата:
илья2 писал:
а какой программой компилить ?



Visual Studio вроде как 2005, но может уже и под более старшие версии есть.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 29-01-2024 в 19:16:

в общем пишет ошибку hl fatal error LNK1106: invalid file or disk full: cannot seek to 0x697B.

version https://git-lfs.github.com/spec/v1
oid sha256:aaccecc6e45e3d25188411e664772b750bdd433fc9c33a96080a055f22382ae5
size 41450

как исправить ?

Добавлено 29-01-2024 в 21:52:

source-sdk-2004

Добавлено 29-01-2024 в 22:16:

еще постоянно жалуется на #include <windows.h> его просто нету. Мда в общем постоянные заморочки

__________________
илья


Отправлено Crystallize 30-01-2024 в 01:33:

илья2 держи сдк
https://mega.nz/file/UfRhyLRC#v5VUL...0AijoX86LqKKDY8


Отправлено илья2 30-01-2024 в 05:58:

Цитата:
Crystallize писал:
илья2 держи сдк
https://mega.nz/file/UfRhyLRC#v5VUL...0AijoX86LqKKDY8

а что толку компилит с одной единственной ошибкой invalid file or disk full а как эту ошибку исправить я не знаю.

Добавлено 30-01-2024 в 08:58:

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

__________________
илья


Отправлено Дядя Миша 30-01-2024 в 06:07:

илья2 так мож у тебя на диске места не хватает? Проверь сколько у тебя свободного места на диске С.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 30-01-2024 в 07:09:

Цитата:
илья2 писал:
а что толку компилит с одной единственной ошибкой invalid file or disk full а как эту ошибку исправить я не знаю.


Так он тебе англицким языком пишет что у тебя диск переполнен. Освободи место на диске.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 30-01-2024 в 07:54:

27,1 гб осталось это что разве переполнен ?

__________________
илья


Отправлено FiEctro 30-01-2024 в 07:58:

илья2
Попробуй от имени администратора запустить, возможно винда блокирует доступ к диску.

Вот твоя ошибка:
https://stackoverflow.com/questions...k-to-0x5a57bebc

Зайди в Project Settings->Librarian->Command Line->Additional options и добавь /expectedoutputsize:600000000 в линкер.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 30-01-2024 в 08:49:

и добавь /expectedoutputsize:600000000 в линкер:не работает

Добавлено 30-01-2024 в 11:49:

от имени администратора запустить:тоже не работает

__________________
илья


Отправлено Дядя Миша 30-01-2024 в 10:06:

Цитата:
илья2 писал:
и добавь /expectedoutputsize:600000000 в линкер:не работает

Покажи куда добавлял.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 30-01-2024 в 10:18:

вот:https://imgur.com/a/YawjhRF

Добавлено 30-01-2024 в 13:18:

и все таки я не понимаю как такой крутой мод как overcharged мог быть сделан ? если даже обычный пацан как я не может нормально исходники half-life 2 скомпилить и немного их переделать. Или у разработчика свои секреты есть

__________________
илья


Отправлено Дядя Миша 30-01-2024 в 10:43:

Попробуй в All Options прописать явно.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 30-01-2024 в 10:54:

илья2
а какая у тебя версия студии?

И проверь чтобы у твоей папки с СДК не стояло атрибута "только чтение".

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 30-01-2024 в 13:54:

Цитата:
FiEctro писал:
илья2
а какая у тебя версия студии?

Microsoft Visual Studio . NET 2003 Enterprise Architect версии 7.1

Добавлено 30-01-2024 в 16:29:

Цитата:
Дядя Миша писал:
Попробуй в All Options прописать явно.

так не получается не дает писать. Может где то есть файл где все эти скрипты прописаны ?

Добавлено 30-01-2024 в 16:47:

https://imgur.com/jsOaJl9

Добавлено 30-01-2024 в 16:51:

что интересно при нажатии на ошибку переносит на файл tier0.lib

Добавлено 30-01-2024 в 16:53:

где прописывается size-размер 41450
хеш код oid sha256:aaccecc6e45e3d25188411e664772b750bdd433fc9c33a96080a055f22382ae5
и ссылка на какой то сайт https://git-lfs.github.com/spec/v1

Добавлено 30-01-2024 в 16:54:

где требуется скачать какой то гид ларге файл стораге ?

__________________
илья


Отправлено Ku2zoff 31-01-2024 в 13:15:

Цитата:
илья2 писал:
Microsoft Visual Studio . NET 2003 Enterprise Architect версии 7.1

Как ты её вообще установил? 7.1 на десятку не ставится, какой-то из пререквизитов, кажись J# redist отказывается устанавливаться и всё, труба. Найди исходники Half-Life 2 посвежее, например под 2005 или 2010 студию. Бета вроде бы компилится ещё шестой студией, а вот самый первый сорс сдк, ЕМНИП, 7.1, она же 2003. Ищи сорс сдк для оранжбокс - будет самое то.

Добавлено 31-01-2024 в 20:15:

В наше время и сорцы, и студию найти не трудно: интернет есть. А я вот из-за сначала от безысходности, а после по привычке до 2013 года юзал эту самую 7.1.


Отправлено Crystallize 31-01-2024 в 14:52:

илья2 судя по всему утебя там промежуточные файлы в проекте друг друга перезаписывают потому что оно все в одной папке. Может просто перейди на Эп1 или орандж бокс.


Отправлено илья2 31-01-2024 в 15:26:

Цитата:
Ku2zoff писал:
В наше время и сорцы, и студию найти не трудно: интернет есть.

трудно не найти трудно скомпилировать

__________________
илья


Отправлено FiEctro 31-01-2024 в 15:39:

Цитата:
илья2 писал:
Microsoft Visual Studio . NET 2003 Enterprise Architect версии 7.1


Я бы всетаки порекомендовал обновиться
https://archive.org/details/en_visu...x86_dvd_6816332

https://developer.valvesoftware.com...g_Visual_Studio

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 31-01-2024 в 16:02:

Build: 1 succeeded, 0 failed, 0 skipped

ООО наконец то как я долго этого ждал скомпилилось наконец скомпилилось ура

Добавлено 31-01-2024 в 18:48:

еее client и server скомпилились

Добавлено 31-01-2024 в 18:51:

осталось только проверить их в игре

Добавлено 31-01-2024 в 19:02:

мда не долго я радовался вылезает вот эта ошибка https://imgur.com/a/XAbNvGf

__________________
илья


Отправлено Дядя Миша 31-01-2024 в 20:28:

К хл2 наплодили кучу версий движка, там всё несовместимое.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено илья2 01-02-2024 в 08:22:

Цитата:
Дядя Миша писал:
там всё несовместимое.

и что делать все забыть про сорцы ?

__________________
илья


Отправлено Дядя Миша 01-02-2024 в 08:43:

Искать новый SDK или старую версию движка, под которой эта библиотека заведётся.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 01-02-2024 в 09:32:

Цитата:
илья2 писал:
и что делать все забыть про сорцы ?


Я тебе скинул что делать. Открой ссылку там всё написано.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено илья2 01-02-2024 в 09:43:

Цитата:
FiEctro писал:
Я тебе скинул что делать. Открой ссылку там всё написано.

я попробую

__________________
илья


Отправлено илья2 03-02-2024 в 12:56:

мдааа попробовал я твой способ после компила вот такая абра кадабра вылезает:https://imgur.com/a/r7j7o47 я даже не знаю что это такое может проблема что я стимовский half-life 2 запускаю или надо что то другое запускать ?

Добавлено 03-02-2024 в 15:38:

кажется я начинаю понимать это дебаггер он предупреждает об ошибке в директории game_controls/base игра работает запускается но худ в костюме работает неправильно все патроны здоровье энергия костюма куда то заноситься в угол.

Добавлено 03-02-2024 в 15:56:

только я не пойму а на какой объект ссылается дебаггер ? base.cpp такого файла нету.

__________________
илья


Отправлено FreeSlave 07-02-2024 в 11:40:

В каких случаях SetObjectCollisionBox должен отличаться от размера, выставляемого в UTIL_SetSize?

И ещё. Моё давнишнее наблюдение, в сути которого я, однако, не копался. Если у прожектайла ненулевой размер, то он не будет попадать в модельку за пределами размера, выставленного через UTIL_SetSize. Для корректной работы нужно увеличивать размер, дабы он покрывал всю модельку. Пример: гаргу в ХЛ выставляется размер такой же как у агрунта. Из-за этого прожектайлы с ненулевым размером пролетают сквозь модельку (если не стрелять по ногам). Прожектайлов с ненулевым размером в ХЛ вроде как нет, но могут быть с кастомным кодом. В опфоре таковыми являются снаряды шокроача. И в опфоре выставляемый размер у гарга действительно увеличен для соответствия геометрии модельки.
Собственно, как определяется столкновение? Какую роль играет размер монстра и хитбоксы его модели. И в чем особенность проверки столкновения у прожектайлов с нулевым размером? Чисто из наблюдений получается, что движок для энтить с ненулевым размером сначала проверяет столкновение по размерам и в случае успеха проверяет дополнительно хитбоксы, иначе - столкновения не происходит. А для энтить с нулевым размером трасса, должно быть, работает иначе, и сразу "попадает" в хитбокс.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Дядя Миша 07-02-2024 в 13:23:

absmin и absmax - это размеры ббокса, с которыми объект линкуется в дерево. Они очевидно не должны быть меньше реального размера, заданного в SetSize. Но могут быть больше. Например для ротатаблей.
Ротатабля же неизвестно в какую сторону крутится - можно взять её общий радиус. Чтобы другой предмет гарантированно в ней не застрял.

Цитата:
FreeSlave писал:
И в чем особенность проверки столкновения у прожектайлов с нулевым размером?

Там задаётся ббокс +\15 юнитов, чёб ими легче попадать было.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FreeSlave 08-02-2024 в 14:40:

Цитата:
Дядя Миша писал:
Там задаётся ббокс +\15 юнитов, чёб ими легче попадать было.

Ракеты и арбалетные стрелы в ХЛ прекрасно бьют в макушку гарга, хотя расстояние между верхушкой заданной в SetSize и макушкой гарга явно больше 15 юнитов.
А вот Ббокс, выставляемый через SetObjectCollisionBox, у гарга да, увеличенный по сравнению с его SetSize и как раз примерно соответствует размерам модельки.
Я, кстати, вспомнил, что есть в ХЛ снаряды с ненулевым размером - это хорнеты мухобойки. Они в HL пролетают сквозь Гарга (если не стрелять по ногам, опять же).

Насчёт +15/-15 - это ты наверно про MOVETYPE_FLYMISSILE кстати. Но он в халфовском сдк не используется.

__________________
I'm on github
I'm on opendesktop.org


Отправлено Дядя Миша 08-02-2024 в 16:21:

Я уже не помню точно как это в халфе использовалось. Были какие-то отличия от кваки.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 12-02-2024 в 15:42:

Меня смущает эффект от команды r_drawentities 5. У игрока кубик ААББ и он вращается но при этом как будто коллидит без учета вращения. Я думал только в КС хулл игрока вращается?


Отправлено Дядя Миша 12-02-2024 в 15:52:

Не-не, это не колоизационный хулл.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 12-02-2024 в 15:55:

Цитата:
Crystallize писал:
Я думал только в КС хулл игрока вращается?

В КС хулл игрока вращается??

__________________

xaerox on Vivino


Отправлено a1batross 12-02-2024 в 17:28:

del

__________________
Xash3D FWGS форк


Отправлено Crystallize 13-02-2024 в 01:42:

XaeroX типа, поэтому якобы проходит в неаксиальные коридоры Уже чем 32.5*1.4142. Хотя наверное это просто учёт нормалей при надувании хулла.


Отправлено Дядя Миша 13-02-2024 в 07:47:

Это чисто визуальный эффект, он не имеет никакого отношения к коллизии.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 24-02-2024 в 20:29:

В фитцквейке нельзя обновить r.refdef.vieworg через VectorAdd. Вот Мастер бы развонялся...


Отправлено Дядя Миша 24-02-2024 в 20:40:

Цитата:
Crystallize писал:
В фитцквейке нельзя обновить r.refdef.vieworg через VectorAdd. Вот Мастер бы развонялся...

Скорее расскажи ему об этом

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 02-03-2024 в 14:57:

Цитата:
Дядя Миша писал:
Скорее расскажи ему об этом

А что его где-то можно найти сейчас?


Отправлено XaeroX 02-03-2024 в 15:03:

Crystallize
Мастера? Конечно можно. Он просто к нам на форум принципиально не ходит, наверное, мы его чем-то огорчили.

__________________

xaerox on Vivino


Отправлено Crystallize 02-03-2024 в 17:04:

XaeroX он всё ещё дрочит свой XDM и маппак?!
я думал разочаровался во всём и потому ушёл. Но видимо разочаровался он только в нас.


Отправлено Crystallize 12-03-2024 в 02:07:

Что делать если шестерка зависает где-то на стадии проверки ошибок?


Отправлено Дядя Миша 12-03-2024 в 06:02:

Какая шестёрка? Студия? У компиляции нет фазы проверки ошибок.
Ты что-то путаешь.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 12-03-2024 в 06:59:

Дядя Миша В общем я жму F7, курсор песочные часы и студия перестает реагировать на клики. И нагрузка на проц даже не повышается.


Отправлено FiEctro 12-03-2024 в 07:03:

Цитата:
Crystallize писал:
Что делать если шестерка зависает где-то на стадии проверки ошибок?


Перестать мучать мамонта. Ну или пересаживаться на XP.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 12-03-2024 в 07:07:

Странно. Не приходилось с таким сталкиваться. Это любой проект так?

Добавлено 12-03-2024 в 10:07:

Цитата:
FiEctro писал:
Перестать мучать мамонта

Я вот перешёл на 2005-ю студию, так эта зараза через два дня работы просто перестала выполнять фазу Post Build. Ни от чего. Причём оно начало постепенно отваливаться. Сперва на одном проекте, потом на другом.
А я в толк взять не могу, почему изменений не видно. А оно оказывается свежскомпиленные файлы не копирует, так и лежит старье. Никаких ошибок не выдаётся, ничего. Просто не копирует и всё. И тут понял, почему народ в большинстве перешёл на какие-то автосборки и прочие системы автоматизации. Неудивительно, когда от студии такая подляна началась.
Так что нет уж. Сами это дерьмо юзайте.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено FiEctro 12-03-2024 в 07:14:

Цитата:
Дядя Миша писал:
Я вот перешёл на 2005-ю студию,


Так это тоже мамонт.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!


Отправлено Дядя Миша 12-03-2024 в 07:17:

Ну у более новых студий ещё какие-то приколы будут.
Мне работать надо, а не воевать с чужими глюками.

Добавлено 12-03-2024 в 10:17:

Потом всё это без проблем соберётся свежей студией, т.к. изначально пишется совместимо.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 12-03-2024 в 07:45:

Цитата:
Дядя Миша писал:
Странно. Не приходилось с таким сталкиваться. Это любой проект так?

Фитцквейк и ксашмод. На ксашмоде удавалось обходить, на фитцквейке три раза подряд вчера словил.

Добавлено 12-03-2024 в 14:45:

Цитата:
Дядя Миша писал:
Я вот перешёл на 2005-ю студию, так эта зараза через два дня работы просто перестала выполнять фазу Post Build.

Скорее всего непредусмотренный эффект от работы под 10-кой, ну или что у тебя сейчас стоит.


Отправлено Дядя Миша 12-03-2024 в 09:02:

Цитата:
Crystallize писал:
Скорее всего непредусмотренный эффект от работы под 10-кой, ну или что у тебя сейчас стоит.

На XP это началось. Какой непредусмотренный эффект?

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 14-03-2024 в 10:41:

Цитата:
Дядя Миша писал:
Странно. Не приходилось с таким сталкиваться. Это любой проект так?

Там проблема конкретно с сохранением исходника. Он не может этого сделать видимо. При том что смарт wmic пишет что состояние диска ок.

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


Отправлено Дядя Миша 14-03-2024 в 11:26:

Я уже не помню что там в квейке. Сам ковыряет и меня спрашивает

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Crystallize 15-03-2024 в 04:31:

Можно ли маппать под HL в каком-нибудь радианте? Чтобы вадники открывал и текстуры показывал? Volatile-Radiant тот же?

Мне просто нравится что в радианте не надо край браша мышкой ловить.
Вот это я нашел https://hlfx.ru/forum/showthread.php?s=&threadid=3717 но про текстуры там не сказано.


Отправлено hgrunt_2020 09-04-2024 в 08:02:

VGUI и Кириллица

У вгуи на клиенте есть SchemeManager, который способен грузить шрифты из винды, что он собственно и делает, но при появлении в тексте кириллицы всё идёт к чертям, и такое ощущение что при загрузке шрифта кириллица просто не грузится.

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено hgrunt_2020 10-04-2024 в 21:11:

Со шрифтами я разобрался и кириллица есть, но теперь другая проблема: буквы наезжают на буквы

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено Crystallize 11-04-2024 в 05:00:

hgrunt_2020 Прочитал "Продажа" как "Подска>ка"


Отправлено Дядя Миша 11-04-2024 в 06:00:

hgrunt_2020 для русского языка кернинг нормально не работает.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено hgrunt_2020 11-04-2024 в 12:05:

Дядя Миша если он не работает, то что тогда делать?

__________________
И главное, Артём, помни: не ешь желтый снег!


Отправлено Дядя Миша 11-04-2024 в 12:11:

Ничего там не сделаешь. Не юзать VGUI, например. Или поискать кастомную библиотеку VGUI, кажется ребята из FWGS такую делали.

__________________
My Projects: download page

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

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Временная зона GMT. Текущее время 14:18. Страницы (2): « 1 [2]
Показать все 3892 сообщений этой темы на одной странице

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