Modding Help (Guide & CSL Scripting)

  • I do not know how to read or write German so I will use google translate to post the translation also even though I am not sure how well it will work.



    I am trying to find out how to use CSL scripting works.
    To start, I am a very capable Developer / Programmer
    I have written code for almost 20 years now, so I can with a little work figure out how just about any code works.
    The CSL script is written in the C language style so I am familair with the syntax.



    I am using RDAExplorer to unpack And repack my edits.
    I have had a lot of good luck figuring out most of it by looking at the code in the rda files.
    I have found out all the variables need to start with a lowercase (through trial and error).
    I want to create my own modules and run them from another part of the code from another existing csl file.
    I have found out that by using a hash tag (#) that I "should" be able to call up my module.
    I would also like to know that if I call up a module would it continue to run the rest of the code asynchronous or wait till my module is completed it's task.
    I assume it is asynchronous based on the autorun.csl that calls up modules that have while loops in them.



    I have also found out that if there is any errors in my code, the complete code fails to run at all. This make debugging extremely difficult and time consuming.



    I have a lot that I want to do but I will start off with a simple code I was trying to implement just to test and see if what I was doing was right, I wanted it to remove 1 wood from an island every second as soon as a marketplace was put down (I wanted to have it be for the warehouse but I could not find the right CLS to accomplish this, I thought it was kontor as this says it runs once per island per player, this would have been ideal, but using GlobalTriggers I think I could accomplish the same thing to start it only once per island, also tried working with the warehouse.csl and had no success either)



    Here is my sample code:





    module MmWC(buildingHID, playerID, islandID)
    {
    _setScriptIslandID(islandID)
    var waitTime = 1000
    var reduceAmount = 1000
    while (1)
    {
    _addGoods(_PRODUCT_Wood, -reduceAmount, 0)
    _sleep(waitTime)
    }
    }


    And I assume I would call this up in a module like marketplace.csl using #MmWC(buildingHID, playerID, islandID)
    I would like to know how to use GlobalTriggers, can I create global triggers dynamically using a count for example:




    var gPlayerTrigger = 909090
    var gIslandTrigger = 919190
    gPlayerTrigger++

    gIslandTrigger++
    _setGlobalTrigger(gPlayerTrigger, playerID)
    _setGlobalTrigger(gIslandTrigger, islandID)




    Let me know if there is anything else you need from me.











    -----------------------
    Goggle Translate to German
    -----------------------



    Ich weiß nicht, wie man Deutsch liest oder schreibt, also werde ich google übersetzen, um die Übersetzung auch zu posten, obwohl ich nicht sicher bin, wie gut es funktionieren wird.



    Ich versuche herauszufinden, wie man CSL-Scripting funktioniert.
    Um zu starten, bin ich ein sehr fähiger Entwickler / Programmierer
    Ich habe Code seit fast 20 Jahren geschrieben, also kann ich mit ein wenig Arbeit herausfinden, wie fast jeder Code funktioniert.
    Das CSL-Skript steht im C-Sprachstil, also bin ich mit der Syntax vertraut.



    Ich benutze RDAExplorer zum Auspacken und verpacke meine Änderungen.
    Ich habe viel Glück gehabt, die meisten davon herauszufinden, indem ich den Code in den Rda-Dateien betrachte.
    Ich habe herausgefunden, alle Variablen müssen mit einem Kleinbuchstaben beginnen (durch Versuch und Irrtum).
    Ich möchte meine eigenen Module erstellen und sie aus einem anderen Teil des Codes aus einer anderen vorhandenen csl-Datei ausführen.
    Ich habe herausgefunden, dass mit einem Hash-Tag (#), dass ich "sollte" in der Lage sein, rufen Sie mein Modul.
    Ich würde auch gerne wissen, dass wenn ich ein Modul aufrufen würde es weiterhin den Rest des Codes asynchron laufen oder warten, bis mein Modul abgeschlossen ist, ist es Aufgabe.
    Ich nehme an, es ist asynchron auf der Grundlage der autorun.csl, die Module aufruft, die während der Schleifen in ihnen haben.



    Ich habe auch herausgefunden, dass, wenn es irgendwelche Fehler in meinem Code gibt, der komplette Code überhaupt nicht läuft. Dies macht Debugging extrem schwierig und zeitaufwendig.



    Ich habe eine Menge, die ich machen will, aber ich werde mit einem einfachen Code anfangen, den ich versuchte zu implementieren, nur um zu testen und zu sehen, ob das, was ich tat, war richtig, ich wollte es, um 1 Holz von einer Insel jede Sekunde so bald zu entfernen Als ein Marktplatz abgelegt wurde (ich wollte es für das Lager haben, aber ich konnte nicht das richtige CLS finden, um das zu erreichen, ich dachte, es war kontor, da dies sagt, dass es einmal pro Insel pro Spieler läuft, das wäre ideal gewesen, Aber mit GlobalTriggers Ich glaube, ich könnte das gleiche tun, um es nur einmal pro Insel zu starten, versuchte auch, mit dem Warehouse.csl zu arbeiten und hatte auch keinen Erfolg)



    Hier ist mein Beispielcode:



    module MmWC(buildingHID, playerID, islandID)
    {
    _setScriptIslandID(islandID)
    var waitTime = 1000
    var reduceAmount = 1000
    while (1)
    {
    _addGoods(_PRODUCT_Wood, -reduceAmount, 0)
    _sleep(waitTime)
    }
    }

    Und ich nehme an, ich würde das in einem Modul wie marketplace.csl mit #MmWC(buildingHID, playerID, islandID)
    Ich möchte wissen, wie man GlobalTriggers einsetzt, kann ich globale Trigger dynamisch mit einer Anzahl zum Beispiel erstellen:




    var gPlayerTrigger = 909090
    var gIslandTrigger = 919190
    gPlayerTrigger++

    gIslandTrigger++
    _setGlobalTrigger(gPlayerTrigger, playerID)
    _setGlobalTrigger(gIslandTrigger, islandID)

    Lassen Sie mich wissen, ob es noch etwas gibt, was Sie von mir brauchen.