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

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 и последующего подбора пушки деплой будет штатный скорее всего.

__________________
Fight for Peace, Fight for Love


Отправлено 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

__________________
Fight for Peace, Fight for Love


Отправлено 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 в анимации и все будет отлично

__________________
Fight for Peace, Fight for Love


Отправлено 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 если хочется удобно.

__________________
SNMetamorph's Personal Blog
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 мода, там это было реализовано как-то.

__________________
SNMetamorph's Personal Blog
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'


Отправлено Napoleon321 11-05-2024 в 17:05:

Hello, I'm not sure if this is the correct place to ask, so I'll ask here, and this is not the correct place I'll open a thread instead.

I have a mapping question. I'm working on a map where I use few 3d models as props, and I would like those props to cast shadows... Obviously if I use cycler_sprite, the props will be pass trough.. so I have to clip/null them, but my question is what should I use to make them solid and to have the shadows?

I have seen maps that have compiled shadows for the 3d models used as props.

Thanks in advance.

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 11-05-2024 в 17:23:

Napoleon321 custom build version of VHLT by me with shadow casting support: https://hlfx.ru/forum/showthread.php?s=&threadid=5239

__________________
My Projects: download page

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

Цитата:

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


Отправлено Napoleon321 11-05-2024 в 18:05:

That's exactly what I was looking for!
Do you have an example map setup for the prop shadows?

I see it requires a command variable - zhlt_studioshadow 1, however it did nothing for my compile... So I guess I'm missing something...

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 11-05-2024 в 20:19:

Of course you should place map into <modfolder>\maps and make sure what all models that you wish for casting shadow from them is present in folder <modfolder>\models

zhlt_studioshadow 1 should be specified in supposed entity setting.
Probably thats all.

Добавлено 11-05-2024 в 23:19:

PS. check logfile about "Error: FS_Init: couldn't init game directory!\n" or something like. In this case compilation will be run as normal but shadows from studiomodels will be inactive.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Napoleon321 12-05-2024 в 15:16:

Interesting. Thanks for the hints, I still can't get it properly with those tools... I don't have no such error for the game directory.

I should have the .map file in the same location where the game is? That seems strange and counter intuitive, as I would normally put the finished map (.bsp) there and would not want to have all the rest of the compile files there...

Quick question, I'm using GUI to compile the map and not J.A.C.K. workflow itself, could that be the cause of the issue?

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Дядя Миша 12-05-2024 в 15:41:

Цитата:
Napoleon321 писал:
I should have the .map file in the same location where the game is?

Yes

__________________
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-05-2024 в 16:47:

Цитата:
Napoleon321 писал:
Interesting. Thanks for the hints, I still can't get it properly with those tools... I don't have no such error for the game directory.

I should have the .map file in the same location where the game is?

Also try to put compiler executables in the game's root folder, "Half-Life" folder for example, so all map-related resources would be below the compiler in folder hierarchy.

Цитата:
Napoleon321 писал:

I should have the .map file in the same location where the game is? That seems strange and counter intuitive, as I would normally put the finished map (.bsp) there and would not want to have all the rest of the compile files there...

This seems like widespread habit among mappers, is there are tutorial or something out there that teaches this approach?


Отправлено Napoleon321 12-05-2024 в 18:53:

Compiling the .map file while it was in the gamedir folder did the trick.

I'm actually doing mapping since 2003 or 2004, not sure where I picked that one up that it needs to be separate structure, not the mod directory for the compiling on the .map files itself, still the output file does go automatically there, just not all the other junk files... I guess I'll just rewrite some of my scripts to clean up the not needed files after the compile is successful

__________________
FlatLine Arena | Tutorials

If you don't like something, MOD it!


Отправлено Crystallize 03-11-2024 в 16:10:

Цитата:
Crystallize писал:
В фитцквейке нельзя обновить r_refdef.vieworg через VectorAdd. Вот Мастер бы развонялся...


Цитата:
Дядя Миша писал:
Скорее расскажи ему об этом


Всё оказалось ещё интереснее. Сами VectorAdd и VectorCopy не виноваты. Но, в совершенно другой функции которая указана выше в том же файле, и которая даже не вызывается, есть объявление:

vec_t Length2D (vec3_t v);

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

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


Отправлено Дядя Миша 04-11-2024 в 07:35:

Ничего не понял.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 04-11-2024 в 09:47:

Дядя Миша Я говорю, в Си для декларации функции не существует понятия области видимости. Главное чтобы где-то в файле она была. Ее можно объявить в одной функции, а пользоваться ей совсем в другой.


Отправлено Crystallize 04-11-2024 в 15:44:

code:
// // allways dump the first two message, because it may contain leftover inputs // from the last level // if (++cl.movemessages <= 2) return;


Это такой у Кармака trigger_auto )))
Олсо это значит что каждые 655 секунд у нас пропадает инпут на долю секунды?


Отправлено Дядя Миша 04-11-2024 в 15:50:

Цитата:
Crystallize писал:
Ее можно объявить в одной функции, а пользоваться ей совсем в другой.

Так это и в С++ точто так же. Если не использован модификатор static.

Цитата:
Crystallize писал:
Олсо это значит что каждые 655 секунд у нас пропадает инпут на долю секунды?

Вообще-то структура cl зануляется при каждом рестарте уровня. С чего бы пропадать? И почему именно 655 секунд? Как ты получил это число?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Crystallize 04-11-2024 в 16:13:

Цитата:
Дядя Миша писал:
Вообще-то структура cl зануляется при каждом рестарте уровня. С чего бы пропадать? И почему именно 655 секунд? Как ты получил это число?

Перепутал с шортом. Этот счетчик бежит по 100 мессаг в секунду, я поделил 65к на 100.


Отправлено Crystallize 05-11-2024 в 16:08:

Цитата:
Дядя Миша писал:
Так это и в С++ точто так же. Если не использован модификатор static.

Вот как раз такие вещи нужно записывать в категорию преднамеренного вредительства.


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

Цитата:
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 06-11-2024 в 11:58:

Дядя Миша То что внезапно игнорируется концепция области видимости. Нету цельности.


Отправлено Дядя Миша 06-11-2024 в 18:24:

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 07-11-2024 в 13:17:

currentorigin в кваке отстаёт от origin на целый кадр. Снова Мастер moment.

Цитата:
Дядя Миша писал:
Crystallize я боюсь ты её как-то неправильно понял. Модули - это в Делфи.

Я не в курсе про Дельфи и модули.
Я просто жду что правила для переменных будут распространяться также и на остальные части языка. Та самая интуитивная понятность.


Отправлено Дядя Миша 07-11-2024 в 14:41:

Цитата:
Crystallize писал:
Я просто жду что правила для переменных будут распространяться также и на остальные части языка

а кто мешает объявить переменную в одном файле и использовать в другом?

Цитата:
Crystallize писал:
currentorigin в кваке отстаёт от origin на целый кадр

