Advertisement
Guest User

Untitled

a guest
May 10th, 2013
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.68 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #include <zcmd>
  4.  
  5. stock DB_Escape(text[])
  6. {
  7.     new
  8.         ret[80 * 2],
  9.         ch,
  10.         i,
  11.         j;
  12.     while ((ch = text[i++]) && j < sizeof (ret))
  13.     {
  14.         if (ch == '\'')
  15.         {
  16.             if (j < sizeof (ret) - 2)
  17.             {
  18.                 ret[j++] = '\'';
  19.                 ret[j++] = '\'';
  20.             }
  21.         }
  22.         else if (j < sizeof (ret))
  23.         {
  24.             ret[j++] = ch;
  25.         }
  26.         else
  27.         {
  28.             j++;
  29.         }
  30.     }
  31.     ret[sizeof (ret) - 1] = '\0';
  32.     return ret;
  33. }
  34.  
  35. #define DIALOG_BETA 5000
  36. #define DIALOG_ERSTELLEN 5500
  37.  
  38. enum BetaDaten {
  39. KeyVorhanden
  40. }
  41. new BetaInfo[MAX_PLAYERS][BetaDaten];
  42.  
  43. new DB:Keys;
  44. new Blocked;
  45. public OnFilterScriptInit()
  46. {
  47.     Keys = db_open("Keys.db");
  48.     new str[128],strz[128];
  49.     format(str, sizeof(str), "CREATE TABLE IF NOT EXISTS `Betakeys`(`Keynummer`)");
  50.     format(strz,sizeof(strz), "CREATE TABLE IF NOT EXISTS `Anmeldungen`(`Name`,`KeyVorhanden` NOT_NULL, `Keynummer`)");
  51.     db_query(Keys, str);
  52.     db_query(Keys, strz);
  53.     print("\n--------------------------------------");
  54.     print("Betakey-System v1.0");
  55.     print("--------------------------------------\n");
  56.     return 1;
  57. }
  58.  
  59. public OnPlayerConnect(playerid)
  60. {
  61.     new strz[128], DBResult:ResultZ, name[MAX_PLAYER_NAME+1];
  62.     GetPlayerName(playerid, name, sizeof(name));
  63.     format(strz, sizeof(strz), "SELECT * FROM `Anmeldungen` WHERE `Name` = '%s'",DB_Escape(name));
  64.     ResultZ = db_query(Keys, strz);
  65.     if(db_num_rows(ResultZ) > 0)
  66.     {
  67.         db_get_field_assoc(ResultZ, "KeyVorhanden", strz, sizeof(strz));
  68.         BetaInfo[playerid][KeyVorhanden] = 1;
  69.     }
  70.     db_free_result(ResultZ);
  71.     if(Blocked == 1)
  72.     {
  73.         SetTimerEx("Kicked",250, false, "i", playerid);
  74.         SendClientMessage(playerid, -1, "Die Betaregistrierung ist derzeit leider abgeschaltet!");
  75.     }
  76.     if(BetaInfo[playerid][KeyVorhanden] == 0)
  77.     {
  78.         ShowPlayerDialog(playerid, DIALOG_BETA,DIALOG_STYLE_INPUT,"Beta-Anmeldung", "Du hast einen Beta Key?\nDenn trage ihn hier ein:", "OK", "Abbrechen");
  79.     } else return SpawnPlayer(playerid);
  80.     return 1;
  81. }
  82. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  83. {
  84.     if(dialogid == DIALOG_BETA)
  85.     {
  86.         if(!response)return Kick(playerid);
  87.         if(response)
  88.         {
  89.             new str[128],dbstr[128],dstr[128], DBResult:Result, name[MAX_PLAYER_NAME+1];
  90.             GetPlayerName(playerid, name, sizeof(name));
  91.             format(str, sizeof(str), "SELECT * FROM `Betakeys` WHERE `Keynummer` = '%s'", inputtext);
  92.             Result = db_query(Keys, str);
  93.             if(db_num_rows(Result) > 0)
  94.             {
  95.                 format(dbstr, sizeof(dbstr), "INSERT INTO `Anmeldungen`(`Name`, `KeyVorhanden`, `Keynummer`)VALUES('%s','%i', '%s')",DB_Escape(name),1,inputtext);
  96.                 format(dstr, sizeof(dstr), "DELETE FROM `Betakeys` WHERE (`Keynummer` = '%s')", inputtext);
  97.                 db_query(Keys, dbstr);
  98.                 db_query(Keys, dstr);
  99.                 db_free_result(db_query(Keys,dstr));
  100.             } else
  101.             {
  102.                 SendClientMessage(playerid, -1, "Dieser Schlüssel existiert derzeit nicht in der Datenbank!");
  103.                 SetTimerEx("Kicked",250, false, "i", playerid);
  104.                 db_free_result(Result);
  105.             }
  106.         }
  107.     }
  108.     if(dialogid == DIALOG_ERSTELLEN)
  109.     {
  110.         if(!response)return SendClientMessage(playerid,-1, "Erstellungsvorgang abgebrochen.");
  111.         if(response)
  112.         {
  113.             new str[128],strz[128];
  114.             format(str, sizeof(str), "INSERT INTO `Betakeys`(`Keynummer`)VALUES('%s')",inputtext);
  115.             format(strz, sizeof(strz), "Du hast den Betaschlüssel: %s erfolgereich erstellt!",inputtext);
  116.             db_query(Keys, str);
  117.             SendClientMessage(playerid,-1, strz);
  118.         }
  119.     }
  120.     return 1;
  121. }
  122.  
  123. forward Kicked(playerid);
  124. public Kicked(playerid)
  125. {
  126.     Kick(playerid);
  127.     return 1;
  128. }
  129. CMD:keyerstellen(playerid,params[])
  130. {
  131.     //if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "Du hast nicht genügend Rechte um diesen CMD auszuführen!");
  132.     ShowPlayerDialog(playerid, DIALOG_ERSTELLEN, DIALOG_STYLE_INPUT, "Key erstellen", "Geb hier den Schlüssel ein, den du erstellen möchtest!", "OK","Abbrechen");
  133.     return 1;
  134. }
  135. CMD:block(playerid,params[])
  136. {
  137.     //if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1, "Du hast nicht genügend Rechte um diesen CMD auszuführen!");
  138.     new str[128], name[MAX_PLAYER_NAME+1];
  139.     GetPlayerName(playerid, name, sizeof(name));
  140.     if(Blocked == 0)
  141.     {
  142.         Blocked = 1;
  143.         format(str,sizeof(str), "%s hat die Betaanmeldung abgeschaltet!",name);
  144.     } else if(Blocked == 1)
  145.     {
  146.         Blocked = 0;
  147.         format(str,sizeof(str), "%s hat die Betaanmeldung eingeschaltet!", name);
  148.     }
  149.     for(new i=0;i<MAX_PLAYERS;i++)
  150.     {
  151.         if(IsPlayerAdmin(i) && IsPlayerConnected(i))
  152.         {
  153.             SendClientMessageToAll(-1, str);
  154.         }
  155.     }
  156.     return 1;
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement