Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
09.01.2002, 17:05
Mexil



Wie kann ich ein Entity Respawnen? Also die RESPAWN Funktion aus der CLIENT.H nur halt eben fuer Entitys... gibz das oder wie kann man das sonst machen?

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
001
09.01.2002, 17:51
Exec



wie jetzt? du hast nen neues entity gemacht?! oder was genau ... wo wilslt du es spawnen?!

also per console dürfte es so gehn:

"give item_deinitem"

aba ich weis jetzt nich ob du das gemeint hast .......

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
002
09.01.2002, 18:21
Mexil



K, hab mich vielleicht nicht genau genug ausgedrueck, sorry:

Es gibt ein Entity, dass heisst XXX
Dieses Entity liegt in der Map rum! Also in Worldcraft als Entity plaziert! So nun im Spiel wird es per UTIL_Remove(this); entfernt! Nun soll es wieder an den gleichen Platz wo es auch das erstemal gespawnt worden ist wieder spawnen und halt eben neu initialisiert werden....

Verstanden? Sonst erklaer ich's noch ma an nem Beispiel!

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
003
09.01.2002, 18:23
R2-D2



machs als item, da is das alles schon gemacht...funktioniert ganz von alleine *g*

--

®2-D2
Believe in Retrieve :)

Projects:
Monkey-Strike (Leader/Coder)
Water Wars (Head Coder)
Mixed Mod (Coder)

zum Seitenanfang zum Seitenende Profil || Suche
004
09.01.2002, 19:05
Mexil



Als Item? Das soll zu einem bestimmten Zeitpunkt wieder spawnen, nicht alle 30 Sekunden oder so.... sondern total unregelmaessig.... und wie geht das mitm Item und wo ist der Unterschied? Hat jemand dazu nen Tut?

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
005
09.01.2002, 20:12
k47



helft ihm bitte :D

--

---
Leader von Move In!
---

zum Seitenanfang zum Seitenende Profil || Suche
006
09.01.2002, 20:45
Mazze



Spawn();
Gibts das Nicht?
Ich denke schon.
CBasePlayer ist ja auch von CBasePlayerItem abgeleitet, wie wohl ein Entity auch denk ich mal!

CEntityClass entEnt;
entEnt.Spawn();

--

BattleTech-MOD:
http://bthl.unitedgaming.net/

zum Seitenanfang zum Seitenende Profil || Suche
007
09.01.2002, 21:40
Mexil



geht nett....

Du kannst einen Player ja auch nicht per pPlayer->Respawn respawnen, sondern musst die respawn Funktion aus der Client.cpp verwenden!

Ach, aber mir fallen grad 3 Sachen ein*ggg*

1. werd ich ma in die Client.cpp guckn wie die das da mit dem Player respawnen gemacht haben und mir da evtl. was abguckn...

2. Wie kann ich ein Entity in der GameRules.cpp ansprechen? Also ich braeuchte ja sonnen aehnlichen Code:
Quellcode:
CBaseEntity *pEntity = NULL;
CXXX *pXXX = NULL;

pEntity = UTIL_FindEntityByClassname(pEntity , "XXX"):
pXXX = (CXXX*) pEntity;
//und hier dann den respawn Code

Nur das Prob ist, ich hab bei meinem Entity keine Header Datei gemacht(wer macht schon fuer jedes Entity ein Headerfile?) und dann kann ich CXXX natuerlich in der GameRules.cpp nicht verwenden... jemand ne Idee wie das gehen koennte?

3. JEMAND VON EUCH SCHON PROBS MIT DEM MESSAGIN IN DER SDK 2.2 GEHABT? Ich kann nix ausser Bytes verschicken!!! Oder ich kann's schon, aber es kommt nur Misst an!

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
008
09.01.2002, 23:20
k47



grummel bitte helft ihm ist extrem wichtig :D

--

---
Leader von Move In!
---

zum Seitenanfang zum Seitenende Profil || Suche
009
09.01.2002, 23:27
Another1



nunja, um es "respawnen" zu lassen is es am einfachsten wenn du es ganz einfach nich UTIL_Removen tust, sondern es nur unsichtbar und unberührbar machst, und eben dann wenn es wieder "gerespawned" wird, einfach alles wieder initialisierst und es sichtbar und wieder touchable machst.

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
010
10.01.2002, 06:24
Mexil



k, ist ne Moeglichkeit, aber das ganze muss ich aus der GameRules.cpp aufrufen, also fuehrt kein Weg daran vorbei ne Header Datei fuer das Ding zu machen oder wie?

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
011
10.01.2002, 16:35
Another1



nimm einfach die Respawn function, die CBaseEntity schon hat, dann kannst du einfach das entity suchen und auf CBaseEntity casten und die function aufrufen.

--

Another1

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

zum Seitenanfang zum Seitenende Profil || Suche
012
10.01.2002, 17:35
Mexil



Quellcode:
CBaseEntity *pXXX = NULL;

    

pXXX = UTIL_FindEntityByClassname(pXXXr, "object_XXX");

pXXX->Respawn();

Also so meintest du das stimmtz? Dann krieg ich nen Absturz! Geht einfach zurueck zu Windoof! Ich hab das Ding jetzt vorher per UTIL_Remove(this); entfernt!

--


Move In!

VISIT US Move In!


Dieser Beitrag wurde am 10.01.2002 um 17:36 von Mexil bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
013
10.01.2002, 17:38
Mexil



Und ich hab noch ein Prob = ( bei nem Entity wird die KeyValue Funktion nicht aufgerufen!?! Muss ich vorher die irgendwo regisitrieren oder so? Ne, oder? Also in der Classe das ist klar, aber sonst nicht odeR?

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
014
10.01.2002, 19:20
Killing Me Softly



Zitat:
Mexil postete
...Dann krieg ich nen Absturz! Geht einfach zurueck zu Windoof! Ich hab das Ding jetzt vorher per UTIL_Remove(this); entfernt!

Wenn du dein Entity vorher mit UTIL_Remove(this); entfernt hast, dann ist es weg, nicht mehr da, auf nimmer wiedersehen verschwunden. Dein UTIL_FindEntityByClassname(...) wird demzufolge nichts finden (einen Null-Zeiger zurückliefern) und wenn du diesen Zeiger dann lockerlässig verwendest MUSS sich HL zwangsweise in Wohlgefallen auflösen.

1. wenn man einen Zeiger verwendet, dann muss man sicher sein, das er auch gültig ist (ne kleine if-Abfrage wirkt manchmal Wunder)
2. Wie oben bereits (mehrmals) erwähnt, darfst du das Entity nicht entfernen (UTIL_Remove()), sondern du mußt es unsichtbar machen. Wie das funktioniert (und wie es wieder sichtbar wird) kannst du bei den Items nachschauen (wie oben ebenfalls schonmal angeklungen ist).

--

Der Horizont vieler Menschen ist ein Kreis mit Radius Null - und das nennen sie ihren Standpunkt.

zum Seitenanfang zum Seitenende Profil || Suche
015
10.01.2002, 19:48
Mexil



Aso, jetzt versteh ich was ihr die ganze Zeit versucht mir klar zu machen*ggg*

Also per pev->solid = SOLID_NOT zum beispiel unsichtbar etc. machen und dann in der Spawn Funktion das ganze Ding wieder zurueck setzen und die dann per Respawn aufrufen stimmts?

Ich versuch's gleich ma....

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche
016
10.01.2002, 20:09
Mexil



Also, ich hab das jetzt grad ma gemacht und das funktioniert Wort woertlich halb*ggg*

Bei jedem mal wenn ich die SPAWN(!!!) Funktion aufrufe krieg ich inna Console ne Meldung:
Can't Find Address xxxxxxx
ERROR : No EXPORT object_xxx:Touch(xxxxxxx)

oder so aehnlich! Und die Touch Funktion des Objectes funktioniert nur jedes 2. mal!! Aber jedes mal bekommen ich die Fehler Medlung!?! Wenn ich die Respawn Methode aufrufe funktioniert das nicht.... bei der Spawn Methoder aber halb eben halb.....

--


Move In!

VISIT US Move In!

zum Seitenanfang zum Seitenende Profil || Suche