Angepinnt [Deutsch] Wo finde ich ...? Der Modding Helper

    • [Deutsch] Wo finde ich ...? Der Modding Helper

      Dieses Projekt wollte ich schon länger starten, jetzt fange ich einfach mal an ...

      Ein großes Problem beim Gilde 2 Modding (und auch patchen) ist, dass das Spiel in zig Scripte unterteilt ist. Das ist erstmal gut, denn es erlaubt flexibel das verändern und hinzufügen neuer Dinge - und sollte mal was kaputt sein, ist nur ein ganz kleiner Teil des Spiels davon betroffen.
      Das Problem ist, dass man bei manchen Dingen ersteinmal wissen muss, wo man suchen muss, um etwas zu ändern oder zu beheben.

      Ihr wollt die Effektivität eurer Küsse erhöhen? Wo muss ich da reinschauen?
      Welches Script ist eigentlich für die Behandlungen beim Medicus verantwortlich?

      Manchmal ist die Antwort darauf einfach. Maßnahmen sind wenigstens in der DB/Measures.dbt verzeichnet und verlinken dort auf das jeweilige Script, z.B. (Scripts/Measures/)"ms_057_KissCharacter.lua" oder
      "ms_MedicalTreatment.lua". Und hier geht der Ärger auch schon los, denn eine einheitliche Bezeichnungsnorm für Scripte gibt es nicht.

      Richtig nervig wird es aber, wenn man etwas verändern will, das mehrere Dateien benötigt.
      Will ich z.B. das Quacksalbern ändern, muss ich zunächst die Maßnahme heraussuchen (ms_Quacksalver.lua). Aber was passiert da eigentlich? Nur die Dienstzuweisung und der Ort, zu dem die Heiler laufen. Außerdem, dass sie sich Nachschub an Wunderkuren besorgen. Aber wo steht was davon, wieviel Geld ich verdienen kann?
      Nun, das steht im "Behaviour"-Script (Scripts/Measures/behaviour/behavior_ListenQuacksalver.lua) - aber damit das überhaupt aktiv wird, muss erstmal festgelegt werden, welche Sims reagieren. (bs_Quacksalver.lua). Worauf eigentlich? Zurück in ms_Quacksalver geschaut: Quacksalbern ist eine sogenannte "Action" (gestartet via CommitAction("quacksalver", "", "") ).


      Actions sind Ereignisse, die von anderen Sims wahrgenommen werden können. Hier hilft uns die DB/Action.dbt weiter. Hier finden wir diesen Eintrag:



      Quellcode

      1. 36 "quacksalver" 3 0 0 0 0 1500 "bs_Quacksalver.lua" 1 |



      Für uns interessant ist der Script-Verweis auf das "observerscript". Hier wird es verlinkt. Im Observerscript steht dann sowas wie:


      Quellcode

      1. if not GetState("", STATE_IDLE) then
      2. return ""
      3. end

      Was nur soviel bedeutet wie: wenn du nicht den State Idle hast (also nichts zu tun hast) dann gibt "nichts" zurück.
      Trifft das (und andere Einschränkungen) aber nicht zu, wird return "ListenQuacksalver" wiedergegeben. ListenQuacksalver ist das obengenannte Behaviour-Script. Und wenn wir hier reinschauen, ja tatsächlich, dann finden wir einen Eintrag wie diesen:


      Quellcode

      1. if RemoveItems("Actor", "MiracleCure", 1, INVENTORY_STD)==1 then
      2. MoneyToGet = MoneyToGet + Rand(101)
      3. CreditMoney("Actor",MoneyToGet,"Offering")
      4. ShowOverheadSymbol("Actor",false,true,0,"%1t",MoneyToGet)

      Hier wird via CreditMoney dann auch dem sogenannten Actor (der, der die Action gestartet hat) eine gewisse Summe gutgeschrieben. Will ich also den Gewinn durchs Quacksalbern verbessern und habe ich keine Ahnung wo ich suchen muss, dann musste ich jetzt also 4 (!!!) Dateien durchstöbern. Und wenn ich generell an der Maßnahme arbeiten will, dann muss ich das in diesen 4 Dateien tun und dabei immer schauen, wo die Art von Änderung, die ich bewirken will, hingehört.

      Das kann ich euch natürlich nicht abnehmen, aber vielleicht kann man in diesem Thread hier Script-Zusammenhänge und Kurzbeschreibungen sammeln. Sodass ich nicht überlegen muss, wo ich wohl die zufälligen Krankheiten oder den Ausbruch der Pest finde, vielleicht erfolglos nach "illness" suche, sondern einfach nachsehen kann: ah ja, zufällige Krankheiten, das steht im Script /Measures/ms_CityControl.lua


      Ihr ahnt es direkt: Ein solches Projekt kann ich unmöglich allein durchführen, dafür gibts einfach zu viele Scripte und Maßnahmen und ich kenne selbst auch nicht alle Orte. Aber wenn sich über Zeit eine hübsche Datenbank ansammeln würde, könnte man damit vielen auch eher unerfahrenen Moddern den Weg weisen.

      Ich stelle mir folgendes Format vor. Im Beitrag unter diesem würde ich eine Linkliste anlegen, die alle Einträge enthält.
      Jeder Beitrag enthält ein/ mehrere Stichworte zu einer (oder mehreren zusammenhängenden) Dateien.

      Etwa so:

      Suchbegriff:
      Dateien:
      Anmerkungen:

      Vielleicht macht ja der ein oder andere Autor mit. Diskussionsbeiträge sind erlaubt, sofern sie einen separaten Beitrag nutzen (sodass ich die Suchbegriffe einzeln und übersichtlich verlinken kann).