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)
Отправлено Дядя Миша 11-07-2020 в 18:47:
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 11-07-2020 в 18:54:
Неа. Скопировал bsp прямо из стимовской халфы, где гранты работают. То же самое.
Отправлено Aynekko 12-07-2020 в 07:52:
Нашел в basemonster вот такое:
C++ Source Code:
// NOTE: we use array to store weaponbits more than 32 |
// please use HasWeapon, AddWeapon and ClearWeapon functions |
byte m_iWeapons[MAX_WEAPON_BYTES]; // monster weapon flags |
А еще в weapons.h стоит MAX_WEAPONS 64 (не 128), было 32, сравнил файлы.
Кто-нибудь знает, как этих грантов вернуть как было?(
На прошлый ксаш мод возвращаться теперь уже совсем не вариант…
Добавлено 12-07-2020 в 10:52:
Карочи, сделал наитупейший хак:
C++ Source Code:
3 | switch( RANDOM_LONG( 0, 3 )) |
6 | pev->weapons = HGRUNT_9MMAR | HGRUNT_HANDGRENADE; |
9 | pev->weapons = HGRUNT_SHOTGUN; |
12 | pev->weapons = HGRUNT_9MMAR | HGRUNT_GRENADELAUNCHER; |
15 | pev->weapons = HGRUNT_SHOTGUN | HGRUNT_HANDGRENADE; |
В сломанном гранте теперь всегда weapons 0, поэтому он хватается за него. Поэтому сделал, что при нуле рандомизер идет. Только задать конкретную пушку в таком случае не выйдет. Плюс в том, что теперь при загрузке гранта он выбирается рандомно.
Пытаюсь прикрутить конкретную пушку, если она задана в энтити, но почему-то не работает:
C++ Source Code:
1 | if (STRING(pev->weapons), "shotgun") |
3 | pev->weapons = HGRUNT_SHOTGUN; |
Отправлено Дядя Миша 12-07-2020 в 08:40:
Aynekko я тебя нехочу расстраивать, но pev->weapons в новом ксаш-моде не используется.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Aynekko 12-07-2020 в 08:41:
Тогда объясни, почему у меня работает мое условие с рандомизером? Ксаш-мод у меня последний.
Отправлено Дядя Миша 12-07-2020 в 11:11:
Доберусь - посмотрю. На след. неделе напомни мне.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено Crystallize 13-07-2020 в 02:30:
Дядя Миша если ты ещё и scripted_trainsequence починишь то мне ради этого и задонатить не жалко.
Добавлено 13-07-2020 в 09:30:
я сейчас 0.65 запустил, он уже там был сломан.
Отправлено Дядя Миша 13-07-2020 в 12: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 13-07-2020 в 15:17:
Дядя Миша я раньше с исправлением вылетов дела не имел, это ж не на алерты в консоли смотреть. Там что, расставляешь брейкпоинты, смотришь между какими происходит вылет, и постепенно передвигаешь их локализуя проблему? Или при вылете чота генерируется что можно загрузить в студию напосмотреть и оно укажет место в коде?
К тому же у тебя там не просто энтити, они живут в экосистеме из парентов, префиксов и мастеров, если я чота сломаю мне много лет с этим иметь дело до тех пор пока я либо пофиксю либо сменю движок.
Мне уже друган говорит, хватит дрочить, слабай как-то, сделай за пару недель или за лето один уровень со всем чему ты научился.
Отправлено Дядя Миша 13-07-2020 в 16:54:
Цитата:
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 13-07-2020 в 18:50:
Дядя Миша По "отмене" не срабатывало, я аттачнулся к процессу, указывает на cbase.h:
C++ Source Code:
const char* GetTargetname() { return STRING( pev->targetname ); } |
Добавлено 14-07-2020 в 01:34:
Возможно дело в сочетании с ALERT at_aiconsole потому что вылет происходит только при запуске с параметром -dev, с цифрой или без.
Добавлено 14-07-2020 в 01:50:
Внезапно, просто один только поезд, отказывается ездить если игра запущена без -dev.
Отправлено Crystallize 15-07-2020 в 18:42:
Или последнее-это фича чтобы люди вне dev-режима не ломали игру командой fire?
Короче фикс видимо такой:
C++ Source Code:
ALERT(at_error, "Found no path to reach destination! (train has t %s, m %s; dest is %s)\n", |
pTrain->GetTarget(), pTrain->GetMessage(), /*m_pDestination->*/GetTargetname( )); |
Добавлено 16-07-2020 в 01:42:
А ещё в документации ошибка, бит ( 3 ) это флаг 8, а там указан флаг 4.
Отправлено Дядя Миша 15-07-2020 в 18:45:
Цитата:
Crystallize писал:
Короче фикс видимо такой:
Скорее уж такой:
C++ Source Code:
ALERT(at_error, "Found no path to reach destination! (train has t %s, m %s; dest is %s)\n", |
pTrain->GetTarget(), pTrain->GetMessage(), m_pDestination ? m_pDestination->GetTargetname( ) : "" ); |
Впрочем я ничего не могу сказать по поводу трейн-сиквенса. Кажется я его скопипастил из спирита по чьей-то просьбе, не проверяя ничего.
Точнее была у меня одна карта с ним, лифто типо. Вот её проверил, рабоатет вроде, на том и успокоился.__________________
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-07-2020 в 14:51:
Похожая ситуация была с флагом "директ":
C++ Source Code:
1 | if( FBitSet( pev->spawnflags, SF_TRAINSEQ_DIRECT )) |
4 | ALERT( at_error, "scripted_trainsequence %s for %s \"%s\": flag 4 require destination object\n", |
5 | GetTargetname(), pEnt->GetClassname(), pEnt->GetTargetname( )); |
7 | pTrain->pev->target = m_pDestination->pev->targetname; |
Отправлено Crystallize 17-07-2020 в 14:03:
Уходим от tracktrain обратно на train, по сути к той схеме которую я оставил в 2017 потому что мне казалось неопрятным дублировать цепочку треков/корнеров. Теперь я понимаю что энумератор кварка заставит меня юзать 4-5 реле вместо 1 менеджера и это наплодит мне энтить гораздо хуже. 
Как телепортировать энтити в ксаше? Т.е. игрок трипанулся об лазер и где-то здесь мне надо заспавнить обычный трейн. На него я надену танк, на танк-два триггера с CHECKANGLES. Танку я объясню направление "вперед".