Такая проблема у меня.
В общем сделал я "оружие" - ставить турели monster_sentry. На основную атаку нажимаешь и перед игроком спавнится дружественная турель. Дело в том, что если заспавнить турель, сохраниться и загрузиться - она исчезнет. Спавню таким образом - это код Primary attack:
До этого кода идет трейс на возможность поставить турель (стена или нпс на пути), после идет отьем "патронов" у игрока и выставление времени следующей атаки, в общем как обычно. Все работает норм, за исключением сейврестора.
Это мое. Я ж говорю, сделал турели, и мне надо было чтобы у них "энтитянейм" поменялся с monster_sentry на ту, что мне надо. Кто ж знал, что нельзя менять на что попало, а только на то, что есть в link_entity_to_class.
Точно, спасибо. Раз я сделал линк, то можно же сразу делать.
Добавлено 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. Без него вылета нет. Таких приколов я еще не видел.
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. Было бы удобно конечно брать инфу о кадрах из спрайта, но я не знаю пока как.
То ксаш в режиме -dev будет сыпать в консоль ошибками вида "Warning: R_GetSpriteFrame: no such frame 11 (sprites/shock.spr)" (оттуда и узнал про ошибку).
А теперь к спауну спрайта добавляем код
И все, ксаш вместо вывода в консоль ошибки о кадрах просто вылетает.
И уже потом, когда я выставил зануление кадров после 9-го, вылеты прекратились, так же как и спам в консоль.
Просто статичный спрайт. Выставил прожектиле совсем маленькую скорость, так что рассмотрел со всех сторон.
Ну и еще баг нашел. После выстрела летящая прожектиля несолидная для игрока - сквозь нее ходишь. Сохранился, загрузился. И тут она уже бьет игрока и уничтожается. Интересно…)
Странно, выставил алерт, так вот после загрузки сохранения мое условие во flythink активируется.
C++ Source Code:
if( m_hOwner == NULL )
pev->owner = NULL;
Теряется овнер почему-то.
UPDATE: нашелся овнер. Не думал, что надо сохранять его
При добавлении травы, можно редачить ее свойства, но вот что значит последняя цифра в столбике в grassinfo.txt?
Все еще озадачен вопросом gib-сов. У меня есть катсцена, где взрывается здание, и вот нужно у func_breakable увеличить время gib-сов до полного растворения, чтоб это не так убого выглядело. Где это посмотреть в коде?
в документации на сайте указано, что можно указать направление и скорость вращения скайбокса, если указать все значения, ничего не меняется. Это вырезали в последней версии? Мой косяк? Если есть в старых версиях, подскажите в какой пжлст.
В ксаше есть ограничение на количество зеркал? Почему-то при добавлении их больше одного, фпс падает до пары кадров (Хотел намутить отражения в окнах, внутри дома, добавил окно и просто капец)
В func_landscape есть какие-то настройки в редакторе, кроме zhlt_landscape, zhlt_texturestep, zhlt_maxextent?
В последней версии ксаша и ксашнт, точно работают лоды? Делал по инструкции с добавлением в сами модели, и что-то ничего не пашет.
Какие есть еще возможности движка, которые не указаны в документации? Просто имхо, про текстуры ландшафта нет инфы, кусок инфы на кмс и все, так же про func_landscape. Если есть доп инфа, можно в лс пожалуйста
и бога ради сделайте пустую карту коробку с env_physbox, где она якобы разрушается от выстрелов и залейте мне в личку. У меня тупо это не работает. Я прям хз,что делать...
Casperx69x писал: func_breakable увеличить время gib-сов до полного растворения, чтоб это не так убого выглядело. Где это посмотреть в коде?
В CBreakable::Die есть WRITE_BYTE(25) - duration 2.5 seconds - это не оно?
Цитата:
Casperx69x писал: Почему-то при добавлении их больше одного, фпс падает до пары кадров (Хотел намутить отражения в окнах, внутри дома, добавил окно и просто капец)
Одно зеркало уже по сути тупо умножает еполи и вполи на 2. Про 2 зеркала рядом я вообще молчу...из-за этого пришлось отказаться от них
Цитата:
Casperx69x писал: можно указать направление и скорость вращения скайбокса
Интересная фича, это 2д или 3д? 3д можно парентом прикрепить к ротатингу
Aynekko я может туплю, но вот вот тут про скайбокс https://clck.ru/TufN7 (извиняюсь за сокращатель ссылок)
Сделай пустую карту коробку с env_physbox, где она якобы разрушается от выстрелов и залей мне в личку. У меня тупо это не работает. Я прям хз,что делать...
Casperx69x писал: но вот что значит последняя цифра в столбике в grassinfo.txt?
Random Seed. База для генератора рандомной расстановки травы.
Трава ставится случайно, но каждый раз одинаково. Вот это число позволяет поиграться со случайностью.
Цитата:
Casperx69x писал: Это вырезали в последней версии?
да вырезали. Для 3д неба это не так актуально, можно сделать ротатаблей.
Цитата:
Casperx69x писал: Почему-то при добавлении их больше одного, фпс падает до пары кадров
какая видеокарта, как зеркала стоят? Друг напротив друга?
Цитата:
Casperx69x писал: Делал по инструкции с добавлением в сами модели, и что-то ничего не пашет.
а как определил, что не пашет? Поиграйся с кваром r_lod_bias, посмотри, будут ли они меняться.