Lizenzcode-System

    • GM 8

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

    • Lizenzcode-System

      Okay, da mich sehr viele nach dem Lizenzcode-System gefragt haben, hier das Script.

      Ich möchte aber, das ich in den Credits erwähnt werde. Danke.

      *Es sind folgende DLL's notwendig:*

      HTTP DLL (gibt es auch als gex)


      Zum PHP Script:

      Dieses muss auf deinem Webspace im "/" Verzeichnis liegen, also auf der Startseite und sollte "check.php" genannt werden!

      PHP-Script:
      Spoiler anzeigen

      GML-Quellcode

      1. <?php
      2. // Alle Scripts wurden durch Roman Ackermann erstellt.
      3. // Die weiterverbreitung sowie das entfernen des Copyright-Hinweis sind
      4. // Ohne Schriftliche (E-Mail) bestätigung untersagt.
      5. // Vielen Dank für Ihr Verständnis!
      6. $result=0;
      7. $vorher = $_POST["eingabe"];
      8. $eingabe = md5($vorher);
      9. $datei = "codes/".$eingabe.".txt";
      10. $dateiname = "codes.txt";
      11. $daten = file($dateiname, FILE_IGNORE_NEW_LINES);
      12. while (list ($line_num, $line) = each ($daten))
      13. {
      14. if($line==$eingabe){$result=1;}
      15. }
      16. if ($result == 1)
      17. {
      18. if (file_exists($datei))
      19. {
      20. $lesen = fopen ($datei,"r");
      21. $inhalt = fread ($lesen,filesize($datei));
      22. fclose ($lesen);
      23. $einmal = "Einmal benutzt";
      24. if ($inhalt == $einmal)
      25. {
      26. unlink($datei);
      27. $haha = fopen($datei,"w");
      28. fwrite ($haha,"Zweimal benutzt - schon fast fertig");
      29. fclose($haha);
      30. }
      31. $zweimal = "Zweimal benutzt - schon fast fertig";
      32. if ($inhalt == $zweimal)
      33. {
      34. unlink($datei);
      35. $hoho = fopen($datei,"w");
      36. fwrite ($hoho,"drei mal! ende");
      37. fclose($hoho);
      38. }
      39. $dreimal = "drei mal! ende";
      40. if ($inhalt == $dreimal)
      41. {
      42. mail("DEINE MAIL","LIZENZCODE BENUTZT","Hallo\n\nDer Lizenzcode $vorher wurde nun 3x benutzt. Das Script hat als result nun 2 ausgegeben, du hast also ruhig Zeit, den Code zu löschen!\n\nMfg\nLizenzcode-System","From: lizenz@you.de");
      43. $result=2;
      44. }
      45. }
      46. else
      47. {
      48. $handle = fopen($datei,"w");
      49. fwrite ($handle,"Einmal benutzt");
      50. fclose($handle);
      51. }
      52. }
      53. echo $result;
      54. ?>
      Alles anzeigen


      Nun zum GML-Teil:

      Wie gesagt, die HTTP DLL muss als Script importiert worden sein und als DLL beiliegen.

      Im Object "lizenzcode", Event: Create oder einem Alarm-Event:

      Spoiler anzeigen

      GML-Quellcode

      1. registry_set_root(1)
      2. if registry_exists_ext ("\SOFTWARE\<SPIELNAME>", "code")
      3. {
      4. room_goto(DEIN ROOM);
      5. }
      6. else
      7. {
      8. http_init();
      9. code = get_string("Bitte den Lizenzcode eingeben:#S'il vous plaît entrez le code de licence:","");
      10. if (code=="kein")
      11. {
      12. execute_shell("ADRESSE ZUM SUPPORT",50);
      13. game_end();
      14. }
      15. else
      16. {
      17. http_add_post("eingabe",code);
      18. echo=http_request("Deine Webspace-Adresse Ohne www und http://","/check.php");
      19. echo=real(string_digits(echo))
      20. if (echo==1)
      21. {
      22. wd_message_simple("Vielen Dank, dass Sie sich für unser Produkt entschieden haben. Wir wünschen Ihnen noch viel Spass! Merci d'avoir choisi notre produit. Nous vous souhaitons beaucoup de plaisir!");
      23. room_goto(sprache);
      24. registry_set_root(1)
      25. registry_write_real_ext("\SOFTWARE\<SPIELNAME>","code",x)
      26. }
      27. else
      28. {
      29. if (echo==2)
      30. {
      31. switch(show_message_ext("Leider ist der von Ihnen eingegebene Lizenzcode bereits 3x benutzt worden, wenden Sie sich an den Support, sollte dies nicht stimmen.#Malheureusement, le code de licence que vous avez inscrits déjà été utilisé 3 fois, s'il vous plaît nous contacter pour un soutien, de ne pas voter.",'Zum Support','','Beenden'))
      32. {
      33. case 1: execute_shell("ADRESSE ZU DEINEM SUPPORT",70); room_goto(lizenz1);break
      34. case 3: game_end();break
      35. }
      36. }
      37. else
      38. {
      39. switch(show_message_ext("Sie haben den Lizenzcode falsch eingegeben!#Vous avez entré le code de licence est incorrect!",'Nochmals','Zum Support','Beenden'))
      40. {
      41. case 1: instance_create(1,1,lizenz);break
      42. case 2: execute_shell("ADRESSE ZU DEINER SUPPORT-SEITE",70); room_goto(lizenz1);break
      43. case 3: game_end();break
      44. }
      45. }
      46. }
      47. }
      48. }
      Alles anzeigen


      Dann ein zweites Object namens "lizenz" im Create Event (WICHTIG):

      Spoiler anzeigen

      GML-Quellcode

      1. registry_set_root(1)
      2. if registry_exists_ext ("\SOFTWARE\<SPIELNAME>", "code")
      3. {
      4. room_goto(DEIN ROOM);
      5. }
      6. else
      7. {
      8. http_init();
      9. code = get_string("Bitte den Lizenzcode eingeben:#S'il vous plaît entrez le code de licence:","");
      10. if (code=="kein")
      11. {
      12. execute_shell("ADRESSE ZUM SUPPORT",50);
      13. game_end();
      14. }
      15. else
      16. {
      17. http_add_post("eingabe",code);
      18. echo=http_request("Adresse zur deinem Webspace ohne www. und http://","/check.php");
      19. echo=real(string_digits(echo))
      20. if (echo==1)
      21. {
      22. wd_message_simple("Vielen Dank, dass Sie sich für unser Produkt entschieden haben. Wir wünschen Ihnen noch viel Spass! Merci d'avoir choisi notre produit. Nous vous souhaitons beaucoup de plaisir!");
      23. room_goto(DEIN ROOM);
      24. registry_set_root(1)
      25. registry_write_real_ext("\SOFTWARE\<SPIELNAME>","code",x)
      26. }
      27. if (echo==2)
      28. {
      29. switch(show_message_ext("Leider ist der von Ihnen eingegebene Lizenzcode bereits 3x benutzt worden, wenden Sie sich an den Support, sollte dies nicht stimmen.#Malheureusement, le code de licence que vous avez inscrits déjà été utilisé 3 fois, s'il vous plaît nous contacter pour un soutien, de ne pas voter.",'Zum Support','','Beenden'))
      30. {
      31. case 1: execute_shell("ADRESSE ZUM SUPPORT",70); room_goto(lizenz1);break
      32. case 3: game_end();break
      33. }
      34. }
      35. if (echo==0)
      36. {
      37. wd_message_simple("Sie haben den Lizenzcode erneut falsch eingegeben, dass Programm wird nun Beendet. Vous avez entré le code de licence avec nouveau de manière incorrecte, ce programme va se terminer.");
      38. game_end();
      39. }
      40. }
      41. }
      Alles anzeigen


      und dann noch ein Room erstellen mit dem Namen "lizenz1". Nun musst du nur noch den GML Teil anpassen!

      Hier das was du ersetzten musst:

      ADRESSE ZUM SUPPORT = Hilfeseite zu deinem Spiel
      <SPIELNAME> = durch den Namen des Spiels bzw. des Programmes ersetzen!
      DEIN ROOM = Den Raum in den der Spieler kommen soll, wenn der Lizenzcode korrekt ist bzw. bereits eingegeben wurde.


      Übrigens wird auf deinem Webspace die Datei "codes.txt" geschrieben. Wenn du nun ein Lizenzcode hinzufügen willst, so musst du diesen md5 verschlüsselt dort hinein schreiben. Ich persönlich habe eine Online-Administration gemacht die Passwortgeschützt ist, dann ein Eingabefeld hinzugefügt und ein Senden Button. Der Eingegebene Code wird dann automatisch verschlüsselt und in die Datei geschrieben. Da mein Programm noch nicht öffnetlich ist, könnt Ihr diese gerne mal ansehen.

      Benutzername: test
      Passwort: demo

      >>HIER<<

      Ich bin noch gerade daran, eine Löschen-Funktion einzubauen.

      Beachte, das du nicht nur die Datei "codes/verschlüsseltercode.txt" löschen kannst, sondern auch in der codes.txt den Code löschen musst. Oder du löschst den mail() befehl, dann hat aber dein Webspace irgendwann kein Platz mehr, da immer neue Dateien pro Kunde erzeugt wurde. Falls Fragen da sind, einfach stellen!

      Übrigens ist die Extension "Windows Dialogs", welche Standartmässig beiligt, auch notwendig. Ausser du ersetzst im GML teil alle "wd_message_simple" durch "show_message".

      Bitte beachtet, das dieses Script nicht zu 100 % sicher ist!

      Ihr könnt im Room "lizenz1" dann ein Button machen mit Beenden (game_end()) und z.B. einer mit Nochmals versuchen (instance_create(lizenz,1,1)).

      Edit: Ist das nur bei mir so oder werden bei euch sonderzeichen (ä,ö,ü,etc.) auch falsch dargestellt? Das musst man, vorallem in den Scripten, ändern bevor man es benutzt.
      :thumbsup:

      Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von jlsnews ()

    • Benutzer online 1

      1 Besucher