XpDeviL

#2 Admin Sistemi Örneği

Feb 13th, 2017
429
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.88 KB | None | 0 0
  1. /*
  2. Videolu anlatım için: https://youtu.be/AU9Z_BVf-dY
  3. */
  4.  
  5. #include <a_samp>
  6. #include <a_mysql>
  7. #include <zcmd>
  8. #include <sscanf2>
  9.  
  10. #define SQL_HOST    "localhost"
  11. #define SQL_USER    "root"
  12. #define SQL_PASS    ""
  13. #define SQL_DB      "xp_db"
  14.  
  15. enum data
  16. {
  17.     Coin,
  18.     Olum,
  19.     Oldurme,
  20.     AdminLevel
  21. };
  22. new pData[MAX_PLAYERS][data];
  23.  
  24. new MySQL:mysqlC;
  25.  
  26. main()
  27. {
  28.     print("\n----------------------------------");
  29.     print(" Test GM Yuklendi!");
  30.     print("----------------------------------\n");
  31. }
  32.  
  33. public OnGameModeInit()
  34. {
  35.     print("MySQL bağlantısı kuruluyor...");
  36.     mysqlC = mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DB);
  37.     if(mysql_errno(mysqlC) == 0)
  38.     {
  39.         print("MySQL bağlantısı kuruldu!");
  40.     }
  41.     else
  42.     {
  43.         print("MySQL bağlanıtısı başarısız!!");
  44.     }
  45.     return 1;
  46. }
  47.  
  48. public OnPlayerConnect(playerid)
  49. {
  50.     new query[128], isim[24];
  51.     GetPlayerName(playerid, isim, 24);
  52.     format(query, sizeof(query), "SELECT * FROM `Kullanicilar` WHERE Isim = '%s'", isim);
  53.     mysql_tquery(mysqlC, query, "OyuncuYukle", "d", playerid);
  54.     return 1;
  55. }
  56.  
  57. public OnPlayerDisconnect(playerid, reason)
  58. {
  59.     new query[128], isim[24];
  60.     GetPlayerName(playerid, isim, 24);
  61.     format(query, sizeof(query),"UPDATE `Kullanicilar` SET `Skor`='%d',`Para`='%d',`Olum`='%d',`Oldurme`='%d',`Admin`=%d WHERE `Isim`='%s'", GetPlayerScore(playerid), GetPlayerMoney(playerid), pData[playerid][Olum], pData[playerid][Oldurme], pData[playerid][AdminLevel], isim);
  62.     mysql_query(mysqlC, query);
  63.     return 1;
  64. }
  65.  
  66. CMD:setlevel(playerid, params[])
  67. {
  68.     new pID, level;
  69.     if(!IsPlayerAdmin(playerid) && pData[playerid][AdminLevel] < 5) return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için 5. seviye veya RCON admin olmalısınız!");
  70.     if(sscanf(params, "ui", pID, level)) return SendClientMessage(playerid, -1, "[KULLANIM] /setlevel [oyuncu ID] [level]");
  71.     pData[pID][AdminLevel] = level;
  72.     SendClientMessage(playerid, -1, "Oyuncuyu admin yaptınız!");
  73.     SendClientMessage(pID, -1, "Sunucuya admin oldunuz!");
  74.     return 1;
  75. }
  76.  
  77. CMD:givescore(playerid, params[])
  78. {
  79.     new pID, score;
  80.     if(pData[playerid][AdminLevel] < 3) return SendClientMessage(playerid, -1, "Bu komutu kullanabilmek için en az 3. seviye admin olmalısınız.");
  81.     if(sscanf(params, "ui", pID, score)) return SendClientMessage(playerid, -1, "Kullanım: /givescore [playerid] [skor]");
  82.     SetPlayerScore(playerid, GetPlayerScore(playerid) + score);
  83.     new str[128], isim[24];
  84.     GetPlayerName(playerid, isim, sizeof(isim));
  85.     format(str, sizeof(str), "%s isimli admin size %d skor verdi.", isim, score);
  86.     SendClientMessage(playerid, -1, "Oyuncuya skor verdiniz.");
  87.     SendClientMessage(pID, -1, str);
  88.     return 1;
  89. }
  90.  
  91. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  92. {
  93.     if(dialogid == 1)
  94.     {
  95.         if(response)
  96.         {
  97.             if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Kayıt", "HATA: Şifreniz 3 haneden kısa olamaz!\n\nKayıt olmak için şifrenizi girin:", "Kaydol", "Çıkış");
  98.            
  99.             new query[128], isim[24];
  100.             GetPlayerName(playerid, isim, 24);
  101.             format(query, sizeof(query), "INSERT INTO `Kullanicilar` (`Isim`, `Sifre`, `Skor`, `Para`, `Admin`) VALUES ('%s', '%s', 0, 0, 0)", isim, inputtext);
  102.             mysql_query(mysqlC, query);
  103.             SendClientMessage(playerid, -1, "Başarıyla kaydoldunuz!");
  104.             ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş", "Giriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
  105.         }
  106.     }
  107.    
  108.     if(dialogid == 2)
  109.     {
  110.         if(response)
  111.         {
  112.             new query[128], isim[24];
  113.             GetPlayerName(playerid, isim, 24);
  114.             format(query, sizeof(query), "SELECT * FROM `Kullanicilar` WHERE Isim = '%s' AND Sifre = '%s'", isim, inputtext);
  115.             mysql_tquery(mysqlC, query, "OyuncuKontrol", "d", playerid);
  116.         }
  117.     }
  118.     return 1;
  119. }
  120.  
  121. forward OyuncuYukle(playerid);
  122. public OyuncuYukle(playerid)
  123. {
  124.     new rows;
  125.     cache_get_row_count(rows);
  126.    
  127.     if(!rows)
  128.     {
  129.         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Kayıt", "Sunucumuzda hesabınız bulunamadı.\nKayıt olmak için şifrenizi girin:", "Kaydol", "Çıkış");
  130.     }
  131.     else
  132.     {
  133.         ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş", "Sunucumuzda hesabınız bulundu.\nGiriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
  134.     }
  135.     return 1;
  136. }
  137.  
  138. forward OyuncuKontrol(playerid);
  139. public OyuncuKontrol(playerid)
  140. {
  141.     new rows;
  142.     cache_get_row_count(rows);
  143.    
  144.     if(!rows) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Giriş", "Yanlış şifre girdiniz.\n\nGiriş yapmak için şifrenizi girin:", "Giriş", "Çıkış");
  145.     else
  146.     {
  147.         new para, skor;
  148.         cache_get_value_name_int(0, "Skor", skor);
  149.         cache_get_value_name_int(0, "Para", para);
  150.         cache_get_value_name_int(0, "Admin", pData[playerid][AdminLevel]);
  151.        
  152.         SetPlayerScore(playerid, skor);
  153.         GivePlayerMoney(playerid, para);
  154.        
  155.         SpawnPlayer(playerid);
  156.         SendClientMessage(playerid, -1, "[!] Başarıyla giriş yaptınız!");
  157.     }
  158.     return 1;
  159. }
Add Comment
Please, Sign In to add comment