Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
25.05.2000, 16:40
TheVoice



Hi Leute!
Ja ich bin wieder hier!
Und zwar mit ner dringenden Frage:
Angenommen ich hab da so ein Level in dem man sich nur in einem Raum befindet.
Jetzt soll man da etwa 15 Sekundn (Zeit iss egal) rumlaufen können und dann soll das Level wechseln....
Wie geht das??
Ich meine bei OPForce haben die es mit dem Heli-Flug auch nicht anders gemacht, außer dass die n Teleporter
benutzt haben, der sich um einige Zeit verzögert hat (etwa 60-120 Sekunden oder so).

Jetzt frage ich mich, ob man auch ein neues Trigger_entity coden könnte (dass ich dann trigger_changelevel2 nenne),
das so eine verzögerung beinhaltet.... andere Möglichkeiten dazu wären auch nett (muss nicht unbedingt gecodet werden!).

Nun denn ich hoffe ihr wisst was ich wissen möchte!
THX!

P.S: Fette GREETZ an Perfect!!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
001
25.05.2000, 17:42
Masterstroke



Hi!

Hier gibt es eigentlich unbegrenzt viele Möglichkeiten, das zu realisieren......
Also, du kannst es einmal mit dem besagten neuen trigger machen, was jedoch eigentlich
ziemlich umständlich ist, denn du muss ja dazu dann auch erst eine neue FDG machen, etc....
Du kannst es aber auch einfach so machen, was eigentlich ziemlich perfekt ist, dass
du einfach ein SetThink benutzt....Da ich denke, das du es auch als eine Art Intro
benutzen willst solltest du zuerst testen, ob die Map die du haben willst auch die richtige ist,
also sowas wie:
const char *szMapName = (STRING(gpGlobals->mapname));
if (szMapName == "start") // bin mir im Moment nicht sicher ob noch ein .bsp dahinter muss, glaube aber nicht...
{
SetThink( TriggerThink );
pev->nextthink = gpGlobals->time + 15; // Hier die richtige Zeit reinpacken....
};

Dies muss, je nachdem, ob du es im Singleplayer oder Multiplayer in eine der ersten
Funktionen geschrieben werden. Dann musst du nun noch die Funktion TriggerThink machen.
Diese Funktion wird dann nach 15 Sekunden ausgeführt und soll das Level ändern.....
Diese Funktion kannst du, wenn du keine Lust hast sie zu deklarieren einfach in die Datei,
in der du das obere aufrufst in etwa so einfügen:

void TriggerThink ( void )
{
CHANGE_LEVEL( "NameDerKArteOhneBSP", NULL );
pev->nextthink = -1;
}
Es gibt natürlich auch die Möglichkeit, das hier alles über Entitys zu steuern, aber diese Methode
funktioniert auch, die könnte man auch bei mehreren Karten machen, etc....

Naja, es ist nur ein Vorschlag...
Falls du Fragen dazu hast, das poste sie....
Ich hab's nicht getestet, aber es sollte funktionieren....

--

Masterstroke
resourcecode.de

zum Seitenanfang zum Seitenende Profil || Suche
002
25.05.2000, 19:17
Prefect



Ist das nicht eher ne Mappingfrage? Ich meine, du könntest einfach nen trigger_relay zwischen ursprünglichem Trigger und trigger_changelevel einbauen...

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
003
25.05.2000, 20:22
TheVoice



Hi nochmal!

Danke erstmal an die beiden Coding-Meister, die mir so schnell geantwortet haben!
Zu erst möchte ich mal sagen, dass ich mich mit mappingfragen gut bis sehr gut auskenne und auch meistens
meine Probleme selber lösen kann! Das versuche ich dann auch aber wenn wirklich nichts klappt, dann wende
ich mich an dieses Forum!

So und jetzt ein Teil an Perfect:
Mach mir das doch mal bitte mit dem Trigger_relay + Trigger_changelevel vor!
Also wenn's so einfach wär, dann wär ich auch von selbst drauf gekommen!
Ich habs nämlich schon mit vielen Triggerkombis versucht aber Der Trigger_changelevel lässt
sich nunmal nicht fernsteuern (man muss wirklich drinnen stehen und dann wird sofort getriggert!).
Und ja! Es ist vielleicht auch ne Mapping-Frage! Aber was ich ja eigentlich wissen wollte, ist:
KANN ICH AUCH EIN NEUES TRIGGER_ENTITY CODEN, DASS EINE SOLCHE FÄHIGKEIT BESITZT?
Naja,... nicht für ungut!

MfG,
TheVoice!

P.S: Jaja!! In meiner Signatur muss die Variable YOU$ heißen und nicht YOU.............. =) !

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
004
25.05.2000, 22:07
Prefect



Natürlich lassen die sich fernsteuern (denk zum Beispiel an die Schleusen in Blast Pit - die werden von Buttons gesteuert). Ich glaub man muß dazu ein Spawnflag umlegen...

Natürlich könntest du auch ne Entity coden, die sowas macht. "Einfach" den trigger_changelevel-Code kopieren oder vererben und die entsprechenden Modifikationen anbringen.

cu,
Prefect

P.S.: Wir wollen uns hier doch nicht auf BASIC-Niveau herabbegeben, ODER?!?!?

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
005
25.05.2000, 23:17
Masterstroke



Natürlich kann man solch ein Entity machen...Das ist sogar eigentlich gaanz leicht, aber soll ich dir jetzt etwa den ganzen Code vorsagen??? Ich meine, schau dir doch einfach mal den Trigger an... und dann kannst du doch damit einen eigenen selbststricken...
Wenn du damit absolut nicht klar kommst kannst du dich ja nochmal melden, aber ich denke, also Coder muss man sich ein paaaaaaaar Sachen auch mal selbst erarbeiten....

--

Masterstroke
resourcecode.de

zum Seitenanfang zum Seitenende Profil || Suche
006
26.05.2000, 13:04
TheVoice



Nein Masterstroke!
Ich kenn mich doch auch mit C++ aus!
Ich wollte ja nur wissen ob es in HL überhaupt möglich ist so etwas zu machen!

Ein solcher Trigger wäre sehr nützlich, da ich ihn dann auch in anderen Levels benutzen kann OHNE GROSSE ENTITYS ZU VERBINDEN UND MICH NOCH VERRÜCKT ZU MACHEN.

Nun denn!
Danke nochmal!

MfG,
TheVoice!

--

Against TCPA | Resourcecode.de | Blender 3D | [ Darkzone | Pandorra | Alpine ]

zum Seitenanfang zum Seitenende Profil || Suche
007
26.05.2000, 15:03
Masterstroke



Ok, dann denke ich solltest du jetzt wissen, das es ohne große Probleme möglich ist....Wenn du in C++ wirklich gut bist, dann denke ich solltest du das auch auf die Reihe bekommen...:)

--

Masterstroke
resourcecode.de

zum Seitenanfang zum Seitenende Profil || Suche
008
26.05.2000, 22:52
DarkCloud14



Ok das hilft dir vielleicht nicht beim Coden deines Entitys weiter aber du müsstest doch diese beiden trigger gleichzeitig benutzen können wenn du sie mit einem multi_manager verbindest.
Nähere Infos hier <!--http--><a href="http://www.funner.de/thewall.de/entity/misc_.html" target="_blank">http://www.funner.de/thewall.de/entity/misc_.html</a><!--url-->

--

zum Seitenanfang zum Seitenende Profil || Suche
009
27.05.2000, 18:33
TheTinySteini



Also ich meine, du musst nur um den Startpunkt des Spielers einen trigger_once legen, der auf ein trigger_levelchange zielt, bei dem "USE only" angeklickt ist und bei dem "delay before change target" auf 15 steht. Müsste eigentlich funktionieren, obwohl ich mir mit dem "delay before..." nicht so ganz sicher bin, ob es wirklich den Level-Change verzögert...

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche