Rutel
Aus der Lower Grass mod habe ich folgendes für mich rausdestilliert:
function data()
return {
info = {
name = "Less Mailboxes",
description = _("desc"),
minorVersion = 0,
severityAdd = "NONE",
severityRemove = "NONE",
tags = {"Script Mod", "Street", "Town", "Mailboxes"},
authors = {
{
name = "Carbonunit",
role = "CREATOR",
tfnetId = ?????,
},
},
},
runFn = function (settings, modparams)
addModifier("loadStreet", function(fileName, street)
addModifier("loadStandard", function(fileName, standard)
-- town streets with mailboxes
if fileName:find("town_large_new.lua") or fileName:find("town_large_old.lua") or fileName:find("town_large_one_way_new.lua") or fileName:find("town_medium_new.lua") or fileName:find("town_medium_old.lua") or fileName:find("town_x_large_new.lua") then
??.distance = 800,
??.prob = 1.0 --every 800m a mailbox
end
end )
return street
end )
end,
}
end
Die Blöcke und Klammern sehen in Notepad++ schon mal so aus, als würde nichts mehr fehlen oder zu viel sein.
Aber: Was muss da stehen, um an die Asset Mailbox dranzukommen? Bei meiner Beispielmod mit dem Gras stehen da direkt die Parameter, die zu ändern sind, also die Höhe des Grases. Hier will ich ja nicht die Straße als solche ändern, sondern das Asset Mailbox, das darauf herumsteht.
Der Code addModifier("loadStreet", function(fileName, street) öffnet anscheinend das Verzeichnis "street". Dann habe ich mir gedacht, wenn ich da jetzt bin, mach ich dasselbe nochmal mit dem Verzeichnis "standard". Ist das richtig gedacht? Oder wäre addModifier("loadStreet", function(fileName, street/standard) auch gegangen?
Wo finde ich meine tfnetId?
Mein Code, sollte er jemals funktionieren, ändert das, was aus der res/config/street/standard geladen wurde.
Deinen Text...
Zitat von Rutel
Der eigentliche Punkt ist das folgende: Beim Laden der Mod wird das res-Verzeichnis durchsucht und darin wieder die spezifischen Verzeichnisse, so auch config/street/standard. Wenn sich dann in der Mod eine Datei befindet, die schon (im Hauptspiel, in einer anderen Mod) mit dem gleichen Namen und Pfad relativ zu res befindet, ersetzt sie diese bzw. deren Inhalt; die vorher geladene Datei ist also im Spiel nicht verfügbar. In deinem Fall überlagern die von Dir geänderten Straßendefinitionen die Originale von UG
...verstehe ich so, dass ich auch irgendwo in meiner Mod geänderte Versionen der Straßen ablegen kann, die dann vom Spiel nochmal geladen werden. Wo müsste ich die hinlegen? Ich habe ja nur mein Modverzeichnis, in das ich was reinlegen sollte.
Ich ahne da was: Die von mir geänderten Straßen müssten in meiner Mod im Unterverzeichnis res/config/street/standard liegen. Da liegen zumindest die neuen Straßen von der DDRifizierung. Und dann gewinnt vermutlich der, der zuletzt geladen wurde. Also in meiner mod.lua fliegt alles unterhalb des Namens raus und ich kopiere mir die Definitionen der Straßem, ändere die ab und kopiere sie ins unterverzeichnis res/config/street/standard meiner Mod. Wenn dann aber vorher die DDRifizierung irgendwas geändert hat, was ich gerne behalten hätte ist das wieder weg. Lade ich die DDRifizierung nach meiner Mod, sind meine Änderungen der Briefkästen wieder weg. Darum finde ich die Idee, hier ganz gezielt reinzugehen und nur die Häufigkeit und Abstände der Briefkästen zu ändern eigentlich besser.