Guest User

FINISH !

a guest
Oct 10th, 2011
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 30.05 KB | None | 0 0
  1. #define FILTERSCRIPT
  2.  
  3. #include <a_samp>
  4. #include <YSI\y_ini>
  5. #include <sscanf2>
  6. #include <dudb>
  7. #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  8. #define SendMSG(%0,%1,%2,%3) do{new _str[128]; format(_str,128,%2,%3); SendClientMessage(%0,%1,_str);}while(FALSE) // Credits to Y_Less
  9. #include <a_zones>
  10.  
  11. #define PATH "/Admin System/Users/%s.ini"
  12.  
  13. #define PLAYER_MUST_REGISTER
  14. #define REGISTERED_MONEY 5000
  15.  
  16. #define white 0xFFFFFFA
  17. #define RED          0xE60000AA
  18. #define ABLUE        0x2641FEAA
  19. /* ** Colours ** */
  20. #define COL_WHITE "{FFFFFF}"
  21. #define COL_RED "{F81414}"
  22. #define COL_GREEN "{00FF22}"
  23. #define COL_LIGHTBLUE "{00CED1}"
  24. #define COLOR_LIGHTBLUE 0x33CCFFAA
  25. #define COLOR_GRAD2 0xBFC0C2FF
  26. #define COLOR_WHITE  0xFFFFFFAA
  27. #define color               0xDFF00
  28. #define Red 0xFF0000FF
  29. #define Grey 0xAFAFAFAA
  30. #define Green 0x33AA33AA
  31. #define Yellow 0xFFFF00AA
  32. #define White 0xFFFFFFAA
  33. #define Blue 0x0000BBAA
  34. #define Lightblue 0x33CCFFAA
  35. #define Orange 0xFF9900AA
  36. #define Lime 0x10F441AA
  37. #define Magenta 0xFF00FFF
  38. #define Navy 0x000080AA
  39. #define Aqua 0xF0F8FFAA
  40. #define Crimson 0xDC143CAA
  41. #define Black 0x000000AA
  42. #define Brown 0XA52A2AAA
  43. #define Gold 0xB8860BAA
  44. #define Limegreen 0x32CD32AA
  45. #define Purpley 0x8080FF
  46. #define red 0xFF0000AA
  47. #define lime 0x00FF00FF
  48. #define yellow 0xFFFF00FF
  49.  
  50. #define CALLSIGN_DIALOG 1000
  51. #define DIALOG_REGISTER 999
  52. #define DIALOG_LOGIN 998
  53.  
  54. #define FormatMSG(%0,%1,%2,%3)\
  55.         do{\
  56.             format( _S_T_R_, sizeof ( _S_T_R_ ), ( %2 ), %3);\
  57.             SendClientMessage( ( %0 ),( %1 ), _S_T_R_);\
  58.         }\
  59.         while ( False )
  60.  
  61.  
  62. #pragma unused ret_memcpy
  63.  
  64. enum iDetails {
  65.     Pass,
  66.     Cash,
  67.     Score,
  68.     AdminLevel,
  69.     VIPLevel,
  70.     Registered,
  71.     Banned,
  72.     AutoLogin,
  73.     Callsign
  74. };
  75. new pInfo[MAX_PLAYERS][iDetails];
  76.  
  77.  
  78.  
  79. new _S_T_R_[ 1000 ];
  80. new False=false;
  81.  
  82. new pIP[MAX_PLAYERS][16];
  83.  
  84.  
  85. new pLogged[MAX_PLAYERS];
  86. new pBanned[MAX_PLAYERS];
  87. new pAFK[MAX_PLAYER_NAME];
  88. new pOnDuty[MAX_PLAYER_NAME];
  89. new pReport[MAX_PLAYER_NAME];
  90.  
  91.  
  92. stock PlayerPath(playerid) {
  93.     new iStr[256],name[MAX_PLAYER_NAME];
  94.     GetPlayerName(playerid,name,sizeof(name));
  95.     format(iStr,sizeof(iStr),PATH,name);
  96.     return iStr;
  97. }
  98.  
  99. public OnFilterScriptInit()
  100. {
  101.     print("\n--------------------------------------");
  102.     print("Login & Register & Admin System by Bella");
  103.     print("--------------------------------------\n");
  104.     return 1;
  105. }
  106.  
  107. public OnFilterScriptExit()
  108. {
  109.     return 1;
  110. }
  111.  
  112. public OnGameModeExit()
  113. {
  114.     return 1;
  115. }
  116.  
  117. forward UserDataLoad_data(playerid,name[],value[]);
  118.  
  119. public UserDataLoad_data(playerid,name[],value[]) {
  120.     INI_Int("Pass",pInfo[playerid][Pass]);
  121.     if(pInfo[playerid][AutoLogin] == 1)
  122.         INI_String("IP",pIP[playerid],16);
  123.     INI_Int("Cash",pInfo[playerid][Cash]);
  124.     INI_Int("Score",pInfo[playerid][Score]);
  125.     INI_Int("AdminLevel", pInfo[playerid][AdminLevel]);
  126.     INI_Int("VIPLevel", pInfo[playerid][VIPLevel]);
  127.     INI_Int("Registered", pInfo[playerid][Registered]);
  128.     INI_Int("Banned", pInfo[playerid][Banned]);
  129.     INI_Int("Auto_Login", pInfo[playerid][AutoLogin]);
  130.     INI_Int("Callsign", pInfo[playerid][Callsign]);
  131.     return 1;
  132. }
  133.  
  134. public OnPlayerConnect(playerid)
  135. {
  136.     new tmpIP[16];
  137.     pLogged[playerid] = 0;
  138.     pAFK[playerid] = 0;
  139.     pOnDuty[playerid] = 0;
  140.     if(pInfo[playerid][AutoLogin] == 1){
  141.         GetPlayerIp(playerid,tmpIP,sizeof(tmpIP));
  142.     }
  143.     if(fexist(PlayerPath(playerid))) {
  144.         INI_ParseFile(PlayerPath(playerid), "UserDataLoad_%s", .bExtra = true, .extra = playerid);
  145.         if(pInfo[playerid][AutoLogin] == 1){
  146.             if(strcmp(tmpIP,pIP[playerid],true) == 0) {
  147.                 pLogged[playerid] = 1;
  148.                 SetPlayerScore(playerid,pInfo[playerid][Score]);
  149.                 GivePlayerMoney(playerid,pInfo[playerid][Cash]);
  150.                 SendClientMessage(playerid,lime,"You've been auto-logged in. [set like this]");
  151.                 return 1;
  152.             }
  153.         }
  154.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Please enter your password below.","Login","Leave");
  155.     } else {
  156.         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Please register by entering a password below.","Register","Leave");
  157.     }
  158.     if(pBanned[playerid] == 1)
  159.     {
  160.         SendClientMessage(playerid, RED, "You Are Currently Banned from PH Bye Bye");
  161.         Kick(playerid);
  162.     }
  163.     if(pInfo[playerid][AdminLevel])
  164.     {
  165.         pOnDuty[playerid] = 1;
  166.         SendClientMessage(playerid,lime,"Welcome to PH Administrator / Moderator");
  167.     }
  168.     return 1;
  169. }
  170.  
  171. public OnPlayerDisconnect(playerid, reason)
  172. {
  173.     if(pLogged[playerid] == 1) {
  174.         new INI:iFile = INI_Open(PlayerPath(playerid));
  175.         INI_SetTag(iFile,"data");
  176.         INI_WriteInt(iFile,"Cash",GetPlayerMoney(playerid));
  177.         INI_WriteInt(iFile,"Score",GetPlayerScore(playerid));
  178.         INI_WriteInt(iFile,"AdminLevel",pInfo[playerid][AdminLevel]);
  179.         INI_WriteInt(iFile,"VIPLevel", pInfo[playerid][VIPLevel]);
  180.         INI_WriteInt(iFile,"Auto_Login", pInfo[playerid][AutoLogin]);
  181.         INI_Close(iFile);
  182.     }
  183.     pLogged[playerid] = 0;
  184.     pAFK[playerid] = 0;
  185.     pOnDuty[playerid] = 0;
  186.     return 1;
  187. }
  188.  
  189. public OnPlayerRequestSpawn(playerid)
  190. {
  191.     if(pLogged[playerid] == 0) return SendClientMessage(playerid,yellow,"You must register or login before spawning!");
  192.     return 1;
  193. }
  194.  
  195. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  196. {
  197.     if(dialogid == DIALOG_REGISTER) {
  198.         GetPlayerIp(playerid,pIP[playerid],16);
  199.         if(!response) Kick(playerid);
  200.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Please enter a password.","Register","Leave");
  201.         new INI:iFile = INI_Open(PlayerPath(playerid));
  202.         INI_SetTag(iFile,"data");
  203.         INI_WriteInt(iFile,"Pass",udb_hash(inputtext));
  204.         if(pInfo[playerid][AutoLogin] == 1) INI_WriteString(iFile,"IP",pIP[playerid]);
  205.  
  206.         INI_WriteInt(iFile,"Cash",REGISTERED_MONEY);
  207.         INI_WriteInt(iFile,"Score",0);
  208.         INI_WriteInt(iFile,"AdminLevel",0);
  209.         INI_WriteInt(iFile,"VIPLevel",0);
  210.         INI_WriteInt(iFile,"Registered",1);
  211.         INI_WriteInt(iFile,"Banned",0);
  212.         INI_WriteInt(iFile,"Auto_Login",0);
  213.         INI_Close(iFile);
  214.         pLogged[playerid] = 1;
  215.         new iStr[128];
  216.         format(iStr,sizeof(iStr),"You've successfully registered with the password \"%s\".",inputtext);
  217.         SendClientMessage(playerid,yellow,iStr);
  218.         return 1;
  219.     }
  220.     if(dialogid == DIALOG_LOGIN)
  221.     {
  222.         if(!response) Kick(playerid);
  223.         new iStr[128],gTries;
  224.         if(gTries == 0) gTries = 1;
  225.         if(gTries == 3)
  226.         {
  227.             new pName[30];
  228.             GetPlayerName(playerid,pName,sizeof(pName));
  229.             format(iStr,sizeof(iStr),"%s has been kicked for exceeding login tries.",pName);
  230.             SendClientMessageToAll(red,iStr);
  231.             return Kick(playerid);
  232.         }
  233.         if(!strlen(inputtext))
  234.         {
  235.             format(iStr,sizeof(iStr),"Please enter your password. Tries: %i/3",gTries);
  236.             return ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login",iStr,"Login","Leave");
  237.         }
  238.         if(udb_hash(inputtext) == pInfo[playerid][Pass])
  239.         {
  240.             pLogged[playerid] = 1;
  241.             SendClientMessage(playerid,lime,"You've successfully logged in.");
  242.             SetPlayerScore(playerid,pInfo[playerid][Score]);
  243.             GivePlayerMoney(playerid,pInfo[playerid][Cash]);
  244.         } else {
  245.             format(iStr,sizeof(iStr),"Incorrect password. Tries: %i/3",gTries);
  246.             ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register",iStr,"Login","Leave");
  247.             gTries++;
  248.             return 1;
  249.         }
  250.         return 1;
  251.     }
  252.     if(dialogid == CALLSIGN_DIALOG)
  253.     {
  254.         if(strlen(inputtext))
  255.         {
  256.             new INI:iFile = INI_Open(PlayerPath(playerid));
  257.             INI_SetTag(iFile,"data");
  258.             INI_WriteInt(iFile,"Callsign",strval(inputtext));
  259.             INI_Close(iFile);
  260.         }
  261.         return 1;
  262.     }
  263.     return 0;
  264. }
  265. //================================================================== [StandardCMDS] ==========================================================//
  266. dcmd_PM(playerid, params[])
  267. {
  268.     new id, message, pmstring1[128], pmstring2[128];
  269.     if(sscanf(params, "ui", id, message)) return SendClientMessage(playerid, RED,"USAGE:{FFFF00}/PM [playerid] [Message]");
  270.     if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED,"ERROR Player Specified is Offline");
  271.     if(id == playerid) return SendClientMessage(playerid, RED,"You can't PM yourself"); // Optional
  272.     {
  273.         format(pmstring1, sizeof(pmstring1),"[PM Message Recived From %s] %s", PlayerName2(playerid), message);
  274.         SendClientMessage(id, Yellow, pmstring1);
  275.         format(pmstring2, sizeof(pmstring2),"[PM Message Sent To %s] %s", PlayerName2(id), message);
  276.         SendClientMessage(playerid, Yellow, pmstring2);
  277.     }
  278.     return 1;
  279. }
  280. dcmd_Loc(playerid, params[])
  281. {
  282.     new id;
  283.     if(sscanf(params, "u", id)) return SendClientMessage(playerid, RED, "USAGE:{FFFF00}/loc [id]");
  284.     if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED,"ERROR Player Specified is Offline");
  285.     if(id == playerid) return SendClientMessage(playerid, RED,"You can't Locate Yourself");
  286.     {
  287.         new r[128], zone[128];
  288.         GetPlayer2DZone(id, zone, sizeof(zone));
  289.         format(r, sizeof(r),"Player %s Is in %s", PlayerName2(id), zone);
  290.         SendClientMessage(playerid, Yellow, r);
  291.     }
  292.     return 1;
  293. }
  294. dcmd_AFK(playerid, params[])
  295. {
  296.     new string[128], afkreason[50];
  297.     if(sscanf(params, "s[128]", afkreason)) return SendClientMessage(playerid, RED,"USAGE:{FFFF00}/afk [Reason]");
  298.     if(!strlen(afkreason))
  299.     if(pAFK[playerid] == 0)
  300.     {
  301.         format(string, sizeof(string),"%s is not AFK [No Reason Given]", PlayerName2(playerid));
  302.         SendClientMessageToAll(Yellow, string);
  303.         pAFK[playerid] = 1;
  304.     }
  305.     else
  306.     {
  307.         format(string, sizeof(string),"%s is now AFK [Reason: %s]", PlayerName2(playerid), afkreason);
  308.         SendClientMessageToAll(Yellow, string);
  309.         pAFK[playerid] = 1;
  310.     }
  311.     else if(pAFK[playerid] == 1)
  312.     {
  313.         format(string, sizeof(string),"%s is now back from %s", PlayerName2(playerid), afkreason);
  314.         SendClientMessageToAll(Yellow, string);
  315.         pAFK[playerid] = 0;
  316.     }
  317.     return 1;
  318. }
  319. dcmd_AFKList(playerid, params[])
  320. {
  321.     new count = 0;
  322.     new string[128];
  323.     #pragma unused params
  324.  
  325.     SendClientMessage(playerid, Green, " ");
  326.     SendClientMessage(playerid, Green, "___________ |- Current AFK Players -| ___________");
  327.     SendClientMessage(playerid, Green, " ");
  328.  
  329.     for(new i = 0; i < MAX_PLAYERS; i++)
  330.     {
  331.         if(IsPlayerConnected(i))
  332.         {
  333.             if(pAFK[i] == 1)
  334.             {
  335.                 count++;
  336.                 GetPlayerName(i, pAFK, sizeof(pAFK));
  337.                 format(string, sizeof(string), "%s\n", pAFK);
  338.                 SendClientMessage(playerid, Yellow, string);
  339.                 SendClientMessage(playerid, Green, " ");
  340.                 SendClientMessage(playerid, Green, "_____________________________________________");
  341.             }
  342.         }
  343.     }
  344.     if(count == 0)
  345.     {
  346.         SendClientMessage(playerid, Yellow,"No one is AFK here buddy.");
  347.         SendClientMessage(playerid, Green, " ");
  348.         SendClientMessage(playerid, Green, "_____________________________________________");
  349.         SendClientMessage(playerid, Green, " ");
  350.     }
  351.     return 1;
  352. }
  353. dcmd_Admins(playerid, params[])
  354. {
  355.     new count = 0;
  356.     new string[128];
  357.     #pragma unused params
  358.    
  359.     SendClientMessage(playerid, Green, " ");
  360.     SendClientMessage(playerid, Green, "___________ |- Current Online Admins -| ___________");
  361.     SendClientMessage(playerid, Green, " ");
  362.    
  363.     for(new i = 0; i < MAX_PLAYERS; i++)
  364.     {
  365.         if(IsPlayerConnected(i))
  366.         {
  367.             if(pInfo[i][AdminLevel] == 1)
  368.             {
  369.                 count++;
  370.                 new name[24];
  371.                 GetPlayerName(i, name, sizeof(name));
  372.                 format(string, sizeof(string), "%s [LVL %d][Rank: Junior Modorator]\n", name, pInfo[i][AdminLevel]);
  373.                 SendClientMessage(playerid, Yellow, string);
  374.                 SendClientMessage(playerid, Green, " ");
  375.                 SendClientMessage(playerid, Green, "________________________________________________");
  376.             }
  377.             if(pInfo[i][AdminLevel] == 2)
  378.             {
  379.                 count++;
  380.                 new name[24];
  381.                 GetPlayerName(i, name, sizeof(name));
  382.                 format(string, sizeof(string), "%s [LVL %d][Rank: Modorator]\n", name, pInfo[i][AdminLevel]);
  383.                 SendClientMessage(playerid, Yellow, string);
  384.                 SendClientMessage(playerid, Green, " ");
  385.                 SendClientMessage(playerid, Green, "________________________________________________");
  386.             }
  387.             if(pInfo[i][AdminLevel] == 3)
  388.             {
  389.                 count++;
  390.                 new name[24];
  391.                 GetPlayerName(i, name, sizeof(name));
  392.                 format(string, sizeof(string), "%s [LVL %d][Rank: Super Moderator]\n", name, pInfo[i][AdminLevel]);
  393.                 SendClientMessage(playerid, Yellow, string);
  394.                 SendClientMessage(playerid, Green, " ");
  395.                 SendClientMessage(playerid, Green, "________________________________________________");
  396.             }
  397.             if(pInfo[i][AdminLevel] == 4)
  398.             {
  399.                 count++;
  400.                 new name[24];
  401.                 GetPlayerName(i, name, sizeof(name));
  402.                 format(string, sizeof(string), "%s [LVL %d][Rank: Junior Admin]\n", name, pInfo[i][AdminLevel]);
  403.                 SendClientMessage(playerid, Yellow, string);
  404.                 SendClientMessage(playerid, Green, " ");
  405.                 SendClientMessage(playerid, Green, "________________________________________________");
  406.             }
  407.             if(pInfo[i][AdminLevel] == 5)
  408.             {
  409.                 count++;
  410.                 new name[24];
  411.                 GetPlayerName(i, name, sizeof(name));
  412.                 format(string, sizeof(string), "%s [LVL %d][Rank: Super Admin]\n", name, pInfo[i][AdminLevel]);
  413.                 SendClientMessage(playerid, Yellow, string);
  414.                 SendClientMessage(playerid, Green, " ");
  415.                 SendClientMessage(playerid, Green, "________________________________________________");
  416.             }
  417.             if(pInfo[i][AdminLevel] == 6)
  418.             {
  419.                 count++;
  420.                 new name[24];
  421.                 GetPlayerName(i, name, sizeof(name));
  422.                 format(string, sizeof(string), "%s [LVL %d][Rank: Head Admin]\n", name, pInfo[i][AdminLevel]);
  423.                 SendClientMessage(playerid, Yellow, string);
  424.                 SendClientMessage(playerid, Green, " ");
  425.                 SendClientMessage(playerid, Green, "________________________________________________");
  426.             }
  427.             if(pInfo[i][AdminLevel] == 1335)
  428.             {
  429.                 count++;
  430.                 new name[24];
  431.                 GetPlayerName(i, name, sizeof(name));
  432.                 format(string, sizeof(string), "%s [LVL %d][Rank: Co-Co-Owner]\n", name, pInfo[i][AdminLevel]);
  433.                 SendClientMessage(playerid, Yellow, string);
  434.                 SendClientMessage(playerid, Green, " ");
  435.                 SendClientMessage(playerid, Green, "________________________________________________");
  436.             }
  437.             if(pInfo[i][AdminLevel] == 1336)
  438.             {
  439.                 count++;
  440.                 new name[24];
  441.                 GetPlayerName(i, name, sizeof(name));
  442.                 format(string, sizeof(string), "%s [LVL %d][Rank: Co-Owner]\n", name, pInfo[i][AdminLevel]);
  443.                 SendClientMessage(playerid, Yellow, string);
  444.                 SendClientMessage(playerid, Green, " ");
  445.                 SendClientMessage(playerid, Green, "________________________________________________");
  446.             }
  447.             if(pInfo[i][AdminLevel] == 1337)
  448.             {
  449.                 count++;
  450.                 new name[24];
  451.                 GetPlayerName(i, name, sizeof(name));
  452.                 format(string, sizeof(string), "%s [LVL %d][Rank: Owner]\n", name, pInfo[i][AdminLevel]);
  453.                 SendClientMessage(playerid, Yellow, string);
  454.                 SendClientMessage(playerid, Green, " ");
  455.                 SendClientMessage(playerid, Green, "________________________________________________");
  456.             }
  457.         }
  458.     }
  459.     if(count == 0)
  460.     {
  461.         SendClientMessage(playerid, Yellow,"No Admins online right now buddy.");
  462.         SendClientMessage(playerid, Green, " ");
  463.         SendClientMessage(playerid, Green, "_______________________________________________");
  464.         SendClientMessage(playerid, Green, " ");
  465.     }
  466.     return 1;
  467. }
  468. dcmd_Report(playerid, params[])
  469. {
  470.     new Player, Reason;
  471.     if(sscanf(params, "ui", Player, Reason)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/Report [PlayerID] [Reason]");
  472.     if(Player == playerid) return SendClientMessage(playerid, RED,"You can't crash yourself"); // Optional
  473.    
  474.     if(IsPlayerConnected(Player))
  475.     {
  476.         for(new i = 0; i < MAX_PLAYERS; i++)
  477.         {
  478.             if(IsPlayerConnected(i))
  479.             {
  480.                 if(pOnDuty[i] == 1)
  481.                 {
  482.                     FormatMSG(i, ABLUE, "You Have Been sent a report on %s by %s Reason %s", PlayerName2(Player), PlayerName2(playerid), Reason);
  483.                     FormatMSG(playerid, ABLUE, "You Have sent a report on %s to %s Reason %s", PlayerName2(Player), PlayerName2(i), Reason);
  484.                     pReport[Player] = 1;
  485.                 }
  486.             }
  487.             else return SendClientMessage(playerid, RED,"ERROR Admin Specified Not Online!");
  488.         }
  489.     }
  490.     else return SendClientMessage(playerid, RED,"ERROR Player Specified Not Online!");
  491.     return 1;
  492. }
  493. dcmd_callsign(playerid, params[])
  494. {
  495.     #pragma unused params
  496.     new PDialogstring[200];
  497.     format(PDialogstring, sizeof(PDialogstring), "Callsign: %s", pInfo[playerid][Callsign]);
  498.     ShowPlayerDialog(playerid, CALLSIGN_DIALOG, DIALOG_STYLE_LIST, "Callsign", PDialogstring, "OK", "Cancel");
  499. }
  500. //================================================================== [AdminCMDS] ===========================================================//
  501. dcmd_SetLevel(playerid, params[])
  502. {
  503.     if(!(pInfo[playerid][AdminLevel] >= 10)) return SendClientMessage( playerid, RED, "ERROR: You need to be administrator to use this command!" );
  504.     new Player, aLevel;
  505.     if(sscanf(params, "ui", Player, aLevel)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/SetLevel [PlayerID] [Admin Level]");
  506.     if(aLevel < 1 || aLevel > 1337 ) return SendClientMessage(playerid, RED, "ERROR: Invalid level! Max admin level you can set is 1337 and the minimum admin u can set it 1!");
  507.  
  508.     if(IsPlayerConnected(Player))
  509.     {
  510.         new INI:iFile = INI_Open(PlayerPath(playerid));
  511.         FormatMSG(Player, ABLUE, "Welcome To The Pilots Heaven Team %s has set your Level to %d", PlayerName2(playerid), aLevel);
  512.         FormatMSG(playerid, ABLUE, "You Have Set %s's Admin Level to %d", PlayerName2(Player), aLevel);
  513.         INI_SetTag(iFile,"data");
  514.         INI_WriteInt(iFile,"AdminLevel",strval(params[1]));
  515.         INI_Close(iFile);
  516.     }
  517.     else return SendClientMessage(playerid, RED,"ERROR Player Specified Not Online!");
  518.     return 1;
  519. }
  520. dcmd_SetVIPLevel(playerid, params[])
  521. {
  522.     if(!(pInfo[playerid][AdminLevel] >= 10)) return SendClientMessage( playerid, RED, "ERROR: You need to be administrator to use this command!" );
  523.     new Player, vLevel;
  524.     if(sscanf(params, "ui", Player, vLevel)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/SetVIPLevel [PlayerID] [VIP Level]");
  525.     if(vLevel > 10 ) return SendClientMessage(playerid, RED, "ERROR: Invalid level! Max VIP level you can set is 10!");
  526.  
  527.     if(IsPlayerConnected(Player))
  528.     {
  529.         new INI:iFile = INI_Open(PlayerPath(playerid));
  530.         FormatMSG(Player, ABLUE, "%s has set you VIP Level to %d", PlayerName2(playerid), vLevel);
  531.         FormatMSG(playerid, ABLUE, "You have set %s's level to %d", PlayerName2(Player), vLevel);
  532.         INI_SetTag(iFile,"data");
  533.         INI_WriteInt(iFile,"VIPLevel",strval(params[1]));
  534.         INI_Close(iFile);
  535.     }
  536.     else return SendClientMessage(playerid, RED,"ERROR Player Specified Not Online!");
  537.     return 1;
  538. }
  539. dcmd_SetScore(playerid, params[])
  540. {
  541.     new id, score;
  542.     if(!(pInfo[playerid][AdminLevel] >=10)) return SendClientMessage( playerid, RED, "ERROR: You need to be administrator to use this command!" );
  543.     if(sscanf(params, "us[128]", id, score)) return SendClientMessage(playerid, RED, "USAGE: {FFFF00}/SetScore [playerid] [Score]");
  544.     if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED,"ERROR Player Specified is Offline");
  545.     {
  546.         FormatMSG(id, Yellow, "You Score has been set to %d by %s", score, PlayerName2(playerid));
  547.         FormatMSG(id, Yellow, "You have set %s's score to %d", PlayerName2(playerid), score);
  548.         SetPlayerScore(id, score);
  549.     }
  550.     return 1;
  551. }
  552. dcmd_Crash(playerid, params[])
  553. {
  554.     new string[128], id, reason[50];
  555.     if(!(pInfo[playerid][AdminLevel] >= 4)) return SendClientMessage( playerid, RED, "ERROR: You need to be administrator to use this command!" );
  556.     if(sscanf(params, "us[128]", id, reason)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/Crash [playerid] [reason]");
  557.     if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED,"ERROR Player Specified is Offline");
  558.     if(id == playerid) return SendClientMessage(playerid, RED,"You can't crash yourself"); // Optional
  559.     if(!strlen(reason))
  560.     {
  561.         format(string, sizeof(string),"%s Has been crashed by Admin %s [no reason given]",PlayerName2(id),PlayerName2(playerid));
  562.         SendClientMessageToAll(ABLUE, string);
  563.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 1000, 0);
  564.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 2000, 1);
  565.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 3000, 2);
  566.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 4000, 3);
  567.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 5000, 4);
  568.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 6000, 5);
  569.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 7000, 6);
  570.     }
  571.     else
  572.     {
  573.         format(string, sizeof(string),"%s has been crashed by Admin %s [Reason: %s]",PlayerName2(id), PlayerName2(playerid), reason);
  574.         SendClientMessageToAll(ABLUE, string);
  575.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 1000, 0);
  576.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 2000, 1);
  577.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 3000, 2);
  578.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 4000, 3);
  579.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 5000, 4);
  580.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 6000, 5);
  581.         GameTextForPlayer(id, "•¤¶§!$$%&'()*+,-./01~!@#$^&*()_-+={[}]:;'<,>.?/", 7000, 6);
  582.     }
  583.     return 1;
  584. }
  585. dcmd_Ban(playerid, params[])
  586. {
  587.     new string[128], id, reason[50];
  588.     if(!(pInfo[playerid][AdminLevel] >= 4)) return SendClientMessage( playerid, RED, "ERROR: You need to be administrator to use this command!" );
  589.     if(sscanf(params, "us[128]", id, reason)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/ban [playerid] [reason]");
  590.     if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED,"ERROR Player Specified is Offline");
  591.     if(id == playerid) return SendClientMessage(playerid, RED,"You can't ban yourself"); // Optional
  592.     if(!strlen(reason))
  593.     {
  594.         new INI:iFile = INI_Open(PlayerPath(playerid));
  595.         format(string, sizeof(string),"%s Has been Banned by Admin %s [no reason given]",PlayerName2(id),PlayerName2(playerid));
  596.         SendClientMessageToAll(ABLUE, string);
  597.         INI_SetTag(iFile,"data");
  598.         INI_WriteInt(iFile,"Banned", 1);
  599.         INI_Close(iFile);
  600.         pBanned[id] = 1;
  601.         Kick(id);
  602.     }
  603.     else
  604.     {
  605.         new INI:iFile = INI_Open(PlayerPath(playerid));
  606.         format(string, sizeof(string),"%s has been Banned by Admin %s [Reason: %s]",PlayerName2(id), PlayerName2(playerid), reason);
  607.         SendClientMessageToAll(ABLUE, string);
  608.         INI_SetTag(iFile,"data");
  609.         INI_WriteInt(iFile,"Banned", 1);
  610.         INI_Close(iFile);
  611.         pBanned[id] = 1;
  612.         Kick(id);
  613.     }
  614.     return 1;
  615. }
  616. dcmd_Announce(playerid, params[])
  617. {
  618.     new Message[128];
  619.     if(!(pInfo[playerid][AdminLevel] >= 1)) return SendClientMessage( playerid, RED, "ERROR: You need to be administrator to use this command!" );
  620.     if(sscanf(params, "s[128]", Message)) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/announce [Message]" );
  621.     {
  622.         GameTextForAll(Message, 6000, 4);
  623.     }
  624.     return 1;
  625. }
  626. dcmd_Kick(playerid, params[])
  627. {
  628.     new string[128], id, reason[50];
  629.     if(!(pInfo[playerid][AdminLevel] >= 4)) return SendClientMessage(playerid, RED, "ERROR: You need to be administrator to use this command!" );
  630.     if(sscanf(params, "us[128]", id, reason)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/Kick [playerid] [reason]");
  631.     if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, RED,"ERROR Player Specified is Offline");
  632.     if(id == playerid) return SendClientMessage(playerid, RED,"You can't ban yourself"); // Optional
  633.     if(!strlen(reason))
  634.     {
  635.         format(string, sizeof(string),"%s Has been kicked by Admin %s [no reason given]",PlayerName2(id),PlayerName2(playerid));
  636.         SendClientMessageToAll(ABLUE, string);
  637.         Kick(id);
  638.     }
  639.     else
  640.     {
  641.         format(string, sizeof(string),"%s Has been kicked by Admin %s [Reason: %s]",PlayerName2(id),PlayerName2(playerid), reason);
  642.         SendClientMessageToAll(ABLUE, string);
  643.         Kick(id);
  644.     }
  645.     return 1;
  646. }
  647. dcmd_Vehicle(playerid, params[])
  648. {
  649.     new string[128];
  650.     new Float:X, Float:Y, Float:Z, Float:A;
  651.     new MODEL, COL1, COL2;
  652.     new Admin_Car;
  653.     if(!(pInfo[playerid][AdminLevel] >=2)) return SendClientMessage(playerid, RED, "ERROR: You need to be administrator to use this command!" );
  654.     if(sscanf(params, "ddd", MODEL, COL1, COL2)) return SendClientMessage(playerid, RED,"USAGE: {FFFF00}/Vehicle [modelid] [Color1] [Color2]");
  655.     {
  656.         GetPlayerPos(playerid, X, Y, Z);
  657.         GetPlayerFacingAngle(playerid, A);
  658.         format(string, sizeof(string), "You Have Spawned a car. Model ID: %d Color 1: %d Color 2: %d", MODEL, COL1, COL2);
  659.         SendClientMessage(playerid, ABLUE, string);
  660.         Admin_Car = CreateVehicle(MODEL, X, Y, Z, A, COL1, COL2, 60);
  661.         PutPlayerInVehicle(playerid, Admin_Car, 0);
  662.         SetVehicleNumberPlate(Admin_Car, "Admin_Car");
  663.     }
  664.     return 1;
  665. }
  666. dcmd_Aduty(playerid, params[])
  667. {
  668.     #pragma unused params
  669.     new string[128];
  670.     new string1[128];
  671.     new Text3D:label[MAX_PLAYERS];
  672.     if(!(pInfo[playerid][AdminLevel])) return SendClientMessage(playerid, RED, "ERROR: You Need to be administrator to use this command!");
  673.     if(pOnDuty[playerid] == 0)
  674.     {
  675.         format(string, sizeof(string),"%s is now on Admin Duty DONT ATTACK!!!!!", PlayerName2(playerid));
  676.         SendClientMessageToAll(ABLUE, string);
  677.         format(string1, sizeof(string1),"%s [LVL %d] is on admin duty", PlayerName2(playerid), pInfo[playerid][AdminLevel]);
  678.         label[playerid] = Create3DTextLabel(string1, 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
  679.         Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
  680.     }
  681.     else if(pOnDuty[playerid] == 1)
  682.     {
  683.         format(string, sizeof(string),"%s is now off Admin Duty And Enjoys the game", PlayerName2(playerid));
  684.         SendClientMessageToAll(ABLUE, string);
  685.         Delete3DTextLabel(label[playerid]);
  686.     }
  687.     return 1;
  688. }
  689. dcmd_Hide(playerid, params[])
  690. {
  691.     #pragma unused params
  692.     if(!(pInfo[playerid][AdminLevel])) return SendClientMessage(playerid, RED, "ERROR: You Need to be administrator to use this command!");
  693.     {
  694.         SendClientMessage(playerid,ABLUE,"You are hidden from the online admins list");
  695.         pOnDuty[playerid] = 0;
  696.     }
  697.     return 1;
  698. }
  699. dcmd_Show(playerid, params[])
  700. {
  701.     #pragma unused params
  702.     if(!(pInfo[playerid][AdminLevel])) return SendClientMessage(playerid, RED, "ERROR: You Need to be administrator to use this command!");
  703.     {
  704.         SendClientMessage(playerid,ABLUE,"You are no longer hidden from the online admins list");
  705.         pOnDuty[playerid] = 1;
  706.     }
  707.     return 1;
  708. }
  709. //================================================================== [ STOCKS ] ===========================================================//
  710. stock PlayerName2( i )
  711. {
  712.     new n[ 24 ];
  713.     GetPlayerName( i, n, 24 );
  714.     return n;
  715. }
  716.  
  717. forward GetPlayerAVSAdmin(playerid);
  718. public GetPlayerAVSAdmin(playerid)
  719. {
  720.     return pInfo[playerid][AdminLevel];
  721. }
  722.  
  723. public OnPlayerCommandText(playerid, cmdtext[])
  724. {
  725.     dcmd(PM, 2, cmdtext);
  726.     dcmd(Loc, 3, cmdtext);
  727.     dcmd(AFK, 3, cmdtext);
  728.     dcmd(AFKList, 7, cmdtext);
  729.     dcmd(SetLevel, 8, cmdtext);
  730.     dcmd(SetVIPLevel, 11, cmdtext);
  731.     dcmd(Crash, 5, cmdtext);
  732.     dcmd(Ban, 3, cmdtext);
  733.     dcmd(Announce, 8, cmdtext);
  734.     dcmd(Kick, 4, cmdtext);
  735.     dcmd(Aduty, 5, cmdtext);
  736.     dcmd(Admins, 6, cmdtext);
  737.     dcmd(Vehicle, 7, cmdtext);
  738.     dcmd(Hide, 4, cmdtext);
  739.     dcmd(Show, 4, cmdtext);
  740.     dcmd(Report, 6, cmdtext);
  741.     dcmd(SetScore, 8, cmdtext);
  742.     dcmd(callsign, 8, cmdtext);
  743.     return 0;
  744. }
  745.  
Advertisement
Add Comment
Please, Sign In to add comment