.| Autor | Beitrag |
|---|---|
|
000 01.02.2001, 13:07 UniSol07 |
1.) Kann mir mal einer sagen, wie man eine neue Zone in den Code bringt? (brush-entity).
Play HL and have fun |
|
Profil || Suche |
|
001 01.02.2001, 14:19 apfelkorn |
zu 2.: du suchst im code nach einem entity mit namen worldspawn und dann suchst du nach den key-values. Da kannst du was neues einfügen, was du auch in deiner fgd-datei für worldspawn eingibst... -- |
|
Profil || Suche |
|
002 01.02.2001, 14:46 Prefect |
zu 1) Schau dir den Code für Trigger an, besonders CBaseTrigger::InitTrigger() (glaub ich), das ist der generelle Spawncode, da ist dann sowas wie pev->effects |= EF_NODRAW;
oder so ähnlich. Dann mußt du noch eine Touch()-Funktion einfügen. Diese Funktion wird jedesmal aufgerufen, wenn der Spieler ein Inputpacket an den Server schickt (also wenn der PM-code auf dem Server ausgeführt wird) - die Aufrufgeschwindigkeit ist also von der Netzwerk-Framerate, NICHT von der Server-Framerate abhängig - und natürlich nur dann, wenn besagter Spieler innerhalb des Brushes ist.
Gameplay-Zonen die bestimmte Flags setzen sollen (z.B. Buyzones - NEIN CS-Klon *g*) sind am Besten so zu realisieren:
Das funktioniert deshalb, weil die Engine bei jedem Inputpacket-Recv eines Clients zunächst PlayerPreThink() aufruft, dann PM_Move(), und dann PlayerPostThink(). zu 2) fgd editieren wie beschrieben. Abrufen kannst du die Keyvalues (wie bei allen Entities) in der CWorld::KeyValue()-Funktion... cu,
Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
003 01.02.2001, 20:01 UniSol07 |
Danke viel mal. --Play HL and have fun |
|
Profil || Suche |

