HLFX.Ru Forum Страницы (56): « Первая ... « 25 26 27 28 [29] 30 31 32 33 » ... Последняя »
Показать все 832 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- XashXT (https://hlfx.ru/forum/forumdisplay.php?forumid=30)
-- XashXT/3D [Вопросы и ответы] (https://hlfx.ru/forum/showthread.php?threadid=3689)


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

scr_conspeed

Добавлено 04-03-2021 в 20:03:

Вообще что мешает набрать в консоли makehelp и ознакомиться с авто-документацией?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 08-03-2021 в 19:24:

Такая проблема у меня.
В общем сделал я "оружие" - ставить турели monster_sentry. На основную атаку нажимаешь и перед игроком спавнится дружественная турель. Дело в том, что если заспавнить турель, сохраниться и загрузиться - она исчезнет. Спавню таким образом - это код Primary attack:

C++ Source Code:
CBaseMonster *pSentry = (CBaseMonster*)Create( "monster_sentry", TurretSpawnPosition, g_vecZero, m_pPlayer->edict() );
pSentry->m_iClass = CLASS_PLAYER_ALLY;

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

РАЗОБРАЛСЯ

Из-за этого не сохранялось.
C++ Source Code:
pSentry->pev->classname = MAKE_STRING("_playersentry");


Оказывается надо было прописать у турели
C++ Source Code:
LINK_ENTITY_TO_CLASS( _playersentry, CSentry );

И да, подмена класса энтити мне нужна

__________________
Мой мод на Xash


Отправлено Дядя Миша 09-03-2021 в 06:01:

C++ Source Code:
pSentry->pev->classname = MAKE_STRING("_playersentry")

А это еще откуда?

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 09-03-2021 в 11:53:

Цитата:
Дядя Миша писал:
C++ Source Code:
pSentry->pev->classname = MAKE_STRING("_playersentry")

А это еще откуда?

Это мое. Я ж говорю, сделал турели, и мне надо было чтобы у них "энтитянейм" поменялся с monster_sentry на ту, что мне надо. Кто ж знал, что нельзя менять на что попало, а только на то, что есть в link_entity_to_class.

__________________
Мой мод на Xash


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

Восстановление энтить происходит по их имени. Но у одной энтити конечно может быть несколько имён. Только ты неправильно сделал.

Ты просто создавай

C++ Source Code:
CBaseMonster *pSentry = (CBaseMonster*)Create( "_playersentry", TurretSpawnPosition, g_vecZero, m_pPlayer->edict() );


а вот эту пакость
C++ Source Code:
pSentry->pev->classname = MAKE_STRING("_playersentry");

выброси. Потому что иначе у тебя все туррели поменяют имя на _playersenrty, опять будешь жаловаться, что что-то работать перестало.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 09-03-2021 в 19:14:

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

Добавлено 09-03-2021 в 21:34:

Цитата:
Ku2zoff писал:
Я заинтересовался, попозже сегодня сам проверю опфор на предмет вылета. И напишу себе такой шок-эффект, пригодится для чего-нибудь.

Ku2zoff, если есть возможность, проверь такой баг с этой прожектилей. Еле отловил его.
Задал солдату очень маленькую скорость прожектили. Так вот, когда солдата разносит в клочья или труп исчезает (то есть энтитя удалена из мира), а прожектиля все еще летит - то когда она коснется чего-либо, будет вылет.
Починилось вот так:
В класс шока пишем
C++ Source Code:
EHANDLE m_hOwner;

В спаун шока пишем
C++ Source Code:
m_hOwner = Instance( pev->owner );

Во FlyThink закинул постоянную проверку:
C++ Source Code:
if( m_hOwner == NULL )
  pev->owner = NULL;

И все - вылеты приекратились. Вроде бы понятно, что к чему тут, но этот солдат так же пуляется другой энтитей (которую я причем сам делал), у которой owner не обнуляется, при этом даже без солдата никаких вылетов нет. Хотя EHANLDE и Instance я прописал там. От греха подальше закинул проверку на овнера и в свою энтитю, черт ее знает.

P.S. в опфоре не получилось проверить. Прожектиля летит слишком быстро. Пытался разорвать шок-трупера, пока летит прожектиля. Либо там этого бага нет, либо я так и не смог попасть в тайминг.

Добавлено 09-03-2021 в 22:14:

Странное что-то. Ксаш вылетает, когда солдат стреляет шок-энтитей. Но только тогда, когда выставлен параметр -dev. Без него вылета нет. Таких приколов я еще не видел.

__________________
Мой мод на Xash


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

Цитата:
Aynekko писал:
Странное что-то. Ксаш вылетает, когда солдат стреляет шок-энтитей. Но только тогда, когда выставлен параметр -dev. Без него вылета нет. Таких приколов я еще не видел.

Загадка разгадана. Если вкратце, вылет был из-за этого:
C++ Source Code:
if (m_pSprite)
  m_pSprite->pev->frame++;

А надо было вот так сделать - обнулять кадры:
C++ Source Code:
1
if (m_pSprite)
2
{
3
  if(m_pSprite->pev->frame > 9)
4
    m_pSprite->pev->frame = 0;
5
  m_pSprite->pev->frame++;
6
}

Причем если выставить "> 11", то будет вылет, т.к. в спрайте 11 кадров. 10 не стал, поставил 9. Было бы удобно конечно брать инфу о кадрах из спрайта, но я не знаю пока как.

А дальше еще интереснее. Спрайт создается как
C++ Source Code:
m_pSprite = CSprite::SpriteCreate( "sprites/shock.spr", GetAbsOrigin(), TRUE );
m_pSprite->SetAttachment( edict(), 0 );

И если оставить неправильный код во FlyThink
C++ Source Code:
if (m_pSprite)
  m_pSprite->pev->frame++;

То ксаш в режиме -dev будет сыпать в консоль ошибками вида "Warning: R_GetSpriteFrame: no such frame 11 (sprites/shock.spr)" (оттуда и узнал про ошибку).
А теперь к спауну спрайта добавляем код
C++ Source Code:
m_pSprite->pev->scale = 0.6;
m_pSprite->SetTransparency( kRenderTransAdd, 255, 0, 50, 150, kRenderFxNoDissipation );

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

__________________
Мой мод на Xash


Отправлено Ku2zoff 11-03-2021 в 08:11:

Цитата:
Aynekko писал:
if (m_pSprite)
__m_pSprite->pev->frame++;

Он вообще должен сам анимироваться... m_pSprite->SetThink(&CSprite::AnimateUntilDead), по-моему. Вручную прибавлять кадры - это какой-то костыль.


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

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Aynekko 11-03-2021 в 14:11:

Цитата:
Ku2zoff писал:
Он вообще должен сам анимироваться... m_pSprite->SetThink(&CSprite::AnimateUntilDead)

Спасибо, не знал про такое. Но, почему-то не работает. Убрал свое условие и поставил твою строчку в createeffects
C++ Source Code:
1
if( !m_pSprite )
2
  m_pSprite = CSprite::SpriteCreate( "sprites/shock.spr", GetAbsOrigin(), TRUE );
3
 
4
if( m_pSprite )
5
  m_pSprite->SetThink(&CSprite::AnimateUntilDead);

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


Ну и еще баг нашел. После выстрела летящая прожектиля несолидная для игрока - сквозь нее ходишь. Сохранился, загрузился. И тут она уже бьет игрока и уничтожается. Интересно…)
Странно, выставил алерт, так вот после загрузки сохранения мое условие во flythink активируется.
C++ Source Code:
if( m_hOwner == NULL )
  pev->owner = NULL;

Теряется овнер почему-то.
UPDATE: нашелся овнер. Не думал, что надо сохранять его
C++ Source Code:
DEFINE_FIELD( m_hOwner, FIELD_EHANDLE ),

__________________
Мой мод на Xash


Отправлено Дядя Миша 11-03-2021 в 18:09:

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

__________________
My Projects: download page

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

Цитата:

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


Отправлено Casperx69x 25-03-2021 в 11:58:

Доброго времени суток. Я таки опять с вопросами.

При добавлении травы, можно редачить ее свойства, но вот что значит последняя цифра в столбике в grassinfo.txt?

Все еще озадачен вопросом gib-сов. У меня есть катсцена, где взрывается здание, и вот нужно у func_breakable увеличить время gib-сов до полного растворения, чтоб это не так убого выглядело. Где это посмотреть в коде?

в документации на сайте указано, что можно указать направление и скорость вращения скайбокса, если указать все значения, ничего не меняется. Это вырезали в последней версии? Мой косяк? Если есть в старых версиях, подскажите в какой пжлст.

В ксаше есть ограничение на количество зеркал? Почему-то при добавлении их больше одного, фпс падает до пары кадров (Хотел намутить отражения в окнах, внутри дома, добавил окно и просто капец)

В func_landscape есть какие-то настройки в редакторе, кроме zhlt_landscape, zhlt_texturestep, zhlt_maxextent?

В последней версии ксаша и ксашнт, точно работают лоды? Делал по инструкции с добавлением в сами модели, и что-то ничего не пашет.

Какие есть еще возможности движка, которые не указаны в документации? Просто имхо, про текстуры ландшафта нет инфы, кусок инфы на кмс и все, так же про func_landscape. Если есть доп инфа, можно в лс пожалуйста

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


Отправлено Aynekko 25-03-2021 в 12:10:

Цитата:
Casperx69x писал:
func_breakable увеличить время gib-сов до полного растворения, чтоб это не так убого выглядело. Где это посмотреть в коде?

В CBreakable::Die есть WRITE_BYTE(25) - duration 2.5 seconds - это не оно?
Цитата:
Casperx69x писал:
Почему-то при добавлении их больше одного, фпс падает до пары кадров (Хотел намутить отражения в окнах, внутри дома, добавил окно и просто капец)

Одно зеркало уже по сути тупо умножает еполи и вполи на 2. Про 2 зеркала рядом я вообще молчу...из-за этого пришлось отказаться от них
Цитата:
Casperx69x писал:
можно указать направление и скорость вращения скайбокса

Интересная фича, это 2д или 3д? 3д можно парентом прикрепить к ротатингу

__________________
Мой мод на Xash


Отправлено Casperx69x 25-03-2021 в 12:26:

Aynekko я может туплю, но вот вот тут про скайбокс https://clck.ru/TufN7 (извиняюсь за сокращатель ссылок)

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


Отправлено Дядя Миша 25-03-2021 в 12:31:

Цитата:
Casperx69x писал:
но вот что значит последняя цифра в столбике в grassinfo.txt?

Random Seed. База для генератора рандомной расстановки травы.
Трава ставится случайно, но каждый раз одинаково. Вот это число позволяет поиграться со случайностью.

Цитата:
Casperx69x писал:
Это вырезали в последней версии?

да вырезали. Для 3д неба это не так актуально, можно сделать ротатаблей.

Цитата:
Casperx69x писал:
Почему-то при добавлении их больше одного, фпс падает до пары кадров

какая видеокарта, как зеркала стоят? Друг напротив друга?

Цитата:
Casperx69x писал:
Делал по инструкции с добавлением в сами модели, и что-то ничего не пашет.

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

__________________
My Projects: download page

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

Цитата:

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


Временная зона GMT. Текущее время 04:37. Страницы (56): « Первая ... « 25 26 27 28 [29] 30 31 32 33 » ... Последняя »
Показать все 832 сообщений этой темы на одной странице

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