000
02.10.2001, 15:27
hausi
|
Zuerst mal Hallo! Ich war früher schon mal hier angemeldet, habe aber meinen Usernamen vergessen ;) Zu meinem Problem: Wenn ein Player stirbt, wird der tote Körper mit der Funktion CopyBodyToQue() oder so änlich zur leiche gemacht. Nun meine Frage: Ich habe keinen Code gefunden, der die Leiche handelt (ist ja eigentlich auch net nötig). Ich will aber, dass ich z.B. wenn jemand über die Leiche drüber läuft, dass bei ihm ein Flag gesetzt wird und er z.B. bei den nächsten 20 Schritten Blutspuren hinterlässt. Oder dass die Leiche nach 10 Minuten zu einem Knochen-Model "mutiert". Wäre froh, wenn mir jemand helfen könnte. Thx... Nachtrag: Der Code ist in der world.cpp um die Zeile 231 und heisst CopyToBodyQue(...);
--
Dieser Beitrag wurde am 02.10.2001 um 16:00 von Superhausi bearbeitet.
|
|
Profil || Suche
|
001
02.10.2001, 16:10
Prefect
|
Nunja, es gibt ja durchaus eine bodyque-Entity, und die mußt du halt entsprechend verändern (z.B. auf SOLID_TRIGGER und dann eine entsprechende Touch()-Funktion).
Hmm... es kann sein, daß bodyque selbst direkt auf CBaseEntity gemappt ist, da bin ich mir nicht so sicher. In dem Fall leite einfach eine Klasse CBodyQue von CBaseEntity ab und ändere das entsprechende LINK_ENTITY_TO_CLASS.
cu, Prefect
--
Widelands - Gemütliche Aufbaustrategie, Free Software Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.
|
|
Profil || Suche
|
002
02.10.2001, 16:13
hausi
|
Danke für die Antwort. Ich werde mal suchen. Falls ich noch ein Problem habe, werde ich mich wieder melden. Immer noch die selben, die schnell antworten. Fehlt nur noch, dass TheTinySteini und Another1 auch antworten... :)
--
|
|
Profil || Suche
|
003
02.10.2001, 16:31
hausi
|
Ich habe alles jetzt mal folgendermassen abgeändert:
// Body queue class here.... It's really just CBaseEntity class CCorpse : public CBaseEntity { public: void InitBodyQue( void ); virtual int ObjectCaps( void ) { return FCAP_DONT_SAVE; } };
LINK_ENTITY_TO_CLASS( bodyque, CCorpse );
void CCorpse::InitBodyQue( void ) { string_t istrClassname = MAKE_STRING("bodyque");
g_pBodyQueueHead = CREATE_NAMED_ENTITY( istrClassname ); entvars_t *pev = VARS(g_pBodyQueueHead); // Reserve 3 more slots for dead bodies for ( int i = 0; i < 3; i++ ) { pev->owner = CREATE_NAMED_ENTITY( istrClassname ); pev = VARS(pev->owner); } pev->owner = g_pBodyQueueHead; }
HL stürzt jedoch ab, sobald eine Leiche entstehen soll. Der Aufruf sieht folgendermassen aus:
CCorpse *bCorpse; bCorpse = GetClassPtr( (CCorpse *)NULL ); bCorpse->InitBodyQue();
Hoffe, ihr findet den Fehler, den ich gemacht habe... Oder habe ich das jetzt falsch verstanden?
--
Dieser Beitrag wurde am 02.10.2001 um 16:33 von Superhausi bearbeitet.
|
|
Profil || Suche
|
004
02.10.2001, 18:43
Basiror
|
spawn() function??? sollte man haben
--
Basiror's Labs Game-Development page
Hifle in form von Tutorials, Artikeln und anderem wird dankbar angenommen
|
|
Profil || Suche
|
005
02.10.2001, 18:58
hausi
|
Uups... Da hab ich wohl hinter ner säule gesessen... Ok. thx
--
|
|
Profil || Suche
|
006
04.10.2001, 00:12
hausi
|
Habs jetzt anders gelöst: Bin heute mittag zufälligerweise auf CDeadHEV gestossen. Dort konnte ich das meiste machen... Danke nochmal für die Hilfe. P.S: Another1: Falls du das liest, meld dich mal. #104988933
--
|
|
Profil || Suche
|