Advertisement
Guest User

iWhitelist by IntelligenT

a guest
Dec 11th, 2012
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.84 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. new DB:WhiteDB;
  4. #define DIALOG_WHITEADD 9547
  5. #define DIALOG_WHITEDEL 9548
  6. forward IsPlayerOnWhitelist(PName[]);
  7. forward KickTimer(playerid);
  8.  
  9. public OnFilterScriptInit()
  10. {
  11.     print("\n--------------------------------------");
  12.     print(" iWhitelist von IntelligenT geladen");
  13.     print("--------------------------------------\n");
  14.     WhiteDB = db_open("whitelist.s3db");
  15.     return 1;
  16. }
  17.  
  18. public OnFilterScriptExit()
  19. {
  20.     db_close(WhiteDB);
  21.     return 1;
  22. }
  23.  
  24. public OnPlayerConnect(playerid)
  25. {
  26.     if(!IsPlayerOnWhitelist(PlayerName(playerid)))
  27.     {
  28.         SpawnPlayer(playerid);
  29.         SendClientMessage(playerid,0xFF4600FF,"_____________Whitelist_____________");
  30.         SendClientMessage(playerid,0xFF4600FF,"|    Dein Name ist nicht auf der Whitelist!    |");
  31.         SetTimerEx("KickTimer",2000,0,"i",playerid); // Sonst sieht der Spieler den Kick Text nicht und reconnectet ständig.
  32.     }
  33.     return 1;
  34. }
  35.  
  36. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  37. {
  38.     new string[350];
  39.     if(dialogid == DIALOG_WHITEADD)
  40.     {
  41.         if(response)
  42.         {
  43.             if(strlen(inputtext) < 1) return SendClientMessage(playerid,0xFFFFFFFF,"Bitte gebe einen {FF8200}Usernamen{FFFFFF} an!");
  44.             if(IsPlayerOnWhitelist(inputtext)) return SendClientMessage(playerid,0xFFFFFFFF,"Der User ist bereits auf der {FF8200}Whitelist{FFFFFF}!");
  45.             format(string,sizeof string,"INSERT INTO whitelist (Name) VALUES ('%s')",inputtext); db_query(WhiteDB,string);
  46.             format(string,sizeof string,"Spieler {FF8200}%s{FFFFFF} wurde erfolgreich auf die {FF8200}Whitelist{FFFFFF} gesetzt!",inputtext); SendClientMessage(playerid,0xFFFFFFFF,string);
  47.         }
  48.     }
  49.     if(dialogid == DIALOG_WHITEDEL)
  50.     {
  51.         if(response)
  52.         {
  53.             if(strlen(inputtext) < 1) return SendClientMessage(playerid,0xFFFFFFFF,"Bitte gebe einen {FF8200}Usernamen{FFFFFF} an!");
  54.             if(!IsPlayerOnWhitelist(inputtext)) return SendClientMessage(playerid,0xFFFFFFFF,"Der User ist nicht auf der {FF8200}Whitelist{FFFFFF}!");
  55.             format(string,sizeof string,"DELETE FROM whitelist WHERE Name = '%s'",inputtext); db_query(WhiteDB,string);
  56.             format(string,sizeof string,"Spieler {FF8200}%s{FFFFFF} wurde erfolgreich von der {FF8200}Whitelist{FFFFFF} entfernt!",inputtext); SendClientMessage(playerid,0xFFFFFFFF,string);
  57.         }
  58.     }
  59.     return 1;
  60. }
  61.  
  62. public OnPlayerCommandText(playerid, cmdtext[])
  63. {
  64.     new cmd[256];
  65.     new idx;
  66.     cmd = strtok(cmdtext, idx);
  67.     if(IsPlayerAdmin(playerid))
  68.     {
  69.         if (strcmp("/whiteadd", cmdtext, true, 10) == 0)
  70.         {
  71.             ShowPlayerDialog(playerid,DIALOG_WHITEADD,DIALOG_STYLE_INPUT,"{FFFFFF}> Whitelist-System <","{FFFFFF}Gebe den {FF8200}Spielernamen{FFFFFF} an, den sie {FF8200}hinzufügen{FFFFFF} wollen.","Eintragen","Abbrechen");
  72.             return 1;
  73.         }
  74.         if (strcmp("/whitedel", cmdtext, true, 10) == 0)
  75.         {
  76.             ShowPlayerDialog(playerid,DIALOG_WHITEDEL,DIALOG_STYLE_INPUT,"{FFFFFF}> Whitelist-System <","{FFFFFF}Gebe den {FF8200}Spielernamen{FFFFFF} an, den sie {FF8200}entfernen{FFFFFF} wollen.","Entfernen","Abbrechen");
  77.             return 1;
  78.         }
  79.     }
  80.     return 0;
  81. }
  82.  
  83. stock PlayerName(playerid)
  84. {
  85.     new PName[MAX_PLAYER_NAME];
  86.     GetPlayerName(playerid, PName,sizeof PName);
  87.     return PName;
  88. }
  89.  
  90. public KickTimer(playerid)
  91. {
  92.     Kick(playerid);
  93.     return 1;
  94. }
  95.  
  96. public IsPlayerOnWhitelist(PName[])
  97. {
  98.     new query[256];
  99.     format(query,sizeof query,"SELECT * FROM whitelist WHERE Name = '%s'",PName);
  100.     new DBResult:result = db_query(WhiteDB,query);
  101.     new rows = db_num_rows(result);
  102.     db_free_result(result);
  103.     if(rows != 0) return 1;
  104.     else return 0;
  105. }
  106.  
  107. strtok(const string[], &index)
  108. {
  109.     new length = strlen(string);
  110.     while ((index < length) && (string[index] <= ' '))
  111.     {
  112.         index++;
  113.     }
  114.  
  115.     new offset = index;
  116.     new result[20];
  117.     while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
  118.     {
  119.         result[index - offset] = string[index];
  120.         index++;
  121.     }
  122.     result[index - offset] = EOS;
  123.     return result;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement