Script_add System (Scripte extern laden)

    • Skript

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Script_add System (Scripte extern laden)

      Was ist dieses 'Script_add System'?
      Mit diesem System können Scripte wie Sprites und Backgrounds extern geladen werden. Dies ermöglicht Erweiterungen oder Ähnliches extern zu Speichern und zu Laden. Dieses System ist auch als Debug-Funktion nützlich, falls man bei einem grossen Projekt nicht jedes mal in den GM zurück will um nur etwas kleines zu ändern.

      Und was ist daran speziell?
      • Die Scripte können mit (maximal 15) Argumenten aufgerufen werden
      • Es können Werte zurückgegeben werden.
      • Kommentare sind in den Scripten erlaubt.
      • Die Scripte werden schneller ausgeführt als mit execute_string() oder execute_file()
      • Die Scripte können auf andere Scripte direkt mit dem Scriptnamen zugreiffen (sofern alle beteiligen Scripte extern geladen werden)

      Wie schaut das nun aus wenn man's anwendet?
      Erstmal braucht man die Scripte die man laden will, hier mal zwei Beispiele:

      scr_multiply.txt

      GML-Quellcode

      1. //Multipliziert das erste mit dem zweiten Argument
      2. return argument0*argument[1]; //Argumente könnne auf beide Arten ausgelesen werden!


      scr_disp_mult.txt

      GML-Quellcode

      1. /*
      2. Gibt das Produkt der Argumente aus, dabei wird das zuvor definierte Script verwendet.
      3. */
      4. show_message(string(argument0)+" * "+string(argument1)+" = "+string(scr_multiply(argument0,argument1)));


      Nun die Anwendung, z.B. in einem Create Event:

      GML-Quellcode

      1. //Initialisieren
      2. script_add_init();
      3. //Erstes Script hinzufügen und in weiteren Scripts verfügbar machen
      4. scr_mulitply=script_add_from_file("scr_multiply.txt","scr_multiply");
      5. //Zweites Script (welches das erste benutzt) hinzufügen
      6. scr_disp_mult=script_add_from_file("scr_disp_mult.txt");
      7. //Das zweite Script ausführen
      8. script_ex(scr_disp_mult,4,5);
      9. game_end();


      Ausgabe:

      Quellcode

      1. 4 * 5 = 20


      Muss ich dich nun in den Credits erwähnen?
      Müssen musst du erstmal gar nichts, erwünscht ist es jedoch schon.

      Notizen zum Anhang:
      Die oben beschriebnen Beispielscripte sind im Anhang inkl. einer gm6-Datei enthalten, die Scripte sind noch als expotierte Scripte enthalten.

      !WARNUNG!
      Wenn ihr die Scripte einfach neben der exe liegen lässt kann jeder diese bearbeiten und so seinen eigenen Code in euer Spiel einschleusen, also Vorsicht!

      soviel von mir, bei Fragen helfe ich gerne weiter
      ~Dragoon
      Dateien
      • script_add_v3.zip

        (4,65 kB, 283 mal heruntergeladen, zuletzt: )
      int (*x(*x(int))[5])(int*);
      Confused? Yes, it's C!
    • RE: Script_add System (Scripte extern laden)

      Dragoon schrieb:

      !WARNUNG!
      Wenn ihr die Scripte einfach neben der exe liegen lässt kann jeder diese bearbeiten und so seinen eigenen Code in euer Spiel einschleusen, also Vorsicht!
      Um das zu verhindern koennte man die Scripts verschluesselt in ne Datei speichern und dann beim Laden aus ner Datei wieder entschluesseln.
      Ne kleine .exe die ne Textdatei verschluesselt is schnell gemacht und du muesstest nur nen kurzen Scriptaufruf in dein script_add_from_file machen um die datei zu entschluesseln bevor du sie an script_add weitergibst.
      Ne einfache xor Verschluesselung duerfte ausreichen und mitm GM auch recht schnell gehen.

      Gut das ist vll. etwas over-the-top nur fuer ein paar scripts :)
    • Hmm... habe mal ein schon etwas älteres Crypt Programm von mir rausgesucht. Damit man es zu Dragoon sein Code zufügen kann, mach ich es mal hier als Open Source rein ;)
      Den Code muss man nachher nur einfach aus der Datei nehmen ^^
      Hier mal ein Beispiel:
      (1 = Text Datei normal, 2 = Text Datei verschlüsselt, 3 = Text Datei entschlüsselt)

      Spoiler anzeigen

      Text Datei normal

      Brainfuck-Quellcode

      1. Wow, ich bin ja ein toller Text ^^
      2. Leider kann ich keine Sonderzeichen oder Zahlen
      3. umwandeln, aber ich hoffe das macht nichts oder?
      4. Wenn doch... dann bearbeite meinen Code doch einfach
      5. im GM ;)
      6. Mfg.,
      7. Metalknight / Pascal Piduhn
      8. --------------------------------------------------------------
      9. Wow, ich bin ja ein toller Text ^^
      10. Leider kann ich keine Sonderzeichen oder Zahlen
      11. umwandeln, aber ich hoffe das macht nichts oder?
      12. Wenn doch... dann bearbeite meinen Code doch einfach
      13. im GM ;)
      14. Mfg.,
      15. Metalknight / Pascal Piduhn
      16. --------------------------------------------------------------
      17. Wow, ich bin ja ein toller Text ^^
      18. Leider kann ich keine Sonderzeichen oder Zahlen
      19. umwandeln, aber ich hoffe das macht nichts oder?
      20. Wenn doch... dann bearbeite meinen Code doch einfach
      21. im GM ;)
      22. Mfg.,
      23. Metalknight / Pascal Piduhn
      24. --------------------------------------------------------------
      25. Wow, ich bin ja ein toller Text ^^
      26. Leider kann ich keine Sonderzeichen oder Zahlen
      27. umwandeln, aber ich hoffe das macht nichts oder?
      28. Wenn doch... dann bearbeite meinen Code doch einfach
      29. im GM ;)
      30. Mfg.,
      31. Metalknight / Pascal Piduhn
      Alles anzeigen


      Text Datei verschlüsselt

      Brainfuck-Quellcode

      1. +--*******--+
      2. +-1234567890+
      3. +--*******--+
      4. Xqz, mhn iqw jb glr yustnr UgAx ^^
      5. Qkplnr lcqr nio sniog VssjlzIejekis ukmA Zbjois
      6. AtEjnegor, fhlz rci jrjkk kiB mbekx sojpCs pfhv?
      7. bkuv modj... gest imjrcglxj slqweo Erhj jvkq ejpiehn
      8. pu PM ;)
      9. Nhj.,
      10. Qjzhttnjikx / Ugzkjl Qkgymt
      11. --------------------------------------------------------------
      12. dwF, idj ems ph mrn uqopjx amGt ^^
      13. Mglhjx riwn jek ojoum boofhvEkpkqeo qgiw fhpueo
      14. wpAftkmun, bdhv nio pxfgg gex shkqt okflyy vlnr?
      15. Xgqr iujp... maop eifximrtf ohmsku Kxdf frgm kpvoadj
      16. lq LS ;)
      17. Tnp.,
      18. Mfvdpptpoqt / Qcvgfr Wqmuip
      19. --------------------------------------------------------------
      20. ZsB, ojp kio ld int Awulft WiCz ^^
      21. Smrdft nest pkq kfkqi XuulnrAglgmku wmes bdlqku
      22. Cvwbpgiqt, hjnr jek ltlmm mat odgmz uqlhuu rhjx?
      23. dmwn eqfl... iguv kebteinzl uniogq Gtjl lxci glrkgjp
      24. rm HO ;)
      25. Pjl.,
      26. SlBjllplkmz / WiBcbn SmiAov
      27. --------------------------------------------------------------
      28. fox, kfl gou rj ejp wsqrlz ceyv ^^
      29. Oinjlz taop lgm qlqwe TqqhjxGmrcigq siky hjhmgq
      30. yrChvmemp, dfjx pkq hphii igz ujciv qmhnAA xdft?
      31. Zist kwlh... ecqr gkhzkejvh qjoumw Cpfh htio mrngcfl
      32. ns NU ;)
      33. Vfh.,
      34. Ohxfrrvrgiv / Sexiht Yiewkr
      Alles anzeigen


      Text Datei entschlüsselt

      Brainfuck-Quellcode

      1. +--!!!!!!!--+
      2. +-1234567890+
      3. +--!!!!!!!--+
      4. +--*******--+
      5. +-1234567890+
      6. +--*******--+
      7. Wow, ich bin ja ein toller Text ^^
      8. Leider kann ich keine Sonderzeichen oder Zahlen
      9. umwandeln, aber ich hoffe das macht nichts oder?
      10. Wenn doch... dann bearbeite meinen Code doch einfach
      11. im GM ;)
      12. Mfg.,
      13. Metalknight / Pascal Piduhn
      14. --------------------------------------------------------------
      15. Wow, ich bin ja ein toller Text ^^
      16. Leider kann ich keine Sonderzeichen oder Zahlen
      17. umwandeln, aber ich hoffe das macht nichts oder?
      18. Wenn doch... dann bearbeite meinen Code doch einfach
      19. im GM ;)
      20. Mfg.,
      21. Metalknight / Pascal Piduhn
      22. --------------------------------------------------------------
      23. Wow, ich bin ja ein toller Text ^^
      24. Leider kann ich keine Sonderzeichen oder Zahlen
      25. umwandeln, aber ich hoffe das macht nichts oder?
      26. Wenn doch... dann bearbeite meinen Code doch einfach
      27. im GM ;)
      28. Mfg.,
      29. Metalknight / Pascal Piduhn
      30. --------------------------------------------------------------
      31. Wow, ich bin ja ein toller Text ^^
      32. Leider kann ich keine Sonderzeichen oder Zahlen
      33. umwandeln, aber ich hoffe das macht nichts oder?
      34. Wenn doch... dann bearbeite meinen Code doch einfach
      35. im GM ;)
      36. Mfg.,
      37. Metalknight / Pascal Piduhn
      Alles anzeigen


      Somit könnt ihr eure Skripts dann entschlüsseln, wenn ihr sie verschlüsselt aufruft. Dafür muss man noch bisschen ändern... aber sicherer als einfach so neben der exe liegen zu lassen ;D

      Bitte gebt es nicht als euer eignes aus, es ist auch kein Credit eintrag nötig, aber bitte nicht sagen das es von euch ist, sowas ist ehrlich doof :(
      Dateien
      • Crypt.rar

        (1,04 MB, 250 mal heruntergeladen, zuletzt: )
    • Benutzer online 1

      1 Besucher