Nicht mehr altern

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Nicht mehr altern

      Halloechen.

      Ich hatte zwar bereits eine Unterhaltung mit Fajeth darüber in der Steam Community, nun möchte ich's aber genauer geklärt haben, da es mich wurmt und ich nicht wirklich auf eine Lösung kam. Das Verändern von Scripts ist für mich komplettes Neuland, ich weiß nicht was ich brauche oder wie ich es tue, deshalb benötige ich es am Besten Schritt für Schritt - Würde sicher auch Leuten nach mir helfen, die gerne die selbe Funktion haben möchten

      Wie der Name des Beitrags schon sagt, möchte ich einen Mod haben oder etwas in den Scripten ändern (Sofern möglich, laut des Beitrages von Fajeth in der Steam Community ja schon) dass meine Charaktere bzw. zumindestens mein erster Char nicht weiter altert. Ich hatte unter der Residence.lua bereits probiert mit den Angaben von Fajeth zu arbeiten, der sagte "Get the scripts documentation (on gilde2.de for example) and look for a function called SetAge. Then put the line in a pinghour function (for example Scripts/Buildings/Residence.lua

      GetDynasty("", "MyDynasty")
      DynastyGetFamilyMember("MyDynasty", 0, "FamilyBoss")
      SetAge("FamilyBoss", 20)"

      Also änderte ich das Script und schrieb unter das Script

      function PingHour()
      GetDynasty("", "MyDynasty")
      DynastyGetFamilyMember("MyDynasty", 0, "FamilyBoss")
      SetAge("FamilyBoss", 20)
      end

      Ich weiß nicht, ob das einen Sinn ergibt, es falsch ist oder irgendwas anderes fehlt, aber das da tut soweit erst mal gar nichts. Ich hatte es gespeichert und das Spiel gestartet (Neues Savegame natürlich) und als die Uhr mitternacht schlug, war mein Char dann trotzdem irgendwann 23, das Alter wurde nicht zurück gesetzt und er altert nach wie vor.
      Hoffe hier kann jemand Abhilfe schaffen. Vielleicht Fajeth selber?

      Falls es wichtig ist - Ich habe eine gekaufte Version von Die Gilde 2 (Ohne Addons) allerdings bisher nichts gepatched, ist eine CD-Version, war zu faul bisher um patches zu suchen, wenn also Patches notwendig sind, tue ich das.

      Ja, mir ist durchaus bewusst, dass das Altern zum Spiel gehört und ich damit möglicherweise den Spielspaß zerstöre, allerdings hätte ich daran mehr Spaß, da mich dieses ständige Nachwuchs zeugen und dann wieder alles neu anlernen auf Dauer eher nervt und mich eher unproduktiv macht, weil mir schon InGame Jahre daran flöten gehen, die neue Frau zu finden, neuen Nachwuchs zu zeugen und anschließend wieder alles anzulernen.

      Ich danke mal im Voraus.
      Mit freundlichem Gruß
      Lighnoon
    • Fajeth wrote:

      Huhu und willkommen im Forum!

      Wie ich bei Steam sagte, ich schrieb aus dem Kopf und du solltest mal einen Blick in die The Guild 2 Script Documentation/ Die Gilde 2 Skriptdokumentation werfen.

      Dort sieht man dann nämlich, dass SetAge nicht ganz richtig ist, die Funktion heißt "SimSetAge"

      Damit sollte es dann gehen ...
      Das habe ich herausgefunden, leider ist das für mich fast schon mehr wirrwar als das was du da geschrieben hast. Wie ich sagte, ich habe noch nie irgendwelche Scripte editiert.

      function PingHour()
      GetDynasty("", "MyDynasty")
      DynastyGetFamilyMember("MyDynasty", 0, "FamilyBoss")
      SimSetAge("FamilyBoss", 20)
      end

      Also dann so?
    • Ja probier das mal so.

      Zur Erklärung:

      Gebäudescripte haben eine "Pinghour", das ist eine Funktion, die jede Stunde aufgerufen wird (immer etwa zur vollen Stunde).

      GetDynasty("", "MyDynasty") -- Das Objekt, dass diese Funktion ausführt (""), also deine Residenz, fragt nach der eigenen Dynasty und nennt sie "MyDynasty"

      DynastyGetFamilyMember ... -- Familienmitglieder sind durchnummeriert, dein Hauptcharakter ist Nr. 0. Den holen wir uns und nennen ihn "FamilyBoss"

      SimSetAge -- Das Alter dieses Charakters ("FamilyBoss") wird auf 20 gesetzt.

      Das passiert jede Stunde. Könnte man noch verfeinern, indem man abfragt, ob das überhaupt nötig ist, ihn auf 20 zu setzen (vielleicht ist er ja bereits 20)

      Das würde man dann so machen:
      if SimGetAge("FamilyBoss") > 20 then
      SimSetAge("FamilyBoss", 20)
      end

      (selbsterklärend?)

      LG
    • Okay, nach einigen jahren die daherzogen war der Typ nun immernoch 20, hat nun also geklappt. Danke für die Hilfe, ich habe mich in den letzten Tagen dumm und dämlich gesucht.

      @Fajeth - Funktioniert soweit ich herausgefunden habe nur bei Renaissance. Beim orginal Game, jedenfalls meiner Version gibt es keine Datei namens residence.lua und auch keinen "Buildings" Ordern. Ich habe es probiert einfach mal so in die CityPingHour.lua einzutragen, funktioniert dort aber nicht. Irgendeine Idee wo ich es dort hinzufügen kann dass es funktioniert?

      The post was edited 1 time, last by Lighnoon ().

    • Fajeth wrote:

      Gilde 2 ohne addons besitze ich "leider" nicht ^^
      Ich besitze ein Renaissance Version, diese ist aber englisch und wurde ehrlich gesagt nur irgendwann mal vor 100 Jahren als sie gerade rauskam von einem Freund auf weniger legaler Weise besorgt. Ich unterstütze Entwickler aber gern und hätte von daher lieber auf meine gekaufte AddOn Freie Version bestanden, zumal diese eben auch deutsch ist.
    • Guten Abend....
      ja ich weis ich buddel hier nun ein über 2 Jahre altes Thema aus aber vllt kann man mir ja doch helfen...
      Ich habe nämlich alles wie oben gemacht aber bei mir funktioniert es nicht?!.

      Ich habe Gilde2:Renaissance + Fajeth Modpack drauf (4.21 (Final) / 0.95 Modpack)
      Die Residence.lua sieht unten nun wie folgt aus?!

      function PingHour()
      GetScenario("World")
      if HasProperty("World", "messages") then
      if GetProperty("World", "messages") == 1 then
      -- if BuildingGetOwner("", "MyBoss") then
      MeasureRun("", "", "RandomEvents", false)
      return
      -- end
      function PingHour()
      GetDynasty("", "MyDynasty")
      DynastyGetFamilyMember("MyDynasty", 0, "FamilyBoss")
      SimSetAge("FamilyBoss", 20)
      if SimGetAge("FamilyBoss") > 20 then
      SimSetAge("FamilyBoss", 20)
      end
      end
      end
      end

      muss ich das gleiche nochmal irgendwo einfügen oder war es nur in die Residence.lua?
      denn mein Sim altert leider weiter *seufzt* würde das Spiel auch lieber ohne altern spielen.

      Sollte das ausgraben verboten sien bitte ich um Entschuldigung und ich werde ein neuen Thread aufmachen <3

      LG.Sala
    • Hallo Fajeth
      vor welchen pinghour? gibt ja zwei.. ich habe einfach unter dem normalen pinghour die Zeile von hier eingefügt kann aber gerne noch etwas mehr kopieren... aber ist richtig das das nur in der z.B. Residence.lua stehen muss oder?

      So sieht nun die komplette Residence.lua aus bei mir?!

      Display Spoiler

      --
      -- OnLevelUp is called everytime the building level was changed, even when the building is build the first time.
      -- This function is called bevor Setup
      -- attention: this function call is unscheduled
      --
      function OnLevelUp()
      local Check
      local Proto
      local CurrentLevel = BuildingGetLevel("")
      if CurrentLevel == 1 then -- verylow
      Check = Rand(2)
      if Check == 0 then
      return
      else
      Proto = 681
      end
      elseif CurrentLevel == 2 then -- low
      Check = Rand(5)
      if Check == 0 then
      return
      elseif Check == 1 then
      Proto = 655
      elseif Check == 2 then
      Proto = 656
      elseif Check == 3 then
      Proto = 657
      else
      Proto = 682
      end
      elseif CurrentLevel == 3 then -- lowmed
      Check = Rand(3)
      if Check == 0 then
      return
      elseif Check == 1 then
      Proto = 658
      else
      Proto = 659
      end
      elseif CurrentLevel == 4 then -- med
      Check = Rand(3)
      if Check == 0 then
      return
      elseif Check == 1 then
      Proto = 683
      else
      Proto = 684
      end
      else
      return
      end


      BuildingInternalLevelUp("", Proto)
      end


      function Run()
      end


      function Setup()
      end


      function PingHour()
      GetScenario("World")
      if HasProperty("World", "messages") then
      if GetProperty("World", "messages") == 1 then
      -- if BuildingGetOwner("", "MyBoss") then
      MeasureRun("", "", "RandomEvents", false)
      return
      -- end
      function PingHour()
      GetDynasty("", "MyDynasty")
      DynastyGetFamilyMember("MyDynasty", 0, "FamilyBoss")
      SimSetAge("FamilyBoss", 20)
      if SimGetAge("FamilyBoss") > 20 then
      SimSetAge("FamilyBoss", 20)
      end
      end
      end
      end