Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
03.08.2005, 23:11
Benny2003



Wahrscheinlich eine wirklich sehr dumme Frage, aber ich habe zwei Probleme:

A) Ich habe ein neues HUD Element hinzugefügt, das ab dem aufrufen von Spawn gezeichnet werden soll, jedoch erscheint es nicht, wenn ich in HL starte sofort nach dem Laden, sondern erst nach dem ersten Tod.

B) Wie erreiche ich es, dass eine bestimmte Funktion immer wieder aufgerufen wird? Ich will mit ihr etwas überprüfen.

Ich habe dafür kein Tut gefunden und bin ratlos, helft mir bitte, oder sendet mir ein Link zu einem Tut.

Danke euch :)

P.S.: Ich hoffe die Problemschilderung reicht aus :rolleyes:

--


Dieser Beitrag wurde am 03.08.2005 um 23:14 von Benny2003 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
04.08.2005, 03:41
feigling



Zitat:
Benny2003 postete
A) Ich habe ein neues HUD Element hinzugefügt, das ab dem aufrufen von Spawn gezeichnet werden soll, jedoch erscheint es nicht, wenn ich in HL starte sofort nach dem Laden, sondern erst nach dem ersten Tod.
Wahrscheinlich den Code an die falsche Stelle geschrieben.

Zitat:
Benny2003 postete
B) Wie erreiche ich es, dass eine bestimmte Funktion immer wieder aufgerufen wird? Ich will mit ihr etwas überprüfen.
Dafür sind imho die Thinkfunktionen zuständig.

--

zum Seitenanfang zum Seitenende Profil || Suche
002
04.08.2005, 21:01
Benny2003



hm...
ich weiß allerdings nicht wie ich diese richtig benutze...
ich habe es bereits mit:

SetThink (MyFunc);
pev->nextthink = gpGlobals->time + 0.1;

versucht :/

--

zum Seitenanfang zum Seitenende Profil || Suche
003
04.08.2005, 22:51
feigling



Sieht doch ganz gut aus. Du musst halt nur in der MyFunc auch wieder "pev->nextthink = gpGlobals->time + 0.1;" am Anfang oder Ende angeben, damit das so ne Art Schleife wird. Ich glaube, das ist eigentlich alles. Habe hier jetzt keinen HL 1 oder 2 Code, aber ich glaube nicht, dass man nicht mehr braucht.

--

zum Seitenanfang zum Seitenende Profil || Suche
004
07.08.2005, 19:10
Benny2003



Entschuldige, dasss ich solange nicht geantwortet habe, war etwas frustriert ;D

MyFunc ist die Funktion, in der

SetThink (MyFunc);
pev->nextthink = gpGlobals->time + 0.1;

steht...

Ich ahne böses... aber ich wüsste nicht, wie ich das anders machen könnte

--

zum Seitenanfang zum Seitenende Profil || Suche
005
07.08.2005, 21:07
feigling



In Hl wird es folgendermaßen gemacht:

Quellcode:void CSatchelCharge :: Spawn( void )
{
    // tue was
    SetThink( SatchelThink );
    pev->nextthink = gpGlobals->time + 0.1;
    // tue was
}

void CSatchelCharge :: SatchelThink( void )
{
    // tue was
    pev->nextthink = gpGlobals->time + 0.1;
    // tue was
}
Mehr brauchst du also nicht zu machen, als einmal in der Spawn Funktion die Think Funktion anzugeben und dort und in der Think Funktion dann jeweils anzugeben, wann die Think Funktion wieder getriggert werden soll.
Ich denke mal, dass dein Entity nur von CBaseEntity abgeleitet werden muss, weil dort "void (CBaseEntity ::*m_pfnThink)(void);" und "entvars_t *pev;" definiert sind.

--

zum Seitenanfang zum Seitenende Profil || Suche
006
19.08.2005, 01:10
Benny2003



Entschuldige die verspätete Antwort, es funktioniert alles soweit bestens =)
Nur fällt nach dem ersten Tod des Spielers die Thinkfunktion aus...

--


Dieser Beitrag wurde am 19.08.2005 um 01:25 von Benny2003 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche