ARMA II Briefings und Debriefings
Transcription
ARMA II Briefings und Debriefings
ARMA II Briefings und Debriefings Autor: Imutep Version: 1.0 Support: AMS Forum Website: Assault Mission Studio Inhalt: Kapitel1: Kapitel2: Kapitel3: Kapitel4: Kapitel5: Kapitel6: Kapitel7: Nötige Textformatierungen …........................................................................ 02 Notizen im Briefing …................................................................................... 03 Einsatzziele definieren …............................................................................... 04 Task Kontrolle ….......................................................................................... 05 Task Hints anzeigen lassen …........................................................................ 06 Das Debriefing …......................................................................................... 07 Das Overview ….......................................................................................... 08 Die Briefings in ArmA2 haben sich grundlegend geändert. Vergesst so ziemlich alles was ihr bisher über Briefings wusstet. Das alte html hat wohl ausgedient, es wird nur noch für das Debriefing genutzt. XML Kenntnisse und Scripting sind jetzt gefragt. Theoretisch könnte man seine Texte auch farblich hervorheben. Alles zu den parseTexten findet ihr im BIS Wiki. In ArmA2 wird das Briefing in eurer Mission als initJIPcompatible.sqf deklariert. Nicht mehr wie sonst als Briefing.html. Ihr könnt es natürlich auch als Briefing.sqf speichern, jedoch müsst ihr es dann in der init.sqf starten/aktivieren. ([] execVM "briefing.sqf";) Das Briefing beinhaltet wieder wie bekannt, das Briefing selbst und dazugehörige Notizen. Ich versuche hier mal ausführlich die neuen Funktionen und Inhalte der Briefings etws genauer zu beschreiben. Sollte jemand neue oder bessere Infos haben, so bitte in unserem Forum posten und alle dran teilhaben lassen. Danke! Nötige Textformatierungen In den Notizen und im Briefing sind jedoch einige Formatierungen der Texte nötig um Markerlinks, Bilder und Leerzeilen einzufügen. Ebenso müssen die Umlaute in UTF-8 formatiert werden um auch im Briefing angezeigt zu werden. Umlaute im Briefing: Die Umlaute (ÄÖÜß) werden in der englischen Sprache nicht verwendet, daher erkennt ArmA2 Umlaute nicht gleich. Man muss sie vorher in UTF-8 formatieren.Wie schon in Armed Assault, die sqf Dateien, welche Texte enthalten in UTF-8 formatieren. Das geht ganz einfach, indem ihr die Datei mit dem Notepad (Editor) öffnet und sie erneut als Briefing.sqf speichert, jedoch die Codierung auf UTF-8 stellt! Markerlinks: Markerlinks sind wie der Name schon sagt, Textverlinkungen auf Marker die ihr auf der Karte platziert habt. Wenn ihr nun in eurem Briefing auf einen Textlink klickt, so fährt der Cursor auf den entsprechenden Marker. <marker name=""NameMarker"">Verlinkter Text</marker> Zeilenumbrüche: Wollt ihr in eurem Text hin und wieder einen Zeilenumbruch einfügen, so lässt sich dies mit einem „Break“ realisieren. Eine Leerzeile besteht demnach aus 2 „Breaks“. NeueZeile (Zeilenumbruch) <br /> Für eine leerzeile <br /><br /> Bilder einfügen: Ihr könnt euer Briefing natürlich auch etwas aufwerten indem ihr Bilder einfügt, um zum Beispiel Satellitenaufnahmen, oder Bilder von Gegnern zeigen wollt. Möglich ist auch jpg. <img image='Bild.paa'/> Notizen im Briefing: Notizen werden im Briefing als diary deklariert. Die Notizen könnt ihr jetzt in einzelne Themen aufteilen wie z.B Lage, Ausführung, Unterstützung, Feindsicht,....usw). Zu den jeweiligen Themen könnt ihr noch einen beliebigen Text verfassen und so dem Spieler eine Fülle an Infos zu seinem Einsatz anbieten. Sehen wir uns einmal einen Notiz-Eintrag an. _diary1 = player createDiaryRecord ["Diary", ["Titel Notiz1", "Nachricht Notiz 1"]]; Als Titel könnt ihr jetzt z.B "Durchführung" schreiben und als Text z.B die Info zur Durchführung. Das würde dann in etwa so aussehen. _diary1 = player createDiaryRecord ["Diary", ["Durchführung", "Serzhant Snjertenk, sie bekommen 5 speziell ausgebildete Kameraden an ihre Seite die bereits in Tschetschenien als Speznatz erfolgreich Einsätze durchführten.</br></br> Gemeinsam werdet ihr unweit der Stadt <marker name=""Stadt"">Myshkino</marker> mit einem UAZ an dieser <marker name=""Start"">Koordinate</marker> abgesetzt. Von hieraus könnt ihr euch unbemerkt der Stadt nähern und die Guerillas eliminieren. Waffen und Ausrüstung findet ihr im bereits vorbereitetem BTR-90."]]; Wollt ihr natürlich mehrere Notizen in euer Briefing einbauen, dann könnt das wie folgt aussehen. Achtet auf die Reihenfolge der deklarierten Notizen, die von unten nach ob geschrieben wird! _diary2 = player createDiaryRecord ["Diary", ["Unterstützung", "Solltet ihr unerwartet bei diesem Einsatz in Bedrängnis kommen, so stehen euch 2 Möglichkeiten an Verstärkung zur Seite.<br /><br />Panzertrupp samt Infanterie:<br />Wir stellen euch einen BMP3 samt Infanterie mit gut ausgebildeten MVD Soldaten zur Verfügung. Jedoch wird es mehrere Minuten dauern bis die Truppen zu euch vorgestossen sind um euch zu unterstützen. Beachtet beim Ruf der Verstärkung diesen kleinen Nachteil.<br /><br />Luftunterstützung:<br />Als Luftunterstützung steht euch eine Hind zur Verfügung, der die Guerillas aus der Luft versuchen wird zu bekämpfen und euch aus der Luft unterstützen wird. Nach Abruf könnte der Hind in wenigen Minuten bei euch sein."]]; _diary1 = player createDiaryRecord ["Diary", ["Durchführung", "Serzhant Snjertenk, sie bekommen 5 speziell ausgebildete Kameraden an ihre Seite die bereits in Tschetschenien als Speznatz erfolgreich Einsätze durchführten.</br></br> Gemeinsam werdet ihr unweit der Stadt <marker name=""Stadt"">Myshkino</marker> mit einem UAZ an dieser <marker name=""Start"">Koordinate</marker> abgesetzt. Von hieraus könnt ihr euch unbemerkt der Stadt nähern und die Guerillas Eliminieren. Waffen und Ausrüstung findet ihr im bereits vorbereitetem UAZ."]]; Einsatzziele (Tasks) im Briefing: Die neue Benennung der Einsatzziele lautet "task" (task1, task2, task3....) Ihr könnt Tasks wie und wann ihr wollt aktivieren und deaktivieren. Fügen wir einen einfachen task dem Briefing hinzu. task6 = player createSimpleTask ["Auf Heli warten"]; Jetzt ist noch keine Nachricht für diesen Task definiert. das geht wie folgt. task6 setSimpleTaskDescription ["Task Nachricht", "Task Titel", "Task HUD Titel"]; Fertig sieht das dann in etwa so aus: task6 setSimpleTaskDescription ["Sobald sie ihren Einsatz beendet haben bekommen sie die Koordinaten für die Abholzone, wo man sie und ihren Trupp aufnehmen wird. Wir bereiten alles weitere für euch vor.","Auf Heli warten","Auf Heli warten"]; Das erste Element in dem Array ist die Nachricht zum Einsatzziel (hier task6), das zweite ist der Titel des Einsatzzieles (wird hier nur redefiniert) und das dritte Element ist der Titel der im HUD angezeigt wird im Briefing. (oben rechts) Der Text "Auf Heli warten" wird im Briefing somit als Missionsziel angezeigt. Rechts davon die Beschreibung angezeigt (description). Ebenso könnt ihr zu jedem Einsatzziel einen sogenannten Objective Marker anzeigen lassen, damit man weiss wo und welches das nächste Einsatzziel ist. Das geht mit diesem Befehl. task6 setSimpleTaskDestination markerpos "Abholen"; "Abholen" steht für den Namen des Markers, den ihr als leeren Marker auf der Karte postiert habt. Nun seht ihr einen semi transparenten Marker eures Einsatzieles auf der Karte. Fahrt ihr nun mit der Maus über den Marker, so wird der Name des dazugehörigem tasks angezeigt. Ein fertiger Task-Eintrag im Briefing würde dann in etwa so aussehen: task3 = player createSimpleTask ["Hauptziel: Tristian töten"]; task3 setSimpleTaskDescription ["Wir wissen dass sich Tristian irgendwo in der Ortschaft <marker name=""Stadt"">Myshkino</marker> oder in dem versteckten <marker name=""Lager"">Nachschublager</marker> aufhält. Finden und töten sie ihn!","Hauptziel: Tristian töten","Hauptziel: Tristian töten"]; task3 setSimpleTaskDestination markerpos "Flucht"; task3 setTaskState "Created"; Bestimmten task als momentanes Einsatzziel festlegen: player setCurrentTask task1; Tasks Kontrolle: Ihr könnt in ArmA2 durchweg die Kontrolle über eure vorgegebenen Einsatzziele haben. Löschen, aktivieren, neu hinzufügen und so weiter. Sogar einzelnen Einheiten aus eurer Gruppe könnt ihr ein Einsatzziel vorgeben. (Genial im MP) Das geht ganz einfach mit dem Befehl. task6 = NameEinheit createSimpleTask ["Hauptziel: Auf Heli warten"]; Wenn dieses Einsatzziel z.B. erfüllt wurde, könnt ihr wieder und wieder weitere Einsatzziele angeben. Wie ihr wollt. Einsatzziel erreicht: task1 setTaskState "Succeeded"; Einsatzziel fehlgeschlagen: task2 setTaskState "Failed"; Einsatzziel abbrechen/löschen: task2 setTaskState "Canceled"; Einsatzziel aktiviert im Briefing: task7 = player createSimpleTask ["Titel 7"]; task7 setTaskState "Created"; Ensatzziele per Zufall aktivieren: Ihr könnt auch per Zufall ein Einsatzziel aktivieren wann ihr wollt. Hier mal ein Beispiel dazu. Ein Shilka mit dem Namen tank1 des Gegner wurde mit 60% Bedingung der Anwesenheit platziert. Existiert das Shilka nun im Spiel, fügt einen task zum zerstören hinzu. if (alive tank1) then { tskShilka = player createSimpleTask["Shilka zerstören"]; tskShilka setSimpleTaskDescription["Findet und zerstört das gegnerische Shilka, welches sich irgendwo nahe den Wäldern befindet.", "Shilka zerstören", "Shilka zerstören"]; }; Einsatzziele später aktivieren: [] spawn { waitUntil {!(isNil "obj3_active")}; task3 = player createSimpleTask ["Neues Ziel: T72 zerstören"]; }; [] spawn { waitUntil {!(isNil "obj4_active")}; task4 = player createSimpleTask ["Neues Ziel: Ortschaft säubern"]; task4 setSimpleTaskDestination markerpos "Ortschaft"; }; Task Hints anzeigen lassen: Wer gerne die task Hints wie ihr sie aus der Kampagne kennt, aktivieren will, kann das mit folgendem Scriptaufruf machen. Wenn nun zum Beispiel ein Einsatzziel erfolgreich abgeschlossen wurde, so könnt ihr mit diesem Aufruf folgenden Hint anzeigen lassen. nul = [objNull, ObjNull, task4, "SUCCEEDED"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf"; "SUCCEEDED" "FAILED" "CREATED" "CANCELED" MP Briefings: MP Briefings unterscheiden sich von den üblichen Briefings. Hier kommt nämlich das Thema Respawn ins Spiel. Und zwar Betrifft es das verschwinden der Notizen sowie der Aufgaben nach einem Respawn. Dieses Problem wird erst im nächsten Patch behoben. Um dieses Problem jetzt schon zu umgehen, gibt es eine gute Möglichkeiten, welche ich hier versuche etwas genauer zu erklären. Briefing neu laden nach Respawn: Hier ein Beispiel von Mikey, welches neben Briefings für alle Seiten auch das Respawn Problem behebt, indem das Briefing jeweils wieder neu geladen wird. Der Nachteil ist hier, dass der Spieler seine zuvor erreichten Einsatzziele als nicht erfüllt sieht. Ich kopiere hier die komplette Briefing.sqf waitUntil { !isNull player }; // all hip now ;-) waitUntil { player == player }; switch (side player) do { case WEST: // BLUFOR Briefing steht hier { player createDiaryRecord["Diary", ["Info", "Info Text"]]; player createDiaryRecord["Diary", ["Enemy", "Enemy...."]]; player createDiaryRecord["Diary", ["Friendly", "1st Platoon...]]; player createDiaryRecord["Diary", ["Mission", "1st Platoon..."]]; player createDiaryRecord["Diary", ["Situation", "Prior to our..."]]; // Secondary Objectives tskObj3 = player createSimpleTask["Secondary: engage"]; tskObj3 setSimpleTaskDescription["The civilians.....", "engage", "engage"]; tskObj2 = player createSimpleTask["Secondary: No risk"]; tskObj2 setSimpleTaskDescription["Let's not...", "No risk", "No risk"]; // Primary Objective tskObj1 = player createSimpleTask["Primary: Secure The Town"]; tskObj1 setSimpleTaskDescription["Your...", "Secure Town", "Secure Town"]; player setCurrentTask tskObj1; }; case EAST: // Redfor Briefing steht hier { }; case RESISTANCE: // Widerstand/Independent Briefing steht hier { }; case CIVILIAN: // Zivilisten Briefing steht hier { }; }; // run this file again when respawning (only setup the killed EH once though) if ( isNil {player getVariable "mk_briefingEH"} ) then { player addEventHandler ["killed", { [] spawn { waitUntil { alive player }; // waitUntil player has respawned execVM "briefing.sqf"; // make sure this path is correct }; }]; player setVariable ["mk_briefingEH", true]; }; Das Debriefing: Das Debriefing wird in ArmA2 als Briefing.html deklariert. Im Debriefing wird am Ende der Mission ihr Erfolg oder Misserfolg der Mission zum Ausdruck gebracht. Neben der Statistik ihrer Abschüsse und Verluste an eigenen Einheiten, wird hier auch die entsprechende Notiz zum entsprechendem Ende angezeigt, welches ihr deklariert habt. Ansicht Debriefing (Verlieren) So sieht das Briefing html in etwa aus <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>Nachbesprechung</title> </head> <body bgcolor="#FFFFFF"> <! -----DEBRIEFING-----> <hr> <br> <h2><a name="Debriefing:End1">Mission erfolgreich!</a></h2> <br> <p> <! ------victory------> Yeah, wir haben gewonnen..... </p> <br> <hr> <br> <h2><a name="Debriefing:Loser">Mission gescheitert!</a></h2> <br> <p> <! ------KIA------> Mist, wir haben verloren.... </p> <br> </body> </html> Das Overview Das Overview ist sozusagen euer Titel in der Kampagnen-oder Missionsauswahl im Spiel. Neben dem Bild eures Szenarios ist auch kurzer Infotext zu sehen. Alles von euch selbst in der Overview.html deklariert. Das Overview ist wie üblich als html zu schreiben und sieht jetzt wie folgt aus. Bilder sollten am besten mit Grösse 512x512 zugeschnitten sein und können als .paa oder .jpg gespeichert werden. Achtet auf die neue Bildgrösse im Overview! <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <meta name="GENERATOR" content="VB"> <title>Overview</title> </head> <body bgcolor="#FFFFFF"> <p align="center"><img src="saw.jpg" width="240" height="121"></p> <p> Einer unserer Nachschub Konvois wurde von Guerillas in Myshkino angegriffen. Wir haben seither jeden Funkkontakt zu der Einheit verloren. Steckt der Warlord Tristian dahinter? <br> </p> </body> </html> So sieht ein Overview in der Missionsauswahl im Spiel aus: Das wars dann auch schon fürs erste. In naher Zukunft werden wir dieses Tutorial erweitern und auch den MP Part einbinden. Briefings nach Respawn, Briefings für alle Seiten und vieles mehr. Jedoch müssen hierfür noch ausreichend Tests getätigt werden um euch auch hiermit ein fehlerfreies Tutorial anbieten zu können. Zum Schluss natürlich wie immer ein grosses Dankeschön an die ArmA2 Community, das G.G.C. Forum, Mapfact Forum, Lester, OFPEC, Mikey, und natürlich den eifrigen Editing Gurus des Assault Mission Studios, die Tag für Tag ihre Erfahrungen im Bereich Editing kund tun und somit eine Fülle an Infos für die gesamte Community anbieten. Sollten noch Fragen zu diesem Tutorial auftreten oder ihr gerne mit uns weitere Aspekte zu den Briefings in ArmA2 mitteilen möchtet, so könnt ihr dies gerne in unserem AMS-Editing Forum tätigen. Ihr seid herzlich eingeladen! Links 1. 2. 3. 4. zum Thema Briefing: Assault Mission Studio OFPEC Mapfact BIS Forum Vielen Dank für dein Interesse an diesem Tutorial !