Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
17.07.2001, 02:31
Term



Das versteh ich nicht?!

Vielleicht erinnert Ihr Euch an die Szene in HL, wo in der Tiefgarage ein Gargantua (der, den man hinterher mit einem Luftangriff sprengen muß) erst ein Auto und somit auch zwei Grunts an die Wand drückt und dann ein anderes umtritt (wer's nochmal spielen will: map c2a5g).

Ich brauch sowas ähnliches und was mich wurmt ist die Synchronisation des Gargs und der func_doors (= die Autos). Nun hab ich die Map dekompiliert und siehe da: es gibt nur einen einzigen Trigger und der lässt den Garg seine erste scripted_sequence (Auto schubsen) ausführen. So weit, so gut. Das erste Auto (= func_door) jedoch hat einen Namen, kann also eigentlich nur getriggert werden. Trotzdem verschiebt es sich genau dann, wenn der Garg seine "Schiebeanimation" ausführt, und das ohne speziell getriggert zu werden?! Bei Umtreten des zweiten Autos (func_door_rotating) ist es dasselbe.

Meine Frage nun: sind Monster in der Lage, Türen zu bedienen obwohl sie für den Player gesperrt sind? Oder ist das eine Besonderheit des Gargantuas?

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
001
17.07.2001, 07:38
Richman
Moderator


Ja, irgend wie geht das.

Ich hab auch mal n' paar info_nodes vor und hinter eine für den Player verschlossene Türe gesetzt und diese dann noch auf World: Door (oder so) gestellt, und siehe an, einige Monster konnten problemlos durch diese Türe gehn, der Player jedoch nicht.

--

Richman's Hazardous Course - Status: 100% !!!
www.richmans-maps.ch.vu - wieder online!

zum Seitenanfang zum Seitenende Profil || Suche
002
17.07.2001, 10:14
Digger



Ich nehme an, dass es sich nicht auf Monster auswirkt, wenn man Türen einen Namen gibt. Sie können problemlos passieren, während sie für den Spieler getriggert ist, also nicht durch dagegenlaufen (oder use-drücken) zu öffnen.

--

greetingz,
Digger
Mapping: Konstruktivität für Destruktivität.
[Digger's Website][Spoilsport Half-Life Singleplayer]

zum Seitenanfang zum Seitenende Profil || Suche
003
17.07.2001, 12:09
Term



Ok, dann scheint das also eine Eigenart der Engine zu sein. Leider hülft mir das bei meinem Problem nur bedingt weiter, da ich außer Türen auch ein paar andere Events synchronisieren muß. Ich beschreib Euch mal die Szene, vielleicht fällt einem von Euch ein, wie man das am schlausten macht:

Folgendes passiert da: Der Spieler durchläuft den trigger_once. Vor dem Panzer steht ein Grunt und winkt ihn rüber (bei mir sind das anfangs noch die freundlichen). Der Spieler ist aber durch den Zaun gefangen und muß mitansehen, wie der Garg losstampft. Der rennt durch den trigger_once, der die ganzen kleinen multimanager auslöst in denen Sounds, Sprites und Explosionen gesteuert werden. Bei der ersten SS wumst der Garg den Grunt durch die Luft, dieser ist danach platt. Dann läuft der Garg zum Panzer und schmeißt den um (meine func_door_rotating). Dann läuft er zum Schild rüber und tritt das ein (Explosion, func_walltoggle für kaputtes Schild). Zum Schluß brüllt er noch einmal rum (da muß der Sound (ambient_generic) mit der SS synchronisiert werden) und rennt daraufhin wieder zu seinem Ausgangsplatz zurück. Auf dem Weg dahin kommt er an der Laterne vorbei die daraufhin explodiert und umkippt (func_door_rotating).

Mein Problem ist es nun, daß ich nie genau vorhersagen kann, wann sich der Garg an welcher Stelle befindet. Manchmal ist er schneller an Ort A, manchmal nicht. Bei den Türen wäre das ja egal da er sie durch seine Präsenz (und somit garantiert zum richtigen Zeitpunkt) auslöst, aber das Eintreten des Schildes zum Beispiel lässt sich so nicht regeln :/ Wie würdet Ihr so eine großangelegte Scriptfolge machen?

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
004
17.07.2001, 13:26
Freaky



Kannste nicht mehrer einzelne trigger machen? ist zwar umständlicher als alles mit MMs zu machen, aber dann müsste es doch genau gehen, oder?! Also lass das Gargantua (oder wie das heisst!) vor das Schild laufen... da machste dann nen trigger hin, der das schild zerstört... ist zwar umständlich, aber dann müsste es doch funzen, oder?!

--

zum Seitenanfang zum Seitenende Profil || Suche
005
17.07.2001, 13:39
apfelkorn



mh... es ist nicht möglich, das irgendein entity durch die präsenz des garg getriggert wird. Ich würde das so machen: Stell an das Schild ein func_door (Unsichtbar und nicht fest [not_solid]) der gargame... gargantua kommt, func_door wird automatisch getriggert und das func_door triggert automatisch den multimanager für explosion. Vielleicht geht das ja... :)

apfel

--

zum Seitenanfang zum Seitenende Profil || Suche
006
17.07.2001, 13:42
Term



Hehe, die Idee hatte ich gerade auch und hab alle Scripts umgeschrieben, so daß der Garg erst an der Stelle seiner jeweiligen SS in einen Trigger läuft, der die dazugehörigen Events auslöst. Allerdings läuft der Garg auf dem Weg zum Schild und zurück ja mehrmals (in umgekehrter Reihenfolge) durch diese Trigger so daß ich sie auch noch mit multisources sperren musste (so daß zum Beispiel der Panzer nicht schon umkippt, wenn der Garg ihn auf dem Weg zum Grunt streift). Die multisources wiederum müssen ja auch getriggert werden und das Ganze hat meinen Entity-Eintopf nochmal fast verdoppelt.

Nach dem Kompilieren lief dann alles schief (warum auch immer) und ich hab keinen Bock mehr, das Ganze wieder auseinanderzupuzzeln :) Ich werde also bei der ersten Version bleiben und den ersten trigger_once genau an die Stelle der ersten SS (Grunt umkloppen) setzen. Der Rest der Aktionen wird dann zwar mehr oder weniger im freien Fall ausgelöst, aber das passt bis auf 0.2 sec genau und das muß dann halt reichen. Ich sitze an dieser Szene jetzt schon zwei Tage und irgendwann is gut :)

[edit]

Ups, meine Antwort war eigentlich für freaky gedacht, aber für Apfelkorn passt sie ja eigentlich auch noch

[/edit]

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]


Dieser Beitrag wurde am 17.07.2001 um 13:44 von Term bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
17.07.2001, 13:56
Retro



Term du newbie! =D

Nein, hehe.

Also das biste nen bischen falsch angegangen... Die Monster brauchen wirklich unterschiedliche Zeiten um von A nach B zu kommen.
Ich hoffe das ganze ist mit scripted_seqence's gespickt... Nun triggerst du die 1. s_s die steht meinetwegen vor dem APC, der Garg läuft dahin und "schubst ihn um". Bei der 1. s_s trägst du nun bei "Target" die 2. s_s ein, nehmen wir mal an, das ist die vor dem Schild. Dort läuft er hin, und führt wieder eine Animation aus... Aber genau vor dem schild ist wieder nen trigger_once der dann haar-genau mit der Animation synchronisiert ist.
Das ganze ließe sich einfacher machen, wenn die s_s's am anfang der Animatiopn triggern würden, aber die tun das ja am ende.

Naja, aber mit mehr trigger_once's krigste das schon hin, aber mit mm's kann man nicht viel anfangen, weil auf die Monster kein verlass ist! hehe

--

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
008
17.07.2001, 14:38
slaender



Ich glaube zwar, dass sich Retro Deinen ersten Text nicht durchgelesen hat, aber ich frage mich auch, warum Du das nicht mit einzelnen scripted_sequence machst? So wie in HL (c2a5g) halt auch, dann weisst Du doch, wann er an einzelnen Stellen ist und die einzelnen Türen erst noch einer sequence freigeben sollte ja auch kein Prob sein!

--

zum Seitenanfang zum Seitenende Profil || Suche
009
17.07.2001, 15:31
Retro



Doch... klar hab ich mir das alles durchgelesen, aber was soll an meiner Methode falsch sein? Das funktioniert in dem Fall sogar perfekt, weil der Player erst garnicht dazwischen funken kann...

Oder was meintest du slaender?

--

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
010
17.07.2001, 16:12
Term



Tja Retro, also eigentlich erzählst Du ja genau das, was ich schon versucht habe :) Natürlich werden die SS jeweils von einer anderen ausgelöst, alleine schon um wirklich keine Lücke für die AI zu lassen, die ansonsten ja sofort den zuschauenden Spieler angreift (was sie übrigens trotzdem noch tut, zumindest das rote Auge blitzt kurz auf). Nur ist das Problem mit den triggern_once, die nur für den Garg auszulösen sein sollen, daß diese nicht auf die Master ansprechen die ich Ihnen zuteile. Außerdem weigerte sich meine func_door_rotating aus unerfindlichen Gründen, vom Garg umgekippt zu werden (so wie es das in c2a5g tut).

Mein eigentliches Problem ist es, daß ich in dieser Szene so dermaßen viele Events steuern muß, daß die Fehlerbeseitigung fast unmöglich ist wenn ein einzelnes Event fehlerhaft arbeitet. Für alle Hardcores, hier mal der derzeitige Ablauf:

- Player rennt durch trigger_once, dieser feuert garg_ss1 (Grunt umkloppen)
- Garg rennt also los und führt seine Animation aus, dabei stellt er sich in einen trigger_once, der grunt_mm startet
- Grunt_mm beinhaltet: Hitsound für "Grunt getroffen" (Smack!), SS für Grunt (nach hinten fliegen), SS "Winke winke" (was er vorher gemacht hat) für Grunt ausschalten, Hitsound für "Grunt knallt auf Erde" (Ploff!)
- Währenddessen targeted garg_ss1 die garg_ss2 (Panzer umschmeissen) und Garg rennt rüber
- Das Umkippen des Panzers wird von panzer_mm gesteuert, der noch durch grunt_mm ausgelöst wurde
- Panzer_mm beinhaltet: Umkippen des func_door_rotating, passender Sound (Knirsch!), Aufprallsound (Wumms!), env_shake für Aufprall, Start von fire_mm
- Fire_mm beinhaltet: Start von zwei Feuersprites, Feuersound (Knister!), Start von env_beam mit zwei info_targets für aufsteigenden Rauch, Start von fire_light_mm
- Fire_light_mm beinhaltet: Anschalten einer statischen Lampe, An- und Ausknipsen mehrerer kleinerer Lichter (Flackereffekt), Start von fire_light_mm1 der sich ab da gegenseitig mit fire_light_mm2 triggert und das Flackern steuert
- Währenddessen targeted garg_ss2 die garg_ss3 (Schild eintreten) und Garg rennt rüber
- Garg tritt ins Schild, das zerstört unsichtbares func_breakable, das triggert schild_mm
- Schild_mm beinhaltet: Explosion, Austauschen heiles Schild <-> kaputtes Schild (func_walltoggle), env_spark, Licht ausschalten
- Währenddessen targeted garg_ss3 die garg_ss4 (finales Rumgebrülle) und Garg rennt rüber
- Der dazugehörige Sound (der komischerweise nicht in die Animation integriert ist) wird noch von schild_mm gesteuert
- Währenddessen targeted garg_ss4 die garg_ss5 (wieder zurückrennen wo er herkam) und Garg rennt rüber
- Im Vorbeilaufen wird laterne_mm getriggert, da das aber durch einen trigger_once mit Master nicht funktioniert (warum auch immer) wird laterne_mm noch von schild_mm gefeuert
- Laterne_mm beinhaltet: env_shake, Explosion, env_spark am Fuß, umkippende Laterne (func_door_rotating), passender Sound (Knirsch!), Aufprall auf einem Dachsims mit Explosion, passender Sound (Klirr!), env_shooter (Metalgibs)

