Новые сообщения Участники Правила Поиск
Модератор форума: freeknik, SLAwww, thecre, RealCrazyMan  
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Помощь по SDK для Serious Sam 1.05/1.07
seriously_petr Вторник, 27.03.2012, 20:30 | Сообщение # 1351


Сообщений: 446
Награды: 4
Замечания: 0%
 
SeriousAlexej, Объясни поподробнее что вписывать и куда, я тупой ***** нифига не понимаю.

я понял только что

"труп->GetModelObject()->Synchronize(игрок->GetModelObject()); "
надо вписать после смерти.

oh


SLAwww Вторник, 27.03.2012, 22:29 | Сообщение # 1352


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
SeriousAlexej, по-моему, усложняешь задачу. Есть ведь у CModelObject:
Code
// copy from another object of same class
   void Copy(CModelObject &moOther);

petr_kustov, правильно понял. Только перед этим "труп" надо создать:
Code
CEntityPointer penCorpse = GetWorld()->CreateEntity_t(GetPlacement(), CTFILENAME("Classes\\ModelHolder2.ecl"));

А модель врага спрятать с помощью SwitchToEditorModel();


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
Molodec Среда, 28.03.2012, 10:11 | Сообщение # 1353


Developer
Сообщений: 2430
Награды: 34
Замечания: 0%
 
SLAwww, SeriousAlexej, спасибо за помощь. Попробую :)

seriously_petr Среда, 28.03.2012, 11:24 | Сообщение # 1354


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, Расскажи поподробнее как работает CCastRay и как им пользоваться :D

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

Добавлено (28.03.2012, 11:24)
---------------------------------------------
И как указать на саму ентитю на врага:

penCorpse->GetModelObject()->Synchronize(игрок->GetModelObject());
Сообщение отредактировал petr_kustov - Среда, 28.03.2012, 11:25


SLAwww Среда, 28.03.2012, 20:15 | Сообщение # 1355


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
petr_kustov, ну неужели сложно нажать Find in files и посмотреть CCastRay? Там ведь куча мест, где он используется. Что касается последнего вопроса, если эта строчка находится в коде энтити, которая оставляет за собой труп, то указывать на себя не обязательно, то есть, "игрок->" можно заменить на "this->", либо вообще убрать.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Среда, 28.03.2012, 20:23 | Сообщение # 1356


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww,

Вписал
SwitchToEditorModel();
CEntityPointer penCorpse = GetWorld()->CreateEntity_t(GetPlacement(), CTFILENAME("Classes\\ModelHolder2.ecl"));
penCorpse->GetModelObject()->Copy(GetModelObject());

пишет

E:/Mymod/Sources/EntitiesMP/EnemyBase.es(2784) : error C2664: 'Copy' : cannot convert parameter 1 from 'class CModelObject *' to 'class CModelObject &'
A reference that is not to 'const' cannot be bound to a non-lvalue


SLAwww Среда, 28.03.2012, 20:45 | Сообщение # 1357


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
penCorpse->GetModelObject()->Copy(*GetModelObject());
Забыл указатель разименовать. И не забудь инициализировать труп после создания.
penCorpse->Initialize();


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Среда, 28.03.2012, 22:33 | Сообщение # 1358


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww,
Die(EDeath eDeath)
{
// not alive anymore
SetFlags(GetFlags()&~ENF_ALIVE);

SwitchToEditorModel();
CEntityPointer penCorpse = GetWorld()->CreateEntity_t(GetPlacement(), CTFILENAME("Classes\\ModelHolder2.ecl"));
penCorpse->GetModelObject()->Copy(*GetModelObject());
penCorpse->Initialize();

при убийстве любого врага вылетает игра с такой ошибкой

Прикрепления: 8836254.jpg (39.1 Kb)


SLAwww Среда, 28.03.2012, 22:52 | Сообщение # 1359


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Попробуй Initialize поставить перед копированием модели.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Четверг, 29.03.2012, 17:23 | Сообщение # 1360


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww,

1. Как трупу дать физику

penCorpse->SetPhysicsFlags(EPF_MODEL_CORPSE);
penCorpse->SetCollisionFlags(ECF_CORPSE);

penCorpse->Initialize();

Даёт вылет редактор при Disappear time больше 0

2. Как трупу прописать свои жизни

3. Как у второго(старого трупа) убрать физику (колизию и физик флаги)


SLAwww Четверг, 29.03.2012, 20:35 | Сообщение # 1361


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
1) Меняй флаги после инициализации, а не перед.
2) ((CModelHolder2&)(*m_penCorpse)).m_fHealth = (здоровье) ;
3) SwitchToEditorModel();
Если нужно не прятать саму модель, а только убрать физику, то penCorpse->SetCollisionFlags(ECF_IMMATERIAL);


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
Wynerros Пятница, 30.03.2012, 11:02 | Сообщение # 1362


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
А как запретить некоторые уровни сложности? Или это в СДК сделать нельзя?

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


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
seriously_petr Пятница, 30.03.2012, 12:44 | Сообщение # 1363


Сообщений: 446
Награды: 4
Замечания: 0%
 
MasterST, Попробуй посмотреть как устроена сложность "Ментал". :D

Добавлено (30.03.2012, 12:44)
---------------------------------------------
SLAwww, Почему у трупа не появляется колизия, он как призрак, а у того у которого SwitchToEditorModel(); у него остается физика, и он как невидимое препятсятвие

SLAwww Пятница, 30.03.2012, 18:19 | Сообщение # 1364


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А откуда ты знаешь, чья это коллизия? У тебя ведь труп остаётся как раз на том месте, где находился враг или игрок.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Пятница, 30.03.2012, 19:52 | Сообщение # 1365


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, потомучто у меня 2 трупа(если не нажать 0 чтобы не видить ентити)

тот который невидимый - исчезает по истечении disapper time, а кукла остактся на месте неограниченное время.

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


SLAwww Пятница, 30.03.2012, 21:09 | Сообщение # 1366


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
SetCollisionFlags(ECF_IMMATERIAL) и SetPhysicalFlags(EPF_MODEL_IMMATERIAL) должны делать модель полностью проходимой. Вероятно, ты выставляешь их раньше, чем нужно. Насколько я помню, в конце процедуры Death выставляется ECF_CORPSE, из-за этого, может, и ощущается коллизия.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Пятница, 30.03.2012, 21:30 | Сообщение # 1367


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww,
С этими идиотскими колизиями я разобрался.

Почему при задании кукле физик флагов(Чтобы кукла падала), редактор вылетает с ошибкой памяти.

Code
    penCorpse->GetModelObject()->Copy(*GetModelObject());  
     penCorpse->SetCollisionFlags(ECF_MODEL);

     penCorpse->SetCollisionFlags(ECF_CORPSE);

Или
Code
    penCorpse->SetPhysicsFlags(EPF_MODEL_WALKING);


SLAwww Пятница, 30.03.2012, 22:26 | Сообщение # 1368


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А что, разве без них не вылетает? )

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Пятница, 30.03.2012, 23:57 | Сообщение # 1369


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, Нет, без них все работает без глюков :)
Я не понимаю что такого в этом коде, что это вызывает вылет редактора при смерти монстрика =)

Code
     penCorpse->SetCollisionFlags(ECF_CORPSE);


SLAwww Суббота, 31.03.2012, 00:03 | Сообщение # 1370


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
penCorpse->Initialize() стоит перед этой строчкой?

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Суббота, 31.03.2012, 00:13 | Сообщение # 1371


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, да :D

SLAwww Суббота, 31.03.2012, 00:58 | Сообщение # 1372


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Попробуй SetCollisionFlags(ECF_MODEL_HOLDER)

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Суббота, 31.03.2012, 02:01 | Сообщение # 1373


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAww, я идиот oh

Я по своей невнимательности написал про колижн флаги, а вылет у меня вызывает указание

penCorpse->SetPhysicsFlags(флаги);

если что я указывал после инициализации

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

---------------------------------------------
убей меня на месте ;(
Сообщение отредактировал petr_kustov - Суббота, 31.03.2012, 12:47


SLAwww Суббота, 31.03.2012, 17:14 | Сообщение # 1374


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Некоторые флаги подходят только для наследников CMovableModelEntity. Попробуй EPF_TRANSLATEDBYGRAVITY.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Суббота, 31.03.2012, 20:34 | Сообщение # 1375


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, Спасибо попробую.

И большое спасибо что ты мне помогаешь, я ценю твою помощь, кто-нибудь другой мог бы меня послать и сказать "разбирайся сам" :D

Добавлено (31.03.2012, 20:34)
---------------------------------------------
petr_kustov, Ура сработало, а еще я добавил

penCorpse->SetParent( this);

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

-----

И еще малюсенький вопросик =)

Почему лезет ошибка

E:/Mymod/Sources/EntitiesMP/EnemyBase.es(2902) : error C2039: 'm_fHealth' : is not a member of 'CModelHolder2'
E:\MyMod\Sources\EntitiesMP/ModelHolder2.h(25) : see declaration of 'CModelHolder2'

когда я прописал:
((CModelHolder2&)(*m_penCorpse)).m_fHealth = (30.0f);
Сообщение отредактировал petr_kustov - Суббота, 31.03.2012, 20:37


SLAwww Суббота, 31.03.2012, 21:04 | Сообщение # 1376


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Потому что у CModelHolder2 нет такого параметра. ) Это я затупил, модели обязательно нужен CModelDestruction, чтобы её можно было разрушить. Ну или можно вписать код непосредственно в CModelHolder2, чтобы он был разрушаем сам по себе. Но лучше добавить в CEnemyBase новый CEntityPointer-параметр, который надо будет нацеливать на какой-нибудь CModelDestruction, например
Code
211 CEntityPointer m_penCorpseDestruction "ModelDestruction for corpse",

А затем, после инициализации трупа, направить его на этот ModelDestruction:
Code
((CModelHolder2&)(*penCorpse)).m_penDestruction=m_penCorpseDestruction;

Таким образом, в СЕДе на уровень нужно будет добавить ModelDestruction (один для всех врагов, либо по одному на каждого, либо ещё как-то вперемешку), настроить его и нацелить на него параметр ModelDestruction for corpse у врагов.


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Суббота, 31.03.2012, 23:34 | Сообщение # 1377


Сообщений: 446
Награды: 4
Замечания: 0%
 
А можно обойтись без ентить в редакторе и создать деструктор программно? просто мне очень не хочется чтобы враги были связаны с ентитями в седе

Ведь Molodec както реализовал свои жизни у трупов

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

Добавлено (31.03.2012, 23:34)
---------------------------------------------
Может быть как-то моюифицировать модель-холдер2 чтобы у него можно было задать жизни без деструктора, создать базовую примитивную систему разрушения

а чтобы были дебрисы у модели - использовать pencorpse->gethealth(); и простой оператор - если значение равно нулю то включаем бловап = ))

SLAwww Воскресенье, 01.04.2012, 00:02 | Сообщение # 1378


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Ну конечно, можно. Для CEnemyBase можно вообще не создавать никаких дополнительных моделей, а просто увеличить время исчезновения врага, а в CModelHolder2 можно дописать код для разрушения. Просто метод с созданием модели более универсален - он подходит и для игроков.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
seriously_petr Воскресенье, 01.04.2012, 00:19 | Сообщение # 1379


Сообщений: 446
Награды: 4
Замечания: 0%
 
А если используя метод с созданием модели, что надо дописать в модель-холдер2 чтобы сделать базовую систему разрушения без деструктора. По-моему это самый оптимальный метод.

Пусть если у модели не выбран деструктор и заданы стартовые жизни больше нуля - система включается(это я знаю как сделать - банальный if-оператор)


SLAwww Воскресенье, 01.04.2012, 00:39 | Сообщение # 1380


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А давай ты посмотришь код CModelDestruction, и сам перенесёшь в CModelHolder2 всё нужное? =Р

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
Форум » Serious Sam » Серьёзное редактирование » Помощь по SDK для Serious Sam 1.05/1.07 (Вопросы по комплекту средств разработки для Serious Sam 1.)
Поиск:

Статистика