.| Autor | Beitrag |
|---|---|
|
000 04.12.2001, 18:41 Bobby |
Wie erstelle ich eigene Entities? Kann mir vielleich jemand erklären, was die einzelnen Funktionen und includes machen? Falls es das schon gibt bitte url posten. Danke schon mal im voraus. --Dieser Beitrag wurde am 04.12.2001 um 18:41 von Bobby bearbeitet. |
|
Profil || Suche |
|
001 04.12.2001, 19:34 Retro |
Guck dir mal die bestehenden Entities an, z.B. jenes, von dem du dein neues Entity ableiten willst. Nun c&p's du den gesamten Entity-Code in eine neue .cpp und änderst den Code nach deinen Vorstellungen. --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
002 04.12.2001, 19:36 SeconD |
Also ich verstehe das so das dieses Entity dazu dient verschiedene Models darzustellen also z.B. eine Flagge einen Baum oder so. Das kann der Mapper aber selber definieren was das Entity darstellen soll/kann. Verbessert mich wenn das falsch ist :). --Bier macht dick, Schnaps macht krank ich bin Kiffer, Gott sei Dank.
|
|
Profil || Suche |
|
003 04.12.2001, 20:39 Bobby |
Ich verstehe schon die Funktion dieses Entities, ich meinte die C++-Funktionen. Ich will ein Grundgerüst für eine C++-Datei eines entites (dieses soll / braucht gar keine Parameter haben, die z.B. in Worldcraft eingestellt werden können!). Ich will einfach nur ein entity, das ich triggern kann. Dieses soll dann eine Funktion aufrufen, in der einfach folgendes stehen soll: pPlayer->EnableControl(FALSE); -- |
|
Profil || Suche |
|
004 05.12.2001, 16:20 anothergb02 |
Schau welch wundersames Tier: Schau ich kann hellsehen, du willst bestimmt, das die Funk aufgerufen wird, wenn man das Entity berühert. // fockers simple func class CGott : public CBaseEntity // worldcraft implemtation void Spawn(); void Touch(CBaseEntity*); void CGott :: KeyValue( KeyValueData *pkvd ) } void CGott :: Spawn() void CGott :: SwitchState(CBasePlayer* pPlayer) pPlayer->pev->flags & FL_FROZEN ? pPlayer->EnableControl(TRUE) : pPlayer->EnableControl(FALSE); } // damit use funktioniert musst man (glaube ich) noch irgand was einstellen void CGott :: Touch(CBaseEntity* Sklave) if(!Sklave->IsPlayer()) if(IsActive(Sklave)) // Keine Ahnung ob das jetzt alles so hinhaut, muss aber offf harhar :P --Being in john Malkovich |
|
Profil || Suche |
|
005 05.12.2001, 16:46 Bobby |
Warum meinst du? Was spricht man eigentlich über pev an (scheint recht wichtig zu sein, so oft wie es vorkommt *g*)? Code erst seit ein paar Tagen. --Dieser Beitrag wurde am 05.12.2001 um 17:12 von Bobby bearbeitet. |
|
Profil || Suche |
|
006 05.12.2001, 19:26 Another1 |
im sogenannten pev pointer (typ entvars_t = entity variablen struktur) sind alle variablen drinne die auch die engine kennt, und nur an diese kommt die engine auch ran, alle die außerhalb des "pev" für ein entity definiert sind (d.h. alle klassen und deren variablen) sind für die engine nicht erreichbar. Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
007 06.12.2001, 23:10 TheTinySteini |
Wenn du sowas machen willst wie ein Entity, das einfach nur ein Model anzeigt, möglichst auch animiert und so, dann nimm dies hier: Ziemlich kurzes Teil, aber die Mapper werden dich dafür lieben =) TheTinySteini |
|
Profil || Suche |
|
008 07.12.2001, 16:06 Another1 |
nur eine frage tiny: Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
009 07.12.2001, 16:44 anothergb02 |
ähmm tiny ? --Being in john Malkovich |
|
Profil || Suche |
|
010 07.12.2001, 16:49 anothergb02 |
Scheint ganz so als ob mein Pc gerade kleinere Probleme mit der Verbindung hat :( (2xpost) --Being in john Malkovich |
|
Profil || Suche |
|
011 07.12.2001, 17:38 Retro |
omg gb2 was wolltest du uns nun mitteilen?! du bist echt dumm, wenn man mal deine intressen und sig anschaut muss man sich doch an den kopf fassen... was soll der scheiss? --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
012 07.12.2001, 19:44 TheTinySteini |
@Another1: @ the other another: TheTinySteini |
|
Profil || Suche |
|
013 07.12.2001, 20:21 hausi |
Hehe. Goile Ausrede mit dem Doppelpost. Schon mal auf die Uhr gekuckt? |
|
Profil || Suche |
|
014 07.12.2001, 20:32 Another1 |
na logo geht das Another1 ...relaxing..atm =) |
|
Profil || Suche |
|
015 08.12.2001, 15:01 Bobby |
@TheTinySteini: Danke für deine Mühe, aber bei mir hat er leider keiné Animationen angezeigt, also habe ich eben die Datei gman.cpp etwas verändert. Hier mein Code: #include "extdll.h" class CHumanSoldier : public CBaseMonster void CHumanSoldier::KeyValue(KeyValueData *pkvd) void CHumanSoldier :: SetYawSpeed ( void ) switch ( m_Activity ) pev->yaw_speed = ys; void CHumanSoldier :: Spawn() pev->solid = SOLID_SLIDEBOX; pev->sequence = LookupSequence( m_sequence ); // <<< MonsterInit(); void CHumanSoldier :: Precache() Es funktioniert alles wunderbar, nur die ausgewählte animation zeigt er nicht an (es wird immer die standard-idle-animaton angezeigt. Ich habe mir dann mal mit ALERT (at_console, "%Animation: %s\n", m_sequence); den Inhalt der Variablen anzeigen lassen, doch an der Konsole erschien nur 'Animation:', d.h. irgendwie kennt er die Variable nicht mehr. Was mache ich falsch? -- |
|
Profil || Suche |
|
016 08.12.2001, 15:26 anothergb02 |
Superhausi (3 min Unterschied): Being in john Malkovich |
|
Profil || Suche |
|
017 08.12.2001, 16:12 TheTinySteini |
Bobby: Mein Code geht... aber ich hab vergessen, dass du dann in die fgd-Datei folgendes einfügen musst: TheTinySteini |
|
Profil || Suche |
|
018 08.12.2001, 18:12 Bobby |
Schon gut, aber warum funktioniert mein Code nicht? Die Variable m_sequence ist in Spawn() leer. Warum? Muss ich die KeyValue()-Funktion irgendwie manuell aufrufen, oder was mache ich falsch? -- |
|
Profil || Suche |
|
019 09.12.2001, 16:00 anothergb02 |
Bobby du musst deine KeyValue func ändern, du kannst nicht einfach die String so copieren, da sie nicht als Strings verwaltet werden .... um den Int wieder in einen String umzuwandeln musst du das benutzen: Being in john Malkovich Dieser Beitrag wurde am 09.12.2001 um 16:08 von anothergb02 bearbeitet. |
|
Profil || Suche |
|
020 10.12.2001, 19:13 Bobby |
Irgendwie will es bei mir nicht klappen. Ich habe den Code so wie du sagtest abgeändert (so hatte ich ihn früher schon mal ;-)), hat aber nicht funktioniert, was mache ich nur falsch? -- |
|
Profil || Suche |