А я ведь писал об этом. Да кто бы читал.

__________________
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-11-2024 в 16:44:

Цитата:
Дядя Миша писал:
а кто мешает объявить переменную в одном файле и использовать в другом?

Никто не мешает, но и проблема совершенно обратная.

Если ты шаришь переменную между функциями, ты сам выносишь её в глобалсы. Если ты шаришь её между файлами, ты ещё и пишешь extern в дальнем файле. Ты сознательно выстраиваешь эту цепочку и если что не так то компилятор сразу орёт про unresolved external.

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


Отправлено Дядя Миша 07-11-2024 в 16:57:

extern - это просто подсказка такая. Оно в любом случае "растекается" как ты изящно выразился, потому что объявлено в глобальном скоупе.
Файлы видимость НЕ ОГРАНИЧИВАЮТ и не ограничивали её вообще никогда.
Видимость ограничивают скоупы. Но можно принудительно ограничить видимость текущим файлом через модификатор static.

То есть ты опять сам себе там что-то нафантазировал.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 07-11-2024 в 21:56:

Цитата:
Дядя Миша писал:
можно принудительно ограничить видимость текущим файлом через модификатор static

Главное не путать этот static со static-переменными в теле функции. Они ваааще про другое.


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

Цитата:
nemyax писал:
Главное не путать этот static со static-переменными в теле функции. Они ваааще про другое.

Абсолютно про то же самое. Ты её таким образом выносишь на ружу.
Кстати в Шоте это тоже работает. Просто скоуп меняется на глобальный, да и всё. Это если с точки зрения компилятора смотреть.

__________________
My Projects: download page

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

Цитата:

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


Отправлено nemyax 08-11-2024 в 08:03:

Цитата:
Дядя Миша писал:
Ты её таким образом выносишь на ружу.

Но видишь её только из объявившей и инициализировавшей её функции.


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

Цитата:
nemyax писал:
Но видишь её только из объявившей и инициализировавшей её функции.

Инициализация технически всё равно в cinit. А вот насчёт видимости - это конечно интересный вопрос.

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 26-12-2024 в 14:23:

Может, кто-нибудь подробно описать логику работы энтити - мульти_манагер, как она работает?

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено Дядя Миша 26-12-2024 в 15:55:

(_-=ZhekA=-_) мне кажется принцип её работы понятен уже из тех параметров, что ты в неё прописываешь.
При активации она создаёт отдельный поток и в нём проверяет прошедшее время. Вот допустим ты задал цели сработать через 4 секунды, значит спустя четыре секунды эта цель будет вызвана и помечена, как вызванная.
Когда все цели будут активированы, поток уничтожится.

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 26-12-2024 в 16:10:

Цитата:
Дядя Миша писал:
При активации она создаёт отдельный поток и в нём проверяет прошедшее время.

Это я не понял, можно этот момент подробнее обьяснить, плиз, что такое поток и как он проверяет время?
Цитата:
Дядя Миша писал:
Вот допустим ты задал цели сработать через 4 секунды, значит спустя четыре секунды эта цель будет вызвана и помечена, как вызванная.

То есть если в нем будет, допустим, 6 целей, то создадутся 6 потоков?

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено Дядя Миша 27-12-2024 в 06:35:

Цитата:
(_-=ZhekA=-_) писал:
Это я не понял, можно этот момент подробнее обьяснить, плиз, что такое поток и как он проверяет время?

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

Цитата:
(_-=ZhekA=-_) писал:
То есть если в нем будет, допустим, 6 целей, то создадутся 6 потоков?

Да нет, одного достаточно. Второй поток может быть создан, если ты активировал мульти_менеджер повторно. В самой халфе для этого как ты помнишь была галка Multi-Threaded.

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 27-12-2024 в 06:49:

