Fahrzeugteile spawnen sehr viel - vehiclesparts

  • Ich versuch aktuell bei meinem Server Fahrzeugteile als Loot spawnen zu lassen. Das funktioniert auch so weit. Nur viel zu viel.


    Nachdem ich in der Datei mapgrouppoto.xml bei der dem Kategorie Namen „vehicleparts“ das fehlende s bei <category name="vehiclesparts"/> ergänzt habe, spawnen nun auch alle Türen, Hauben etc, die in der Types.xml mit <category name="vehiclesparts" /> angegeben sind.

    Nachdem ich RusForma Vehicles mit auf dem Server habe sind es natürlich sehr viele unterschiedliche Teile. Ich hab die Menge in der Types so angegeben das min. 0 spawnt, nominal 3.

    Es ist nun allerdings so gut wie in jeden Blechschuppen oder jeder Holzgarage nichts anderes mehr als Autoteile.

    Ich hab noch versucht über „cost“ die dringlichkeit von 100 auf 50 runter zu setzen und Restock auf 900 gesetzt, damit nicht sofort wieder nachgeladen wird. Allerdings hilft das halt auch nur bedingt. Wenn nach 900 Sekunden wieder versucht wird etwas nach spawnen zu lassen, sind nach und nach halt auch alle Spawnplätze belegt. Einen versuch werd ich noch machen mit nominal 1 anstatt 3.


    Bsp:

    <type name="Gaz_53RF_doors_hood">


    <nominal>3</nominal>


    <lifetime>1800</lifetime>


    <restock>900</restock>


    <min>0</min>


    <quantmin>-1</quantmin>


    <quantmax>-1</quantmax>


    <cost>50</cost>


    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>


    <category name="vehiclesparts" />


    <tag name="floor" />


    <usage name="Industrial" />


    </type>



    Gibt es in irgend einer Datei eine Möglichkeit die Menge irgendwie weiter zu reduzieren, dass z.B. nicht jeder Spawnpunkt zu 100% genutzt wird? Sondern nur die Wahrscheinlichkeit bietet zu 25% (oder einen anderen Wert)?

    Oder bleibt nur der Weg in der mapgroupproto.xml die Spawnpunkte zu reduzieren (<point pos="....)? Dann würde aber auch nach wie vor weniger anderes wie zB Werkzeug spawnen.


    <group name="Land_Shed_Closed">


    <usage name="Industrial" />


    <usage name="Village" />


    <container name="lootFloor">


    <category name="vehiclesparts" />


    <category name="tools" />


    <category name="containers" />


    <tag name="ground" />


    <tag name="floor" />


    <point pos="-1.515579 -4.639580 2.899451" range="1.199951" height="1.987068" />


    <point pos="1.635226 -4.639704 0.885022" range="1.199951" height="1.990485" />


    <point pos="4.603286 -4.641253 -3.401998" range="1.199951" height="2.001528" />


    <point pos="9.177247 -4.639658 -3.361867" range="1.199951" height="1.995306" />


    <point pos="5.662074 -4.637334 2.533267" range="1.199951" height="1.970205" />


    <point pos="4.349246 -4.639447 -0.241911" range="1.199951" height="1.989877" />


    <point pos="-0.353046 -4.642648 -2.889747" range="1.199951" height="2.003556" />


    <point pos="-3.944433 -4.643647 -2.498070" range="1.199951" height="2.005000" />


    <point pos="-5.567353 -4.641894 1.358922" range="1.199951" height="2.001358" />


    </container>

  • Moin Kito,



    Was genau meinst du mit zu viel? Wirklich an jedem Auto?


    versuche es erst einmal mit deinem eigenen Vorschlag alles auf nom1 und min 0 zu setzen. Dazu würde ich den Restock wie Vanilla setzen: 0 , Aber dafür die LIfetime auf 28800, das sind vanilla-werte.


    Die Autoteile können ja direkt am Auto spawnen oder eben in Industrial Gebieten.


    In der Mapgrouproto könntest du probieren folgende Zeilen (an jedem Autowrack zu finden) zu deaktivieren:


    <dispatch>

    <proxy type="HatchbackWheel" pos="1.071 -0.736000 -0.852" rpy="90.0 0.0 0.0" />

    <proxy type="HatchbackDoors_Driver_BlueRust" pos="-0.273 -0.182000 -1.374" rpy="0.0 240.0 0.0" />

    <proxy type="HatchbackTrunk_BlueRust" pos="1.726 0.304000 -0.05" rpy="20.0 180.0 0.0" />

    </dispatch>


    Dann würden dort keine Autoteile mehr spawnen. Ebenso den <category name="vehiclesparts" /> entfernen. Einfacher ist es allerdings in der globals einfach den "dispatch respawn" abzuschalten:

    <var name="LootProxyPlacement" type="0" value="1"/> einfach auf 0 setzen und gucken was passiert.


    Zusätzlich könntest du in der globals.xml ein bisl rumspielen:

    DayZ:Central Economy Configuration - Bohemia Interactive Community


    Besonders die Einstellungen zu


    InitialSpawn

    LootProxyPlacement

    RespawnLimit

    RestartSpawn


    sind hier interessant. Vielleicht kannst du damit deinen Lootspawn optimieren?


    Bis sich der Gesamtloot einpendelt, dauert es eine Weile. Auf einem Server ohne viel Verkehr dauert es Ewigkeiten, bis der Loot sich "normalisiert". Prüfe auch immer deine types.xml mit einem xml Validator auf Fehler.


    Viel Erfolg

    "Denn wo der Glaube tausend Jahre gesessen hat, eben da sitzt jetzt der Zweifel."

  • Hi

    Also die Autoteile die an den Fahrzeugwracks spawnen sind okay. Da würd ich nicht weiter rum radieren. Das müssten ja die Teile unter dem Part hier sein:


    <dispatch>

    <proxy type="HatchbackWheel" pos= …. etc

    ….


    Mir geht es rein um die Fahrzeugteile, die in Schuppen und Garagen auftauchen


    Bei Restock auf 0 würd nur sofort wieder was nach spawnen. Anders hätte da was anderes eine Chance nach zu rutschen. Z.B. ein Fass oder erin Vorschlaghammer… oder lieg ich da falsch?


    Wen ich den Eintrag <category name="vehiclesparts" /> in der Mapgrouproto entferne, dann kommt dort ja auch gar kein Autoteil mehr. Das würde ich ja nicht erreichen wollen.


    Der link zu der Globals erklärung ist jedenfalls interesannt für ein paar andere Sachen die ich noch machen wollte 😊


    Hier mal noch ein Bild, was ich mein mit „zu viel“ 😊 So sieht es eigentlich in jeder Garage aus.
    20221227105609_1.jpg

  • In der Types ist alles in Ordnung was das angeht. Es ist auch das selbe mit den Vanilla Fahrzeug teilen. Ich erklärs mal:

    Der Kategorie Name wird ja in 3 Dateien verwendet. cfglimitdefinition.xml, types.xml und mapgroupproto.xml. Wenn man die originalen Dateien öffnet steht allerdings in der mapgroupproto.xml <category name="vehicleparts" /> und nicht wie in den anderen beiden Dateien <category name="vehiclesparts" />. Es fehlt dort ein s. Das sieht man auch beim Server Booten im Logfile. Es erscheint dann so was wie unknown category vehicleparts.
    Fügt man das besagte fehlende S hinzu, spawnen die Autoteile, die in der Types mit der Kategorie vehiclesparts angegeben sind. Original sind dass die Türen, Hauben und Räder von Olga Sarka usw. Diese Spawnen dann standardmäßig in "Industry" Gebäuden. Hier mal ein Auszug der Standard 1.19 Types:


    <type name="CivSedanDoors_BackLeft_WhiteRust">

    <nominal>10</nominal>

    <lifetime>28800</lifetime>

    <restock>0</restock>

    <min>7</min>

    <quantmin>-1</quantmin>

    <quantmax>-1</quantmax>

    <cost>100</cost>

    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>

    <category name="vehiclesparts"/>

    <usage name="Industrial"/>

    </type>


    Als ich die Rusforma Vehicles Fahrzeugteile noch nicht um den Eintrag mit <category name="vehiclesparts"/> erweitert hatte, waren dann halt die Garagen genau so voll mit den Vanilla Teilen. Somit funktioniert das alles eigentlich schon genau so mit der Vanilla Types. Nur find ich keinen "Regler" um die Menge nur für die vehiclesparts und nicht für die tools oder containers im selben Gebäude runter zu stellen.

    In der mapgroupproto sind drei möglich Kategorien angegeben. vehiclesparts, tools und containers.


    <group name="Land_Shed_Closed">

    <usage name="Industrial" />

    <usage name="Village" />

    <container name="lootFloor">

    <category name="vehiclesparts" />

    <category name="tools" />

    <category name="containers" />

    <tag name="ground" />

    <tag name="floor" />

    <point pos="-1.515579 -4.639580 2.899451" range="1.199951" height="1.987068" />

    <point pos="1.635226 -4.639704 0.885022" range="1.199951" height="1.990485" />

    <point pos="4.603286 -4.641253 -3.401998" range="1.199951" height="2.001528" />

    <point pos="9.177247 -4.639658 -3.361867" range="1.199951" height="1.995306" />

    <point pos="5.662074 -4.637334 2.533267" range="1.199951" height="1.970205" />

    <point pos="4.349246 -4.639447 -0.241911" range="1.199951" height="1.989877" />

    <point pos="-0.353046 -4.642648 -2.889747" range="1.199951" height="2.003556" />

    <point pos="-3.944433 -4.643647 -2.498070" range="1.199951" height="2.005000" />

    <point pos="-5.567353 -4.641894 1.358922" range="1.199951" height="2.001358" />

    </container>

    Aber anscheinend ist vehiclesparts am dominantesten und gibt den anderen beiden Kathegoriern keine chance mehr zu spawnen, obwohl es 9 verschiedene Postionen gibt.

    Und gerade wärend des Text verfassens überprüfe ich die originalen Datieen um daraus zu zitiren. "Vehiclesparts" steht original scheinbar seit ihrgen einer Version gar nicht mehr in der Mapgroupproto drinnen. Bei Deer Isle ist das noch der Fall. Auf meinen Chernarus Server hatte ich damals auch das fehlende S hinzu gefügt. Das war noch mit 1.17. Da stand es ganz sicher mit drin. In meinen Archiv wo ich jede Änderung gespeichert habe, hab ich das wohl im Juli gemacht.
    Ich hab fast das Gefühl, dass das absichtlich raus geflogen ist, weil das sonst in solchen mengen spawnt. Mein Bauchgefühl damals war schon, dass das "s" extra entfernt ist, damit es nicht abgerufen werden kann.

    Ein Weg wäre es wohl dann, wenn man das so haben will, dass nur ein paar Fahrzeugteile spawnen, dass man eigene Spawngruppen angeben müsste. Also in der mapgroupproto dann identisch zu <group name="Land_Shed_Closed"> nur noch mal ein <group name="Land_Shed_Closed_Vehiclesparts"> mit den gleichen weiteren angaben. Dann müsst man in der mapgrouppos wiederum vereinzelt die Land_Shed_Closed gegen Land_Shed_Closed_Vehiclesparts erstzen ... viel Arbeit. Und es wäre dann immer so, dass immer in den selben Garagen Fahrzeugteile wären.

    Eigentlich könnts mir wurscht sein, aber ich find die Idee irgendwie nett, wenn man seine Fahzeugteile suchen kann, anstatt sie zu kaufen. Der Server läuft aktuell recht gut, so dass man gut mit Fahrzeugschaden leben kann und man dann halt eben auch mal sein Auto reparieren muss, wenn man wo angeditscht ist. Einfach zum Trader fahren und kaufen ist dann halt langweilig ;)

  • Da ist halt irgendwas massiv schiefgelaufen am Anfang und du hast jetzt eine Art "Autoteile-Affäre" auf deinem Server. Die verschwinden nicht so schnell, aus Erfahrung. Eine Lösung sehe ich nur darin, einmal die Datenbank zu löschen. Sonst musste halt die Lifetime abwarten, bis alles despawned und das System wieder hat Zeit hat regulär zu spawnen.

    "Denn wo der Glaube tausend Jahre gesessen hat, eben da sitzt jetzt der Zweifel."

  • Naja die Fahrzeugteile despawnen nach 8 Stunden, (28800).
    Schief läuft das ja eigentlic nicht. Wenn ich das besagte s raus nehm, ist es ja wie vanilla. Normalerweise spawnen ja keine Fahrzeugteile. Hab ich zumindest noch nirgens gesehen. und wenn dann viel in Garagen.

  • So, nun funktioniert es, dass in Fahrzeugteile sauber steuerbar in Garagen und Schuppen spawnen. Wie gesagt, es geht mir nicht um die Teile, die an Fahrzeug Wracks spanen.

    Angepasst hab ich hierfür nun die mapgroupporto.xml und die mapgrouppos.xml.

    Es geht um diese Objekte:

    Land_Shed_M1

    Land_Shed_M3

    Land_Shed_M4

    Land_Shed_W1

    Land_Shed_W2

    Land_Shed_W3

    Land_Shed_W4

    Land_Shed_W5

    Land_Shed_W6

    Land_Shed_Closed



    mapgroupporto.xml:
    Hier steht zB jedes Objekt so drin:

    <group name="Land_Shed_M1" lootmax="2">

    <usage name="Industrial" />

    <usage name="Farm" />

    <container name="lootFloor" lootmax="2">

    <category name="tools" />

    <category name="containers" />

    <category name="vehiclesparts" />

    <tag name="ground" />

    <tag name="floor" />

    <point pos="0.504883 -1.174019 0.807373" range="0.587867" height="1.469666" flags="32" />

    <point pos="0.852539 -1.174019 -0.850342" range="0.595474" height="1.488685" flags="32" />

    <point pos="-0.238281 -1.174019 -0.895996" range="0.497570" height="1.243926" flags="32" />

    </container>

    Was ich nun gemacht habe ist, dass ich hier die Zeile <category name="vehiclesparts" /> bei jeden oben erwähnten Objekt auskommentiert habe. Somit spawnen hier keine Fahrzeugteile mehr. Im Anschluss hab ich zu jeden Objekt eine neue Gruppe mit den selben Parameter nur für vehiclesparts erstellt. Objektname mit den Ergänzung _vehiclesparts.

    Beispiel:


    <group name="Land_Shed_M1_vehiclesparts" lootmax="1">

    <usage name="Industrial" />

    <container name="lootFloor" lootmax="1">

    <category name="vehiclesparts" />

    <tag name="floor" />

    <point pos="0.504883 -1.174019 0.807373" range="0.587867" height="1.469666" flags="32" />

    <point pos="0.852539 -1.174019 -0.850342" range="0.595474" height="1.488685" flags="32" />

    <point pos="-0.238281 -1.174019 -0.895996" range="0.497570" height="1.243926" flags="32" />

    </container>

    </group>


    Hier kann ich die Lootmenge dann einstellen. In diesen Fall maximal 1.



    mapgrouppos.xml

    Damit das ganze auch geladen wird, müssen die neue Objektnamen natürlich auch in der mapgrouppos auftauchen. Hier habe ich alle Zeilen der oben aufgelisteten Objekte kopiert.

    Bsp:
    <group name="Land_Shed_M1" pos="530.041504 9.294027 15250.474609" rpy="-0.000000 0.000000 55.304737" a="34.695259" />

    Diese hab ich dann alle unten angehängt mit den neuen Objektnamen.

    Bsp:

    <group name="Land_Shed_M1_vehiclesparts" pos="530.041504 9.294027 15250.474609" rpy="-0.000000 0.000000 55.304737" a="34.695259" />


    Nun spawnen für Land_Shed_M1an den 3 möglichen Positionen an 2 Postionen Werkzeuge oder anderes. Auf den selben 3 Positionen, wo frei ist maximal ein Autoteil von Land_Shed_M1_vehiclesparts.



    Was mir zuletzt noch aufgefallen ist, bzw ich nicht weis, wofür flags="32" steht.