Nachdem ich euch die Grundlagen des Mappens vorgestellt habe, folgt nun hier ein weiteres Tutorial, welches es euch auch erlaubt kompliziertere Dinge in eure Maps einzubauen.
Scripten:
Um manches einzubauen oder zu aktivieren, kommt man ums Scripten nicht herum.
Mit diesem Icon öffnet man die Scripts. Die meisten Sachen gehören in den Ordner des Player Civilian, den klickt ihr an und dann auf New Script. Nun seht ihr, dass so ein Script aus vier Dingen besteht.
Das erste ist das Script Properties, hier gehört der Name des Scripts rein, wie auch ob es deaktiviert werden soll, für welche Schwierigkeitsstufe es gilt und wie oft es abgefragt wird.
Als nächstes folgen die Script Conditions, also die Voraussetzungen. Zu Beginn steht da einfach If True, was bedeutet, dass etwas gleich zu Beginn ausgelöst wird.
Actions if true: Ist der dritte Teil des Scripts, hier gehört nun hinein was geschehen soll.
Actions if false: Da kommt hinein, was passiert, wenn die Voraussetzung nicht erfüllt ist. Kann auch leer bleiben und tut es in den meisten Fällen auch.
Map.ini - Datei erstellen
Um verschiedene Dinge wie Regen, Schnee usw machen zu können, braucht ihr eine Datei mit dem Namen Map - Konfigurationseinstellungen in eurer Map.
Dazu geht ihr unter eigene Dateien, dort auf den ZH Ordner und da auf Maps. Dort fügt ihr dann das hier ein.
Map ini
Schnee:
Um es auf eurer Map schneien zu lassen, benötigt ihr folgende ini:
Spoiler:
Das kopiert ihr in die Map Konfigurationseinstellungen.
Nun muss das Wetter noch aktiviert werden. Dazu geht man im WB auf die Scripts und geht auf Map --> Environment --> Show Weather.
Snow
*** IF ***
True.
*** THEN ***
Show Weather = TRUE
Jetzt schneit es gleichmäßig auf eurer Map.
Regen:
Bei Regen ist es genau wie beim Schnee, nur wird diese ini verwendet.
Spoiler:
Gewitter:
Beispiel für ein Gewitterscript, welches aus mehreren aneinandergereihten Scripten besteht:
Spoiler:
Fahrende Autos:
Man nimmt das Waypointtool und setzt die gewünschte Strecke, die geschlossen sein muss und gibt ihr einen Namen, z.b. Autofahrt. Danach wählt man bei den Objekten die gewünschten Fahrzeuge aus und platziert sie auf dem Wegpunktpfad. Jedes Auto bekommt nun einen Namen und zu guter Letzt brauchen wir noch das passende Script. Dazu die Scripts öffnen und ein neues erstellen, und einen Namen geben, z.b. Autofahrt.
Dann die folgenden Schritte:
*** IF ***
True.
*** THEN ***
Unit 'Karre' EXACTLY follows waypoints, beginning at Waypoint Path 'Autofahrt
Züge:
Wieder einen geschlossenen Waypointpfad zeichnen und dann einfach die Lok in Fahrtrichtung draufsetzen. Der Zug fährt alleine und auch die Hänger werden erst im Spiel sichtbar.
Er fährt auch ohne Schienen, doch das sieht ein wenig doof aus. Also brauchen wir Gleise, die wir bei den Straßen finden:
Tag/Nacht/Lichtoptionen
Um die Tageszeit zu ändern, einfach Strg + D drücken. Es gibt vier Tageszeiten.
Daneben gibt es noch Lichtoptionen, welche man bei Edit und dort dann Global Light Options findet. Dort könnt ihr das Licht in verschiedene Farben tauchen, um z.b. ein düsteres Ambiente zu schaffen.
Mit Restore to Default wird der Normalzustand wieder hergestellt.
Es ist auch möglich Umgebung und Objekte getrennt zu beleuchten. Dazu einfach im Global Light Options - Fenster den Haken bei Everything rausnehmen und entweder bei Terrain setzen, was die Umgebung färbt, oder bei Objects, was die Objekte färbt. Beides geht natürlich auch hintereinander.
Wasser färben
Hier gibt es zwei Varianten das zu tun.
Die erste ist mit den Global Light Options, wie einen Punkt darüber beschrieben. Weißes Licht färbt das Wasser beispielsweise ganz dunkel, was man auch schon auf der Map sehen kann.
Die zweite Variante ist per Map ini. Dazu einfach folgendes da reinpacken:
Spoiler:
Standing Water Color ist dabei das Wasser im Spiel und Radar Water Color das auf der Radarkarte.
Achtung: Erst im Spiel wird das gefärbte Wasser angezeigt, im WB bleibt es blau.
Units verbieten
Wollen wir erreichen, dass bestimmte Einheiten oder Gebäude nicht baubar sein sollen, so machen wir folgendes:
Scripts --> Map --> Modify --> Adjust the tech tree for a specific object type
Dort dann die gewünschte Einheit/Gebäude auswählen und dann auf No setzen. Schon kann es nicht mehr gebaut werden. Funktioniert bei sämtlichen Einheiten und Gebäuden.
Hier z.b. mit den Abwehrstellungen des Superwaffengenerals.
*** IF ***
True.
*** THEN ***
'SupW_AmericaFireBase' becomes Buildable (No)
'SupW_AmericaPatriotBattery' becomes Buildable (No)
Units unbemannt machen
Um leere Fahrzeuge zu bekommen, in die man einsteigen kann, geht man wie folgt vor. Entsprechendes Objekt in die Map setzen und einen Namen geben. Danach dann das entsprechende Script, zu finden bei Unit -->Status:
*** IF ***
True.
*** THEN ***
Make Unit 'Panzer' unmanned.
Funktioniert auch mit Gebäuden, die man dann sofort einnehmen kann, indem man einen Fußsoldaten hineinschickt, ohne Zeitverzögerung und ohne das Gebäude besetzen - Upgrade erforschen zu müssen.
SW feuern lassen
Gewünschte SW, z.b. Paka, in die Map setzen und Namen geben. Danach einen Waypoint setzen, wohin sie feuern soll und schließlich das Script:
*** IF ***
True.
*** THEN ***
Unit 'Paka' fires Special power 'SuperweaponParticleUplinkCannon' at Waypoint 'Paka Schuss'.
Zu guter Letzt müssen wir die Script Properties anpassen. Soll sie nicht nur einmal feuern, dann den Haken bei Deactivate uppon success rausnehmen. Bei Evaluate Script den Haken bei Every Frame raus und bei Seconds rein, dort dann 240 eintragen. Sie schießt nun alle 240 Sekunden aka 4 Minuten.
Wichtig: Wenn ihr SWs setzt, bei Nuke und Paka die Kraftwerke nicht vergessen, sonst geht gar nichts.
Texte einfügen
Zuallererst braucht ihr in euer Map Datei, also da wo schon die Map.ini reinkommt, ein Map.str. Dazu das hier da reinkopieren.
Map.str
Als nächstes könnt ihr da den gewünschten Text eintragen.
SCRIPT:Intro_01
"Bliblablablaaaaa"
End
Zeilenumbrüche macht man wie folgt:
SCRIPT:Intro_02
"blubbblubb \n
moeptrallalla"
End
Nun brauchen wir noch ein Script, besser gesagt mehrere, um den Text anzeigen zu lassen. Als erstes einen Timer, zu finden bei Seconds Countdown Timer --Set. Wichtig; Den Namen des Timers müsst ihr manuell da eintragen.
*** IF ***
True.
*** THEN ***
Set timer 'Introtimer' to expire in 1.00 seconds.
Danach dann das Script für den Text: Scripting --> Briefing--> Show military caption
*** IF ***
Timer 'Introtimer' has expired.
*** THEN ***
Show military briefing String: 'SCRIPT:Intro_01' for 7000 milliseconds.
Wie ihr seht, muss in die Briefingzeile die Überschrift eures Textes in der Map.str
Als Zeit könnt ihr auch weniger oder mehr Milisekunden nehmen, bedenkt aber, wenn es zu kurz ist, ein längerer Text nicht angezeigt wird. Soll ein weiterer Text folgen, dann einfach nach dem Introtext noch einen weiteren Timer setzen:
*** IF ***
Timer 'Introtimer' has expired.
*** THEN ***
Show military briefing String: 'SCRIPT:Intro_01' for 7000 milliseconds.
Set timer 'Intro_02' to expire in 7.00 seconds.
Danach dann das entsprechende weitere Script.
Wollt ihr einen Text mitten im Spiel, beispielsweise nach einem Geschehen (z.b. nach Zerstörung eines bestimmten Objekts, welches natürlich mit Namen in der Map platziert sein muss), so geht wie folgt vor:
*** IF ***
Unit 'Haus' has been destroyed.
*** THEN ***
Show military briefing String: 'XXXXXX' for 7000 milliseconds
Bei XXXXX dann eben den ensprechenden Text aus der Map.str einfügen.
Geldwert eines Supplys ändern
Dazu setzen wir das Supply Dock, zu finden bei Civilian Structures, in die Map und geben ihm einen Namen, z.b. Dock. Dann folgendes Script:
*** IF ***
True.
*** THEN ***
Warehouse named Unit 'Dock' is set to having 10000 dollars worth of boxes
Natürlich kann man jeden beliebigen Geldwert eingeben, die 10000 sind nur ein Beispiel.
KI Scripte einfügen
Normalerweise ist in den KI Ordnern nichts drin und wenn man dann irgendwas einfügt, wird die KI dumm und macht nichts mehr. Somit braucht man, wenn man mit den KIs was anstellen will, die Skirmish Scripts.
Die liegen im Verzeichnis "[Game-Verzeichnis]\Data\Scripts" und zwar in der Datei "SkirmishScripts.scb". In eurem Script geht ihr dazu einfach auf Scripts importieren.
Wichtig: Bevor ihr die Skirmish Scripts importiert, müsst ihr den Ordner des Players Civilian nach unten bekommen, da sonst viele Scripts im falschen Ordner landen. Dazu verschiebt ihr erst eventuell vorhandene Scripts im Civilian Ordner zu neutral. Dann geht ihr einfach dorthin, wo ihr die Skirmish Players aktiviert habt, also bei Edit. Dort klickt ihr den Player Civilian an und löscht diesen. Danach klickt ihr auf Add Skirmish Players. Jetzt sollte der Player Civilian ganz unten stehen und ihr könnt im Scriptordner eure Scripts von neutral wieder da hineinschieben. Jetzt erst solltet ihr die Skirmish Scripts importieren.
Zusätzlichen feindlichen Spieler einfügen:
Da gehen wir auf Edit Player List, falls die Skirmish Players noch nicht hinzugefügt wurden, erledigen wir das gleich. Danach geht man auf New Player und wählen unter Faction Civilian aus. Nimmt man eine andere Fraktion, so ist diese entweder dumm oder aber verkauft die ihr zugewiesenen Gebäude. Jetzt bei Set Namen einen Namen einfügen, z.b. Team Blabla und auf Set klicken. Bei Display Name ebenfalls einen Namen hineinschreiben, möglichst den Gleichen. Dann eine Farbe auswählen und bei computer controlled ein Häkchen rein.
Danach müssen wir noch in den Scripts einfügen, dass es ein Feind sein soll. Unter Player --> Alliances findet man es. Mit jedem Spieler macht ihr nun folgendes:
*** IF ***
True.
*** THEN ***
[???] Player 'Team_Blabla' considers Player 'player0' to be Enemy
[???] Player 'player0' considers Player 'Team_Blabla' to be Enemy
Wobei player0 immer der Host ist und es dann immer weitergeht, bis player7, da maximal 8 Spieler möglich, wobei es nur für Menschen gilt. Diese Player müsst ihr zudem manuell eintragen, ihr werdet sie in keiner Liste finden. Wichtig ist auch immer beide Seiten zu beschreiben, also A ist Feind von B und B ist Feind von A.
Die Fragezeichen ignorieren, denn das Script ist korrekt.
Diesem Spieler könnt ihr nun Einheiten zuweisen, z.b. den UN Soldaten, der dann angreifen wird, wenn man sich ihm nähert.
Möchte man, dass der neue Spieler auch den KI Spielern feindlich gesonnen ist, so muss man obiges Script einfach bei dem ensprechenden Spieler, also SkirmishAmerica, SkirmishChina usw reinschieben und entsprechend abändern, dass eben diejenige Fraktion der Feind ist.
*** IF ***
True.
*** THEN ***
Player 'Team_Blabla' considers Player '<This Player>' to be Enemy
Player '<This Player>' considers Player 'Team_Blabla' to be Enemy
Beachtet, dass wenn ihr was in die KI Ordner einfügt, ihr vorher die einen Punkt weiter vorne beschriebenen Skirmish Scripts eingefügt habt. Tut ihr das nicht und fügt nur einfach so was in die KI ein, dann ist diese dumm, macht also gar nichts.
Flugzeug fliegen lassen
Als erstes setzen wir das ensprechende Flugzeug, z.b. den Versorgungsflieger der Amis, das Schrottding der GBA oder den Comercial Airliner, in die Map und geben ihm einen Namen, z.b. Airbus. Danach ziehen wir mit dem Areatool eine Area um das Flugzeug herum und benennen sie, z.b. Airbus Area. Danach einen Wegpunktpfad, wo der Flieger entlangfliegen soll und zu guter Letzt folgendes Script:
*** IF ***
Unit 'Airbus' enters area 'Airbus Area'
*** THEN ***
Unit 'Airbus' EXACTLY follows waypoints, beginning at Waypoint Path 'Flug'
Flutwelle
Um so eine extrem zerstörerische Flutwelle wie in meiner Map Ruptura zu bekommen, geht ihr wie folgt vor. Als erstes setzt ihr einen Damm und benennt ihn, z.b. Damm. Danach baut ihr mit dem Höhentool ein Wasserbecken, welches hinter dem Damm ist und füllt es mit dem Wassertool.
Jetzt brauchen wir eine Area, in der die Flutwelle schließlich entlangpreschen soll. Dazu nehmen wir das Wassertool und erstellen diese Area, die direkt beim Damm beginnen muss. Nennen wir sie Flutzone.
Danach nehmt ihr das Waypointtool und setzt einen Waypoint direkt am Damm, diesen müsst ihr WaveGuide1 nennen. Von diesem Wegpunkt aus zieht ihr einen Wegpunktpfad gerade nach hinten und zwar in einem Schritt, so dass man insgesamt nur 2 Waypoints hat. Danach geht ihr bei den Objekten in Civilian und dort in System. Da klickt ihr den WaveGuide an und setzt den direkt neben dem Waypoint WaveGuide1.
Nun folgendes Script:
*** IF ***
Unit 'Damm' has been destroyed.
*** THEN ***
area 'Flutzone' changes altitude to 2.00 in 20.00 seconds doing 20.00 dam_/sec.
Jetzt löst es bei Zerstörung des Damms diese Flutwelle aus.
Um das Ganze etwas subtiler zu machen, z.b. die Flut bei einer bestimmten Aktion auszulösen, gehen wir wie folgt vor:
Lösen wir die Flut bei Zerstörung einer Partikelkanone aus. Dazu setzen wir eine in die Map und benennen sie, z.b. Paka 1. Danach klicken wir den Damm an und setzen seine Max HP auf 9999999.
Wir schreiben nun folgendes Script und nennen es meinetwegen Damm kaputt. Unter Unit --> Damage or Remove findet man es.
*** IF ***
True.
*** THEN ***
Unit 'Damm'is dealt a lethal amount of damage.
Danach Rechtsklick auf dieses Script und auf Active klicken. Jetzt ist in dem blauen Ordner des Scripts ein Kreuzchen, womit es deaktiviert ist.
Danach dann dieses Script.
*** IF ***
Unit 'Paka 1' has been destroyed.
*** THEN ***
Enable Script 'Damm kaputt'.
Jetzt kann man den Damm bearbeiten wie man will, zerstört man jedoch die Paka auf der Map, bricht er sofort.
Gebäude unverkäuflich
Wollen wir bestimmte Gebäude, z.b. Partikelkanone des Lasergenerals, unverkäuflich machen, gehen wir folgendermaßen vor: Scripting --> Remove a command button from an object type. Da suchen wir dann Command Sell.
Achtung: Im Script selbst ist ein Fehler, den wir beheben müssen. Sucht man das Command Sell, sieht es so aus: Command_SellI. Jedenfalls ist nach den zwei L vom Sell noch so ein fettes I. Das entfernen wir.
*** IF ***
True.
*** THEN ***
[???] Command button: 'Command_Sell' is removed from all objects of type 'Lazr_AmericaParticleCannonUplink'.
Das Script ist korrekt so, die Fragezeichen muss man hier ignorieren. Nun ist der Verkaufsbutton von allen Lasergeneral - Partikelkanonen weg, nicht nur von den gesetzten, sondern auch von denen die man selbst baut oder vom Gegner gebaut werden.
Die KI kann übrigends trotzdem verkaufen.
Verhindern, dass die KI ein auf der Map gesetztes Gebäude einnehmen kann.
Um zu verhindern, dass die KI ein auf der Map gesetztes Gebäude einnimmt (und verkauft). Gebäude setzen und benennen, danach gehen wir bei den Scripts auf Unit und suchen Affect flags set on object panel, um dieses Script zu machen.
*** IF ***
True.
*** THEN ***
Unit 'Paka' changes the value of flag Object Flag: AI Recruitable to FALSE.
Durch einen unerklärlichen Bug können die Minigunner des Infanteriegenerals es trotz allem das Gebäude einnehmen, aber alle anderen KI können es nicht mehr.
Blutende Infanterie:
Wollt ihr die Infanterie bei Treffern bluten sehen, so fügt ihr einfach folgendes in die Map.ini ein.
Spoiler:
Voila, nun bluten Infanterieeinheiten bei Treffern.
Partikelstrahlen färben:
Nehmen wir z.b. die Partikelkanone des Lasergenerals. Dazu folgendes in die Map.ini einfügen
Spoiler:
Bei Color 1 steht die jeweilige Farbe, die ihr ändern könnt. Dazu noch eine kleine Erklärung, was was ist:
ParticleUplinkCannon_OrbitalLaser: Der Strahl an sich.
ParticleUplinkCannon_OuterNodeLightFlare, ParticleUplinkCannon_OuterNodeMediumFlare, ParticleUplinkCannon_OuterNodeIntenseFlare: Das Leuchten der 5 Nodes, erst leicht, dann stärker. Dürfte eigentlich aus den Namen ersichtlich werden.
Beim letzten Teil, also dem
ParticleSystem ParticleUplinkCannon_LaunchFlare, welches das Pulsieren über der Abschussvorichtung der Partikelkanone ist, während sie feuert (Siehe Bild des Strahls), ist zu beachten, dass diese für alle Partikelkanonen gilt (außer der vom Superwaffengeneral). Verändert man es also für die Laser - Partikelkanone, dann haben auch die des normalen Amerikaners, sowie die des Luftwaffengenerals diese Farbe.
Der Launch Flare lässt sich auch mit folgendem Wert ändern: ParticleName = EXLnzFlar1.tga
Dabei sind Werte von 1 - 7 möglich, jede steht für eine andere Farbe.
Anti - Scudbug - Script:
Wer kennt ihn nicht, den lästigen Scudbug? Doch hier gibt es ein Mittel dagegen und dies ist mit ein paar Scripts getan.
Als erstes brauchen wir eine Objects List. Dazu gehen wir unter Scripting zu Object Type List und da zu Add Object Type. Benennt diese Liste, z.b. Scudstorm List. Dort packt ihr dann alle Scud Stürme hinein.
*** IF ***
True.
*** THEN ***
'Scudstorm List' : add 'Chem_GLAScudStorm'
'Scudstorm List' : add 'Demo_GLAScudStorm'
'Scudstorm List' : add 'GLAScudStorm'
'Scudstorm List' : add 'Slth_GLAScudStorm'
Danach machen wir das Anti Scudbug Script für den Player 0 (Erster Spieler bzw Host), gehen auf New Folder und nennen den Anti-Scudbug Player 0. Da rein dann die folgenden Scripte.
Player 0 Build Scudstorm
*** IF ***
[???] Player 'player0' has Equal To 1 unit or structure of type 'Scudstorm List'
*** THEN ***
Set timer 'Player 0 Fire Scudstorm Timer' to expire in 295.00 seconds.
Enable Script 'Player 0 Fire Scud Bug'.
Enable Script 'Player 0 Fire Scudstorm Normal 2'.
Player 0 Fire Scud Bug
*** IF ***
[???]Player Player 'player0' completed using Special power 'SuperweaponScudStorm'.
*** THEN ***
Show military briefing String: 'blablab' for 7000 milliseconds.
Enable Script 'Player 0 Fire Scud Bug - Kill'.
Bei dem Briefing wieder den Text aus dem Map.str nehmen, wies geht, steht weiter oben.
Player 0 Fire Scud Bug Kill
*** IF ***
True.
*** THEN ***
'Taunts_USABoss110' plays, allowing overlap TRUE (true to allow, false to disallow).
[???] Player 'player0' is unable to build buildings.
[???] Player 'player0' is unable to build units.
[???] Player 'player0' sells everything.
[???]Set Player 'player0''s money to $ 0
Player 0 Fire Scud Storm Normal
*** IF ***
Timer 'Player 0 Fire Scudstorm Timer' has expired.
*** THEN ***
Disable Script 'Player 0 Fire Scud Bug'.
Disable Script 'Player 0 Fire Scud Bug - Kill'.
Player 0 Fire Scud Storm Normal 2
*** IF ***
[???]Player Player 'player0' starts using Special power 'SuperweaponScudStorm'.
*** THEN ***
Disable Script 'Player 0 Fire Scud Bug'.
Disable Script 'Player 0 Fire Scud Bug - Kill'.
Wie ihr sicher an den Scripts schon sehen könnt, hat der Spieler, der den Scudbug benutzt, sofort verloren und verkauft alles.
Für die anderen Spieler (Player1, Player2 usw) müsst ihr die Scripte dann ebenfalls schreiben, je nachdem wieviele Spieler die Map hat.
Kleiner Leitfaden zum Thema inis
Man braucht dazu das Tool Final.big, um die inis aus ZH entpacken zu können.
Download Final.big
Jetzt könnt ihr die gewünschten Sachen in eure Map.ini setzen, um sie zu bearbeiten. Beachtet aber, dass jeder noch so kleinste Fehler zu einem Absturz des Spiels führt.
AudioSettings.ini - In dieser Datei, könnt ihr viele Einstellungen über den Sound von Generals ändern.
So zum Beispiel die Lautstärke
CommandButton.ini - In der Comman Button.ini, sind die Befehle drin.
Zum Beispiel die Befehle:
CommandButton Command_Sell
CommandButton Command_UpgradeAmericaAdvancedTraining
CommandButton Command_ConstructChinaCommandCenter
CommandSet.ini - In dieser Datei, werden die Befehle, den jeweilligen Einheiten hinzugewiesen.
Hier das Schema:
;+--+--+--+--+--+--+
;|01|03|05|07|09|11|
;+--+--+--+--+--+--+
;|02|04|06|08|10|12|
;+--+--+--+--+--+--+
Es sind höchstens 12 Befehle pro Einheit, Gebäude... möglich.
Hier ein Beispiel vom Bulldozer:
CommandSet AmericaDozerCommandSet
1 = Command_ConstructAmericaPowerPlant
2 = Command_ConstructAmericaStrategyCenter
3 = Command_ConstructAmericaBarracks
4 = Command_ConstructAmericaSupplyDropZone
5 = Command_ConstructAmericaSupplyCenter
6 = Command_ConstructAmericaDetentionCamp
7 = Command_ConstructAmericaPatriotBattery
8 = Command_ConstructAmericaParticleCannonUplink
9 = Command_ConstructAmericaWarFactory
10 = Command_ConstructAmericaCommandCenter
11 = Command_ConstructAmericaAirfield
12 = Command_DisarmMinesAtPosition
End
Eva.ini - Hier drin werden die Stimmen(zb. Warnung, Partikelkanone geortet!) den Armeen hinzugewiesen
Weapon.ini - Alles mögliche zum Thema Waffen
CivilianBuilding.ini - zivile Gebäude
CivilianProp.ini - die Objekte, die im World Builder unter Civilian/MISC_MAN_MADE zu finden sind (sind meistens zur Dekoration, z.B. Ampeln)
CivilianUnit.ini - zivile Einheiten
FactionBuilding.ini - Gebäude, die zu einer der Seiten gehören
FactionProp.ini - nur der MultiplayerBeacon
FactionUnit.ini - Einheiten, die zu einer der Seiten gehören
NatureProp.ini - natürliche Objekte wie Bäume oder Felsen
NatureUnit.ini - ein Vogel und ein Ochse.
System.ini - Systemobjekte, wer hätte das gedacht? z.B. die Seile, an denen Ranger aus Chinooks rutschen oder die Flagge, zu der neu gebaute Einheiten gehen.
Die einzelnen Objekte fangen immer mit:
;----------------------------------------------------------
Object <Objekt-Name>
(z.B. "Object Lazr_AmericaParticleCannonUplink" oder "Object GLAInfantryRebell" oder auch "Object StanTownHall01")
an und haben folgende Unterkategorien:
; *** ART Parameters *** // Grafik, z.B. Models und Animationen
; ***DESIGN parameters *** // Eigenschaften, z.B Waffen und Kosten
; *** AUDIO Parameters *** // Sounds, z.B. die lustigen Sprüche beim Befehle empfangen
; *** ENGINEERING Parameters *** // Verhalten u.ä. wie z.B. ob es ein Transporter ist und wie viele reingehen
Manche Objekte haben nicht alle von diesen Kategorien wie z.B. Zelte, die keine Audio- Parameter haben, da sie ja auch nichts zu sagen haben.
Manche (oder so gut wie alle) Objekte haben aber auch noch "Unterunterkategorien" wie:
Behavior = X
blablubb
End
Wollt ihr Texte, z.b. Überschriften hineinscheiben, so beginnen diese immer mit einem Semikolon. Jeder neue Satz muss dabei ebenfalls mit einem Semikolon beginnen. Dann könnt ihr schreiben was ihr wollt.
;----------------------Das ist eine ini-------------------------
;blablablabla
Die einzelnen Fraktionen haben auch ihre entsprechenden Abkürzungen in den inis:
America = USA normal
Lazr_America = Lasergeneral
AirF_America = Luftwaffengeneral
SupW_America = Superwaffengeneral
China = China normal
Infa_China = Infanterie General
Nuke_China = Nukleargeneral
Tank_China = Panzergeneral
GLA = GLA normal
Demo_GLA = TNT General
Slth_GLA = Tarngeneral
Chem_GLA = Toxingeneral
Kamerafahrten
Kamera verfolgt eine Einheit:
Dazu brauchen wir erstmal einen Wegpunktpfad, den die Einheit langfahren soll sowie die Einheit mit Namen, z.b. Ambu. Danach dann zu Scripts gehen und bei Camera rein. Da dann folgendes Script:
*** IF ***
True.
*** THEN ***
Have the camera follow Unit 'Ambu'. Snap camera to object is TRUE.
Kamera beginnt nach gewisser Zeit:
Dazu brauchen wir erst einen Timer:
*** IF ***
True.
*** THEN ***
Set timer 'Kamera' to expire in 10.00 seconds.
Und danach dann das Script wie oben, nur anstatt True kommt als Voraussetzung der Timer.
*** IF ***
Timer 'Kamera' has expired.
*** THEN ***
Have the camera follow Unit 'Ambu'. Snap camera to object is TRUE.
Kamera beginnt nach einem Ereignis:
Nehmen wir einfach im Beispiel wieder die Zerstörung einer Paka. Dann sieht das entsprechende Script so aus.
*** IF ***
Unit 'Paka 1' has been destroyed.
*** THEN ***
Have the camera follow Unit 'Ambu'. Snap camera to object is TRUE.
Kamera raus/reinzoomen:
Das finden wir bei Camera --> Camera FX. Bei dem Script den Waypoint eingeben (z.b. Den Player 1 Start) und das saturate coloers auf True stellen.
*** IF ***
True.
*** THEN ***
Blur zoom, zoom in at current location, zoom out at Waypoint 'Player_1_Start', saturate colors = TRUE
Verschwommenes Bild:
Dazu gehen wir auf Unused --> Camera --> Camera FX --> Start motion blur as the Camera moves
*** IF ***
True.
*** THEN ***
Start motion blur as the camera moves, amount= 30 (start with 30 and adjust up or down).
Bei der Zahl könnt ihr verschiedene eingeben, je höher, desto verschwommener.
Scripten:
Um manches einzubauen oder zu aktivieren, kommt man ums Scripten nicht herum.
Mit diesem Icon öffnet man die Scripts. Die meisten Sachen gehören in den Ordner des Player Civilian, den klickt ihr an und dann auf New Script. Nun seht ihr, dass so ein Script aus vier Dingen besteht.
Das erste ist das Script Properties, hier gehört der Name des Scripts rein, wie auch ob es deaktiviert werden soll, für welche Schwierigkeitsstufe es gilt und wie oft es abgefragt wird.
Als nächstes folgen die Script Conditions, also die Voraussetzungen. Zu Beginn steht da einfach If True, was bedeutet, dass etwas gleich zu Beginn ausgelöst wird.
Actions if true: Ist der dritte Teil des Scripts, hier gehört nun hinein was geschehen soll.
Actions if false: Da kommt hinein, was passiert, wenn die Voraussetzung nicht erfüllt ist. Kann auch leer bleiben und tut es in den meisten Fällen auch.
Map.ini - Datei erstellen
Um verschiedene Dinge wie Regen, Schnee usw machen zu können, braucht ihr eine Datei mit dem Namen Map - Konfigurationseinstellungen in eurer Map.
Dazu geht ihr unter eigene Dateien, dort auf den ZH Ordner und da auf Maps. Dort fügt ihr dann das hier ein.
Map ini
Schnee:
Um es auf eurer Map schneien zu lassen, benötigt ihr folgende ini:
Spoiler:
Das kopiert ihr in die Map Konfigurationseinstellungen.
Nun muss das Wetter noch aktiviert werden. Dazu geht man im WB auf die Scripts und geht auf Map --> Environment --> Show Weather.
Snow
*** IF ***
True.
*** THEN ***
Show Weather = TRUE
Jetzt schneit es gleichmäßig auf eurer Map.
Regen:
Bei Regen ist es genau wie beim Schnee, nur wird diese ini verwendet.
Spoiler:
Gewitter:
Beispiel für ein Gewitterscript, welches aus mehreren aneinandergereihten Scripten besteht:
Spoiler:
Fahrende Autos:
Man nimmt das Waypointtool und setzt die gewünschte Strecke, die geschlossen sein muss und gibt ihr einen Namen, z.b. Autofahrt. Danach wählt man bei den Objekten die gewünschten Fahrzeuge aus und platziert sie auf dem Wegpunktpfad. Jedes Auto bekommt nun einen Namen und zu guter Letzt brauchen wir noch das passende Script. Dazu die Scripts öffnen und ein neues erstellen, und einen Namen geben, z.b. Autofahrt.
Dann die folgenden Schritte:
*** IF ***
True.
*** THEN ***
Unit 'Karre' EXACTLY follows waypoints, beginning at Waypoint Path 'Autofahrt
Züge:
Wieder einen geschlossenen Waypointpfad zeichnen und dann einfach die Lok in Fahrtrichtung draufsetzen. Der Zug fährt alleine und auch die Hänger werden erst im Spiel sichtbar.
Er fährt auch ohne Schienen, doch das sieht ein wenig doof aus. Also brauchen wir Gleise, die wir bei den Straßen finden:
Tag/Nacht/Lichtoptionen
Um die Tageszeit zu ändern, einfach Strg + D drücken. Es gibt vier Tageszeiten.
Daneben gibt es noch Lichtoptionen, welche man bei Edit und dort dann Global Light Options findet. Dort könnt ihr das Licht in verschiedene Farben tauchen, um z.b. ein düsteres Ambiente zu schaffen.
Mit Restore to Default wird der Normalzustand wieder hergestellt.
Es ist auch möglich Umgebung und Objekte getrennt zu beleuchten. Dazu einfach im Global Light Options - Fenster den Haken bei Everything rausnehmen und entweder bei Terrain setzen, was die Umgebung färbt, oder bei Objects, was die Objekte färbt. Beides geht natürlich auch hintereinander.
Wasser färben
Hier gibt es zwei Varianten das zu tun.
Die erste ist mit den Global Light Options, wie einen Punkt darüber beschrieben. Weißes Licht färbt das Wasser beispielsweise ganz dunkel, was man auch schon auf der Map sehen kann.
Die zweite Variante ist per Map ini. Dazu einfach folgendes da reinpacken:
Spoiler:
Standing Water Color ist dabei das Wasser im Spiel und Radar Water Color das auf der Radarkarte.
Achtung: Erst im Spiel wird das gefärbte Wasser angezeigt, im WB bleibt es blau.
Units verbieten
Wollen wir erreichen, dass bestimmte Einheiten oder Gebäude nicht baubar sein sollen, so machen wir folgendes:
Scripts --> Map --> Modify --> Adjust the tech tree for a specific object type
Dort dann die gewünschte Einheit/Gebäude auswählen und dann auf No setzen. Schon kann es nicht mehr gebaut werden. Funktioniert bei sämtlichen Einheiten und Gebäuden.
Hier z.b. mit den Abwehrstellungen des Superwaffengenerals.
*** IF ***
True.
*** THEN ***
'SupW_AmericaFireBase' becomes Buildable (No)
'SupW_AmericaPatriotBattery' becomes Buildable (No)
Units unbemannt machen
Um leere Fahrzeuge zu bekommen, in die man einsteigen kann, geht man wie folgt vor. Entsprechendes Objekt in die Map setzen und einen Namen geben. Danach dann das entsprechende Script, zu finden bei Unit -->Status:
*** IF ***
True.
*** THEN ***
Make Unit 'Panzer' unmanned.
Funktioniert auch mit Gebäuden, die man dann sofort einnehmen kann, indem man einen Fußsoldaten hineinschickt, ohne Zeitverzögerung und ohne das Gebäude besetzen - Upgrade erforschen zu müssen.
SW feuern lassen
Gewünschte SW, z.b. Paka, in die Map setzen und Namen geben. Danach einen Waypoint setzen, wohin sie feuern soll und schließlich das Script:
*** IF ***
True.
*** THEN ***
Unit 'Paka' fires Special power 'SuperweaponParticleUplinkCannon' at Waypoint 'Paka Schuss'.
Zu guter Letzt müssen wir die Script Properties anpassen. Soll sie nicht nur einmal feuern, dann den Haken bei Deactivate uppon success rausnehmen. Bei Evaluate Script den Haken bei Every Frame raus und bei Seconds rein, dort dann 240 eintragen. Sie schießt nun alle 240 Sekunden aka 4 Minuten.
Wichtig: Wenn ihr SWs setzt, bei Nuke und Paka die Kraftwerke nicht vergessen, sonst geht gar nichts.
Texte einfügen
Zuallererst braucht ihr in euer Map Datei, also da wo schon die Map.ini reinkommt, ein Map.str. Dazu das hier da reinkopieren.
Map.str
Als nächstes könnt ihr da den gewünschten Text eintragen.
SCRIPT:Intro_01
"Bliblablablaaaaa"
End
Zeilenumbrüche macht man wie folgt:
SCRIPT:Intro_02
"blubbblubb \n
moeptrallalla"
End
Nun brauchen wir noch ein Script, besser gesagt mehrere, um den Text anzeigen zu lassen. Als erstes einen Timer, zu finden bei Seconds Countdown Timer --Set. Wichtig; Den Namen des Timers müsst ihr manuell da eintragen.
*** IF ***
True.
*** THEN ***
Set timer 'Introtimer' to expire in 1.00 seconds.
Danach dann das Script für den Text: Scripting --> Briefing--> Show military caption
*** IF ***
Timer 'Introtimer' has expired.
*** THEN ***
Show military briefing String: 'SCRIPT:Intro_01' for 7000 milliseconds.
Wie ihr seht, muss in die Briefingzeile die Überschrift eures Textes in der Map.str
Als Zeit könnt ihr auch weniger oder mehr Milisekunden nehmen, bedenkt aber, wenn es zu kurz ist, ein längerer Text nicht angezeigt wird. Soll ein weiterer Text folgen, dann einfach nach dem Introtext noch einen weiteren Timer setzen:
*** IF ***
Timer 'Introtimer' has expired.
*** THEN ***
Show military briefing String: 'SCRIPT:Intro_01' for 7000 milliseconds.
Set timer 'Intro_02' to expire in 7.00 seconds.
Danach dann das entsprechende weitere Script.
Wollt ihr einen Text mitten im Spiel, beispielsweise nach einem Geschehen (z.b. nach Zerstörung eines bestimmten Objekts, welches natürlich mit Namen in der Map platziert sein muss), so geht wie folgt vor:
*** IF ***
Unit 'Haus' has been destroyed.
*** THEN ***
Show military briefing String: 'XXXXXX' for 7000 milliseconds
Bei XXXXX dann eben den ensprechenden Text aus der Map.str einfügen.
Geldwert eines Supplys ändern
Dazu setzen wir das Supply Dock, zu finden bei Civilian Structures, in die Map und geben ihm einen Namen, z.b. Dock. Dann folgendes Script:
*** IF ***
True.
*** THEN ***
Warehouse named Unit 'Dock' is set to having 10000 dollars worth of boxes
Natürlich kann man jeden beliebigen Geldwert eingeben, die 10000 sind nur ein Beispiel.
KI Scripte einfügen
Normalerweise ist in den KI Ordnern nichts drin und wenn man dann irgendwas einfügt, wird die KI dumm und macht nichts mehr. Somit braucht man, wenn man mit den KIs was anstellen will, die Skirmish Scripts.
Die liegen im Verzeichnis "[Game-Verzeichnis]\Data\Scripts" und zwar in der Datei "SkirmishScripts.scb". In eurem Script geht ihr dazu einfach auf Scripts importieren.
Wichtig: Bevor ihr die Skirmish Scripts importiert, müsst ihr den Ordner des Players Civilian nach unten bekommen, da sonst viele Scripts im falschen Ordner landen. Dazu verschiebt ihr erst eventuell vorhandene Scripts im Civilian Ordner zu neutral. Dann geht ihr einfach dorthin, wo ihr die Skirmish Players aktiviert habt, also bei Edit. Dort klickt ihr den Player Civilian an und löscht diesen. Danach klickt ihr auf Add Skirmish Players. Jetzt sollte der Player Civilian ganz unten stehen und ihr könnt im Scriptordner eure Scripts von neutral wieder da hineinschieben. Jetzt erst solltet ihr die Skirmish Scripts importieren.
Zusätzlichen feindlichen Spieler einfügen:
Da gehen wir auf Edit Player List, falls die Skirmish Players noch nicht hinzugefügt wurden, erledigen wir das gleich. Danach geht man auf New Player und wählen unter Faction Civilian aus. Nimmt man eine andere Fraktion, so ist diese entweder dumm oder aber verkauft die ihr zugewiesenen Gebäude. Jetzt bei Set Namen einen Namen einfügen, z.b. Team Blabla und auf Set klicken. Bei Display Name ebenfalls einen Namen hineinschreiben, möglichst den Gleichen. Dann eine Farbe auswählen und bei computer controlled ein Häkchen rein.
Danach müssen wir noch in den Scripts einfügen, dass es ein Feind sein soll. Unter Player --> Alliances findet man es. Mit jedem Spieler macht ihr nun folgendes:
*** IF ***
True.
*** THEN ***
[???] Player 'Team_Blabla' considers Player 'player0' to be Enemy
[???] Player 'player0' considers Player 'Team_Blabla' to be Enemy
Wobei player0 immer der Host ist und es dann immer weitergeht, bis player7, da maximal 8 Spieler möglich, wobei es nur für Menschen gilt. Diese Player müsst ihr zudem manuell eintragen, ihr werdet sie in keiner Liste finden. Wichtig ist auch immer beide Seiten zu beschreiben, also A ist Feind von B und B ist Feind von A.
Die Fragezeichen ignorieren, denn das Script ist korrekt.
Diesem Spieler könnt ihr nun Einheiten zuweisen, z.b. den UN Soldaten, der dann angreifen wird, wenn man sich ihm nähert.
Möchte man, dass der neue Spieler auch den KI Spielern feindlich gesonnen ist, so muss man obiges Script einfach bei dem ensprechenden Spieler, also SkirmishAmerica, SkirmishChina usw reinschieben und entsprechend abändern, dass eben diejenige Fraktion der Feind ist.
*** IF ***
True.
*** THEN ***
Player 'Team_Blabla' considers Player '<This Player>' to be Enemy
Player '<This Player>' considers Player 'Team_Blabla' to be Enemy
Beachtet, dass wenn ihr was in die KI Ordner einfügt, ihr vorher die einen Punkt weiter vorne beschriebenen Skirmish Scripts eingefügt habt. Tut ihr das nicht und fügt nur einfach so was in die KI ein, dann ist diese dumm, macht also gar nichts.
Flugzeug fliegen lassen
Als erstes setzen wir das ensprechende Flugzeug, z.b. den Versorgungsflieger der Amis, das Schrottding der GBA oder den Comercial Airliner, in die Map und geben ihm einen Namen, z.b. Airbus. Danach ziehen wir mit dem Areatool eine Area um das Flugzeug herum und benennen sie, z.b. Airbus Area. Danach einen Wegpunktpfad, wo der Flieger entlangfliegen soll und zu guter Letzt folgendes Script:
*** IF ***
Unit 'Airbus' enters area 'Airbus Area'
*** THEN ***
Unit 'Airbus' EXACTLY follows waypoints, beginning at Waypoint Path 'Flug'
Flutwelle
Um so eine extrem zerstörerische Flutwelle wie in meiner Map Ruptura zu bekommen, geht ihr wie folgt vor. Als erstes setzt ihr einen Damm und benennt ihn, z.b. Damm. Danach baut ihr mit dem Höhentool ein Wasserbecken, welches hinter dem Damm ist und füllt es mit dem Wassertool.
Jetzt brauchen wir eine Area, in der die Flutwelle schließlich entlangpreschen soll. Dazu nehmen wir das Wassertool und erstellen diese Area, die direkt beim Damm beginnen muss. Nennen wir sie Flutzone.
Danach nehmt ihr das Waypointtool und setzt einen Waypoint direkt am Damm, diesen müsst ihr WaveGuide1 nennen. Von diesem Wegpunkt aus zieht ihr einen Wegpunktpfad gerade nach hinten und zwar in einem Schritt, so dass man insgesamt nur 2 Waypoints hat. Danach geht ihr bei den Objekten in Civilian und dort in System. Da klickt ihr den WaveGuide an und setzt den direkt neben dem Waypoint WaveGuide1.
Nun folgendes Script:
*** IF ***
Unit 'Damm' has been destroyed.
*** THEN ***
area 'Flutzone' changes altitude to 2.00 in 20.00 seconds doing 20.00 dam_/sec.
Jetzt löst es bei Zerstörung des Damms diese Flutwelle aus.
Um das Ganze etwas subtiler zu machen, z.b. die Flut bei einer bestimmten Aktion auszulösen, gehen wir wie folgt vor:
Lösen wir die Flut bei Zerstörung einer Partikelkanone aus. Dazu setzen wir eine in die Map und benennen sie, z.b. Paka 1. Danach klicken wir den Damm an und setzen seine Max HP auf 9999999.
Wir schreiben nun folgendes Script und nennen es meinetwegen Damm kaputt. Unter Unit --> Damage or Remove findet man es.
*** IF ***
True.
*** THEN ***
Unit 'Damm'is dealt a lethal amount of damage.
Danach Rechtsklick auf dieses Script und auf Active klicken. Jetzt ist in dem blauen Ordner des Scripts ein Kreuzchen, womit es deaktiviert ist.
Danach dann dieses Script.
*** IF ***
Unit 'Paka 1' has been destroyed.
*** THEN ***
Enable Script 'Damm kaputt'.
Jetzt kann man den Damm bearbeiten wie man will, zerstört man jedoch die Paka auf der Map, bricht er sofort.
Gebäude unverkäuflich
Wollen wir bestimmte Gebäude, z.b. Partikelkanone des Lasergenerals, unverkäuflich machen, gehen wir folgendermaßen vor: Scripting --> Remove a command button from an object type. Da suchen wir dann Command Sell.
Achtung: Im Script selbst ist ein Fehler, den wir beheben müssen. Sucht man das Command Sell, sieht es so aus: Command_SellI. Jedenfalls ist nach den zwei L vom Sell noch so ein fettes I. Das entfernen wir.
*** IF ***
True.
*** THEN ***
[???] Command button: 'Command_Sell' is removed from all objects of type 'Lazr_AmericaParticleCannonUplink'.
Das Script ist korrekt so, die Fragezeichen muss man hier ignorieren. Nun ist der Verkaufsbutton von allen Lasergeneral - Partikelkanonen weg, nicht nur von den gesetzten, sondern auch von denen die man selbst baut oder vom Gegner gebaut werden.
Die KI kann übrigends trotzdem verkaufen.
Verhindern, dass die KI ein auf der Map gesetztes Gebäude einnehmen kann.
Um zu verhindern, dass die KI ein auf der Map gesetztes Gebäude einnimmt (und verkauft). Gebäude setzen und benennen, danach gehen wir bei den Scripts auf Unit und suchen Affect flags set on object panel, um dieses Script zu machen.
*** IF ***
True.
*** THEN ***
Unit 'Paka' changes the value of flag Object Flag: AI Recruitable to FALSE.
Durch einen unerklärlichen Bug können die Minigunner des Infanteriegenerals es trotz allem das Gebäude einnehmen, aber alle anderen KI können es nicht mehr.
Blutende Infanterie:
Wollt ihr die Infanterie bei Treffern bluten sehen, so fügt ihr einfach folgendes in die Map.ini ein.
Spoiler:
Voila, nun bluten Infanterieeinheiten bei Treffern.
Partikelstrahlen färben:
Nehmen wir z.b. die Partikelkanone des Lasergenerals. Dazu folgendes in die Map.ini einfügen
Spoiler:
Bei Color 1 steht die jeweilige Farbe, die ihr ändern könnt. Dazu noch eine kleine Erklärung, was was ist:
ParticleUplinkCannon_OrbitalLaser: Der Strahl an sich.
ParticleUplinkCannon_OuterNodeLightFlare, ParticleUplinkCannon_OuterNodeMediumFlare, ParticleUplinkCannon_OuterNodeIntenseFlare: Das Leuchten der 5 Nodes, erst leicht, dann stärker. Dürfte eigentlich aus den Namen ersichtlich werden.
Beim letzten Teil, also dem
ParticleSystem ParticleUplinkCannon_LaunchFlare, welches das Pulsieren über der Abschussvorichtung der Partikelkanone ist, während sie feuert (Siehe Bild des Strahls), ist zu beachten, dass diese für alle Partikelkanonen gilt (außer der vom Superwaffengeneral). Verändert man es also für die Laser - Partikelkanone, dann haben auch die des normalen Amerikaners, sowie die des Luftwaffengenerals diese Farbe.
Der Launch Flare lässt sich auch mit folgendem Wert ändern: ParticleName = EXLnzFlar1.tga
Dabei sind Werte von 1 - 7 möglich, jede steht für eine andere Farbe.
Anti - Scudbug - Script:
Wer kennt ihn nicht, den lästigen Scudbug? Doch hier gibt es ein Mittel dagegen und dies ist mit ein paar Scripts getan.
Als erstes brauchen wir eine Objects List. Dazu gehen wir unter Scripting zu Object Type List und da zu Add Object Type. Benennt diese Liste, z.b. Scudstorm List. Dort packt ihr dann alle Scud Stürme hinein.
*** IF ***
True.
*** THEN ***
'Scudstorm List' : add 'Chem_GLAScudStorm'
'Scudstorm List' : add 'Demo_GLAScudStorm'
'Scudstorm List' : add 'GLAScudStorm'
'Scudstorm List' : add 'Slth_GLAScudStorm'
Danach machen wir das Anti Scudbug Script für den Player 0 (Erster Spieler bzw Host), gehen auf New Folder und nennen den Anti-Scudbug Player 0. Da rein dann die folgenden Scripte.
Player 0 Build Scudstorm
*** IF ***
[???] Player 'player0' has Equal To 1 unit or structure of type 'Scudstorm List'
*** THEN ***
Set timer 'Player 0 Fire Scudstorm Timer' to expire in 295.00 seconds.
Enable Script 'Player 0 Fire Scud Bug'.
Enable Script 'Player 0 Fire Scudstorm Normal 2'.
Player 0 Fire Scud Bug
*** IF ***
[???]Player Player 'player0' completed using Special power 'SuperweaponScudStorm'.
*** THEN ***
Show military briefing String: 'blablab' for 7000 milliseconds.
Enable Script 'Player 0 Fire Scud Bug - Kill'.
Bei dem Briefing wieder den Text aus dem Map.str nehmen, wies geht, steht weiter oben.
Player 0 Fire Scud Bug Kill
*** IF ***
True.
*** THEN ***
'Taunts_USABoss110' plays, allowing overlap TRUE (true to allow, false to disallow).
[???] Player 'player0' is unable to build buildings.
[???] Player 'player0' is unable to build units.
[???] Player 'player0' sells everything.
[???]Set Player 'player0''s money to $ 0
Player 0 Fire Scud Storm Normal
*** IF ***
Timer 'Player 0 Fire Scudstorm Timer' has expired.
*** THEN ***
Disable Script 'Player 0 Fire Scud Bug'.
Disable Script 'Player 0 Fire Scud Bug - Kill'.
Player 0 Fire Scud Storm Normal 2
*** IF ***
[???]Player Player 'player0' starts using Special power 'SuperweaponScudStorm'.
*** THEN ***
Disable Script 'Player 0 Fire Scud Bug'.
Disable Script 'Player 0 Fire Scud Bug - Kill'.
Wie ihr sicher an den Scripts schon sehen könnt, hat der Spieler, der den Scudbug benutzt, sofort verloren und verkauft alles.
Für die anderen Spieler (Player1, Player2 usw) müsst ihr die Scripte dann ebenfalls schreiben, je nachdem wieviele Spieler die Map hat.
Kleiner Leitfaden zum Thema inis
Man braucht dazu das Tool Final.big, um die inis aus ZH entpacken zu können.
Download Final.big
Jetzt könnt ihr die gewünschten Sachen in eure Map.ini setzen, um sie zu bearbeiten. Beachtet aber, dass jeder noch so kleinste Fehler zu einem Absturz des Spiels führt.
AudioSettings.ini - In dieser Datei, könnt ihr viele Einstellungen über den Sound von Generals ändern.
So zum Beispiel die Lautstärke
CommandButton.ini - In der Comman Button.ini, sind die Befehle drin.
Zum Beispiel die Befehle:
CommandButton Command_Sell
CommandButton Command_UpgradeAmericaAdvancedTraining
CommandButton Command_ConstructChinaCommandCenter
CommandSet.ini - In dieser Datei, werden die Befehle, den jeweilligen Einheiten hinzugewiesen.
Hier das Schema:
;+--+--+--+--+--+--+
;|01|03|05|07|09|11|
;+--+--+--+--+--+--+
;|02|04|06|08|10|12|
;+--+--+--+--+--+--+
Es sind höchstens 12 Befehle pro Einheit, Gebäude... möglich.
Hier ein Beispiel vom Bulldozer:
CommandSet AmericaDozerCommandSet
1 = Command_ConstructAmericaPowerPlant
2 = Command_ConstructAmericaStrategyCenter
3 = Command_ConstructAmericaBarracks
4 = Command_ConstructAmericaSupplyDropZone
5 = Command_ConstructAmericaSupplyCenter
6 = Command_ConstructAmericaDetentionCamp
7 = Command_ConstructAmericaPatriotBattery
8 = Command_ConstructAmericaParticleCannonUplink
9 = Command_ConstructAmericaWarFactory
10 = Command_ConstructAmericaCommandCenter
11 = Command_ConstructAmericaAirfield
12 = Command_DisarmMinesAtPosition
End
Eva.ini - Hier drin werden die Stimmen(zb. Warnung, Partikelkanone geortet!) den Armeen hinzugewiesen
Weapon.ini - Alles mögliche zum Thema Waffen
CivilianBuilding.ini - zivile Gebäude
CivilianProp.ini - die Objekte, die im World Builder unter Civilian/MISC_MAN_MADE zu finden sind (sind meistens zur Dekoration, z.B. Ampeln)
CivilianUnit.ini - zivile Einheiten
FactionBuilding.ini - Gebäude, die zu einer der Seiten gehören
FactionProp.ini - nur der MultiplayerBeacon
FactionUnit.ini - Einheiten, die zu einer der Seiten gehören
NatureProp.ini - natürliche Objekte wie Bäume oder Felsen
NatureUnit.ini - ein Vogel und ein Ochse.
System.ini - Systemobjekte, wer hätte das gedacht? z.B. die Seile, an denen Ranger aus Chinooks rutschen oder die Flagge, zu der neu gebaute Einheiten gehen.
Die einzelnen Objekte fangen immer mit:
;----------------------------------------------------------
Object <Objekt-Name>
(z.B. "Object Lazr_AmericaParticleCannonUplink" oder "Object GLAInfantryRebell" oder auch "Object StanTownHall01")
an und haben folgende Unterkategorien:
; *** ART Parameters *** // Grafik, z.B. Models und Animationen
; ***DESIGN parameters *** // Eigenschaften, z.B Waffen und Kosten
; *** AUDIO Parameters *** // Sounds, z.B. die lustigen Sprüche beim Befehle empfangen
; *** ENGINEERING Parameters *** // Verhalten u.ä. wie z.B. ob es ein Transporter ist und wie viele reingehen
Manche Objekte haben nicht alle von diesen Kategorien wie z.B. Zelte, die keine Audio- Parameter haben, da sie ja auch nichts zu sagen haben.
Manche (oder so gut wie alle) Objekte haben aber auch noch "Unterunterkategorien" wie:
Behavior = X
blablubb
End
Wollt ihr Texte, z.b. Überschriften hineinscheiben, so beginnen diese immer mit einem Semikolon. Jeder neue Satz muss dabei ebenfalls mit einem Semikolon beginnen. Dann könnt ihr schreiben was ihr wollt.
;----------------------Das ist eine ini-------------------------
;blablablabla
Die einzelnen Fraktionen haben auch ihre entsprechenden Abkürzungen in den inis:
America = USA normal
Lazr_America = Lasergeneral
AirF_America = Luftwaffengeneral
SupW_America = Superwaffengeneral
China = China normal
Infa_China = Infanterie General
Nuke_China = Nukleargeneral
Tank_China = Panzergeneral
GLA = GLA normal
Demo_GLA = TNT General
Slth_GLA = Tarngeneral
Chem_GLA = Toxingeneral
Kamerafahrten
Kamera verfolgt eine Einheit:
Dazu brauchen wir erstmal einen Wegpunktpfad, den die Einheit langfahren soll sowie die Einheit mit Namen, z.b. Ambu. Danach dann zu Scripts gehen und bei Camera rein. Da dann folgendes Script:
*** IF ***
True.
*** THEN ***
Have the camera follow Unit 'Ambu'. Snap camera to object is TRUE.
Kamera beginnt nach gewisser Zeit:
Dazu brauchen wir erst einen Timer:
*** IF ***
True.
*** THEN ***
Set timer 'Kamera' to expire in 10.00 seconds.
Und danach dann das Script wie oben, nur anstatt True kommt als Voraussetzung der Timer.
*** IF ***
Timer 'Kamera' has expired.
*** THEN ***
Have the camera follow Unit 'Ambu'. Snap camera to object is TRUE.
Kamera beginnt nach einem Ereignis:
Nehmen wir einfach im Beispiel wieder die Zerstörung einer Paka. Dann sieht das entsprechende Script so aus.
*** IF ***
Unit 'Paka 1' has been destroyed.
*** THEN ***
Have the camera follow Unit 'Ambu'. Snap camera to object is TRUE.
Kamera raus/reinzoomen:
Das finden wir bei Camera --> Camera FX. Bei dem Script den Waypoint eingeben (z.b. Den Player 1 Start) und das saturate coloers auf True stellen.
*** IF ***
True.
*** THEN ***
Blur zoom, zoom in at current location, zoom out at Waypoint 'Player_1_Start', saturate colors = TRUE
Verschwommenes Bild:
Dazu gehen wir auf Unused --> Camera --> Camera FX --> Start motion blur as the Camera moves
*** IF ***
True.
*** THEN ***
Start motion blur as the camera moves, amount= 30 (start with 30 and adjust up or down).
Bei der Zahl könnt ihr verschiedene eingeben, je höher, desto verschwommener.