Дядя Миша
Если не трудно, то можешь расписать его полную работу, по этапам, что происходит на каждом этапе, а то пока я не особо понимаю, что там у него происходит, когда вызывается мульти_манагер (

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено FiEctro 27-12-2024 в 07:40:

(_-=ZhekA=-_)
Это секвенсер который вызывает по таймеру разные события.

https://twhl.info/wiki/page/Tutorial%3A_Multi_manager

Активируется как и всякие двери по имени.

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


Отправлено Дядя Миша 27-12-2024 в 10:50:

Цитата:
(_-=ZhekA=-_) писал:
а то пока я не особо понимаю, что там у него происходит, когда вызывается мульти_манагер (

Как же ты программируешь если такую элементарную вещь не можешь представить?

__________________
My Projects: download page

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

Цитата:

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


Отправлено (_-=ZhekA=-_) 27-12-2024 в 11:47:

Дядя Миша
Так ты обьясни, что такое поток и что в нем происходит

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено Дядя Миша 27-12-2024 в 14:58:

https://ru.wikipedia.org/wiki/%D0%9...%BD%D0%B8%D1%8F

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 27-12-2024 в 16:30:

Дядя Миша
В 98м процы уже умели в многопочность? Или уже добавили позже?

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


Отправлено XaeroX 27-12-2024 в 17:00:

FiEctro
Многопоточность реализуется в ОС.
Даже на одноядерных процессорах 90х потоки давали выигрыш в скорости за счёт, например, того, что проц не простаивал при внешних операциях, например дисковых.

__________________

xaerox on Vivino


Отправлено Дядя Миша 28-12-2024 в 05:53:

Цитата:
FiEctro писал:
В 98м процы уже умели в многопочность?

многоядерные системы-то были. Несколько физических процессоров.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 28-12-2024 в 06:41:

Цитата:
Дядя Миша писал:
многоядерные системы-то были. Несколько физических процессоров.

Кстати да, были dual-processor motherboards. Но это больше экзотика. Лихие 90-е, на один процессор-то попробуй скопи денег, а тут целых два.

__________________

xaerox on Vivino


Отправлено FiEctro 28-12-2024 в 07:43:

Цитата:
XaeroX писал:
Кстати да, были dual-processor motherboards. Но это больше экзотика. Лихие 90-е, на один процессор-то попробуй скопи денег, а тут целых два.


Тогда и графические станции были с весьма фантастическими характеристиками для домашних компьютеров того времени. Но это очень малосерийные компьютеры.

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


Отправлено Дядя Миша 28-12-2024 в 13:32:

Цитата:
XaeroX писал:
Лихие 90-е, на один процессор-то попробуй скопи денег, а тут целых два.

А у меня же сервак двухпроцовый был, кажется на Intel 440BX. На нём жы hlfx хостился изначально

__________________
My Projects: download page

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

Цитата:

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


Отправлено Camblu_Buildovich 29-12-2024 в 22:51:

Тут вроде обо всем и про всё. Поэтому, думаю, оставлю свой вопрос тут.
Я уже писал, что я сам не настоящий кодер, и что слился даже на попытках собрать стандартный код для модов на сорс до сорса 2013.
Сейчас я пишу пытаюсь писать код на Squirrel в рамках Source Vscript под местный аналог SOHL
И т.к. я не учил си, и прочее - у меня мб платиновый вопрос.
Может где-то есть что-то типа таблицы о том, что можно создавать и делать на сервере, а что на клиенте, и почему именно так а не иначе? Как это все различать?
Например, почему энтити создаются на сервере, а вгуй на клиенте?
Собственно повод к этому вопросу - ответ в дискорде мапбазы:

Цитата:
Yes you need to make entities on the server. The server is in charge of all gameplay and logic, the client just does visuals and UI. There are some clientside-only entities that you could conceivably have an API to spawn, but those are all things like gibs, particles etc - temporary visual effects with no functionality.

__________________
В детстве был благовоспитанным мальчиком, но начал играть в орлянку, связался с Ксероксом и Дядей Мишей и покатился… Характер мягкий. Не женат.


Отправлено Ku2zoff 30-12-2024 в 00:48:

Camblu_Buildovich если бы ты кодил под первую кваку, то знал бы, что изначально не было клиентских энтить в виде именно как привычных нам энтить серверных. Всё, что требовало упаковки в сейв, создавалось на сервере. А всё временное создавалось мессагами с сервера на клиент. Партикли, спрайты, звуки. Пусть более знающие меня поправят, если я ошибся. Это ответ на твой вопрос как это различать. Однако, в хл2 есть клиентский сейв. И в хл1 его можно сделать, я с помощью одного товарища научился сохранять спрайтовые декали из мода Invasion.
Почему так и не иначе? Нужно изучить API движка, какие функции предоставляет сервер, а какие клиент. Исходя из своих потребностей делать одни объекты на серверной, а другие на клиентской стороне.
Тебе в цитате дан ответ: сервер - логика и физика, геймплей, клиент - визуал. Никогда не забывай о мультиплеере: всё, что создаётся на клиенте, видит только локальный игрок, другие игроки об этом понятия не имеют.


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

Camblu_Buildovich если ты не кодер, может тебе вообще не трогать соурс? Он же сложный.


Отправлено FiEctro 30-12-2024 в 09:32:

Цитата:
Crystallize писал:
Camblu_Buildovich если ты не кодер, может тебе вообще не трогать соурс? Он же сложный.


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

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


Отправлено Дядя Миша 30-12-2024 в 15:03:

Цитата:
Camblu_Buildovich писала:
Может где-то есть что-то типа таблицы о том, что можно создавать и делать на сервере, а что на клиенте, и почему именно так а не иначе?

Сервер - это общее для всех игроков, там находится мир. Клиент - это игрок, подключенный к миру. То что на клиенте - существует только для него.
Зачем иметь вгуй на сервере? Это твоё персональное меню.

Цитата:
Ku2zoff писал:
Однако, в хл2 есть клиентский сейв

Да и в хл1 тоже есть. Там декали хранятся. Да зачастую нет смысла сохранять те же партиклы, с временем жизни 0.1 секунды, ну вот зачем?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Camblu_Buildovich 30-12-2024 в 21:10:

Цитата:
Ku2zoff писал:
Camblu_Buildovich если ты жыл возле меня ты получил паморде

Я не хотел бы сильно связываться с хл1, и если честно, что там меня не сильно интересует, хотя ты затронул пару животрепещущих меня вопросов.
Цитата:
Ku2zoff писал:
Нужно изучить API движка, какие функции предоставляет сервер, а какие клиент.

Проблема в том, что они на си/плюсах/завернутых в плюсах си. Мне сложно такое читать. Может в будущем смогу, но сейчас нет.
Цитата:
Ku2zoff писал:
ебе в цитате дан ответ: сервер - логика и физика, геймплей, клиент - визуал

А почему именно так? Почему все сразу не строится сервере?
Цитата:
Ku2zoff писал:
Никогда не забывай о мультиплеере

Для чтения сырцов правило хорошее, но мне оно слава б-гу не грозит.
Цитата:
Crystallize писал:
Camblu_Buildovich если ты не автомеханик - зачем тебе водить? Автомобили же сложные

Цитата:
Crystallize писал:
Camblu_Buildovich если ты не строитель - зачем тебе жить в доме? Строительство же сложное

Ну ты понел. Я не считаю себя кодером, ибо кодю бегло, и не на нативных для сорса ЯП. Считай - я не ДМ, не Ксер, не Кутузов, не Айнекко, и даже не Мастер.
Вообще я связался с вскриптом только потому что это позволяет:
1)Вызывать полноценный вгуй без кода
2)заменить примерно 20-30 энтить логики на 1 скрипт, где они будут создаваться и удаляться налиту.
Цитата:
Дядя Миша писал:
Зачем иметь вгуй на сервере? Это твоё персональное меню

Вот мне тоже не понятно такое разделение. Я не отрицаю того, что я тупенький в силу своего очень скромного опыта, и что все эти вопросы обсуждались еще в 2001-м году на хл.ру, а затем на хлфх.ру году так в 2005-м, но:
Почему бы не сделать - все есть сервер, а на клиент отправляются уже результаты.
Вот к примеру, ты говоришь, что вгуй для клиента, ибо это то что рисуется каждому игроку. А как тогда в каэсиках и прочих tf2 рисуется менюшка? Я может чего-то не понимаю, но разве не проще от серверного вгуя передавать на клиента, допустим тот же счет в каэсике, и MOTD - сообщение дня сервера?
Цитата:
FiEctro писал:
сорсовские энтитии позволяют делать довольно многое без кодинга вообще

Вот бы реализовать там полноценный массив

__________________
В детстве был благовоспитанным мальчиком, но начал играть в орлянку, связался с Ксероксом и Дядей Мишей и покатился… Характер мягкий. Не женат.


Отправлено Дядя Миша 31-12-2024 в 08:46:

Цитата:
Camblu_Buildovich писала:
А почему именно так? Почему все сразу не строится сервере?

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

Цитата:
Camblu_Buildovich писала:
Почему бы не сделать - все есть сервер, а на клиент отправляются уже результаты.

Ну правильно, так оно и есть. Вот если взять интернет - разве на сервере есть визуал? Нет, это просто какая-то коробка в стойке и вентиляторами шумит. А ты через браузер (клиентскую программу) подключаешься к серверу и можешь там общаться на Хлфх с Ксероксом или Дядей Мишей например через форум. Так вот в движках всё тожы самое.

Форум-то один, но разные люди одновременно смотрят разные темы. Так же как и на одной карте люди могут находится в разных местах локации. Но карта-то одна и сервер один. Надеюсь теперь понятно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено илья2 12-01-2025 в 10:28:

здравствуйте. Может кто нибудь знает, как активировать оружие Sun of God в моде Tyrian Ground Assault ?

__________________
илья


Отправлено Crystallize 14-03-2025 в 15:37:

