Thema:
cfgeventgroups.xml
Und auch hier wieder ein Hallo zusammen und willkommen beim nächsten Thema 😁.
Auf dem heutigen Lehrplan stehen Event Gruppen, welche wir nutzen können
um Situationen oder Ereignisse auf die Karte zu bringen, die nicht permanent auf der Karte herumstehen.
Sie können unseren Server und der Karte ein wenig Leben und den Spielern Überraschungen bieten
und lassen die Welt im ganzen etwas Lebendiger wirken und gleichzeitig können wir damit Loot Punkte erschaffen,
welche kostbare Beute hervorbringen können.
Dadurch können Spieler in Bewegung gehalten werden, um nicht Trost und Motivation immer wieder
dieselben Polizeigebäude oder Militärbaracken abzuklappern.
Aber machen wir nochmal einen kleinen Ausflug in die Vergangenheit
und werfen einen Blick auf die "cfgeventspawns.xml", um uns an eine kleine Sache zu erinnern.
<event name="StaticTrain">
<zone smin="0" smax="0" dmin="1" dmax="2" r="20" />
<pos x="11254.230" z="3290.319" a="0" y="6.65" group="Train_Abandoned_Kamy"/>
<pos x="13377.262" z="13919.888" a="0" y="17.247" group="Train_Abandoned_Svetlo"/>
<pos x="12851.586" z="8577.874" a="0" y="6.567" group="Train_Accident_Nizhnoye"/>
<pos x="13363.302" z="5439.232" a="0" y="8.0" group="Train_Accident_Solnichniy2"/>
<pos x="1443.256" z="6622.697" a="0" y="176.220" group="Train_Mil_Metalurg"/>
</event>
Wenn wir uns daran erinnern, wissen wir hoffentlich wieder, dass es sich hier um die Koordinaten
und die damit verbundene Position auf der Karte handelt, an der das Event stattfindet,
so wie der Name der Event Gruppe.
Wir möchten uns jetzt also der damit verbundenen Event Gruppe widmen
und nehmen uns daraus auch gleich die Beispiele "Train_Abandoned_Kamy" und "Train_Abandoned_Svetlo".
Zusätzlich nehmen wir uns aber für die Vollständigkeit eine andere Gruppe namens "Train_Accident_Dobroe".
Event Gruppe "Train_Abandoned_Kamy":
<!--pos x="11254.230" z="3290.319" a="0" y="6.513" group="Train_Abandoned_Kamy"/--
<group name="Train_Abandoned_Kamy">
<child type="StaticObj_Wreck_Train_742_Red_DE" deloot="0" lootmax="3" lootmin="1" x="0" z="0" a="232.116" y="1.9"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="10.519" z="7.484" a="56.981" y="1.359"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="63.608" z="36.819" a="65.102" y="1.350"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="42.184" z="25.479" a="61.364" y="1.357"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="31.572" z="19.643" a="61.364" y="1.377"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="20.972" z="13.791" a="60.977" y="1.373"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="52.812" z="31.258" a="61.364" y="1.354"/>
<child type="StaticObj_Wreck_Train_Wagon_Tanker_DE" deloot="0" lootmax="3" lootmin="1" x="74.479" z="41.357" a="249.519" y="1.775"/>
<child type="StaticObj_Wreck_Train_Wagon_Tanker_DE" deloot="0" lootmax="3" lootmin="1" x="85.195" z="45.147" a="71.548" y="1.771"/>
</group>
Alles anzeigen
Event Gruppe "Train_Abandoned_Svetlo":
<!--pos x="13377.262" z="13919.888" a="0" y="17.197" group="Train_Abandoned_Svetlo"/--
<group name="Train_Abandoned_Svetlo">
<child type="StaticObj_Wreck_Train_742_Blue_DE" deloot="0" lootmax="3" lootmin="1" x="0" z="0" a="10.700" y="1.9"/>
<child type="StaticObj_Wreck_Train_Wagon_Tanker_DE" deloot="0" lootmax="3" lootmin="1" x="-10.339" z="-33.442" a="17.661" y="1.7"/>
<child type="StaticObj_Wreck_Train_Wagon_Tanker_DE" deloot="0" lootmax="3" lootmin="1" x="-3.268" z="-11.845" a="16.630" y="1.713"/>
<child type="StaticObj_Wreck_Train_Wagon_Tanker_DE" deloot="0" lootmax="3" lootmin="1" x="-6.742" z="-22.613" a="18.951" y="1.722"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-13.526" z="-44.791" a="14.567" y="1.229"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-19.898" z="-80.635" a="6.446" y="1.275"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-18.358" z="-68.715" a="8.766" y="1.257"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-16.193" z="-56.684" a="11.216" y="1.272"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-20.853" z="-92.739" a="3.610" y="1.282"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-21.220" z="-104.845" a="0.644" y="1.276"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-21.077" z="-116.967" a="358.840" y="1.304"/>
</group>
Alles anzeigen
Event Gruppe "Train_Accident_Dobroe":
<!--pos x="12912.529" z="15006.073" a="0" y="57.328" group="Train_Accident_Dobroe"/--
<group name="Train_Accident_Dobroe">
<child type="StaticObj_Wreck_Train_742_Red_DE" deloot="0" lootmax="3" lootmin="1" x="0" z="0" a="138.455" y="1.9"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-22.857" z="29.025" a="322.099" y="1.2040"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-30.252" z="38.570" a="321.970" y="1.2058"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-37.781" z="48.048" a="321.583" y="1.204"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-45.402" z="57.588" a="321.068" y="1.235"/>
<child type="Land_Wreck_sed01_aban1_wine_DE" deloot="0" lootmax="3" lootmin="1" x="2.938" z="-6.2" a="292.577"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-8.114" z="9.879" a="326.482" y="1.302"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="-15.275" z="19.659" a="320.036" y="1.267"/>
<child type="StaticObj_Roadblock_Wood_Long_DE" spawnsecondary="false" x="-5.896" z="-0.268" a="58.141"/>
<child type="StaticObj_Roadblock_Wood_Long_DE" spawnsecondary="false" x="-14.102" z="-2.520" a="58.914"/>
<child type="StaticObj_Roadblock_Wood_Small_DE" spawnsecondary="false" x="-21.717" z="-4.550" a="285.100"/>
<child type="StaticObj_Roadblock_Wood_Small_DE" spawnsecondary="false" x="-6.258" z="2.418" a="359.485"/>
<child type="StaticObj_Roadblock_Wood_Small_DE" spawnsecondary="false" x="-2.799" z="-28.850" a="185.896"/>
</group>
Alles anzeigen
Wie wir wieder sehen ist im Grunde fast alles bis auf eine Ausnahme gleich aufgebaut,
was auch nur den Grund hat, dass es sich hierbei wieder um eine Art Koordinaten Verzeichnis handelt,
bei welchem jede einzelne Position, jedes einzelnen Objektes, welches wiederum zu diesem Event gehört
hinterlegt wurde und nur mit ein paar Zusätzen versehen wurde.
Anders als bei normalen Events, sind die hier hinterlegten Koordinaten allerdings keine Karten Koordinaten.
Sie markieren nicht die Position auf der Karte, sondern sind eine relative Koordinate zum eigentlichen Event Objekt.
Aber fangen wir erst einmal wieder langsam an und schauen uns die einzelnen Sachen an.
Dazu müsste uns zu aller erst folgende Zeile auffallen.
Wenn wir uns diese etwas genauer anschauen, sollte uns im Original auffallen, das diese ausgegraut ist.
Was zum einen als Lesezeichen dient und zum anderen fast exakt aussieht, wie eine Zeile aus der "cfgeventspawns.xml".
Wenn wir mal zum Spaß beide Zeilen miteinander vergleichen und ein wenig anpassen,
sollte uns noch ein kleiner Unterschied auffallen.
<pos x="11254.230" z="3290.319" a="0" y="6.513" group="Train_Abandoned_Kamy"/>
<pos x="11254.230" z="3290.319" a="0" y="6.65" group="Train_Abandoned_Kamy"/>
Wie man sehen kann, ist der einzige Unterschied hier die "y=" Koordinate, welche die Höhe angibt.
Wie kann man sich diesen Unterschied jetzt erklären? Und wie kann ich das am einfachsten erklären 😅.
Man könnte sagen, dass diese Zeile als eine Art imaginärer Ankerpunkt dient,
welcher eventuell bei der Erstellung des Events mit einem Objekt versehen wurde.
Da es je nach Objekt zu kleineren unterschieden kommen kann, was die Platzierung
und das spawnen angeht, muss eben geschaut werden, das eben diese auch richtig Positioniert werden.
Im Regelfall wie Beispielsweise bei einem Hubschrauberabsturz das Objekt schon beim Event selbst vorhanden ist,
muss man sich hier eben vorstellen, das hier Praktisch ein nicht vorhandenes Objekt gespawnt wird,
welche alle in der gewählten Gruppe nach spawnt.
Die nach gespawnten und zugehörigen Objekte werden anschließend beim Erscheinen,
quasi am gesetzten Spawn Punkt ausgerichtet.
Also hat das Objekt nicht die Koordinate der Karte, sondern ist eben als Bsp. 10 m
vom gesetzten Spawn Punkt entfernt und ist von mir aus auch noch 2 m darüber 😅🤣.
Da wir aber somit das Grundprinzip haben, wissen wir jetzt wie die Objekte auf die Karte gebracht werden.
Somit können wir uns also den übrigen Zeilen und Werten zuwenden.
group name="Train_Abandoned_Kamy" = Name der Event Gruppe
Hier wird wie auch bei unserem "Ankerpunkt" erwähnt, der Name der Event Gruppe hinterlegt,
welchen wir in der "cfgeventspawns.xml" angegeben haben.
child type="StaticObj_Wreck_Train_742_Red_DE" = Name des zu spawnenden Objektes
Hiermit werden die Objekte, welche wir in diese Gruppe spawnen lassen wollen, festgelegt.
Dabei handelt es sich wiederum um Objekte, welche auch in der "types.xml" hinterlegt sein müssen.
deloot="0" = "d" Dynamischer "e" Event Loot
Wie schon in der "types.xml" erwähnt, können wir hier bestimmen,
ob unser Objekt "Dynamischen Event Loot" enthalten darf.
Wir halten also hier nochmal fest, dass wir in der "types.xml" festlegen,
bei welchem Objekt es sich um solchen Loot handelt
und in der "cfgeventgroups.xml" legen wir damit fest,
ob dieses spawnen darf.
lootmax="3" = maximale Anzahl an Loot um das Event Objekt
lootmin="1" = minimale Anzahl an Loot um das Event Objekt
Hier gilt wieder das Prinzip der "events.xml" womit wir also festlegen können,
wie viele Objekte um oder an unserem Event Objekt spawnen sollen oder dürfen.
Wichtig ist hier zu wissen, wonach sich das ganze hier richtet,
denn es zählt jedes Event Objekt für sich und die jeweiligen Loot Positionen,
beziehen sich hier auf die "mapgroupproto.xml".
spawnsecondary="false"
Hierbei hab ich leider nichts Genaues oder Handfestes.
Gehe ich hier vom Logischen aus, hätten wir folgende Situation und Erklärung.
Aufgrund dessen, dass alle hinterlegten Objekte mit diesem Eintrag keine Loot Positionen
in der "mapgroupproto.xml" haben, wäre es also überflüssig, Zeilen dafür zu hinterlegen.
Da in der "cfgeventgroups.xml" allerdings hinterlegt ist, das ein Event Infizierte hervorbringen kann
und auch in der "events.xml" beispielsweise beim "StaticHeliCrash" eine Zeile mit "secondary" hinterlegt ist,
jeder, der ein Event schon einmal gesehen hat weiß, das es mehr als nur einen Infizierten gibt,
gehe ich zu 99 % davon aus das es sich hierbei um eine Einstellung handelt,
die das spawnen von Infizierten deaktiviert.
War ein langer Satz 😅, aber im Grunde wird zwar beim Event festgelegt, das es Infizierte hervorbringen kann,
bei Event Gruppen ist es aber leider etwas anders.
Dabei bezieht sich die Anzahl der möglichen Infizierten nicht auf das Event,
sondern auf jedes in der Gruppe hinterlegte Objekt.
Haben wir also eine Eventgruppe in der wir 2 Infizierte für das Event festlegen,
bedeutet es, das wir bei einer Gruppe mit 4 Objekten 8 Infizierte haben können.
Soweit so gut, nun haben wir nur noch unsere netten Koordinaten,
die wir schon aus der "cfgeventspawns.xml" kennen
und halbwegs am Anfang schon ein wenig behandelt haben.
"x" = X Achse (Horizontal von Links nach Rechts)
"z" = Z Achse (Vertikal von Unten nach Oben)
"a" = Rotation des Objektes / Events
"y" = Y Achse (Höhe zum 0 Punkt)
Hier kommt aber noch einmal die relative Koordinate ins Spiel, denn wenn wir uns ein Bsp. nochmal anschauen,
sollte uns noch Folgendes auffallen.
<!--pos x="11254.230" z="3290.319" a="0" y="6.513" group="Train_Abandoned_Kamy"/--
<group name="Train_Abandoned_Kamy">
<child type="StaticObj_Wreck_Train_742_Red_DE" deloot="0" lootmax="3" lootmin="1" x="0" z="0" a="232.116" y="1.9"/>
<child type="Land_Train_Wagon_Box_DE" deloot="0" lootmax="3" lootmin="2" x="10.519" z="7.484" a="56.981" y="1.359"/>
In 99 % der Fälle ist das erste Objekt der Mittelpunkt und hat "x="0" z="0" als Koordinate.
Alle nachträglichen Objekte richten sich also wie schon erwähnt am Mittelpunkt des Events aus.
Somit weiß man und erklärt sich hoffe ich, das die nachfolgenden Objekte
eben von diesem Mittelpunkt aus an ihre Position gebracht werden.
Dies sollte für heute reichen und sollte eigentlich auch weitestgehend alles sein.
Ich hoffe, ich hab nichts Vergessen und bedanke mich wie immer für eure Aufmerksamkeit
und wir sehen uns damit also im nächsten Thema 😁👍.