Advertisement
Guest User

AdminSystem by Exod182

a guest
Apr 27th, 2013
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 13.72 KB | None | 0 0
  1.  
  2. #include <a_samp>
  3. #include <ocmd>
  4. #include <mysql>
  5.  
  6. enum playerdata
  7. {
  8.     aName,
  9.     aadmin,
  10.     abanned
  11. }
  12. new aSpieler[MAX_PLAYERS][playerdata];
  13.  
  14. public OnFilterScriptInit()
  15. {
  16.     print("\n--------------------------------------");
  17.     print(" Kleines Adminsystem");
  18.     print("--------------------------------------\n");
  19.     return 1;
  20. }
  21.  
  22. public OnFilterScriptExit()
  23. {
  24.     return 1;
  25. }
  26.  
  27. public OnPlayerRequestClass(playerid, classid)
  28. {
  29.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  30.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  31.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  32.     return 1;
  33. }
  34.  
  35. public OnPlayerConnect(playerid)
  36. {
  37.     SpielerLaden(playerid);
  38.     if(aSpieler[playerid][abanned] > 0)
  39.     {
  40.         SendClientMessage(playerid,0xFF0000FF,"Du bist gebannt!");
  41.         playerkick(playerid);
  42.     }
  43.     return 1;
  44. }
  45.  
  46. ocmd:gethere(playerid, params[])
  47. {
  48.     new id, str[128], Float:X, Float:Y, Float:Z;
  49.     if(aSpieler[playerid][aadmin] < 1)return SendClientMessage(playerid, 0xFF0000FF,"Du bist kein Admin!");
  50.     if(sscanf(params,"u",id))return SendClientMessage(playerid,0xFF0000FF,"/gethere <ID/Name>");
  51.     GetPlayerVirtualWorld(playerid);
  52.     SetPlayerVirtualWorld(id,GetPlayerVirtualWorld(playerid));
  53.     GetPlayerPos(playerid,X,Y,Z);
  54.     SetPlayerPos(id,X,Y,Z);
  55.     format(str,sizeof(str),"%s hat %s zu sich geportet",SpielerName(playerid),SpielerName(id));
  56.     return 1;
  57. }
  58.  
  59. ocmd:goto(playerid, params[])
  60. {
  61.     new id, str[128], Float:X, Float:Y, Float:Z;
  62.     if(aSpieler[playerid][aadmin] < 1)return SendClientMessage(playerid, 0xFF0000FF,"Du bist kein Admin!");
  63.     if(sscanf(params,"u",id))return SendClientMessage(playerid,0xFF0000FF,"/goto <ID/Name>");
  64.     SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(id));
  65.     GetPlayerPos(id,X,Y,Z);
  66.     SetPlayerPos(playerid,X,Y,Z);
  67.     format(str,sizeof(str),"%s hat %s zu sich geportet",SpielerName(playerid),SpielerName(id));
  68.     return 1;
  69. }
  70.  
  71. ocmd:ban(playerid,params[])
  72. {
  73.     new str[128],ID;
  74.     if(aSpieler[playerid][aadmin] < 1)return SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin des Ranges");
  75.     if(sscanf(params, "uz",ID,str))return SendClientMessage(playerid,0xFF0000FF,"/ban [ID/Name] [Grund]");
  76.     if(!IsPlayerConnected(ID))return SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler ist nicht online");
  77.     if(ID == playerid)return SendClientMessage(playerid,0xFF0000FF,"Du kannst dich nicht selber bannen");
  78.     if(IsPlayerNPC(ID))return SendClientMessage(playerid,0xFF0000FF,"Du kannst keinen NPC bannen");
  79.     {
  80.         new str2[128];
  81.         format(str2,sizeof(str2),"AdmCmd:%s wurde von %s gebannt! Grund: %s",SpielerName(ID),SpielerName(playerid),str);
  82.         SendClientMessageToAll(0xFF0000FF,str2);
  83.         aSpieler[ID][abanned] = 1;
  84.         SpielerSpeichern(ID);
  85.         BanEx(ID,str);
  86.         Log("Logs/ban.txt",str);
  87.     }
  88.     return 1;
  89. }
  90.  
  91. ocmd:freeze(playerid, params[])
  92. {
  93.     new id, str[128];
  94.     if(aSpieler[playerid][aadmin] <= 1)return SendClientMessage(playerid, 0xFF0000FF,"Du bist kein Admin!");
  95.     if(sscanf(params,"uz",id,str))return SendClientMessage(playerid,0x0000FFFF,"Benutzung: /freeze <ID/Name> <Grund>");
  96.     TogglePlayerControllable(playerid,false);
  97.     format(str,sizeof(str),"%s wurde von %s eingefroren",SpielerName(id),SpielerName(playerid));
  98.     Log("Logs/freeze.txt",str);
  99.     return 1;
  100. }
  101.  
  102. ocmd:unfreeze(playerid, params[])
  103. {
  104.     new id, str[128];
  105.     if(aSpieler[playerid][aadmin] <= 1)return SendClientMessage(playerid, 0xFF0000FF,"Du bist kein Admin!");
  106.     if(sscanf(params,"uz",id,str))return SendClientMessage(playerid,0x0000FFFF,"Benutzung: /unfreeze <ID/Name> <Grund>");
  107.     TogglePlayerControllable(playerid,true);
  108.     format(str,sizeof(str),"%s wurde von %s entfroren",SpielerName(id),SpielerName(playerid));
  109.     Log("Logs/unfreeze.txt",str);
  110.     return 1;
  111. }
  112.  
  113. ocmd:slap(playerid, params[])
  114. {
  115.     new id, str[128],Float:X, Float:Y, Float:Z;
  116.     if(aSpieler[playerid][aadmin] <= 1)return SendClientMessage(playerid, 0xFF0000FF,"Du bist kein Admin!");
  117.     if(sscanf(params,"u",id))return SendClientMessage(playerid,0x0000FFFF,"Benutzung: /slap <ID/Name>");
  118.     GetPlayerPos(id,X,Y,Z);
  119.     SetPlayerPos(id,X,Y,Z+7.5);
  120.     format(str,sizeof(str),"%s wurde von %s geslappt");
  121.     Log("Logs/slap.txt",str);
  122.     return 1;
  123. }
  124.  
  125. ocmd:kick(playerid,params[])
  126. {
  127.     new str[128],ID;
  128.     if(aSpieler[playerid][aadmin] <= 1)return SendClientMessage(playerid, 0xFF0000FF,"Du bist kein Admin!");
  129.     if(sscanf(params, "uz",ID,str))return SendClientMessage(playerid,0xFF0000FF,"/kick [ID/Name] [Grund]");
  130.     if(!IsPlayerConnected(ID))return SendClientMessage(playerid,0xFF0000FF,"Dieser Spieler ist nicht online");
  131.     if (ID == playerid)return SendClientMessage(playerid,0xFF0000FF,"Du kannst dich nicht selber kciken");
  132.     if(IsPlayerNPC(ID))return SendClientMessage(playerid,0xFF0000FF,"Du kannst keinen NPC kicken");
  133.     if(aSpieler[playerid][aadmin] <= 1)return SendClientMessage(playerid,0xFF0000FF,"Du bist kein Admin");
  134.     {
  135.         new str2[128];
  136.         format(str2,sizeof(str2),"AdmCmd:%s wurde von %s gekickt! Grund: %s",SpielerName(ID),SpielerName(playerid),str[0]);
  137.         SendClientMessageToAll(0xFF0000FF,str2);
  138.         Log("Logs/kick.txt",str2);
  139.     }
  140.     return 1;
  141. }
  142.  
  143. stock kickplayer(playerid)
  144. {
  145.     SetTimerEx("playerkick",100,0,"d",playerid);
  146. }
  147.  
  148. forward playerkick(playerid);
  149. public playerkick(playerid)
  150. {
  151.     Kick(playerid);
  152. }
  153.  
  154. stock sscanf(string[], format[], {Float,_}:...)
  155. {
  156.     #if defined isnull
  157.     if (isnull(string))
  158.     #else
  159.     if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  160.     #endif
  161.     {
  162.         return format[0];
  163.     }
  164.     #pragma tabsize 4
  165.     new
  166.     formatPos = 0,
  167.     stringPos = 0,
  168.     paramPos = 2,
  169.     paramCount = numargs(),
  170.     delim = ' ';
  171.     while (string[stringPos] && string[stringPos] <= ' ')
  172.     {
  173.         stringPos++;
  174.     }
  175.     while (paramPos < paramCount && string[stringPos])
  176.     {
  177.         switch (format[formatPos++])
  178.         {
  179.             case '\0':
  180.             {
  181.                 return 0;
  182.             }
  183.             case 'i', 'd':
  184.             {
  185.                 new
  186.                 neg = 1,
  187.                 num = 0,
  188.                 ch = string[stringPos];
  189.                 if (ch == '-')
  190.                 {
  191.                     neg = -1;
  192.                     ch = string[++stringPos];
  193.                 }
  194.                 do
  195.                 {
  196.                     stringPos++;
  197.                     if ('0' <= ch <= '9')
  198.                     {
  199.                         num = (num * 10) + (ch - '0');
  200.                     }
  201.                     else
  202.                     {
  203.                         return -1;
  204.                     }
  205.                 }
  206.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  207.                 setarg(paramPos, 0, num * neg);
  208.             }
  209.             case 'h', 'x':
  210.             {
  211.                 new
  212.                 num = 0,
  213.                 ch = string[stringPos];
  214.                 do
  215.                 {
  216.                     stringPos++;
  217.                     switch (ch)
  218.                     {
  219.                         case 'x', 'X':
  220.                         {
  221.                             num = 0;
  222.                             continue;
  223.                         }
  224.                         case '0' .. '9':
  225.                         {
  226.                             num = (num << 4) | (ch - '0');
  227.                         }
  228.                         case 'a' .. 'f':
  229.                         {
  230.                             num = (num << 4) | (ch - ('a' - 10));
  231.                         }
  232.                         case 'A' .. 'F':
  233.                         {
  234.                             num = (num << 4) | (ch - ('A' - 10));
  235.                         }
  236.                         default:
  237.                         {
  238.                             return -1;
  239.                         }
  240.                     }
  241.                 }
  242.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  243.                 setarg(paramPos, 0, num);
  244.             }
  245.             case 'c':
  246.             {
  247.                 setarg(paramPos, 0, string[stringPos++]);
  248.             }
  249.             case 'f':
  250.             {
  251.  
  252.                 new changestr[16], changepos = 0, strpos = stringPos;
  253.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  254.                 {
  255.                     changestr[changepos++] = string[strpos++];
  256.                 }
  257.                 changestr[changepos] = '\0';
  258.                 setarg(paramPos,0,_:floatstr(changestr));
  259.             }
  260.             case 'p':
  261.             {
  262.                 delim = format[formatPos++];
  263.                 continue;
  264.             }
  265.             case '\'':
  266.             {
  267.                 new
  268.                 end = formatPos - 1,
  269.                 ch;
  270.                 while ((ch = format[++end]) && ch != '\'') {}
  271.                 if (!ch)
  272.                 {
  273.                     return -1;
  274.                 }
  275.                 format[end] = '\0';
  276.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  277.                 {
  278.                     if (format[end + 1])
  279.                     {
  280.                         return -1;
  281.                     }
  282.                     return 0;
  283.                 }
  284.                 format[end] = '\'';
  285.                 stringPos = ch + (end - formatPos);
  286.                 formatPos = end + 1;
  287.             }
  288.             case 'u':
  289.             {
  290.                 new
  291.                 end = stringPos - 1,
  292.                 id = 0,
  293.                 bool:num = true,
  294.                 ch;
  295.                 while ((ch = string[++end]) && ch != delim)
  296.                 {
  297.                     if (num)
  298.                     {
  299.                         if ('0' <= ch <= '9')
  300.                         {
  301.                             id = (id * 10) + (ch - '0');
  302.                         }
  303.                         else
  304.                         {
  305.                             num = false;
  306.                         }
  307.                     }
  308.                 }
  309.                 if (num && IsPlayerConnected(id))
  310.                 {
  311.                     setarg(paramPos, 0, id);
  312.                 }
  313.                 else
  314.                 {
  315.                     #if !defined foreach
  316.                     #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  317.                     #define __SSCANF_FOREACH__
  318.                     #endif
  319.                     string[end] = '\0';
  320.                     num = false;
  321.                     new
  322.                     name[MAX_PLAYER_NAME];
  323.                     id = end - stringPos;
  324.                     for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
  325.                     {
  326.                         GetPlayerName(playerid, name, sizeof (name));
  327.                         if (!strcmp(name, string[stringPos], true, id))
  328.                         {
  329.                             setarg(paramPos, 0, playerid);
  330.                             num = true;
  331.                             break;
  332.                         }
  333.                     }
  334.                     if (!num)
  335.                     {
  336.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  337.                     }
  338.                     string[end] = ch;
  339.                     #if defined __SSCANF_FOREACH__
  340.                     #undef foreach
  341.                     #undef __SSCANF_FOREACH__
  342.                     #endif
  343.                 }
  344.                 stringPos = end;
  345.             }
  346.             case 's', 'z':
  347.             {
  348.                 new
  349.                 i = 0,
  350.                 ch;
  351.                 if (format[formatPos])
  352.                 {
  353.                     while ((ch = string[stringPos++]) && ch != delim)
  354.                     {
  355.                         setarg(paramPos, i++, ch);
  356.                     }
  357.                     if (!i)
  358.                     {
  359.                         return -1;
  360.                     }
  361.                 }
  362.                 else
  363.                 {
  364.                     while ((ch = string[stringPos++]))
  365.                     {
  366.                         setarg(paramPos, i++, ch);
  367.                     }
  368.                 }
  369.                 stringPos--;
  370.                 setarg(paramPos, i, '\0');
  371.             }
  372.             default:
  373.             {
  374.                 continue;
  375.             }
  376.         }
  377.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  378.         {
  379.             stringPos++;
  380.         }
  381.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  382.         {
  383.             stringPos++;
  384.         }
  385.         paramPos++;
  386.     }
  387.     do
  388.     {
  389.         if ((delim = format[formatPos++]) > ' ')
  390.         {
  391.             if (delim == '\'')
  392.             {
  393.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  394.             }
  395.             else if (delim != 'z')
  396.             {
  397.                 return delim;
  398.             }
  399.         }
  400.     }
  401.     while (delim > ' ');
  402.     return 0;
  403. }
  404.  
  405. stock SpielerName(playerid)
  406. {
  407.     new name[MAX_PLAYER_NAME];
  408.     GetPlayerName(playerid,name,sizeof(name));
  409.     return name;
  410. }
  411.  
  412. stock Log(filename[],write[])
  413. {
  414.     new File:LogFile, str[256], mhour, mminute, msecond, myear, mmonth, mday;
  415.     if(fexist(filename))
  416.     {
  417.         LogFile = fopen(filename,io_append);
  418.     }
  419.     else
  420.     {
  421.         LogFile = fopen(filename,io_write);
  422.     }
  423.     gettime(mhour,mminute,msecond);
  424.     getdate(myear,mmonth,mday);
  425.     format(str,sizeof(str),"[%02d.%02d.%d]  [%02d:%02d:%02d]: %s\n",mday,mmonth,myear,mhour,mminute,msecond,write);
  426.     fwrite(LogFile,str);
  427.     fclose(LogFile);
  428. }
  429.  
  430. stock mysql_GetString(Table[], Field[], Where[], Is[])
  431. {
  432.     new query[128], Get[128];
  433.     mysql_real_escape_string(Table, Table);
  434.     mysql_real_escape_string(Field, Field);
  435.     mysql_real_escape_string(Where, Where);
  436.     mysql_real_escape_string(Is, Is);
  437.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  438.     mysql_query(query);
  439.     mysql_store_result();
  440.     mysql_fetch_row(Get);
  441.     return Get;
  442. }
  443.  
  444. stock mysql_GetInt(Table[], Field[], Where[], Is[])
  445. {
  446.     new query[128];
  447.     mysql_real_escape_string(Table, Table);
  448.     mysql_real_escape_string(Field, Field);
  449.     mysql_real_escape_string(Where, Where);
  450.     mysql_real_escape_string(Is, Is);
  451.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  452.     mysql_query(query);
  453.     mysql_store_result();
  454.     new sqlint = mysql_fetch_int();
  455.     mysql_free_result();
  456.     return sqlint;
  457. }
  458.  
  459. stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
  460. {
  461.     new query[128], Float:sqlfloat;
  462.     mysql_real_escape_string(Table, Table);
  463.     mysql_real_escape_string(Field, Field);
  464.     mysql_real_escape_string(Where, Where);
  465.     mysql_real_escape_string(Is, Is);
  466.     format(query, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Is);
  467.     mysql_query(query);
  468.     mysql_store_result();
  469.     mysql_fetch_float(sqlfloat);
  470.     mysql_free_result();
  471.     return sqlfloat;
  472. }
  473.  
  474. stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
  475. {
  476.     new query[128];
  477.     mysql_real_escape_string(Table, Table);
  478.     mysql_real_escape_string(Field, Field);
  479.     mysql_real_escape_string(Where, Where);
  480.     mysql_real_escape_string(Where2, Where2);
  481.     format(query, 128, "UPDATE %s SET %s = '%d' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  482.     mysql_query(query);
  483.     return true;
  484. }
  485.  
  486. stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
  487. {
  488.     new query[128];
  489.     mysql_real_escape_string(Table, Table);
  490.     mysql_real_escape_string(Field, Field);
  491.     mysql_real_escape_string(To, To);
  492.     mysql_real_escape_string(Where, Where);
  493.     mysql_real_escape_string(Where2, Where2);
  494.     format(query, 128, "UPDATE %s SET %s = '%s' WHERE %s = '%s'", Table, Field, To, Where, Where2);
  495.     mysql_query(query);
  496.     return true;
  497. }
  498.  
  499. stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
  500. {
  501.     new query[128];
  502.     mysql_real_escape_string(Table, Table);
  503.     mysql_real_escape_string(Field, Field);
  504.     mysql_real_escape_string(Where, Where);
  505.     mysql_real_escape_string(Where2, Where2);
  506.     format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
  507.     mysql_query(query);
  508.     return true;
  509. }
  510.  
  511. stock SpielerLaden(playerid)
  512. {
  513.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  514.     {
  515.         GetPlayerName(playerid, aSpieler[playerid][aName], MAX_PLAYER_NAME);
  516.         aSpieler[playerid][aadmin] = mysql_GetInt("LittleAdmin", "Admin", "Name", aSpieler[playerid][aName]);
  517.         aSpieler[playerid][abanned] = mysql_GetInt("LittleAdmin", "Gebannt", "Name", aSpieler[playerid][aName]);
  518.     }
  519.     return 1;
  520. }
  521.  
  522. stock SpielerSpeichern(playerid)
  523. {
  524.     if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
  525.     {
  526.         if(GetPVarInt(playerid,"Eingeloggt") == 1)
  527.         {
  528.             GetPlayerName(playerid, aSpieler[playerid][aName], MAX_PLAYER_NAME);
  529.             mysql_SetInt("LittleAdmin", "Admin", aSpieler[playerid][aadmin], "Name", aSpieler[playerid][aName]);
  530.             mysql_SetInt("LittleAdmin", "Gebannt", aSpieler[playerid][abanned], "Name", aSpieler[playerid][aName]);
  531.         }
  532.     }
  533.     return 1;
  534. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement