Advertisement
sRk7_aKa_StaarK

Admin System.

Oct 1st, 2014
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 11.77 KB | None | 0 0
  1. // Admin Script MySQL R38 - BlueG Version.
  2. // www.sa-mp.ro
  3. // sRk7
  4.  
  5. #include <a_samp>
  6. #include <sscanf2> // Y_Less
  7. #include <zcmd> // ZeeX
  8. #include <a_mysql> // R38 - BlueG
  9.  
  10. #define s_host  "127.0.0.1"
  11. #define s_user  "root"
  12. #define s_db    "admin-system"
  13. #define s_pass  ""
  14. #define SCM     SendClientMessage
  15. #define SPD     ShowPlayerDialog
  16. #define log     6081
  17. #define reg     6082
  18.  
  19. enum pInfo
  20. {
  21.     pID,
  22.     pPass,
  23.     pName,
  24.     pWarn,
  25.     pKick,
  26.     pBann,
  27.     pLvl,
  28.     pVip,
  29.     pAdmin,
  30.     pKills,
  31.     pDeath,
  32.     pRegs
  33. }
  34. new PD[MAX_PLAYERS][pInfo], cH;
  35. new pd[5];
  36.  
  37. forward OnPlayerRegistred(playerid);
  38. forward OnPlayerCheck(playerid);
  39. forward OnPlayerLoad(playerid);
  40. forward OnPlayerCheckBan(playerid);
  41.  
  42. stock SaveLogs(type[], cont[], date[])
  43. {
  44.     new query[256];
  45.     format(query, sizeof(query), "INSERT INTO `logs`(`Type`, `Content`, `Date`) VALUES ('%s','%s','%s');", type, cont, date);
  46.     mysql_query(cH, query);
  47.     return 1;
  48. }
  49.  
  50. stock GetN(playerid)
  51. {
  52.     new n[MAX_PLAYER_NAME+1];
  53.     GetPlayerName(playerid, n, 32);
  54.     return n;
  55. }
  56.  
  57. stock SaveBans(playerid, player[], admin[], reason[], time)
  58. {
  59.     new query[356];
  60.     format(query, sizeof(query), "INSERT INTO `bans`(`ID`, `Player`, `Admin`, `Reason`, `Time`) VALUES ('%d','%s','%s','%s','%d')", playerid, player, admin, reason, time);
  61.     mysql_query(cH, query);
  62.     return 1;
  63. }
  64.  
  65. public OnFilterScriptInit()
  66. {
  67.     print("\n--------------------------------------");
  68.     print(" Admin Script MySQL R38 - BlueG Version.\n");
  69.     print(" sRk7 Version. - MySQL R38+");
  70.     print("--------------------------------------\n");
  71.     cH = mysql_connect(s_host, s_user, s_db, s_pass);
  72.     mysql_log(LOG_DEBUG | LOG_ERROR | LOG_WARNING, LOG_TYPE_HTML);
  73.     pd[0] = CreateObject(19420, 2039.14868, 1339.95459, 10.91220, 0.00000, 0.00000, 0.00000);
  74.     pd[1] = CreateObject(19420, 2039.11792, 1347.52869, 11.02620, 0.00000, 0.00000, 0.00000);
  75.     pd[2] = CreateVehicle(415, 2039.1443, 1340.1223, 10.3378, 0.0000, -1, -1, 100);
  76.     pd[3] = CreateVehicle(411, 2039.1498, 1347.3320, 10.3399, 0.0000, -1, -1, 100);
  77.     // pd[3] = CreateVehicle(415, 2039.1443, 1340.1223, 10.3378, 0.0000, -1, -1, 100);
  78.     AttachObjectToVehicle(pd[0], pd[2], 2039.14868, 1339.95459, 10.91220, 0.00000, 0.00000, 0.00000);
  79.     AttachObjectToVehicle(pd[1], pd[3], 2039.11792, 1347.52869, 11.02620, 0.00000, 0.00000, 0.00000);
  80.     return 1;
  81. }
  82.  
  83. public OnFilterScriptExit()
  84. {
  85.     mysql_close(cH);
  86.     return 1;
  87. }
  88.  
  89. public OnPlayerRegistred(playerid)
  90. {
  91.     PD[playerid][pID] = cache_insert_id(cH);
  92.     return 1;
  93. }
  94.  
  95. public OnPlayerConnect(playerid)
  96. {
  97.     new query[128];
  98.     mysql_format(cH, query, sizeof(query), "SELECT `Password`,`ID` FROM `accounts` WHERE `Username`='%s'", GetN(playerid));
  99.     mysql_tquery(cH, query, "OnPlayerCheck", "i", playerid);
  100.     SetTimerEx("OnPlayerCheckBan", 30000, 0, "i", playerid); // 30 secounds.
  101.     return 1;
  102. }
  103.  
  104. public OnPlayerCheck(playerid)
  105. {
  106.     new rows, fields;
  107.     cache_get_data(rows, fields, cH);
  108.     if(rows)
  109.     {
  110.         cache_get_field_content(0, "Password", PD[playerid][pPass], cH, 129);
  111.         PD[playerid][pID] = cache_get_field_content_int(0, "ID", cH);
  112.         SPD(playerid, log, DIALOG_STYLE_PASSWORD, "{52CFE2}C{FFFFFF}onectare", "Salut, introdu parola pentru a te conecta !", "Login", "Quit");
  113.     }
  114.     else
  115.     {
  116.         SPD(playerid, reg, DIALOG_STYLE_PASSWORD, "{52CFE2}I{FFFFFF}nregistrare", "Salut, introdu parola pentru a te inregistra !", "Register", "Quit");
  117.     }
  118.     return 1;
  119. }
  120.  
  121. public OnPlayerCheckBan(playerid)
  122. {
  123.     if(PD[playerid][pBann] != 0) return BanEx(playerid, "Acest cont este banat !");
  124.     return 1;
  125. }
  126.  
  127. public OnPlayerLoad(playerid)
  128. {
  129.     PD[playerid][pWarn]  = cache_get_field_content_int(0, "Warn", cH);
  130.     PD[playerid][pKick]  = cache_get_field_content_int(0, "KickCount", cH);
  131.     PD[playerid][pBann]  = cache_get_field_content_int(0, "Banned", cH);
  132.     PD[playerid][pLvl]   = cache_get_field_content_int(0, "Level", cH);
  133.     PD[playerid][pVip]   = cache_get_field_content_int(0, "Premium", cH);
  134.     PD[playerid][pAdmin] = cache_get_field_content_int(0, "AdminLevel", cH);
  135.     PD[playerid][pKills] = cache_get_field_content_int(0, "Kills", cH);
  136.     PD[playerid][pDeath] = cache_get_field_content_int(0, "Deaths", cH);
  137.     PD[playerid][pRegs]  = cache_get_field_content_int(0, "Registred", cH);
  138.     SetPlayerScore(playerid, PD[playerid][pLvl]);
  139.     SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Te-ai logat cu succes !");
  140.     GameTextForPlayer(playerid, "~w~Checking account status...", 5000, 4);
  141.     if(PD[playerid][pBann] != 0)
  142.     {
  143.         GameTextForPlayer(playerid, "~w~~r~Sorry your account is banned !", 2000, 4);
  144.         SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Acest cont apara ca fiind banat.");
  145.         SetTimerEx("OnPlayerCheckBan", 2000, 0, "i", playerid);
  146.     }
  147.     return 1;
  148. }
  149.  
  150. public OnPlayerDisconnect(playerid, reason)
  151. {
  152.     new lastupdate[600];
  153.     strcat(lastupdate, "UPDATE `accounts` SET `AdminLevel`='%d',`Warn`='%d',`KickCount`='%d',`Banned`='%d',`Level`='%d',`Premium`='%d',`Kills`='%d',`Deaths`='%d' WHERE `Username`='%s'");
  154.     format(lastupdate, sizeof(lastupdate), lastupdate, PD[playerid][pAdmin], PD[playerid][pWarn], PD[playerid][pKick], PD[playerid][pBann], GetPlayerScore(playerid), PD[playerid][pVip], PD[playerid][pKills], PD[playerid][pDeath], GetN(playerid));
  155.     mysql_query(cH, lastupdate);
  156.     return 1;
  157. }
  158.  
  159. public OnPlayerDeath(playerid, killerid, reason)
  160. {
  161.     if(killerid != INVALID_PLAYER_ID)
  162.     {
  163.         PD[playerid][pKills] ++;
  164.     }
  165.    
  166.     PD[playerid][pDeath] ++;
  167.     return 1;
  168. }
  169.  
  170. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  171. {
  172.     switch(dialogid)
  173.     {
  174.         case reg:
  175.         {
  176.             if(!response) return Kick(playerid);
  177.             new query[1024];
  178.             mysql_format(cH, query, sizeof(query), "INSERT INTO `accounts`(`ID`, `Password`, `Username`, `AdminLevel`, `Warn`, `KickCount`, `Banned`, `Level`, `Premium`, `Kills`, `Deaths`, `Registred`) VALUES ('%d','%s','%s',0,0,0,0,1,0,0,0,1)", playerid, inputtext, GetN(playerid));
  179.             mysql_tquery(cH, query, "OnPlayerRegistred", "d", playerid);
  180.             SetPlayerScore(playerid, 1);
  181.             SpawnPlayer(playerid);
  182.         }
  183.         case log:
  184.         {
  185.             if(!response) return Kick(playerid);
  186.             if(!strcmp(inputtext, PD[playerid][pPass], true))
  187.             {
  188.                 new query[128];
  189.                 mysql_format(cH, query, sizeof(query), "SELECT * FROM `accounts` WHERE `Username`='%s' LIMIT 1", GetN(playerid));
  190.                 mysql_tquery(cH, query, "OnPlayerLoad", "d", playerid);
  191.                 SpawnPlayer(playerid);
  192.             }
  193.             else return 1;
  194.         }
  195.     }
  196.     return 1;
  197. }
  198.  
  199. CMD:stats(playerid, params[])
  200. {
  201.     new sTr[1000];
  202.     strcat(sTr, "{87BE90}Info %s Statistics\n--------------------------\n{FFFFFF}ID: [%d]\nName: [%s]\nWarn [%d/3]\nKick Count: [%d]\nBanned: [%d]\nRegistred: [%i]\nPremium: [%d]\nScore: [%d]\n\n{87BE90}Killer Stats:\n------------------\n{FFFFFF}Kills: [%d]\nDeath: [%i]\n\n{87BE90}Admin Info:\n----------------\n{FFFFFF}Admin Level: [%i]");
  203.     format(sTr, sizeof(sTr), sTr, GetN(playerid), playerid, GetN(playerid), PD[playerid][pWarn], PD[playerid][pKick], PD[playerid][pBann], PD[playerid][pRegs], PD[playerid][pVip], GetPlayerScore(playerid), PD[playerid][pKills], PD[playerid][pDeath], PD[playerid][pAdmin]);
  204.     SPD(playerid, 2014, DIALOG_STYLE_MSGBOX, "Player Statistics", sTr, "Ok", "");
  205.     return 1;
  206. }
  207.  
  208. CMD:ahelp(playerid, params[])
  209. {
  210.     SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Admin Level 1: /ban, /kick, /goto, /gotohere, /aads /ann");
  211.     SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Admin Level 2: /warn, /unwarn, /bano(ffline), /setvip, /acar");
  212.     SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Admin Level 2: /setadmin, /setvip, /setlevel");
  213.     return 1;
  214. }
  215.  
  216. // Admin command's
  217. CMD:ban(playerid, params[])
  218. {
  219.     if(PD[playerid][pAdmin] >= 1)
  220.     {
  221.         new tid, time, reason[128];
  222.         if(sscanf(params, "uis[128]", tid, time, reason)) return SCM(playerid, 0xB7CAE9FF, "Use: {FFFFFF}/ban <Playerid/PartOfName> <Time> <Reason>");
  223.         if(IsPlayerConnected(tid) != 1 || tid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Acest player nu este conectat sau nu exista.");
  224.         PD[playerid][pBann] = 1;
  225.         new adm[32], plr[32];
  226.         format(adm, sizeof(adm), "%s", GetN(playerid));
  227.         format(plr, sizeof(plr), "%s", GetN(tid));
  228.         SaveBans(tid, plr, adm, reason, time);
  229.         BanEx(tid, reason);
  230.         new text[500];
  231.         format(text, sizeof(text), "AdmBot: %s a fost banat de %s. Motiv: %s", GetN(tid), GetN(playerid), reason);
  232.         SendClientMessageToAll(0xD6802CFF, text);
  233.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Nu esti admin level 1 !");
  234.     return 1;
  235. }
  236.  
  237. CMD:kick(playerid, params[])
  238. {
  239.     if(PD[playerid][pAdmin] >= 1)
  240.     {
  241.         new tid, type[32], cont[256], date[32], rs[128], text[500];
  242.         if(sscanf(params, "us[128]", tid, rs)) return SCM(playerid, 0xB7CAE9FF, "Use: {FFFFFF}/kick <Playerid/PartOfName> <Reason>");
  243.         if(IsPlayerConnected(tid) != 1 || tid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF}Acest player nu este conectat sau nu exista.");
  244.         PD[playerid][pKick] ++, Kick(playerid);
  245.         format(cont, sizeof(cont), "%s a primit kick de la adminul %s. Motiv: %s | Data: %s", GetN(tid), GetN(playerid), rs, date);
  246.         type = "Kick Action";
  247.         format(text, sizeof(text), "Kick Manager: %s a primit kick de la adminul %s. Motiv: %s", GetN(tid), GetN(playerid), rs);
  248.         SendClientMessageToAll(0xD6802CFF, text);
  249.         new z, l, a, o, m, s; getdate(a,l,z), gettime(o, m, s);
  250.         format(date, sizeof(date), "%02d/%02d/%02d - %02d:%02d:%02d", z, l, a, o, m, s);
  251.         SaveLogs(type, cont, date);
  252.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 1 !");
  253.     return 1;
  254. }
  255.  
  256. CMD:goto(playerid, params[])
  257. {
  258.     if(PD[playerid][pAdmin] >= 1)
  259.     {
  260.         new tid, Float:tpos[3];
  261.         if(sscanf(params, "u", tid)) return SCM(playerid, 0xB7CAE9FF, "Use: {FFFFFF}/goto <Playerid/PartOfName>");
  262.         GetPlayerPos(tid, tpos[0], tpos[1], tpos[2]);
  263.         SetPlayerPos(playerid, tpos[0], tpos[1]+2, tpos[2]+1);
  264.         new str[128];
  265.         format(str, sizeof(str), "SERVER: {FFFF8B}Te-ai teleportat la %s", GetN(tid));
  266.         SCM(playerid, 0xB7CAE9FF, str);
  267.         format(str, sizeof(str), "SERVER: {FFFF8B}Adminul %s sa teleportat la tine", GetN(playerid));
  268.         SCM(tid, 0xB7CAE9FF, str);
  269.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 1 !");
  270.     return 1;
  271. }
  272.  
  273. CMD:gotohere(playerid, params[])
  274. {
  275.     if(PD[playerid][pAdmin] >= 1)
  276.     {
  277.  
  278.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 1 !");
  279.     return 1;
  280. }
  281.  
  282. CMD:aads(playerid, params[])
  283. {
  284.     if(PD[playerid][pAdmin] >= 1)
  285.     {
  286.         new msg[256], msg2[256];
  287.         if(sscanf(params, "s[256]", msg)) return SCM(playerid, 0xB7CAE9FF, "Use: {FFFFFF}/aads <Global Message> | /ann <Global Message>");
  288.         SendClientMessageToAll(0xB7CAE9FF, "----------------------------->> Global Admin Message <<----------------------------------");
  289.         format(msg2, sizeof(msg2), "(( Admin Global Advertise: {FFFF8B}%s {B7CAE9}- %s ))", GetN(playerid), msg);
  290.         SendClientMessageToAll(0xB7CAE9FF, msg2);
  291.         SendClientMessageToAll(0xB7CAE9FF, "---------------------------------------------------------------------------------------------------");
  292.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 1 !");
  293.     return 1;
  294. }
  295.  
  296. CMD:ann(playerid, params[])
  297. {
  298.     return cmd_aads(playerid, params);
  299. }
  300.  
  301. // Admin level 2 Command's
  302. CMD:bano(playerid, params[])
  303. {
  304.     if(PD[playerid][pAdmin] >= 2)
  305.     {
  306.         // return 1;
  307.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 2 !");
  308.     return 1;
  309. }
  310.  
  311. CMD:banoffline(playerid, params[])
  312. {
  313.     return cmd_bano(playerid, params);
  314. }
  315.  
  316. CMD:warn(playerid, params[])
  317. {
  318.     if(PD[playerid][pAdmin] >= 2)
  319.     {
  320.         // return 1;
  321.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 2 !");
  322.     return 1;
  323. }
  324.  
  325. CMD:unwarn(playerid, params[])
  326. {
  327.     if(PD[playerid][pAdmin] >= 2)
  328.     {
  329.         // return 1;
  330.     } else SCM(playerid, 0xB7CAE9FF, "SERVER: {FFFFFF} Nu esti admin level 2 !");
  331.     return 1;
  332. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement