Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
17.11.2001, 15:51
Diablo_bth



...und dabei wollte ich doch nur ein Entity das denkt...

also: ich will ein Brush-Entity das bei jedem Frame seine Think() - Funktion aufruft. hier ist mein Beispielcode: ( mit nem 2.2er SDK-getestet )

Quellcode:
// test.cpp

#include "extdll.h"
#include "util.h"
#include "cbase.h"

class CTestEntity : public CBaseEntity
{
public:
void Spawn( void );
void Think( void );
};
LINK_ENTITY_TO_CLASS( func_test, CTestEntity );

void CTestEntity::Spawn( void )
{
pev->flags   |= FL_ALWAYSTHINK;
pev->movetype = MOVETYPE_PUSH;
pev->solid    = SOLID_BSP;

SET_MODEL( ENT(pev), STRING(pev->model) );
UTIL_SetSize( pev, pev->mins, pev->maxs );
UTIL_SetOrigin( pev, pev->origin );

pev->nextthink = gpGlobals->time + 0.1;
}

void CTestEntity::Think( void )
{
// damit ich auch sehe ob es denkt..
ALERT( at_console, "---> CTestEntity::Think\n" );
pev->nextthink = gpGlobals->time;
}

wenn ich nun in eine Karte mit nem func_test brush lade, dann erscheint
das "---> CTestEntity::Think\n" nur zweimal beim reinladen!!
( diese Problem habe ich erst seit der 1.1.0.8 )

--

zum Seitenanfang zum Seitenende Profil || Suche
001
17.11.2001, 18:50
Another1



das hat irgendwas mit pev->ltime und so zu tun, weiß nich mehr genau was, irgendwie war da etwas anders bei brushentities anders, aber versuch mach
pev->flags |= FL_ALWAYSTHINK;

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
002
17.11.2001, 19:12
Archangel



lol a1..

guck dir mal die erste zeile der Spawn() an.. :D

hmm, kA

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
003
17.11.2001, 20:37
Retro



^^ vielleicht hats ja was mitQuellcode:SetThink(Buhuu); zu tun? Weis ich net so genau, aber ich setz es bei jeden meiner Entities dazu, und es klappt auch immer, allerdings mit SDK2.1

--

shielding people from their own stupidity is an evolutionary step backwards anyway.

/* God is dead!............Nietzsche */
/* Nietzsche is dead!......God */
/* Nietzsche is God!.......The Dead */

zum Seitenanfang zum Seitenende Profil || Suche
004
17.11.2001, 22:12
apfelkorn



jo...
SetThink( Think );
und
pev->flags = 0;

--

zum Seitenanfang zum Seitenende Profil || Suche
005
18.11.2001, 13:31
anothergb02



Hier, so kannst du ganz einfach die Thinkfrequenz festlegen/hochsetzten:

void CTestEntity::Think( void )
{
NextThink( pev->ltime + 0.000001, TRUE ); //sollte nun jeden Frame
//aufgerufen werden
}

void CTestEntity:: NextThink( float thinkTime, BOOL alwaysThink )
{
if ( alwaysThink )
pev->flags |= FL_ALWAYSTHINK;
else
pev->flags &= ~FL_ALWAYSTHINK;

pev->nextthink = thinkTime;
}

--

Being in john Malkovich
.....

zum Seitenanfang zum Seitenende Profil || Suche
006
18.11.2001, 19:02
Diablo_bth



Oh danke anothergb02 [strb+v|drück] !!!!!! ich war schon am Verzweifeln! puh. hab nähmlich schon mit pev->ltime und SetThink() rumprobiert und es wollte zum Verrecken nicht funktioniern ( dieses scheiß 1108! *grmpfl* )

--

zum Seitenanfang zum Seitenende Profil || Suche