Sooo Retro, jetzt nenn mich nochmal Newbie! :) Ich glaube ich kann mit Fug und Recht behaupten, daß es im ganzen HL keine einzige Szene gibt, die so dermaßen kompliziert gescriptet ist und trotzdem schon nach 20 Sekunden vorbei ist. Nachdem ich das alles jetzt mit trigger_once und Mastern umgesetzt habe funktionierte schon die zweite Animation nicht mehr... und vielleicht kannst Du Dir jetzt vorstellen, daß ich in diesem Wirrwarr bestimmt nicht nach dem Fehler suchen werde! :)

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
011
17.07.2001, 16:15
Term



Ach so, und nochwas:

wenn man die func_door_rotating als target einer SS angibt (was slaender vorgeschlagen hat), wird diese natürlich erst nach Beendigung der Animation ausgeführt, also in diesem Falle: der Garg reisst die Arme hoch und 1 Sekunde später fliegt wie von Geisterhand der Panzer durch die Luft :) Das ist ja der Hauptgrund, warum ich überhaupt mit Triggern rumhampel, die Targetfunktion der SS ist nämlich sehr unzuverlässig.

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
012
17.07.2001, 16:17
slaender



Ne is ok! Ich hatte aber noch ne andere Idee im Kopp, stimmt schon.
Zu meiner Idee:
Vorgeschichte: Komme gestern Nacht um 4:00 Uhr nachhause und bin totmüde --> finde den thread und dekompliliere die map --> geh alles durch --> 5:00 Uhr --> kippe rückwärtsum und schlofe direkt ein --> verpenne heute morgen --> kannst Du nie wieder gut machen Term, sofern ich Dir nun helfen kann! ;)
Ok, ich hatte die Idee, daß dies gecodet sein muß und in den sequencen bestimmte Dinge getriggert werden. Ich hab die Situation mit den beiden Autos nachgebaut (also die Entitys 1 zu 1) und es funzt so wie im Spiel, dann habe ich den Namen des func_door_rotation umbenannt in kicka und siehe da, er verschiebt die erste karre, tritt auch gegen die 2te, aber die bleibt einfach stehen! So dann das gleiche mit der func_door (name: pusha) und genau der selbe Effekt nur umgekehrt!
daher denke ich, dass in den sequensen diese 3 Namen getriggert werden, also pushcar --> push; kickcar --> kick und rollcar --> roll

So, ich dachte mir, bevor ich hier müll erzähle teste ich doch noch mal was --> ich hab nun das func_door an eine ganz andere Stelle verschoben, aber die Originaleinstellungen so gelassen --> er führt die sequence aus tritt in die Luft und das Auto wird an einer ganz anderen Stelle verschoben --> nun mußt Du Dich wohl mit Eurem Coder zusammensetzen!

--

zum Seitenanfang zum Seitenende Profil || Suche
013
17.07.2001, 16:49
Term



Wow, das sind ja mal gute News! Ich habe die Map auch dekompiliert, konnte sie aber aufgrund von Vertexerrors die Winbsp da reingehauen hat nicht wieder kompilieren. Und da ich keinen Bock hatte, die Autos nachzubauen hab ich's erstmal gelassen. Aber das ist natürlich eine plausible Lösung auf die ich auch selbst hätte kommen können. Leider würde mir das ja nur was für den Panzer und nicht den Rest der Events nützen also kann ich auch gleich bei meiner Lösung bleiben.

Zumindest zeigt das, daß die Jungs von Valve wahrscheinlich genau diesselben Probleme mit der Synchronisation hatten und deshalb den Coder genötigt haben, das Ganze fest zu implementieren.

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
014
17.07.2001, 16:54
slaender



Wieso? Mit der Lampe müsste das doch auch gehen, sofern eine der drei Sequencen dazu paßt.

--

zum Seitenanfang zum Seitenende Profil || Suche
015
17.07.2001, 17:07
Retro



Hehe, newbie war natürlich nur nen scherz! *g*

Ich kenn das Hardcorecoding! :)
Wer kennt nicht die Stelle in Op4 wo alles zusammebricht, und unter einem die Säure ansteigt?! hehe

Sowas (noch größeres) hab ich nachgebaut, also das alles Kaputt geht...
Aber das sind alles func_train's und func_door's und so weiter. Tja, auf die ist halt mehr verlass als auf die Monster, das ist sch...ade! *g*

Aber bei meiner szene hab ich mit ca. 20mm's gearbeitet, und das alles an einem Tag gemacht, weil ich sonst eh den Durchblick verloren hätte, aber mit mm's wird du bei den dummen Garg nicht weiterkommen.

Und mit den angreifen? Haste schonmal probiert den Garg auf "Prisoner" zu setzen? Ich weis, das du das weist, aber vielleicht hastes ja vergessen! hehe
Ansonsten nimm vielleicht mal ascripted_seq's villeicht greift er dann nicht mehr an, schalten ja sozusagen die KI ab.

--

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
016
17.07.2001, 21:21
Digger



schonmal mit den scriptet_sequence-Flags "Override AI" und "No Interruptions" versucht? Es könnte sein, dass das Monster dadurch immer den gleichen Weg nimmt und sich nicht beeinflussen lässt. Dann müsste die Zeitliche Abstimmung mit den Multi-Managern auch funktionieren.

--

greetingz,
Digger
Mapping: Konstruktivität für Destruktivität.
[Digger's Website][Spoilsport Half-Life Singleplayer]

zum Seitenanfang zum Seitenende Profil || Suche
017
17.07.2001, 22:48
Term



Ne ne, das ist eh klar, der Godzilla rennt nur durch aiscripted_sequences, hab ich nicht erwähnt, tschuldigung. Anders geht es eh nicht, da ja irgendwie alle normalen SS am Anfang des Levels getriggert werden und dann durch nochmaliges Triggern erstmal wieder abgeschaltet werden (only god knows why). Die AI von HL scheint einfach nicht so gut programmiert worden zu sein, daß man sie mit diesen Befehlen wirklich übergehen kann, deshalb geht die Lampe am Garg wohl an. Ist mir auch egal, ich hab die Sequenz jetzt auf meinem Rechner bis auf 0.1 sec perfekt getimed und werde es die Tage mal auf dem Rechner eines Freundes testen. Wenn's da dann wieder asynchron läuft erschieß ich mich halt.

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
018
17.07.2001, 22:57
slaender



LOL, dann schick die fertigen maps aber vorher zu Deinem poke-Team! Ich hab noch ne super Idee für Dein Problem: geh Dir erstmal in ruhe nen Pils trinken, da kommen einem die besten Ideen. Mach ich nu auch --> *EinFröhlichesPrösterchen*

--

zum Seitenanfang zum Seitenende Profil || Suche
019
17.07.2001, 23:43
Term



Nee, wenn ich mich erschieße fackel ich natürlich vorher meine Hütte ab, inkl. Rechner und Backups. Ich bin doch eh völlig bekloppt, wie kann man sich denn ein Jahr lang jeden Tag 12 Stunden mit dieser Behelfssoftware rumschlagen um ein Spiel zu erstellen, daß hinterher keinen Pfennig bringt?!

Ja, seht den Fakten ins Auge: wir sind alle bescheuert! Wozu das Ganze? Die Girls interessiert es einen Scheißdreck ob wir alle Entities im Schlaf runterbeten können, unsere Eltern machen sich ernsthafte Sorgen und suchen schon mal den Psychologen aus den gelben Seiten und unsere Freunde erschrecken sich zu Tode, wenn (wenn!) man mal auf einer Party auftaucht weil man aussieht wie so'n Gothic-Punk.

Ich werd Gärtner.

--

[ - Mindmotor.Studios - ]|[ - Poke646 - ]|[ - Spaceman - ]

zum Seitenanfang zum Seitenende Profil || Suche
020
18.07.2001, 00:37
Retro



Denkste die Frauen wollen was von nem "Gärtner"?! =D

Am besten lösch die ganze Geschichte mit dem Garg mal, und bau alles von anfangan neu auf. Wird wohl das Sinnvollste sein, da man bei dem Gewirre von mm's und sonstigen Krams keinen Überblick mehr hat.

--

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