Цитата:
Дядя Миша писал:
А я ведь писал об этом. Да кто бы читал.

Где ты писал? Я читаю такие вещи, но не помню.

Кстати, выяснил ещё что currentorigin-previousorigin точнее чем origin-currentorigin (в последнем случае при аутическом беге по кругу персонажа уводит, то же самое с cl.velocity).


Отправлено Дядя Миша 14-03-2025 в 16:25:

Он не точнее. Он просто тебе в данном случае больше подходит.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Alexander Pafos 31-03-2025 в 18:08:

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

__________________
И по программам их узнаете их...

пржект
https://www.moddb.com/games/silent-vilage


Отправлено Дядя Миша 01-04-2025 в 07:03:

Цитата:
Alexander Pafos писал:
как в воспроизвести звук с определенной секунды?

Это через сентенции можно. Там как раз есть параметры,
v - volume
t - timecompress
p - pitch
s - start in percents
e - end in percents

Вот буковка s это то что тебе нужно. Допусти у тебя файл 10 секунд, а ты хочешь начать воспроизведение с пятой секунды. То есть ровно 50 процентов. Вот и пишешь s50 перед твоим файлом в объявлении секвенции или после файла, я не помню уже, путаюсь вечно. Посмотри как устроены оригинальные секвенции. Так же есть консольная команда spk для их воспроизведения и отладки.

__________________
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-04-2025 в 09:45:

Цитата:
Дядя Миша писал:
Это через сентенции можно. Там как раз есть параметры

Кстати да. Очень удобная вещь. Самое на мой взгляд важное то, что прекэшить звуки не надо. Количество сентенций очень большое, в юбилейном обновлении лимит увеличили до 2048.


Отправлено Sigurth 22-04-2025 в 15:25:

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

Не уверен, что такое сработает, но попробовать можно. Просто включи звук с самого начала с громкостью 0 и задай канал CHAN_STREAM (это вроде как не сбрасывает loop-звук в начало если далеко отойти). Затем, когда надо "включить", выставляй громкость 1, когда выключить - 0.
Цитата:
Ku2zoff писал:
прекэшить звуки не надо

На самом деле, звуки вообще прекешить не обязательно. Можно спокойно проигрывать звук на клиенте без прекеша на сервере. Он загрузится на ходу. Прекеш нужен лишь лишь (помимо предзагрузки) для выдачи индекса, чтобы передавать его мессагой с сервера. Иначе с сервера без прекеша звук не проиграть.

__________________
Никогда не поздно сделать мод под хл1


Отправлено Ku2zoff 23-04-2025 в 01:50:

Цитата:
Sigurth писал:
На самом деле, звуки вообще прекешить не обязательно. Можно спокойно проигрывать звук на клиенте без прекеша на сервере. Он загрузится на ходу.

Из-за этого возникают статтеры. Ни один раз такое видел в модах на халфу. Маааленький такой лаг перед проигрыванием звука, когда игра подвисает. Может быть это из-за hdd? У ssd время доступа меньше и скорость чтения выше. Звуки, на самом деле, не так уж много весят, в отличие от текстур. Все звуки можно прекэшить с теперешними объёмами оперативной памяти.


Отправлено Sigurth 23-04-2025 в 05:08:

Цитата:
Ku2zoff писал:
Маааленький такой лаг перед проигрыванием звука

У меня на HDD такое было. Я в свое время таким костылем "увеличил" себе лимит звуков. Можно еще более костыльным костылем предзагрузить такие звуки на клиенте. Где-нибудь в CHud::Init() воспроизвести все необходимые звуки разом с нулевой громкостью и на одном канале. Тогда никаких микрофризов во время игры не будет. Правда сейчас уже не так актуально с новыми лимитами.

А теперь у меня так вообще целая система саундскриптов, как в хл2, все в блокнотике настраивается, и все звуки на клиенте играются. И все это появилось из-за лимита в 512 звуков) А еще из-за того, что конструкции switch/case или if/else, которые выбирают рандомно один звук из нескольких, занимают слишком много места и времени для внесения туда изменений.

То есть вместо какого-нибудь:
C++ Source Code:
1
float flVolume = RANDOM_FLOAT ( 0.25 , 0.75 ) * 0.4;//random volume range
2
switch ( (int)(RANDOM_FLOAT(0,1) * 6) )
3
{
4
  case 0: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark1.wav", flVolume, ATTN_NORM);	break;
5
  case 1: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark2.wav", flVolume, ATTN_NORM);	break;
6
  case 2: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark3.wav", flVolume, ATTN_NORM);	break;
7
  case 3: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark4.wav", flVolume, ATTN_NORM);	break;
8
  case 4: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark5.wav", flVolume, ATTN_NORM);	break;
9
  case 5: EMIT_SOUND(ENT(pev), CHAN_VOICE, "buttons/spark6.wav", flVolume, ATTN_NORM);	break;
10
}


У меня просто:
C++ Source Code:
EmitSound("Spark");


А все параметры в блокнотике в таком виде:

code:
"Spark" { $chan CHAN_VOICE $vol RANDOM( 0.1 0.3 ) "ambient/electro/spark1.wav" "ambient/electro/spark2.wav" "ambient/electro/spark3.wav" "ambient/electro/spark4.wav" "ambient/electro/spark5.wav" "ambient/electro/spark6.wav" "ambient/electro/spark7.wav" "ambient/electro/spark8.wav" }

__________________
Никогда не поздно сделать мод под хл1


Отправлено Дядя Миша 23-04-2025 в 11:38:

Цитата:
Sigurth писал:
А все параметры в блокнотике в таком виде:

у меня для описания эффектов нечто похожее

C++ Source Code:
1
soundDef "ricochet_sound"
2
{
3
  sound		"weapons/ric1.wav"
4
  sound		"weapons/ric2.wav"
5
  sound		"weapons/ric3.wav"
6
  sound		"weapons/ric4.wav"
7
  sound		"weapons/ric5.wav"
8
  volume		"0.7f..0.9f"
9
  channel		"auto"
10
  attenuation	"1.0"
11
  pitch		"90..105"
12
}

Рандом через двойную точку задаётся.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Sigurth 14-05-2025 в 11:15:

Задам наверное очень нубский вопрос. Возможно это тема уже обсуждалась, но честно я не нашел, да и особо не искал. В общем, можно ли что-то где-то подкрутить, чтобы при компиляции карты текстуры с масштабом меньше 1.0 имели так же и меньшее количество лайтмап. Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах. Особенно вырвиглазно смотрится, когда х1.0 текстуры успешно освещаются, а х0.5 детали на них "не дотягиваются" до света. (Пример на скрине: стены х1, вентиляция и коробки х.5)

В общем, можно ли такое просто включить при компиляции (если да - то как), или надо лезть в код компиляторов (если да, то может кто-то уже лазил и поделится результатом)

__________________
Никогда не поздно сделать мод под хл1


Отправлено ZGreen 14-05-2025 в 13:07:

Наверное, тебе поможет параметр -notexscale у hlrad.


Отправлено Дядя Миша 14-05-2025 в 16:09:

Цитата:
Sigurth писал:
Иными словами, чтобы стандартный халфовский фонарик не превращался в лазерную указку на этих текстурах

Разумеется можно, но только для Ксаша и компилировать надо P2ST.

В настройках ворлдспавна указываешь zhlt_worldluxels 2 и готово.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 14-05-2025 в 17:24:

Цитата:
ZGreen писал:
Наверное, тебе поможет параметр -notexscale у hlrad.

ЕМНИП, это работает в обратную сторону, когда текстура не сжата, а растянута. Что, в общем, логично на дату выхода халфы. Подавляющее большинство текстур в халфовских вадах имеют размеры для наложения на игровые объекты в масштабе 1 к 1. Дверь будет правильного размера, ящик тоже, вентиляционная шахта тоже. А вот всякие уличные декорации, типа скал, голой земли и прочего, смотрятся плохо в масштабе 1 к 1, видно, что текстура повторяется. Маппер её растягивает, поворачивает, чтобы выглядело красивее. Сейчас, понятное дело, текстуры более высокого разрешения, вот и вылезла проблема. Для ванильной халфы наверное поможет загрузчик внешних текстур высокого разрешения. А так да, переходить на ксаш.


Отправлено ZGreen 15-05-2025 в 02:31:

Действительно, скомпилировал коробочку с этим параметром и без него, разницы никакой.


Отправлено Sigurth 15-05-2025 в 06:27:

Цитата:
ZGreen писал:
скомпилировал коробочку с этим параметром и без него, разницы никакой

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

__________________
Никогда не поздно сделать мод под хл1


Отправлено Crystallize 15-05-2025 в 07:55:

Цитата:
Дядя Миша писал:
Разумеется можно, но только для Ксаша и компилировать надо P2ST.

Праймом тогда уж, раз в P2ST отваливается рефлективность текстур.


Отправлено ZGreen 15-05-2025 в 13:03:

Цитата:
Sigurth писал:
Да, я с ним уже пытался компилить. Видимо реально придется переходить на ксаш.

Странно, что ключ вообще никакого эффекта не оказывает. Ни на растянутых текстурах, ни при скукоженых.

Добавлено 15-05-2025 в 20:03:

Толи я неправильно понимаю инструкцию, толи не работает.


Отправлено Дядя Миша 15-05-2025 в 14:31:

Цитата:
Crystallize писал:
раз в P2ST отваливается рефлективность текстур.

она там наоборот физически корректная, а не вырвиглазная.

__________________
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-05-2025 в 01:39:

Цитата:
Дядя Миша писал:
она там наоборот физически корректная, а не вырвиглазная.

физичность алгоритма я не оспариваю, но мы ведь находили вот это. Починить я в тот раз по-быстрому не смог.


Отправлено Crystallize 23-06-2025 в 04:57:

Цитата:
Laurie: I think your experience matches a lot of people's. :-) I suck at writing docs, apparently - people didn't really start to use it until I showed one guy (the-middleman) a simple example, and he built a tutorial to explain it to everyone else.

For a start, the locus system is full of poorly named things. It's basically a simple programming language that understands four types of data: entities (LE), positions (LP), vectors (LV) and numbers (LR).

For example, an env_explosion has a field called "Position [LP]". The [LP] tag indicates that this is a locus position, which means there are three options for what to write there:

1) The name of the entity where the explosion should happen.

2) The name of a calc_position entity that will calculate where the explosion should happen.

3) *locus, meaning "the specified entity". When the explosion gets triggered, whatever triggered it also specifies an entity. For example, if your explosion is being triggered by a trigger_once, the specified entity will be whatever just walked into the trigger_once.

When you trigger something yourself, you can override the specified entity by writing a different one in brackets: e.g. if you have an explosion set to trigger at *locus, then you could trigger it by writing "explosion(victim)" instead of just "explosion". (Where victim is the name of an entity).

Ага, значит всё-таки это не мои фантазии что там в одной строке можно было одновременно указать и объект и куда он должен стрелять.


Отправлено Дядя Миша 23-06-2025 в 05:11:

Две трети локусов прекрасно заменяются парент-системой.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FiEctro 24-06-2025 в 06:01:

Не очень понимаю, а откуда Лаури вообще взял эту систему? Там очень интересная логика, неужели он всё сам придумал?

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


Отправлено (_-=ZhekA=-_) 24-06-2025 в 06:39:

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

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено Дядя Миша 24-06-2025 в 18:47:

Цитата:
FiEctro писал:
Там очень интересная логика, неужели он всё сам придумал?

Ну что ты. Конечно же нет, не сам. Где это такое видано, чтобы вдруг простой обычный человек мог сам что-то придумать? Никогда такого не было, это вообще невозможно.

Цитата:
(_-=ZhekA=-_) писал:
А можешь подробно описать\рассказать, что это за локусы такие, что это за система и как она вообще работает?

Я уже и сам толком не помню всех тонкостей. Но в тех версиях спирита, которые делал я, была документация на русском языке. И там всё это подробно описано. Так что скачай на моддб какой-нибудь спирит 1.3 или 1.7 и прочитай.

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 24-06-2025 в 23:27:

Цитата:
FiEctro писал:
Там очень интересная логика, неужели он всё сам придумал?

А ты думал, мы ему на форуме подсказали?

__________________

xaerox on Vivino


Отправлено FiEctro 25-06-2025 в 08:39:

Ну может это ещё где то использовалось?

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


Отправлено Ku2zoff 05-07-2025 в 20:51:

Подскажите мне насчёт одного дела. Делать скалы и имитировать неровные ландшафты (кочки, ямки) в Джеке я научился, это несложно. Дошло дело до туннелей в скалах. Нашёл несколько туторов на ютубе, где разными способами нарезают и вертят торусы. Получается дичь. Поворачиваю сегменты на фиксированный угол, кратный 5 или 15, состыковать нормально не могу, крайние вершины съезжают с сетки. Помогает carve - обрезаются нормально, но после компиляции вылазиет всякое нехорошее, например выборочно пропадают некоторые фейсы. Пробовал и компиляторы от п2 и китайские, результат немного отличается. Есть какая-нибудь хитрость, чтобы не мучиться с этим?


Отправлено Дядя Миша 06-07-2025 в 07:51:

Ku2zoff попробуй от прайма, я им там делал некоторые критичные исправления, чтобы фейсы не пропадали.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 07-07-2025 в 04:47:

Дядя Миша дело в том, что сейчас в очередной раз cкомпилил карту компиляторами от п2 - проблема ушла. Помимо мировых фейсов (которые исчезали рандомно при новой компиляции) была ещё проблема с одной конкретной func_wall (один фейс исчезал всегда стабильно).
Наверное, дело не в компиляторах, а в Джеке: бета в стиме обновилась 3 июля, 4 дня назад, а открывал я его и экспортировал карту последний раз 29 июня. В чейнджлоге Джека от 3 июля есть пункт "Исправлена ошибка: неверная точность координат при экспорте, приводившая к проблемам на больших картах."
Думаю, это оно и есть. Карта больше 8192х8192х8192. И помимо пропадающих фейсов была ещё проблема с невесть откуда взявшимися Bad Surface Extents из-за маленького скейла текстур на нескольких брашах. Последнее я просто посчитал следствием импорта из map файла, т.к. присоединил к недавно сделанной части карты старую (jmf потерялся, остался только map), которую в последний раз открывал в июле 2021.
В общем, буду посмотреть. Если компиляторы от прайма совместимы с оригинальной халфой - попробую их тоже, всё-таки они будут обновляться и правиться в отличие от паранойевских.

Добавлено 07-07-2025 в 11:47:

Что ещё наталкивает на мысль о том, что проблема была в экспорте из редактора, это то, что в одном месте была проблема с коллизией: игрок скользил по полу туннеля вдоль невидимой стенки. Сейчас там можно бегать без проблем. Опять же, я списал это на свою криворукость, поскольку наговнял стыки секций по-быстрому под разными углами, мало ли, что движку в этом не нравится


Отправлено Дядя Миша 07-07-2025 в 06:36:

Старые версии Джека портили .map совершенно точно, я с этим уже сталкивался. Вроде бы визуально в порядке, а компилируешь - там дырки лезут.

__________________
My Projects: download page

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

Цитата:

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


Отправлено SNMetamorph 07-07-2025 в 09:31:

Цитата:
Ku2zoff писал:
В общем, буду посмотреть. Если компиляторы от прайма совместимы с оригинальной халфой - попробую их тоже, всё-таки они будут обновляться и правиться в отличие от паранойевских.

Совместимы, но для всех четырёх компиляторов надо приписать ключ "-compat goldsrc" в батнике. Ну либо в самом хаммере.

Добавлено 07-07-2025 в 13:31:

Цитата:
Ku2zoff писал:
всё-таки они будут обновляться и правиться в отличие от паранойевских

ncuxonaT там какие-то просто сумашедшие улучшения провёл. В дискорде по ссылке в моей подписи можно зайти и подробнее почитать.

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


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

Цитата:
SNMetamorph писал:
ncuxonaT там какие-то просто сумашедшие улучшения провёл

В этот дискорд ещё хрен попадешь. Ну просто выложи сюда скринов.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff 07-07-2025 в 16:04:

Цитата:
SNMetamorph писал:
В дискорде

Нафига вам эти дискорды и телеграмы? Сегодня работает - завтра не работает. Послезавтра вообще кончилось как аська или скайп. Есть же гитхаб и моддб, там и обсуждайте свои работы. Всё от лени современной молодёжи, не хотят регаться на ресурсах, проще по ссылочке с мобильного перейти.


Отправлено Aynekko 07-07-2025 в 16:51:

Цитата:
Ku2zoff писал:
Нафига вам эти дискорды и телеграмы?

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

__________________
Мой мод на Xash


Отправлено Ku2zoff 07-07-2025 в 19:21:

Aynekko в данный момент дискорд официально заблокирован на территории России и почти ни у кого не работает без плясок с бубном. Комьюнити само себе устроило проблему на ровном месте, не создав популярных дубликатов на других платформах.
Рано или поздно дискорд задушат совсем, и он даже с компа не будет работать. Где тогда будет скапливаться бОльшая часть комьюнити?


Отправлено SNMetamorph 07-07-2025 в 20:28:

Цитата:
Ku2zoff писал:
Комьюнити само себе устроило проблему на ровном месте, не создав популярных дубликатов на других платформах.

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

__________________
SNMetamorph's Personal Blog
Xash3D Modding Discord


Отправлено Crystallize 08-07-2025 в 06:49:

SNMetamorph в телеграме тогдауш


Отправлено Дядя Миша 08-07-2025 в 10:23:

Цитата:
Aynekko писал:
скопилась бОльшая часть Xash-комьюнити

Я бы сказал там в последний год довольно тухло всё.

Добавлено 08-07-2025 в 13:23:

Да и в целом - каких-то значимых перемен и прорывных новинок я от вас так и не увидел.

__________________
My Projects: download page

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

Цитата:

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


Отправлено FreeSlave 09-07-2025 в 00:30:

Цитата:
Ku2zoff писал:
Нафига вам эти дискорды и телеграмы? Сегодня работает - завтра не работает. Послезавтра вообще кончилось как аська или скайп. Есть же гитхаб и моддб, там и обсуждайте свои работы. Всё от лени современной молодёжи, не хотят регаться на ресурсах, проще по ссылочке с мобильного перейти.

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

Цитата:
Ku2zoff писал:
Где тогда будет скапливаться бОльшая часть комьюнити?

Если большая часть коммьюнити не в России, то она останется там, где сейчас.

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


Отправлено Ku2zoff 09-07-2025 в 02:24:

Цитата:
FreeSlave писал:
То есть дискорды и телеграмы в любой момент могут "отвалиться" (на самом деле с самими сервисами всё в порядке, это вас благожелательная родина может от них отлучить, давайте уж выражаться корректно), а гитхаб и моддб - нет?

Дискорды и телеграмы имеют изначально другую направленность, нежели гитхаб и моддб. Если вторые - площадки для размещения и обсуждения работ, грубо говоря, то первые - мессенджеры/чятики. Соответственно, у первых шире тематический охват и в сотни, если не тысячи раз большая аудитория. И попасть под какие угодно ограничения на чьей угодно родине, дудос атаки, прочие акции, у них шанс более высокий.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.


Добавлено 09-07-2025 в 09:24:

Цитата:
FreeSlave писал:
Если большая часть коммьюнити не в России

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


Отправлено XaeroX 09-07-2025 в 03:26:

Цитата:
FreeSlave писал:
это вас благожелательная родина может от них отлучить

А вас?
Цитата:
FreeSlave писал:
а гитхаб и моддб - нет?

Хлфх.ру точно может отвалиться. Он и на вражеском западе хостится, и CloudFlare стоит - полный набор.
Цитата:
Ku2zoff писал:
Дискорды и телеграмы имеют изначально другую направленность, нежели гитхаб и моддб

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

Добавлено 08-07-2025 в 22:26:

Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 07:02:

Цитата:
Ku2zoff писал:
гитхаб и моддб. Если вторые - площадки для размещения и обсуждения работ

Гитхаб совершенно не подходит для обсуждения имхо, это площадка для размещения кода и репорта туда всяких багов. Явно не моды туда заливать.
Телеграм так себе, система комментариев неудобная - если ты где-то отписал, то потом ты его не найдешь, если только кто-то не ответил на коммент.
А дискорд вполне себе отличная замена форумов.

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

__________________
Мой мод на Xash


Отправлено XaeroX 09-07-2025 в 12:54:

Цитата:
Aynekko писал:
крутые программисты с многолетним стажем жалуются, что у них дискорд не работает

А что ты предлагаешь? Написать свой дискорд?

Добавлено 09-07-2025 в 07:54:

Цитата:
Aynekko писал:
интереса нет уже вариться в ксашевской тусовке, свои дела туда-сюда.

Меня полностью устраивает тусовка на этом форуме.

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 13:48:

Да если желания нет, то и предлагать нечего, ищущий всегда найдет.

__________________
Мой мод на Xash


Отправлено XaeroX 09-07-2025 в 13:53:

Цитата:
Aynekko писал:
ищущий всегда найдет.

Да никто в нашем мире тиктока ничего не ищет. Если что-то не работает, или на настройку надо потратить больше 10 секунд - это удаляется. Я думаешь от хорошей жизни в стим-версии Джека автоконфигуратор делал?

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 13:59:

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

__________________
Мой мод на Xash


Отправлено XaeroX 09-07-2025 в 14:28:

Цитата:
Aynekko писал:
потратить минуту на доступ к дискорду

Я потратил значительно больше, чем минуту. Часа два наверное гуглил, пытался разобраться, что не так.
Цитата:
Aynekko писал:
отрезать себя от многотысячного комьюнити

А ты знаешь, для чего нужно многотысячное комьюнити?
Чтобы в этих чатах съесть всё твоё свободное время. То с одним пообщался, то с другим - глядь, и жизнь прошла.

__________________

xaerox on Vivino


Отправлено Aynekko 09-07-2025 в 14:30:

Цитата:
XaeroX писал:
То с одним пообщался, то с другим - глядь, и жизнь прошла.

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

__________________
Мой мод на Xash


Отправлено Crystallize 09-07-2025 в 20:23:

Цитата:
XaeroX писал:
Меня этот ваш дискорд уже много лет не пускает с десктопа. Не может присоединиться, и всё. Только веб-интерфейс работает, но оно мне надо - постоянно браузер открытым держать?

Дискорд удобнее всего с телефона юзать.

Добавлено 10-07-2025 в 03:23:

Цитата:
XaeroX писал:
миллениал - на форуме

Миллениалы в дискорде сидят и нормально себя чувствуют. Вот уже из Анталии даже стали возвращаться


Отправлено XaeroX 09-07-2025 в 20:31:

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

Неужели удобнее, чем тикток? Не верю.

__________________

xaerox on Vivino


Отправлено Ku2zoff 09-07-2025 в 21:26:

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

Тогда нафиг он нужен для чего-то кроме чятиков и звонков между тиммейтами во время игры? С телефона невозможно нормально печатать большие и средние тексты. В мессенджерах я предпочитаю голосовые сообщения по этой причине, если текста много. А норот вообще использует перевод речи в текст. И тексты получаются такие, что глаза вытекают: ни знаков препинания, ни абзацев. Ещё и куча ошибок.

Добавлено 10-07-2025 в 03:56:

Цитата:
Дядя Миша писал:
Я бы сказал там в последний год довольно тухло всё.

Добавлено 08-07-2025 в 13:23:

Да и в целом - каких-то значимых перемен и прорывных новинок я от вас так и не увидел.

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

Добавлено 10-07-2025 в 04:26:

Зашёл в этот ваш дискорд. С августа прошлого года не был. Посмотрел сервер по моддингу. Вроде норм, читаемо, в отличие от телеграма. Посмотрим, если окончательно не задушат, можно читать там новости.


Отправлено Дядя Миша 10-07-2025 в 06:55:

Цитата:
Aynekko писал:
Тут стоит выбор - отрезать себя от многотысячного комьюнити или потратить минуту на доступ к дискорду

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

Да чего-то прям прорывного там не делается, сидят вяло обсуждают, скрины кидают и всё.

Добавлено 10-07-2025 в 09:55:

Цитата:
Ku2zoff писал:
Видимо потому, что в этом дискорде невозможно развёрнуто что-то изложить

как музыке идти? Ведь вы не так сидите!

__________________
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-07-2025 в 16:32:

Цитата:
XaeroX писал:
Неужели удобнее, чем тикток? Не верю.

При чём тут тикток? Ты пытаешься перевести все в шутку?

Цитата:
Ku2zoff писал:
Тогда нафиг он нужен для чего-то кроме чятиков и звонков между тиммейтами во время игры?

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

Цитата:
Ku2zoff писал:
С телефона невозможно нормально печатать большие и средние тексты.

Я в 2009 написал на кнопочном Сименсе МЕ75 рассказ на 9 килобайт. Это где-то полтора-два экрана компьютерных.


Отправлено XaeroX 10-07-2025 в 22:55:

Цитата:
Crystallize писал:
При чём тут тикток?

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

Цитата:
Crystallize писал:
Ты пытаешься перевести все в шутку?

А ты всерьёз пишешь, что с телефона удобно сидеть в чате?

Цитата:
Crystallize писал:
новостных ссылок из твиттера

ну вот, сам же шутишь непрерывно...

Цитата:
Crystallize писал:
Я в 2009 написал на кнопочном Сименсе МЕ75 рассказ на 9 килобайт.

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

__________________

xaerox on Vivino


Отправлено (_-=ZhekA=-_) 11-07-2025 в 06:26:

Цитата:
XaeroX писал:
Не понимаю, чего вы жалуетесь на шестизначные коды в моде Жэки, это ж не миллион цифр, это пара пустяков запомнить.

Трехзначные, а еще найденные коды запоминаются их можно посмотреть на таб

__________________
Kiss my ass if you don't like my Ford!
------------------------------------------
Game Area51 Update 1
First Person Shooter Released Jul 24, 2017
The game is a 3d shooter with the elements of the quest.

http://button.moddb.com/download/medium/125531.png


Отправлено Crystallize 11-07-2025 в 16:46:

Цитата:
XaeroX писал:
А ты всерьёз пишешь, что с телефона удобно сидеть в чате?

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

Цитата:
XaeroX писал:
ну вот, сам же шутишь непрерывно...

Я не шучу, ты же знаешь я не сильно большой шутник.
Скрытый текст:
Этот текст скрытый. Вы должны оставить хотя бы одно сообщение в теме, чтобы его увидеть.


Отправлено XaeroX 11-07-2025 в 17:38:

Цитата:
Crystallize писал:
Ты сделай удвоение шрифтов для мобильных юзеров форума тоже будет удобно.

Как удвоение шрифтов сделает экранную клавиатуру удобной?
Цитата:
Crystallize писал:
ты же знаешь я не сильно большой шутник

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

__________________

xaerox on Vivino


Отправлено Shapirlic 18-07-2025 в 14:59:

Привет, ребят. У меня технический вопрос
Если я ворую лайтмапы для поверхностей, который обычно рисуются без лайтмап (вода мировая) таким образом:

C++ Source Code:
1
ExtraLightMaps.clear();
2
 
3
for (int i = 0; i < world->numsurfaces; i++)
4
{
5
  if (world->surfaces[i].flags & SURF_DRAWTURB || world->surfaces[i].flags & SURF_DRAWTILED)
6
  {
7
    int smax = (world->surfaces[i].extents[0] >> 4) + 1;
8
    int tmax = (world->surfaces[i].extents[1] >> 4) + 1;
9
 
10
    color24* lightmap = world->surfaces[i].samples;
11
 
12
    GLuint lightmapID = current_ext_texture_id;
13
    current_ext_texture_id++;
14
 
15
    glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
16
 
17
    glGenTextures(1, &lightmapID);
18
    glBindTexture(GL_TEXTURE_2D, lightmapID);
19
 
20
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
21
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
22
    glTexParameteri(GL_TEXTURE_2D, GL_GENERATE_MIPMAP, GL_FALSE);
23
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
24
    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
25
 
26
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB8, smax, tmax, 0, GL_RGB, GL_UNSIGNED_BYTE, lightmap);
27
    glBindTexture(GL_TEXTURE_2D, 0);
28
 
29
    ExtraLightMaps[&world->surfaces[i]] = lightmapID;
30
  }
31
}

Затем рисую эту например мировую воду стандартно как в ксаше (DRAWTURB, r_turbsin, и вся эта штука), то как мне обработать v[5] и v[6] чтобы получить валидные текстурные координаты для лайтмапы?
Методом тыка я обранужил, что умножение v[5] и v[6] на квадрат Пи даёт околопохжие результаты, но множитель явно не этот и ещё нужна обработка при повернутой текстуре.


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

Цитата:
Shapirlic писал:
Если я ворую лайтмапы для поверхностей, который обычно рисуются без лайтмап

А у кого ты воруешь лайтмапы?
лайтмапы знаешь ли уникальны для каждой поверхности, их воровать не имеет смысла, они просто не подойдут, да и всё.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Shapirlic 18-07-2025 в 19:36:

Лайтмапы именно тех сурфоф воды (SURF_DRAWTURB), которые я и буду рисовать. Генерю из world->surfaces[i].samples текстуры, сохраняю их индексы в мапу std::map <msurface_t*, int> чтобы по сурфу потом нужный индекс лайтмапы взять. Только s t координат не могу выдумать для них откуда брать

Лайтмапы то у сурфоф воды, которые потом метятся как DRAWTURB есть в BSP, но двигло ХЛ решило рисовать мировую воду без лайтмапы


Отправлено Shapirlic 19-07-2025 в 15:31:

v[5] v[6] из surf->polys->verts содержат что то похожее на координаты лайтмапы, но их надо как то обработать. На вид они в 9-10 раз меньше чем нужно


Отправлено Дядя Миша вчера в 07:53:

Цитата:
Shapirlic писал:
Лайтмапы именно тех сурфоф воды (SURF_DRAWTURB), которые я и буду рисовать.

ты убедись что компилятор эти лайтмапы рассчитал. Их помоему только мой p2st считает.

Добавлено вчера в 10:53:

C++ Source Code:
1
// for speed reasons
2
  if( !FBitSet( warpface->flags, SURF_DRAWTURB ))
3
  {
4
    // lightmap texture coordinates
5
    s = DotProduct( verts, warpinfo->lmvecs[0] ) + warpinfo->lmvecs[0][3];
6
    s -= warpinfo->lightmapmins[0];
7
    s += warpface->light_s * sample_size;
8
    s += sample_size * 0.5;
9
    s /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->width;
10
 
11
  t = DotProduct( verts, warpinfo->lmvecs[1] ) + warpinfo->lmvecs[1][3];
12
  t -= warpinfo->lightmapmins[1];
13
  t += warpface->light_t * sample_size;
14
  t += sample_size * 0.5;
15
  t /= BLOCK_SIZE * sample_size; //fa->texinfo->texture->height;
16
 
17
  poly->verts[i][5] = s;
18
  poly->verts[i][6] = t;
19
}

Если проставлен DRAWTURB, то ксаш не рассчитывает координаты лайтмапы. Хотя и может, конечно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Ku2zoff вчера в 08:56:

Цитата:
Дядя Миша писал:
ты убедись что компилятор эти лайтмапы рассчитал. Их помоему только мой p2st считает.

У китайца, кажись был какой-то флаг для расчёта лайтмап на стёклах и прочих поверхностях с kRenderTransTexture. Помню, что после компиляции старым zhlt стёкла светились в темноте, будто параметр _minlight не равен нулю. Это оно?

Добавлено вчера в 15:56:

А, нет. У китайца по-моему текстура модифицировалась, и вшивалась прям в бсп. Точно не помню.


Отправлено Shapirlic вчера в 11:11:

Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife. Это легко проверить, если открыть .bsp утилитой BSPGUY.
Lambda_bunker:


Отправлено Shapirlic вчера в 12:02:

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

C++ Source Code:
gl.glMultiTexCoord2fARB(GL_TEXTURE0_ARB, v[5] * 3.f * M_PI, v[6] * 3.f * M_PI);

Но в местах со сложным освещением видно, что лайтмапы плохо стыкуются.
Нужно как то иначе обработать v[5] и v[6], с этим вопросом я сюда и пришёл к вам )


Отправлено Дядя Миша вчера в 16:56:

Цитата:
Ku2zoff писал:
А, нет. У китайца по-моему текстура модифицировалась, и вшивалась прям в бсп. Точно не помню.

Всё верно. Освещение полупрозрачных поверхностей нетривиальная задача, поэтому либо через мультипроходность (как в Quake3), либо через копию экрана (как в Paranoia 2:Savior), либо предумножить лайтмапу на диффузку и сохранить результат в особую диффузку, вкомпиленную прямо внутрь карты и используемую только на этой поверхности (как в VHLT).

Цитата:
Shapirlic писал:
Лайтмапа на мировой воде есть даже в оригинальных картах HalfLife

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Shapirlic вчера в 18:50:

Окай, в ZHLT экономили, оригинальный компилятор и Vluzacn_s_ZHLT на воде лайтмапы делают, у меня вопрос с самого начала по текстурным координатам этих лайтмап. BSPGUY и BSPViewer могут мировую воду рендерить с лайтмапой, я в их сорцах покопался, но так и не понял как они высчитывают текстурные координаты для лайтмап мировой воды. И с этим пришёл к вам, у вас есть идеи или догадки? Как я уже писал выше v[5] и v[6] в verts сурфов воды похожи на текстурные координаты лайтмапы, но деленные на 9-10. Есть догадки какая математика там скрывается?


Временная зона GMT. Текущее время 10:14. Страницы (2): « 1 [2]
Показать все 4008 сообщений этой темы на одной странице

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