Hallo und gleich ne Frage an die Profis

  • Erst mal Hallo!

    Hab das Spiel seit ein paar Tagen, kannte bisher nur genaugenommen SimCity und bin nach anfänglicher Langeweile (die ersten 1-2 Stunden) jetzt doch sehr angetan. Kenne Sims 1 oder 2 nicht, scheint aber etwas komplexere Interaktionen zuzulassen oder mehr Spieltiefe zu haben, wenn ich der Mainstream-Meinung hier vertraue. Singles 2 hat dafür den größeren Erosfaktor: liegt also uneinholbar vorne, hehe...
    Jetzt aber der Grund, warum ich mich hier mal ins Forum einklinke: ich hätte gerne auch ein bißchen mehr "Spieltiefe" und hab hier mitbekommen, dass einige User ein wenig am Quellcode rumgeschraubt haben und so das Spiel beeinflussen können. Hab mir- weil ich ein bisserl programmieren kann – mal ein paar Quellcodes von der feinen Homepage von Morrigan runtergeladen, die wohl von R2K manipuliert wurden. Ich kenne zwar LUA nicht, erinnert aber vom logischen Ablauf alles an C oder C++ und die Variablen-, Funktions- und sonstigen Namen sind doch recht selbsterklärend.


    So, jetzt will ich natürlich auch ein bißchen rumpfuschen und hab deswegen ein paar Fragen, um rauszufinden was geht und was nicht:


    Erst mal kurz zur Syntax, in der Datei "character.lua" steht in der Funktion "manageJealousy" folgende Zeile:


    local romanticTreshold = _G['TRIANGLE_REL_TRESHOLD_'..jealousyFlagName]


    Was da passiert scheint klar, lokale Variable bekommt einen Wert aus nem Vektor/Matrix zugewiesen.


    Erste Frage: bedeutet das "_" bei "_G" irgendwas besonderes, oder heißt der Vektor/Matrix so (scheint global zu sein, wurde nicht in die Funktion übergeben)?


    Zweite Frage: "['TRIANGLE_REL_TRESHOLD_'..jealousyFlagName]", was bedeuten die ".." warum ist der erste Teil in Hochkomma gesetzt.


    Dritte Frage: einige Zeilen sind mit zwei voranstehenden Minuszeichen versehen. Hat das den selben Effekt wie #?


    Was noch wichtiger ist, würde das Spiel noch funktionieren, wenn ich beispielsweise folgende Änderung in der GLActivities object (Datei glActivities.agl) vornehme:


    Tickle


    {


    ...


    }


    relationshipInfluences


    {


    0


    {


    condition = REL_EROTIC


    value = 0.099


    failValue = -0.026


    }


    1


    {


    condition = REL_ROMANTIC


    value = -0.005


    failValue = -0.025


    }


    }
    ...
    }


    Bzgl. der Interpretation, wenn’s im Programm erlaubt ist, passiert dann folgendes: Beim Kitzeln Gibt’s im Falle eines "gelungenen Versuchs" einen klitzekleinen Romantikabzug (weil’s ja albern ist) und einen relativ großen, wenn die Anmache fehlgeschlagen ist (weil’s grad arg genervt hat)?


    Sorry, das ist jetzt alles recht speziell, aber vielleicht können mir die Profis mal sagen, ob ich auf dem richtigen Dampfer bin. Dann kann ich meinen Elan schon im Vorfeld regulieren. Wenn’s so klappen würde, wie ich mir das denke, gäb’s als Gegenleistung ja irgendwann ne weitere Extension.


    Ach so, weil ja auch Singles 2 Entwickler aktiv im Forum sind: viele Quellcodes sind ja offen, da scheint Geheimniskrämerei (die es verständlicherweise an einigen Stellen auch gibt) nicht notwendig zu sein, was indirekt auch zum modden einlädt. Gibt’s so was wie’n Referenzhandbuch – also welche Funktionen wo mit welchen Parametern zu finden sind etc.? Das wäre natürlich das Optimum...


    Grüße aus Südhessen!


  • Hi,


    zu deiner ersten Frage kann ich im Moment nichts sagen,
    bei der zweiten handelt es sich wohl um eine Konkatenation zwischen einem String und einer Variablen, zum dritten: die "--" stehen fuer eine Kommentarzeile, ist aber damit nicht identisch
    zu "#" - was/ob man verwenden darf, haengt vom file typ ab.


    Naeheres zu lua gibt's unter www.lua.org - wurde unter anderem auch fuer Far Cry verwendet.



  • Danke, die Konkatenation macht Sinn (und ich hab noch einen Fachbegriff gelernt).

    Hast Du ne Idee, ob meine theoretische Erweiterung des Kitzeln-Effekts funktioniert, in dem ich einfach noch ne Wirkung auf den Romantik-Wert anhänge? Könnte ja sein, dass bei ner Abfrage nur ein Erotik-Effekt erwartet wird und das Programm gar nicht mehr läuft wegen nem Syntax-Fehler oder der Befehl einfach ignoriert wird, weil bei "relationshipInfluences" immer nur ein Effekt erwartet wird und dem Programm die auf "1" folgenden zusätzlich reingeschriebenen Befehle schnurzpiepegal sind.

  • Ich habe den source code gerade nicht hier (bin @work :-) ), aber im Prinzip sollte es gehen,
    es gibt ja mehrere Aktionen, die sich auf verschiedene Werte auswirken (sieht man ja auch in den Menus, wenn da mehrere Icons angezeigt werden) - da muss man einfach mal in dem File nachsehen und sich so eine Aktion raussuchen und dann was analoges basteln.


    Einfach ausprobieren - wenn das Spiel nicht mehr funktioniert, meldet es sich schon ... "Wollen Sie das Problem auch an Mickysoft berichten?" :-) ... ein backup der modifizierten files
    sollte man halt machen (oder gleich mit extensions arbeiten, soweit moeglich)

  • Zitat von swastie@work

    Danke, die Konkatenation macht Sinn (und ich hab noch einen Fachbegriff gelernt).

    Hast Du ne Idee, ob meine theoretische Erweiterung des Kitzeln-Effekts funktioniert, in dem ich einfach noch ne Wirkung auf den Romantik-Wert anhänge?



    Ja, das funktioniert problemlos. Hab selber mächtig umgeschrieben...
    Küssen bringt auch was für die Freundschaft.. etc.. Hab´s sogar mal soweit getrieben, dass Zähneputzen alle Bedürfnisse befriediegt hat...
    Kannst beliebig erweitern, werden sogar die Symbole dann im Menü angezeigt (die hat R2K leider z.T. weggelassen - trotzdem super Arbeit & Danke) Du kannst auch problemlos alle Zeitabläufe etc. ändern. Beachte aber.. eine in einer Extension enthaltene Datei, kann deine ganze Mühe überschreiben... ich entpacke immer aller Extensions im Extensionordner.. dadurch sehe ich was drinn ist, kann Überschneidungen korrigieren und die Ladezeiten sind auch noch etwas kürzer...

    Zu den "Gänsefüßchen".. hmm, programmiere selber auch und denke du solltest das als Programmierer auch wissen / ahnen: Damit kennzeichnest du Strings...
    Programmiere zwar nicht in Lua, aber an Hand des Aufbaues denke ich:
    _G ist die Funktion, diese benötigt 2 Parameter, der erste wird ihr als String übergeben (Ich denke mal, es handelt sich in diesem Fall um ein Schlüßelwort zur Abfrage eines Arrays), der zweite in Form eine Variablen, die die Flags für den Funktionsaufruf bilden.



  • Das mit den Extensions ist ein guter Hinweis!
    Hab mal in lua.org ein Referenzhandbuch zu LUA 5.0 runtergeladen. _G ist eine globale Variable, die sinnigerweise in der der library "Basic Functions" definiert ist. Mit den Strings haste recht, hab ich zwar auch zuerst gedacht, konnte aber mit den 2 Punkten nix anfangen und war dann arg verwirrt. Ist aber definitiv keine Funktion mit zwei Variablen. Das ".." entspricht wohl dem "&" das ich kenne um Strings zu verküpfen.

    Sei's drum, das wichtigste ist, dass ich da nach Lust und Laune was dranhängen kann (solange die Syntax stimmt). Ein Referenzhandbuch wäre trotzdem toll...