Scarred

Carson Takeover - Scarred

Aug 4th, 2011
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 46.64 KB | None | 0 0
  1. #include <a_samp>
  2. #include <YSI\y_commands>
  3. #include <YSI\y_ini>
  4. #include <YSI\y_foreach>
  5. #include <sscanf2>
  6.  
  7. forward UserDataLoad(playerid, name[], value[]);
  8.    
  9. enum player_Information {
  10.  
  11.         Password[128],
  12.         Kills,
  13.         Deaths,
  14.         AuthLvl,
  15.         Cash,
  16.         CustomSkin,
  17.         Score,
  18.         VIP,
  19.         Achievements[4],
  20.         PlayersHealed,
  21.         PlayersKilled[4]
  22.     }
  23.         //Setting up the player information (what is inside of the user files, basically)
  24.  
  25. new
  26.     cInfo[MAX_PLAYERS][player_Information],
  27.     HealTimer[MAX_PLAYERS] = 0,
  28.     Float:HealthBefore[MAX_PLAYERS][2],
  29.     Float:g_EventPosition[4],
  30.     g_EventWeapon = -1,
  31.     g_EventReward = 0,
  32.     g_EventPlayers = 0,
  33.     pInEvent[MAX_PLAYERS] = 0,
  34.     g_EventOpen = 0;
  35.    
  36. new
  37.     Text:ScarAC01_1,
  38.     Text:ScarAC01_2,
  39.     Text:ScarAC01_3,
  40.     Text:ScarAC01_4,
  41.     Text:Achievement01_1,
  42.     Text:Achievement01_2,
  43.     Text:Achievement01_3,
  44.     Text:Achievement01_4,
  45.     Text:Achievement01_5,
  46.     Text:Achievement01_6,
  47.     Text:Achievement02_1,
  48.     Text:Achievement02_2,
  49.     Text:Achievement02_3,
  50.     Text:Achievement02_4,
  51.     Text:Achievement02_5,
  52.     Text:Achievement03_1,
  53.     Text:Achievement03_2,
  54.     Text:Achievement03_3,
  55.     Text:Achievement03_4,
  56.     Text:Achievement03_5,
  57.     Text:Achievement04_1,
  58.     Text:Achievement04_2,
  59.     Text:Achievement04_3,
  60.     Text:Achievement04_4,
  61.     Text:Achievement04_5;
  62.  
  63.  
  64.     //#define   DEBUGMODE
  65.                 //Uncomment this if you don't want the debug commands; Recommended to leave commented!
  66.  
  67.     #define     SCRIPT_VERSION      "0.2"
  68.                                     //Supports letters aswell to allow for revisions to be monitored; Example: "0.1 R3"
  69.     #define     FLOAT_INFINITY      (Float:0x7F800000)
  70.                                     //Actual infinity - Not 999,999.
  71.     #define     USER_DIRECTORY      "Accounts/%s.ini"
  72.                                     //Account directory - Change if needed - Make sure this directory is created!
  73.     #define     REGISTER_DIALOG     1
  74.     #define     LOGIN_DIALOG        2
  75.  
  76.     main() {
  77.    
  78.         printf("[Carson Takeover -- Version %s]",   SCRIPT_VERSION);
  79.     }
  80.  
  81.     public OnGameModeInit() {
  82.  
  83.         new
  84.             GamemodeText[40];
  85.             //Supports up to 40 characters; Of course, it's easily changeable.
  86.            
  87.         format(GamemodeText, sizeof(GamemodeText), "V%s", SCRIPT_VERSION);
  88.         SetGameModeText(GamemodeText);
  89.        
  90.                                 /* TEAM ONE - POLICE (medic included) */
  91.        
  92.         AddPlayerClass(282, -216.1157977.8385,   19.4922,    268.8744, 0,  0, 31, 100, 33, 150);
  93.                       //Police - "Heavy" gunner
  94.                      
  95.         AddPlayerClass(280, -216.1157977.8385,   19.4922,    268.8744, 24, 50, 29, 100, 0, 0);
  96.                       //Police - "Light" patrol
  97.        
  98.         AddPlayerClass(275, -319.29931051.093420.3403,    358.0302, 33, 150, 42, 100, 0, 0);
  99.                       //Police - Medic
  100.  
  101.                                 /* TEAM TWO - INVADERS (medic included) */
  102.                                
  103.         AddPlayerClass(34-164.60951059.661719.7422,    267.0699,   0,  0, 31, 100, 33, 150);
  104.                       //"Rebel" - "Heavy" gunner
  105.  
  106.         AddPlayerClass(15-168.02311031.471419.7344,    178.8775,   24, 50, 29, 100, 0, 0);
  107.                       //"Rebel" - "Light" invader
  108.                      
  109.         AddPlayerClass(14-258.95971083.174120.9399,    353.9203,   33, 150, 42, 100, 0, 0);
  110.                       //"Rebel" - Medic
  111.                                
  112.                                 /*   VEHICLES FOR THE WHOLE SERVER   */
  113.                                
  114.         AddStaticVehicle(598,   -211.2230994.2327,   19.3020,    89.9457,    01); // LVPD1
  115.         AddStaticVehicle(598,   -211.2466999.6469,   19.4083,    89.9753,    01); // LVPD2
  116.         AddStaticVehicle(598,   -227.3858999.4583,   19.3383,    270.2986,   01); // LVPD3
  117.         AddStaticVehicle(598,   -227.2980993.9480,   19.2911,    270.2558,   01); // LVPD4
  118.        
  119.                                 /*              TEXTDRAWS           */
  120.                                
  121.         Achievement01_1 = TextDrawCreate(408.000000, 430.000000, "[ Achievement unlocked!");
  122.         TextDrawBackgroundColor(Achievement01_1, 255);
  123.         TextDrawFont(Achievement01_1, 2);
  124.         TextDrawLetterSize(Achievement01_1, 0.390000, 1.800000);
  125.         TextDrawColor(Achievement01_1, 65535);
  126.         TextDrawSetOutline(Achievement01_1, 1);
  127.         TextDrawSetProportional(Achievement01_1, 1);
  128.        
  129.         Achievement01_2 = TextDrawCreate(416.000000, 420.000000, "Players Healed - Rank 1");
  130.         TextDrawBackgroundColor(Achievement01_2, 255);
  131.         TextDrawFont(Achievement01_2, 2);
  132.         TextDrawLetterSize(Achievement01_2, 0.360000, 1.500000);
  133.         TextDrawColor(Achievement01_2, -65281);
  134.         TextDrawSetOutline(Achievement01_2, 1);
  135.         TextDrawSetProportional(Achievement01_2, 1);
  136.        
  137.         Achievement01_3 = TextDrawCreate(416.000000, 420.000000, "Players Healed - Rank 2");
  138.         TextDrawBackgroundColor(Achievement01_3, 255);
  139.         TextDrawFont(Achievement01_3, 2);
  140.         TextDrawLetterSize(Achievement01_3, 0.360000, 1.500000);
  141.         TextDrawColor(Achievement01_3, -65281);
  142.         TextDrawSetOutline(Achievement01_3, 1);
  143.         TextDrawSetProportional(Achievement01_3, 1);
  144.        
  145.         Achievement01_4 = TextDrawCreate(416.000000, 420.000000, "Players Healed - Rank 3");
  146.         TextDrawBackgroundColor(Achievement01_4, 255);
  147.         TextDrawFont(Achievement01_4, 2);
  148.         TextDrawLetterSize(Achievement01_4, 0.360000, 1.500000);
  149.         TextDrawColor(Achievement01_4, -65281);
  150.         TextDrawSetOutline(Achievement01_4, 1);
  151.         TextDrawSetProportional(Achievement01_4, 1);
  152.        
  153.         Achievement01_5 = TextDrawCreate(416.000000, 420.000000, "Players Healed - Rank 4");
  154.         TextDrawBackgroundColor(Achievement01_5, 255);
  155.         TextDrawFont(Achievement01_5, 2);
  156.         TextDrawLetterSize(Achievement01_5, 0.360000, 1.500000);
  157.         TextDrawColor(Achievement01_5, -65281);
  158.         TextDrawSetOutline(Achievement01_5, 1);
  159.         TextDrawSetProportional(Achievement01_5, 1);
  160.        
  161.         Achievement01_6 = TextDrawCreate(416.000000, 420.000000, "Players Healed - Rank 5");
  162.         TextDrawBackgroundColor(Achievement01_6, 255);
  163.         TextDrawFont(Achievement01_6, 2);
  164.         TextDrawLetterSize(Achievement01_6, 0.360000, 1.500000);
  165.         TextDrawColor(Achievement01_6, -65281);
  166.         TextDrawSetOutline(Achievement01_6, 1);
  167.         TextDrawSetProportional(Achievement01_6, 1);
  168.        
  169.         Achievement02_1 = TextDrawCreate(416.000000, 420.000000, "Heavy Weapons Specialist - Rank 1");
  170.         TextDrawBackgroundColor(Achievement02_1, 255);
  171.         TextDrawFont(Achievement02_1, 2);
  172.         TextDrawLetterSize(Achievement02_1, 0.230000, 1.199999);
  173.         TextDrawColor(Achievement02_1, -65281);
  174.         TextDrawSetOutline(Achievement02_1, 1);
  175.         TextDrawSetProportional(Achievement02_1, 1);
  176.        
  177.         Achievement02_2 = TextDrawCreate(416.000000, 420.000000, "Heavy Weapons Specialist - Rank 2");
  178.         TextDrawBackgroundColor(Achievement02_2, 255);
  179.         TextDrawFont(Achievement02_2, 2);
  180.         TextDrawLetterSize(Achievement02_2, 0.230000, 1.199999);
  181.         TextDrawColor(Achievement02_2, -65281);
  182.         TextDrawSetOutline(Achievement02_2, 1);
  183.         TextDrawSetProportional(Achievement02_2, 1);
  184.  
  185.         Achievement02_3 = TextDrawCreate(416.000000, 420.000000, "Heavy Weapons Specialist - Rank 3");
  186.         TextDrawBackgroundColor(Achievement02_3, 255);
  187.         TextDrawFont(Achievement02_3, 2);
  188.         TextDrawLetterSize(Achievement02_3, 0.230000, 1.199999);
  189.         TextDrawColor(Achievement02_3, -65281);
  190.         TextDrawSetOutline(Achievement02_3, 1);
  191.         TextDrawSetProportional(Achievement02_3, 1);
  192.        
  193.         Achievement02_4 = TextDrawCreate(416.000000, 420.000000, "Heavy Weapons Specialist - Rank 4");
  194.         TextDrawBackgroundColor(Achievement02_4, 255);
  195.         TextDrawFont(Achievement02_4, 2);
  196.         TextDrawLetterSize(Achievement02_4, 0.230000, 1.199999);
  197.         TextDrawColor(Achievement02_4, -65281);
  198.         TextDrawSetOutline(Achievement02_4, 1);
  199.         TextDrawSetProportional(Achievement02_4, 1);
  200.        
  201.         Achievement02_5 = TextDrawCreate(416.000000, 420.000000, "Heavy Weapons Specialist - Rank 5");
  202.         TextDrawBackgroundColor(Achievement02_5, 255);
  203.         TextDrawFont(Achievement02_5, 2);
  204.         TextDrawLetterSize(Achievement02_5, 0.230000, 1.199999);
  205.         TextDrawColor(Achievement02_5, -65281);
  206.         TextDrawSetOutline(Achievement02_5, 1);
  207.         TextDrawSetProportional(Achievement02_5, 1);
  208.        
  209.         Achievement03_1 = TextDrawCreate(416.000000, 420.000000, "Up Close and Personal - Rank 1");
  210.         TextDrawBackgroundColor(Achievement03_1, 255);
  211.         TextDrawFont(Achievement03_1, 2);
  212.         TextDrawLetterSize(Achievement03_1, 0.230000, 1.199999);
  213.         TextDrawColor(Achievement03_1, -65281);
  214.         TextDrawSetOutline(Achievement03_1, 1);
  215.         TextDrawSetProportional(Achievement03_1, 1);
  216.        
  217.         Achievement03_2 = TextDrawCreate(416.000000, 420.000000, "Up Close and Personal - Rank 2");
  218.         TextDrawBackgroundColor(Achievement03_2, 255);
  219.         TextDrawFont(Achievement03_2, 2);
  220.         TextDrawLetterSize(Achievement03_2, 0.230000, 1.199999);
  221.         TextDrawColor(Achievement03_2, -65281);
  222.         TextDrawSetOutline(Achievement03_2, 1);
  223.         TextDrawSetProportional(Achievement03_2, 1);
  224.        
  225.         Achievement03_3 = TextDrawCreate(416.000000, 420.000000, "Up Close and Personal - Rank 3");
  226.         TextDrawBackgroundColor(Achievement03_3, 255);
  227.         TextDrawFont(Achievement03_3, 2);
  228.         TextDrawLetterSize(Achievement03_3, 0.230000, 1.199999);
  229.         TextDrawColor(Achievement03_3, -65281);
  230.         TextDrawSetOutline(Achievement03_3, 1);
  231.         TextDrawSetProportional(Achievement03_3, 1);
  232.        
  233.         Achievement03_4 = TextDrawCreate(416.000000, 420.000000, "Up Close and Personal - Rank 4");
  234.         TextDrawBackgroundColor(Achievement03_4, 255);
  235.         TextDrawFont(Achievement03_4, 2);
  236.         TextDrawLetterSize(Achievement03_4, 0.230000, 1.199999);
  237.         TextDrawColor(Achievement03_4, -65281);
  238.         TextDrawSetOutline(Achievement03_4, 1);
  239.         TextDrawSetProportional(Achievement03_4, 1);
  240.        
  241.         Achievement03_5 = TextDrawCreate(416.000000, 420.000000, "Up Close and Personal - Rank 5");
  242.         TextDrawBackgroundColor(Achievement03_5, 255);
  243.         TextDrawFont(Achievement03_5, 2);
  244.         TextDrawLetterSize(Achievement03_5, 0.230000, 1.199999);
  245.         TextDrawColor(Achievement03_5, -65281);
  246.         TextDrawSetOutline(Achievement03_5, 1);
  247.         TextDrawSetProportional(Achievement03_5, 1);
  248.        
  249.         Achievement04_1 = TextDrawCreate(416.000000, 420.000000, "Medical Brutality - Rank 1");
  250.         TextDrawBackgroundColor(Achievement04_1, 255);
  251.         TextDrawFont(Achievement04_1, 2);
  252.         TextDrawLetterSize(Achievement04_1, 0.230000, 1.199999);
  253.         TextDrawColor(Achievement04_1, -65281);
  254.         TextDrawSetOutline(Achievement04_1, 1);
  255.         TextDrawSetProportional(Achievement04_1, 1);
  256.        
  257.         Achievement04_2 = TextDrawCreate(416.000000, 420.000000, "Medical Brutality - Rank 2");
  258.         TextDrawBackgroundColor(Achievement04_2, 255);
  259.         TextDrawFont(Achievement04_2, 2);
  260.         TextDrawLetterSize(Achievement04_2, 0.230000, 1.199999);
  261.         TextDrawColor(Achievement04_2, -65281);
  262.         TextDrawSetOutline(Achievement04_2, 1);
  263.         TextDrawSetProportional(Achievement04_2, 1);
  264.        
  265.         Achievement04_3 = TextDrawCreate(416.000000, 420.000000, "Medical Brutality - Rank 3");
  266.         TextDrawBackgroundColor(Achievement04_3, 255);
  267.         TextDrawFont(Achievement04_3, 2);
  268.         TextDrawLetterSize(Achievement04_3, 0.230000, 1.199999);
  269.         TextDrawColor(Achievement04_3, -65281);
  270.         TextDrawSetOutline(Achievement04_3, 1);
  271.         TextDrawSetProportional(Achievement04_3, 1);
  272.        
  273.         Achievement04_4 = TextDrawCreate(416.000000, 420.000000, "Medical Brutality - Rank 4");
  274.         TextDrawBackgroundColor(Achievement04_4, 255);
  275.         TextDrawFont(Achievement04_4, 2);
  276.         TextDrawLetterSize(Achievement04_4, 0.230000, 1.199999);
  277.         TextDrawColor(Achievement04_4, -65281);
  278.         TextDrawSetOutline(Achievement04_4, 1);
  279.         TextDrawSetProportional(Achievement04_4, 1);
  280.        
  281.         Achievement04_5 = TextDrawCreate(416.000000, 420.000000, "Medical Brutality - Rank 5");
  282.         TextDrawBackgroundColor(Achievement04_5, 255);
  283.         TextDrawFont(Achievement04_5, 2);
  284.         TextDrawLetterSize(Achievement04_5, 0.230000, 1.199999);
  285.         TextDrawColor(Achievement04_5, -65281);
  286.         TextDrawSetOutline(Achievement04_5, 1);
  287.         TextDrawSetProportional(Achievement04_5, 1);
  288.        
  289.         ScarAC01_1 = TextDrawCreate(6.000000, 419.000000, "SCAR");
  290.         TextDrawBackgroundColor(ScarAC01_1, 255);
  291.         TextDrawFont(ScarAC01_1, 1);
  292.         TextDrawLetterSize(ScarAC01_1, 0.500000, 1.000000);
  293.         TextDrawColor(ScarAC01_1, -16776961);
  294.         TextDrawSetOutline(ScarAC01_1, 1);
  295.         TextDrawSetProportional(ScarAC01_1, 1);
  296.  
  297.         ScarAC01_2 = TextDrawCreate(40.000000, 429.000000, "Anti");
  298.         TextDrawBackgroundColor(ScarAC01_2, 255);
  299.         TextDrawFont(ScarAC01_2, 1);
  300.         TextDrawLetterSize(ScarAC01_2, 0.450000, 0.799999);
  301.         TextDrawColor(ScarAC01_2, -16776961);
  302.         TextDrawSetOutline(ScarAC01_2, 1);
  303.         TextDrawSetProportional(ScarAC01_2, 1);
  304.  
  305.         ScarAC01_3 = TextDrawCreate(41.000000, 437.000000, "Cheat");
  306.         TextDrawBackgroundColor(ScarAC01_3, 255);
  307.         TextDrawFont(ScarAC01_3, 1);
  308.         TextDrawLetterSize(ScarAC01_3, 0.450000, 0.799999);
  309.         TextDrawColor(ScarAC01_3, -16776961);
  310.         TextDrawSetOutline(ScarAC01_3, 1);
  311.         TextDrawSetProportional(ScarAC01_3, 1);
  312.  
  313.         ScarAC01_4 = TextDrawCreate(15.000000, 432.000000, "]");
  314.         TextDrawBackgroundColor(ScarAC01_4, 255);
  315.         TextDrawFont(ScarAC01_4, 0);
  316.         TextDrawLetterSize(ScarAC01_4, 0.500000, 1.000000);
  317.         TextDrawColor(ScarAC01_4, -16776961);
  318.         TextDrawSetOutline(ScarAC01_4, 1);
  319.         TextDrawSetProportional(ScarAC01_4, 1);
  320.         return true;
  321.     }
  322.  
  323.     public OnGameModeExit() {
  324.  
  325.         return true;
  326.        
  327.     }
  328.  
  329.     public OnPlayerRequestClass(playerid, classid) {
  330.  
  331.         if(classid == 0) {
  332.             GameTextForPlayer(playerid, "~b~Local Police", 2000, 3);
  333.             SetPlayerPos(playerid, -216.1157,977.8385,19.4922);
  334.             SetPlayerFacingAngle(playerid, 268.8744);
  335.             SetPlayerCameraPos(playerid, -212.6229,977.9282,19.3258);
  336.             SetPlayerCameraLookAt(playerid, -216.5273,978.0528,19.4949);
  337.             SetPVarInt(playerid, "Medic", 0);
  338.             SetPVarInt(playerid, "Heavy", 1);
  339.             SetPVarInt(playerid, "Light", 0);
  340.         }
  341.         else if(classid == 1) {
  342.             GameTextForPlayer(playerid, "~b~Local Police", 2000, 3);
  343.             SetPlayerPos(playerid, -215.5698,980.6157,19.4947);
  344.             SetPlayerFacingAngle(playerid, 269.9826);
  345.             SetPlayerCameraPos(playerid, -214.0886,980.7875,19.3382);
  346.             SetPlayerCameraLookAt(playerid, -215.5698,980.6157,19.4947);
  347.             SetPVarInt(playerid, "Medic", 0);
  348.             SetPVarInt(playerid, "Heavy", 0);
  349.             SetPVarInt(playerid, "Light", 1);
  350.         }
  351.         else if(classid == 2) { //medic
  352.             GameTextForPlayer(playerid, "~b~Local Police", 2000, 3);
  353.             SetPlayerPos(playerid, -319.2871,1051.4486,20.3403);
  354.             SetPlayerFacingAngle(playerid, 358.0302);
  355.             SetPlayerCameraPos(playerid, -319.5100,1056.7614,19.7422);
  356.             SetPlayerCameraLookAt(playerid,-319.2871,1051.4486,20.3403);
  357.             SetPVarInt(playerid, "Medic", 1);
  358.             SetPVarInt(playerid, "Heavy", 0);
  359.             SetPVarInt(playerid, "Light", 0);
  360.         }
  361.         else if(classid == 3) {
  362.             GameTextForPlayer(playerid, "~r~Invaders", 2000, 3);
  363.             SetPlayerPos(playerid, -164.6095,1059.6617,19.7422);
  364.             SetPlayerFacingAngle(playerid, 267.0699);
  365.             SetPlayerCameraPos(playerid, -160.0465,1059.4253,19.7596);
  366.             SetPlayerCameraLookAt(playerid,-164.6095,1059.6617,19.7422);
  367.             SetPVarInt(playerid, "Medic", 0);
  368.             SetPVarInt(playerid, "Heavy", 1);
  369.             SetPVarInt(playerid, "Light", 0);
  370.         }
  371.         else if(classid == 4) {
  372.             GameTextForPlayer(playerid, "~r~Invaders", 2000, 3);
  373.             SetPlayerPos(playerid, -168.0231,1031.4714,19.7344);
  374.             SetPlayerFacingAngle(playerid, 178.8775);
  375.             SetPlayerCameraPos(playerid, -168.2652,1026.6465,19.7344);
  376.             SetPlayerCameraLookAt(playerid, -168.0231,1031.4714,19.7344);
  377.             SetPVarInt(playerid, "Medic", 0);
  378.             SetPVarInt(playerid, "Heavy", 0);
  379.             SetPVarInt(playerid, "Light", 1);
  380.         }
  381.         else if(classid == 5) { //medic
  382.             GameTextForPlayer(playerid, "~r~Invaders", 2000, 3);
  383.             SetPlayerPos(playerid, -258.9597,1083.1741,20.9399);
  384.             SetPlayerFacingAngle(playerid, 353.9203);
  385.             SetPlayerCameraPos(playerid, -258.7643,1086.7354,19.8927);
  386.             SetPlayerCameraLookAt(playerid,-258.9597,1083.1741,20.9399);
  387.             SetPVarInt(playerid, "Medic", 1);
  388.             SetPVarInt(playerid, "Heavy", 0);
  389.             SetPVarInt(playerid, "Light", 0);
  390.         }
  391.         return true;
  392.     }
  393.  
  394.     public OnPlayerConnect(playerid) {
  395.  
  396.         new
  397.             player_Name[MAX_PLAYER_NAME],
  398.             uFile[50];
  399.  
  400.         GetPlayerName(playerid, player_Name, sizeof(player_Name));
  401.         format(uFile, 50, USER_DIRECTORY, player_Name);
  402.  
  403.         if(!fexist(uFile))
  404.         {
  405.             ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Welcome!", "You do not appear to have an account on this server!\nPlease register by typing in your password below:", "Submit", "Quit");
  406.         }
  407.         else
  408.         {
  409.             ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_INPUT, "Welcome back!", "You appear to have an account on this server!\nPlease login by typing in your password below:", "Submit", "Quit");
  410.         }
  411.         TextDrawShowForPlayer(playerid, ScarAC01_1);
  412.         TextDrawShowForPlayer(playerid, ScarAC01_2);
  413.         TextDrawShowForPlayer(playerid, ScarAC01_3);
  414.         TextDrawShowForPlayer(playerid, ScarAC01_4);
  415.         return true;
  416.     }
  417.  
  418.     public OnPlayerDisconnect(playerid, reason) {
  419.  
  420.         if(GetPVarInt(playerid, "Logged") == 1) {
  421.  
  422.             new
  423.                 uFile[50],
  424.                 player_Name[MAX_PLAYER_NAME];
  425.  
  426.             GetPlayerName(playerid, player_Name, sizeof(player_Name));
  427.             format(uFile, 50, USER_DIRECTORY, player_Name);
  428.  
  429.             new
  430.                 INI:playerFile = INI_Open(uFile);
  431.  
  432.             INI_WriteInt(playerFile, "Authorization", cInfo[playerid][AuthLvl]);
  433.             INI_WriteInt(playerFile, "VIP", cInfo[playerid][VIP]);
  434.             INI_WriteInt(playerFile, "Cash", GetPlayerMoney(playerid));
  435.             INI_WriteInt(playerFile, "Score", GetPlayerScore(playerid));
  436.             INI_WriteInt(playerFile, "Kills", cInfo[playerid][Kills]);
  437.             INI_WriteInt(playerFile, "Skin", cInfo[playerid][CustomSkin]);
  438.             INI_WriteInt(playerFile, "Deaths", cInfo[playerid][Deaths]);
  439.             INI_WriteInt(playerFile, "PlayersHealed", cInfo[playerid][PlayersHealed]);
  440.             INI_WriteInt(playerFile, "Achievements_0", cInfo[playerid][Achievements][0]);
  441.             INI_WriteInt(playerFile, "Achievements_1", cInfo[playerid][Achievements][1]);
  442.             INI_WriteInt(playerFile, "Achievements_2", cInfo[playerid][Achievements][2]);
  443.             INI_WriteInt(playerFile, "Achievements_3", cInfo[playerid][Achievements][3]);
  444.             INI_WriteInt(playerFile, "PlayersKilled_0", cInfo[playerid][PlayersKilled][0]);
  445.             INI_WriteInt(playerFile, "PlayersKilled_1", cInfo[playerid][PlayersKilled][1]);
  446.             INI_WriteInt(playerFile, "PlayersKilled_2", cInfo[playerid][PlayersKilled][2]);
  447.             INI_WriteInt(playerFile, "PlayersKilled_3", cInfo[playerid][PlayersKilled][3]);
  448.             INI_Close(playerFile);
  449.         }
  450.         TextDrawHideForPlayer(playerid, ScarAC01_1);
  451.         TextDrawHideForPlayer(playerid, ScarAC01_2);
  452.         TextDrawHideForPlayer(playerid, ScarAC01_3);
  453.         TextDrawHideForPlayer(playerid, ScarAC01_4);
  454.         return true;
  455.     }
  456.  
  457.     public OnPlayerSpawn(playerid) {
  458.  
  459.         if(cInfo[playerid][CustomSkin] != 0) {
  460.             SetPlayerSkin(playerid, cInfo[playerid][CustomSkin]);
  461.             SendClientMessage(playerid, -1, "{FFFFFF}Custom skin has been set.");
  462.         }
  463.        
  464.         return true;
  465.     }
  466.  
  467.     public OnPlayerDeath(playerid, killerid, reason) {
  468.  
  469.         cInfo[killerid][Kills]++;
  470.         cInfo[playerid][Deaths]++;
  471.  
  472.         if(GetPVarInt(killerid, "Heavy") == 1) {
  473.             cInfo[killerid][PlayersKilled][0]++;
  474.             if(cInfo[killerid][PlayersKilled][0] == 10) { //Rank 1
  475.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  476.                 TextDrawShowForPlayer(killerid, Achievement02_1);
  477.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  478.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  479.             }
  480.             else if(cInfo[killerid][PlayersKilled][0] == 20) { //Rank 2
  481.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  482.                 TextDrawShowForPlayer(killerid, Achievement02_2);
  483.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  484.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  485.             }
  486.             else if(cInfo[killerid][PlayersKilled][0] == 30) { //Rank 3
  487.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  488.                 TextDrawShowForPlayer(killerid, Achievement02_3);
  489.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  490.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  491.             }
  492.             else if(cInfo[killerid][PlayersKilled][0] == 40) { //Rank 4
  493.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  494.                 TextDrawShowForPlayer(killerid, Achievement02_4);
  495.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  496.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  497.             }
  498.             else if(cInfo[killerid][PlayersKilled][0] == 50) { //Rank 5
  499.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  500.                 TextDrawShowForPlayer(killerid, Achievement02_5);
  501.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  502.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  503.             }
  504.         }
  505.         else if(GetPVarInt(killerid, "Light") == 1) {
  506.             cInfo[killerid][PlayersKilled][1]++;
  507.             if(cInfo[killerid][PlayersKilled][1] == 10) { //Rank 1
  508.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  509.                 TextDrawShowForPlayer(killerid, Achievement03_1);
  510.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  511.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  512.             }
  513.             else if(cInfo[killerid][PlayersKilled][1] == 20) { //Rank 2
  514.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  515.                 TextDrawShowForPlayer(killerid, Achievement03_2);
  516.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  517.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  518.             }
  519.             else if(cInfo[killerid][PlayersKilled][1] == 30) { //Rank 3
  520.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  521.                 TextDrawShowForPlayer(killerid, Achievement03_3);
  522.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  523.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  524.             }
  525.             else if(cInfo[killerid][PlayersKilled][1] == 40) { //Rank 4
  526.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  527.                 TextDrawShowForPlayer(killerid, Achievement03_4);
  528.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  529.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  530.             }
  531.             else if(cInfo[killerid][PlayersKilled][1] == 50) { //Rank 5
  532.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  533.                 TextDrawShowForPlayer(killerid, Achievement03_5);
  534.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  535.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  536.             }
  537.         }
  538.         else if(GetPVarInt(killerid, "Medic") == 1) {
  539.             cInfo[killerid][PlayersKilled][2]++;
  540.             if(cInfo[killerid][PlayersKilled][2] == 10) { //Rank 1
  541.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  542.                 TextDrawShowForPlayer(killerid, Achievement04_1);
  543.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  544.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  545.             }
  546.             else if(cInfo[killerid][PlayersKilled][2] == 20) { //Rank 2
  547.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  548.                 TextDrawShowForPlayer(killerid, Achievement04_2);
  549.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  550.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  551.             }
  552.             else if(cInfo[killerid][PlayersKilled][2] == 30) { //Rank 3
  553.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  554.                 TextDrawShowForPlayer(killerid, Achievement04_3);
  555.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  556.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  557.             }
  558.             else if(cInfo[killerid][PlayersKilled][2] == 40) { //Rank 4
  559.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  560.                 TextDrawShowForPlayer(killerid, Achievement04_4);
  561.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  562.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  563.             }
  564.             else if(cInfo[killerid][PlayersKilled][2] == 50) { //Rank 5
  565.                 TextDrawShowForPlayer(killerid, Achievement01_1);
  566.                 TextDrawShowForPlayer(killerid, Achievement04_5);
  567.                 SendClientMessage(killerid, -1, "* Achievement unlocked!");
  568.                 SetTimerEx("HideAchievements", 5000, 0, "i", killerid);
  569.             }
  570.         }
  571.         if(pInEvent[playerid] == 1) {
  572.             g_EventPlayers--;
  573.             pInEvent[playerid] = 0;
  574.             if(g_EventPlayers == 1) {
  575.            
  576.                 foreach(Player, i) {
  577.                
  578.                     if(pInEvent[i] == 1) {
  579.                         new string[128], player_Name[MAX_PLAYER_NAME];
  580.                         GetPlayerName(i, player_Name, sizeof(player_Name));
  581.                         format(string, sizeof(string), "<EVENT> %s has won the event and has collected $%d!", player_Name, g_EventReward);
  582.                         SendClientMessageToAll(-1, string);
  583.                         GivePlayerMoney(i, g_EventReward);
  584.                         pInEvent[i] = 0;
  585.                         g_EventOpen = 0, g_EventPlayers = 0, g_EventReward = 0, g_EventWeapon = 0;
  586.                     }
  587.                
  588.                 }
  589.             }
  590.         }
  591.         GivePlayerMoney(killerid, 100);
  592.         return true;
  593.        
  594.     }
  595.  
  596.     public OnVehicleSpawn(vehicleid) {
  597.  
  598.         return true;
  599.        
  600.     }
  601.  
  602.     public OnVehicleDeath(vehicleid, killerid) {
  603.    
  604.         return true;
  605.        
  606.     }
  607.  
  608.     public OnPlayerText(playerid, text[]) {
  609.    
  610.         return true;
  611.        
  612.     }
  613.  
  614.     public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) {
  615.    
  616.         return true;
  617.        
  618.     }
  619.  
  620.     public OnPlayerExitVehicle(playerid, vehicleid) {
  621.    
  622.         return true;
  623.        
  624.     }
  625.  
  626.     public OnPlayerStateChange(playerid, newstate, oldstate) {
  627.    
  628.         return true;
  629.        
  630.     }
  631.  
  632.     public OnPlayerEnterCheckpoint(playerid) {
  633.    
  634.         return true;
  635.        
  636.     }
  637.  
  638.     public OnPlayerLeaveCheckpoint(playerid) {
  639.    
  640.         return true;
  641.        
  642.     }
  643.  
  644.     public OnPlayerEnterRaceCheckpoint(playerid) {
  645.    
  646.         return true;
  647.        
  648.     }
  649.  
  650.     public OnPlayerLeaveRaceCheckpoint(playerid) {
  651.    
  652.         return true;
  653.        
  654.     }
  655.  
  656.     public OnRconCommand(cmd[]) {
  657.  
  658.         return true;
  659.        
  660.     }
  661.  
  662.     public OnPlayerRequestSpawn(playerid) {
  663.    
  664.         return true;
  665.        
  666.     }
  667.  
  668.     public OnObjectMoved(objectid) {
  669.    
  670.         return true;
  671.        
  672.     }
  673.  
  674.     public OnPlayerObjectMoved(playerid, objectid) {
  675.    
  676.         return true;
  677.        
  678.     }
  679.  
  680.     public OnPlayerPickUpPickup(playerid, pickupid) {
  681.    
  682.         return true;
  683.        
  684.     }
  685.  
  686.     public OnVehicleMod(playerid, vehicleid, componentid) {
  687.    
  688.         return true;
  689.        
  690.     }
  691.  
  692. public OnVehiclePaintjob(playerid, vehicleid, paintjobid) {
  693.  
  694.     return true;
  695.    
  696. }
  697.  
  698. public OnVehicleRespray(playerid, vehicleid, color1, color2) {
  699.  
  700.     return true;
  701.    
  702. }
  703.  
  704. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) {
  705.  
  706.     return true;
  707.    
  708. }
  709.  
  710. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
  711.  
  712.     return true;
  713.    
  714. }
  715.  
  716. public OnRconLoginAttempt(ip[], password[], success) {
  717.  
  718.     return true;
  719.    
  720. }
  721.  
  722. public OnPlayerUpdate(playerid) {
  723.  
  724.     return true;
  725.    
  726. }
  727.  
  728. public OnPlayerStreamIn(playerid, forplayerid) {
  729.  
  730.     return true;
  731.    
  732. }
  733.  
  734. public OnPlayerStreamOut(playerid, forplayerid) {
  735.  
  736.     return true;
  737.    
  738. }
  739.  
  740. public OnVehicleStreamIn(vehicleid, forplayerid) {
  741.  
  742.     return true;
  743.    
  744. }
  745.  
  746. public OnVehicleStreamOut(vehicleid, forplayerid) {
  747.  
  748.     return true;
  749.    
  750. }
  751.  
  752.     public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  753.  
  754.         switch(dialogid) {
  755.             case REGISTER_DIALOG: {
  756.            
  757.                 if(response) {
  758.                
  759.                     if(strlen(inputtext) <= 128) {
  760.                    
  761.                         return OnPlayerRegister(playerid, inputtext);
  762.                        
  763.                     }
  764.                    
  765.                     else {
  766.                    
  767.                         ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "Welcome!", "You do not appear to have an account on this server!\nPlease register by typing in your password below:", "Submit", "Quit");
  768.  
  769.                     }
  770.                 }
  771.                 else return Kick(playerid);
  772.             }
  773.  
  774.             case LOGIN_DIALOG: {
  775.            
  776.                 if(response) {
  777.                
  778.                     new
  779.                         uFile[50],
  780.                         player_Name[MAX_PLAYER_NAME];
  781.  
  782.                     GetPlayerName(playerid, player_Name, sizeof(player_Name));
  783.                     format(uFile, 50, USER_DIRECTORY, player_Name);
  784.  
  785.                     INI_ParseFile(uFile, "UserDataLoad", .bExtra = true, .extra = playerid);
  786.  
  787.                     new string[128];
  788.                     format(string, sizeof(string), "%s", inputtext);
  789.  
  790.                     if(strcmp(string, cInfo[playerid][Password], true) == 0) {
  791.                    
  792.                         new
  793.                             Year, Month, Day,
  794.                             Hour, Minute, Second;
  795.                         //printf("inputtext: %s", string);
  796.                         getdate(Year, Month, Day);
  797.                         gettime(Hour, Minute, Second);
  798.                         printf("<User:%s> Logged in. [%d/%d/%d @ %d:%d]", player_Name, Month, Day, Year, Hour, Minute);
  799.                         SetPVarInt(playerid, "Logged", 1);
  800.                         return true;
  801.                        
  802.                     }
  803.                     else return ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_INPUT, "Welcome back!", "You appear to have an account on this server!\nPlease login by typing in your password below:", "Submit", "Quit");
  804.                 }
  805.                 else Kick(playerid);
  806.                 return 0;
  807.             }
  808.         }
  809.         return true;
  810.     }
  811.  
  812.     public OnPlayerClickPlayer(playerid, clickedplayerid, source) {
  813.    
  814.         return true;
  815.        
  816.     }
  817.  
  818.                                             /* SSCANF SPECIFIERS | COMMANDS BELOW!
  819.                                                         - Y_Less
  820.                                            
  821.                             SPECIFIER           |           NAME          |         EXAMPLE
  822.                             ______________________________________________________________________
  823.                            
  824.                             i, d                |           Integer       |         1, 42, -10
  825.                             c                   |           Character     |         a, o, *
  826.                             l                   |           Logical       |         true, false
  827.                             b                   |           Binary        |         01001, 0b1100
  828.                             h, x                |           Hex           |         1A, 0x23
  829.                             o                   |           Octal         |         045 12
  830.                             n                   |           Number        |         42, 0b010, 0xAC, 045
  831.                             f                   |           Float         |         0.7, -99.5
  832.                             g                   |           IEEE Float    |         0.7, -99.5, INFINITY, -INFINITY, NAN
  833.                             u                   |           User name/id  |         Y_Less, 0
  834.                             q                   |           Bot name/id   |         ShopBot, 27
  835.                             r                   |           Player name/id|         Y_Less, 42
  836.                             _______________________________________________________________________
  837.                                             http://forum.sa-mp.com/showthread.php?t=120356 */
  838.                            
  839.  
  840.     CMD:spawnvehicle(playerid, params[])
  841.     {
  842.         new
  843.             ModelID,
  844.             Float:Pos[4],
  845.             Vehicle,
  846.             C1, C2;
  847.  
  848.         if(sscanf(params, "iI(-1)I(-1)", ModelID, C1, C2))
  849.             return SendClientMessage(playerid, -1, "{FFFFFF}Usage: /spawnvehicle [model id]");
  850.  
  851.         if(cInfo[playerid][AuthLvl] >= 2) {
  852.             GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  853.             GetPlayerFacingAngle(playerid, Pos[3]);
  854.  
  855.             Vehicle = CreateVehicle(ModelID, Pos[0], Pos[1], Pos[2], Pos[3], C1, C2, -1);
  856.             PutPlayerInVehicle(playerid, Vehicle, 0);
  857.         }
  858.         return true;
  859.     }
  860.    
  861.     CMD:restart(playerid, params[])
  862.     {
  863.         #pragma unused params
  864.         #pragma unused playerid
  865.         new
  866.             uFile[50],
  867.             player_Name[MAX_PLAYER_NAME];
  868.  
  869.         if(cInfo[playerid][AuthLvl] >= 3) {
  870.             foreach(Player, i)
  871.             {
  872.                 GetPlayerName(i, player_Name, sizeof(player_Name));
  873.                 format(uFile, 50, USER_DIRECTORY, player_Name);
  874.  
  875.                 new
  876.                     INI:playerFile = INI_Open(uFile);
  877.  
  878.                 INI_WriteInt(playerFile, "Authorization", cInfo[i][AuthLvl]);
  879.                 INI_WriteInt(playerFile, "VIP", cInfo[i][VIP]);
  880.                 INI_WriteInt(playerFile, "Cash", GetPlayerMoney(i));
  881.                 INI_WriteInt(playerFile, "Score", GetPlayerScore(i));
  882.                 INI_WriteInt(playerFile, "Kills", cInfo[i][Kills]);
  883.                 INI_WriteInt(playerFile, "Skin", cInfo[i][CustomSkin]);
  884.                 INI_WriteInt(playerFile, "Deaths", cInfo[i][Deaths]);
  885.                 INI_WriteInt(playerFile, "PlayersHealed", cInfo[playerid][PlayersHealed]);
  886.                 INI_WriteInt(playerFile, "Achievements_0", cInfo[playerid][Achievements][0]);
  887.                 INI_WriteInt(playerFile, "Achievements_1", cInfo[playerid][Achievements][1]);
  888.                 INI_WriteInt(playerFile, "Achievements_2", cInfo[playerid][Achievements][2]);
  889.                 INI_WriteInt(playerFile, "Achievements_3", cInfo[playerid][Achievements][3]);
  890.                 INI_WriteInt(playerFile, "PlayersKilled_0", cInfo[playerid][PlayersKilled][0]);
  891.                 INI_WriteInt(playerFile, "PlayersKilled_1", cInfo[playerid][PlayersKilled][1]);
  892.                 INI_WriteInt(playerFile, "PlayersKilled_2", cInfo[playerid][PlayersKilled][2]);
  893.                 INI_WriteInt(playerFile, "PlayersKilled_3", cInfo[playerid][PlayersKilled][3]);
  894.                 printf("<User: System> Saved ID %d", i);
  895.  
  896.                 INI_Close(playerFile);
  897.             }
  898.             GameModeExit();
  899.         }
  900.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  901.         return true;
  902.     }
  903.    
  904.     CMD:heal(playerid, params[]) {
  905.  
  906.         if(GetPVarInt(playerid, "Medic") == 1) {
  907.        
  908.             if(HealTimer[playerid] == 0) {
  909.  
  910.                 new
  911.                     Float:Health, Player;
  912.                    
  913.                 if(sscanf(params, "u", Player))
  914.                     return SendClientMessage(playerid, -1, "Usage: /heal [playerid]");
  915.                    
  916.                 GetPlayerHealth(Player, Health);
  917.                 if(Health <= 80) {
  918.                     SetPlayerHealth(Player, Health+20);
  919.                     SetTimerEx("HealPlayer", 15000, 0, "i", playerid);
  920.                     HealTimer[playerid] = 1;
  921.                     cInfo[playerid][PlayersHealed]++;
  922.                     if(cInfo[playerid][PlayersHealed] == 10) { //Rank 1
  923.                         TextDrawShowForPlayer(playerid, Achievement01_1);
  924.                         TextDrawShowForPlayer(playerid, Achievement01_2);
  925.                         SetTimerEx("HideAchievements", 5000, 0, "i", playerid);
  926.                     }
  927.                     else if(cInfo[playerid][PlayersHealed] == 20) { //Rank 2
  928.                         TextDrawShowForPlayer(playerid, Achievement01_1);
  929.                         TextDrawShowForPlayer(playerid, Achievement01_3);
  930.                         SetTimerEx("HideAchievements", 5000, 0, "i", playerid);
  931.                     }
  932.                     else if(cInfo[playerid][PlayersHealed] == 30) { //Rank 3
  933.                         TextDrawShowForPlayer(playerid, Achievement01_1);
  934.                         TextDrawShowForPlayer(playerid, Achievement01_4);
  935.                         SetTimerEx("HideAchievements", 5000, 0, "i", playerid);
  936.                     }
  937.                     else if(cInfo[playerid][PlayersHealed] == 40) { //Rank 4
  938.                         TextDrawShowForPlayer(playerid, Achievement01_1);
  939.                         TextDrawShowForPlayer(playerid, Achievement01_5);
  940.                         SetTimerEx("HideAchievements", 5000, 0, "i", playerid);
  941.                     }
  942.                     else if(cInfo[playerid][PlayersHealed] == 50) { //Rank 5
  943.                         TextDrawShowForPlayer(playerid, Achievement01_1);
  944.                         TextDrawShowForPlayer(playerid, Achievement01_6);
  945.                         SetTimerEx("HideAchievements", 5000, 0, "i", playerid);
  946.                     }
  947.                 }
  948.                 else return SendClientMessage(playerid, -1, "They have too much health to be healed!");
  949.             }
  950.             else return SendClientMessage(playerid, -1, "Please wait 15 seconds!");
  951.         }
  952.         else return SendClientMessage(playerid, -1, "You're not a medic!");
  953.         return true;
  954.     }
  955.    
  956.     CMD:stats(playerid, params[]) {
  957.         #pragma unused params
  958.        
  959.         new
  960.             string[128],
  961.             player_Name[MAX_PLAYER_NAME],
  962.             Float:Health,
  963.             Float:Armour;
  964.            
  965.         GetPlayerName(playerid, player_Name, sizeof(player_Name));
  966.         GetPlayerHealth(playerid, Health);
  967.         GetPlayerArmour(playerid, Armour);
  968.            
  969.         format(string, sizeof(string), "Name: %s | Authorization Level: %d | Score: %d | Cash: $%d | VIP: %d", player_Name, cInfo[playerid][AuthLvl], cInfo[playerid][Score], GetPlayerMoney(playerid), cInfo[playerid][VIP]);
  970.         SendClientMessage(playerid, -1, string);
  971.         format(string, sizeof(string), "Kills: %d | Deaths: %d | Health: %0.2f | Armour: %0.2f", cInfo[playerid][Kills], cInfo[playerid][Deaths], Health, Armour);
  972.         SendClientMessage(playerid, -1, string);
  973.         return true;
  974.     }
  975.    
  976.     CMD:sethealth(playerid, params[]) {
  977.         new
  978.             Health,
  979.             Player;
  980.  
  981.         if(cInfo[playerid][AuthLvl] >= 1) {
  982.            
  983.             if(sscanf(params, "ui", Player, Health))
  984.                 return SendClientMessage(playerid, -1, "Usage: /sethealth [playerid] [amount of health]");
  985.  
  986.             SetPlayerHealth(Player, Health);
  987.         }
  988.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  989.         return true;
  990.  
  991.     }
  992.    
  993.     CMD:setarmour(playerid, params[]) {
  994.         new
  995.             Armour,
  996.             Player;
  997.            
  998.         if(cInfo[playerid][AuthLvl] >= 1) {
  999.        
  1000.             if(sscanf(params, "ui", Player, Armour))
  1001.                 return SendClientMessage(playerid, -1, "Usage: /setarmour [playerid] [amount of armour]");
  1002.                
  1003.             SetPlayerArmour(Player, Armour);
  1004.        
  1005.         }
  1006.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1007.         return true;
  1008.  
  1009.     }
  1010.    
  1011.     CMD:kick(playerid, params[]) {
  1012.         new
  1013.             Player,
  1014.             Reason[50],
  1015.             string[128];
  1016.            
  1017.         if(cInfo[playerid][AuthLvl] >= 1) {
  1018.        
  1019.             if(sscanf(params, "us[128]", Player, Reason))
  1020.                 return SendClientMessage(playerid, -1, "Usage: /kick [playerid] [reason]");
  1021.                
  1022.             new
  1023.                 admin_Name[MAX_PLAYER_NAME],
  1024.                 player_Name[MAX_PLAYER_NAME];
  1025.  
  1026.             GetPlayerName(playerid, admin_Name, sizeof(admin_Name));
  1027.             GetPlayerName(Player, player_Name, sizeof(player_Name));
  1028.                
  1029.             if(strlen(Reason) > 50)
  1030.                 return SendClientMessage(playerid, -1, "\"Reason\" parameter too long! Keep it below 50 characters!");
  1031.                
  1032.             format(string, sizeof(string), "<ACMD> Administrator %s has booted %s from the server, Reason: %s", admin_Name, player_Name, Reason);
  1033.             SendClientMessageToAll(-1, string);
  1034.             Kick(Player);
  1035.         }
  1036.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1037.         return true;
  1038.  
  1039.     }
  1040.    
  1041.     CMD:ban(playerid, params[]) {
  1042.         new
  1043.             Player,
  1044.             Reason[50],
  1045.             string[128];
  1046.  
  1047.         if(cInfo[playerid][AuthLvl] >= 2) {
  1048.  
  1049.             if(sscanf(params, "us[128]", Player, Reason))
  1050.                 return SendClientMessage(playerid, -1, "Usage: /ban [playerid] [reason]");
  1051.  
  1052.             new
  1053.                 admin_Name[MAX_PLAYER_NAME],
  1054.                 player_Name[MAX_PLAYER_NAME];
  1055.  
  1056.             GetPlayerName(playerid, admin_Name, sizeof(admin_Name));
  1057.             GetPlayerName(Player, player_Name, sizeof(player_Name));
  1058.  
  1059.             if(strlen(Reason) > 50)
  1060.                 return SendClientMessage(playerid, -1, "\"Reason\" parameter too long! Keep it below 50 characters!");
  1061.  
  1062.             format(string, sizeof(string), "<ACMD> Administrator %s has banned %s from the server, Reason: %s", admin_Name, player_Name, Reason);
  1063.             SendClientMessageToAll(-1, string);
  1064.             BanEx(Player, Reason);
  1065.         }
  1066.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1067.         return true;
  1068.  
  1069.     }
  1070.    
  1071.     CMD:slap(playerid, params[]) {
  1072.         new
  1073.             Player,
  1074.             Float:Position[3];
  1075.    
  1076.         if(cInfo[playerid][AuthLvl] >= 1) {
  1077.        
  1078.             if(sscanf(params, "u", Player))
  1079.                 return SendClientMessage(playerid, -1, "Usage: /slap [playerid]");
  1080.                
  1081.             GetPlayerPos(Player, Position[0], Position[1], Position[2]);
  1082.            
  1083.             SetPlayerPos(Player, Position[0], Position[1], Position[2]+10);
  1084.        
  1085.         }
  1086.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1087.         return true;
  1088.        
  1089.     }
  1090.    
  1091.     CMD:checkhp(playerid, params[]) {
  1092.         new
  1093.             Player,
  1094.             Float:Health,
  1095.             string[128],
  1096.             player_Name[MAX_PLAYER_NAME];
  1097.    
  1098.         if(cInfo[playerid][AuthLvl] >= 2) {
  1099.  
  1100.             if(sscanf(params, "u", Player))
  1101.                 return SendClientMessage(playerid, -1, "Usage: /checkhp [playerid]");
  1102.  
  1103.             TogglePlayerControllable(Player, 0);
  1104.  
  1105.             GetPlayerHealth(Player, Health);
  1106.             GetPlayerName(Player, player_Name, sizeof(player_Name));
  1107.            
  1108.             format(string, sizeof(string), "<ACMD> Health Check for %s (ID %d).. Current Health: %0.2f", player_Name, Player, Health);
  1109.             SendClientMessage(playerid, -1, string);
  1110.            
  1111.             HealthBefore[playerid][0] = Health;
  1112.             SetPlayerHealth(Player, Health-1);
  1113.            
  1114.             SetTimerEx("CheckHP", 1000, 0, "ii", playerid, Player);
  1115.  
  1116.         }
  1117.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1118.         return true;
  1119.    
  1120.     }
  1121.    
  1122.     CMD:authorize(playerid, params[]) {
  1123.         new
  1124.             Player,
  1125.             AuthLevel;
  1126.  
  1127.         if(cInfo[playerid][AuthLvl] >= 4) {
  1128.  
  1129.             if(sscanf(params, "ui", Player, AuthLevel))
  1130.                 return SendClientMessage(playerid, -1, "Usage: /authorize [playerid] [authorization level]");
  1131.  
  1132.             cInfo[Player][AuthLvl] = AuthLevel;
  1133.         }
  1134.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1135.         return true;
  1136.  
  1137.     }
  1138.    
  1139.     CMD:createevent(playerid, params[]) {
  1140.         new
  1141.             WeaponID,
  1142.             RewardAmount,
  1143.             string[128],
  1144.             player_Name[MAX_PLAYER_NAME];
  1145.    
  1146.         if(cInfo[playerid][AuthLvl] >= 3) {
  1147.    
  1148.         if(sscanf(params, "ii", WeaponID, RewardAmount))
  1149.             return SendClientMessage(playerid, -1, "Usage: /createevent [weapon id] [reward amount]");
  1150.  
  1151.         GetPlayerPos(playerid, g_EventPosition[0], g_EventPosition[1], g_EventPosition[2]);
  1152.         GetPlayerFacingAngle(playerid, g_EventPosition[3]);
  1153.         GetPlayerName(playerid, player_Name, sizeof(player_Name));
  1154.            
  1155.         g_EventWeapon = WeaponID;
  1156.         g_EventReward = RewardAmount;
  1157.            
  1158.         format(string, sizeof(string), "<ACMD> Administrator %s has created an event! /join to join it!", player_Name);
  1159.         SendClientMessageToAll(-1, string);
  1160.        
  1161.         g_EventOpen = 1;
  1162.         g_EventPlayers = 0;
  1163.  
  1164.         }
  1165.         else return SendClientMessage(playerid, -1, "Invalid Authorization Level.");
  1166.         return true;
  1167.    
  1168.     }
  1169.    
  1170.     CMD:startevent(playerid, params[]) {
  1171.         #pragma unused params
  1172.         if(cInfo[playerid][AuthLvl] >= 3) {
  1173.        
  1174.             foreach(Player, i) {
  1175.  
  1176.                 if(pInEvent[i] == 1) {
  1177.  
  1178.                     if(g_EventOpen == 1) {
  1179.  
  1180.                         TogglePlayerControllable(i, 1);
  1181.                         GameTextForPlayer(i, "~r~Be the Last Man Standing!", 2000, 3);
  1182.  
  1183.                     }
  1184.                    
  1185.                 }
  1186.                
  1187.             }
  1188.            
  1189.         }
  1190.    
  1191.         return true;
  1192.    
  1193.     }
  1194.    
  1195.     CMD:join(playerid, params[]) {
  1196.         #pragma unused params
  1197.         if(pInEvent[playerid] == 0) {
  1198.        
  1199.             if(g_EventOpen == 1) {
  1200.            
  1201.            
  1202.                 SetPlayerPos(playerid, g_EventPosition[0], g_EventPosition[1], g_EventPosition[2]);
  1203.                 SetPlayerFacingAngle(playerid, g_EventPosition[3]);
  1204.                
  1205.                 ResetPlayerWeapons(playerid);
  1206.                 GivePlayerWeapon(playerid, g_EventWeapon, 100000);
  1207.                
  1208.                 GameTextForPlayer(playerid, "~g~Joined event~n~~w~Please wait..", 3000, 3);
  1209.                
  1210.                 TogglePlayerControllable(playerid, 0);
  1211.                
  1212.                 g_EventPlayers++;
  1213.                 pInEvent[playerid] = 1; //Now in the event!
  1214.            
  1215.             }
  1216.             else return SendClientMessage(playerid, -1, "The event is not open!");
  1217.        
  1218.         }
  1219.         else return SendClientMessage(playerid, -1, "You're already in the event!");
  1220.    
  1221.         return true;
  1222.        
  1223.     }
  1224.    
  1225.     #if defined DEBUGMODE //Debug commands!
  1226.    
  1227.     CMD:getinfo(playerid, params[]) {
  1228.     #pragma unused params
  1229.  
  1230.         new
  1231.             string[128],
  1232.             Float:Position[4];
  1233.  
  1234.         GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
  1235.         GetPlayerFacingAngle(playerid, Position[3]);
  1236.         format(string, sizeof(string), "{FFFFFF}XPos: %f, YPos: %f, ZPos: %f, FPos: %f, Int: %d, VW: %d", Position[0], Position[1], Position[2], Position[3], GetPlayerInterior(playerid), GetPlayerVirtualWorld(playerid));
  1237.         SendClientMessage(playerid, -1, string);
  1238.         return true;
  1239.     }
  1240.    
  1241.     CMD:a(playerid, params[])
  1242.     {
  1243.         #pragma unused params
  1244.         return cInfo[playerid][AuthLvl] = 5;
  1245.     }
  1246.    
  1247.     #endif
  1248.    
  1249.     OnPlayerRegister(playerid, password[]) {
  1250.    
  1251.         new
  1252.             uFile[50],
  1253.             player_Name[MAX_PLAYER_NAME];
  1254.  
  1255.         GetPlayerName(playerid, player_Name, sizeof(player_Name));
  1256.         format(uFile, 50, USER_DIRECTORY, player_Name);
  1257.  
  1258.         new
  1259.             INI:playerFile = INI_Open(uFile);
  1260.  
  1261.         INI_WriteString(playerFile, "Password", password);
  1262.         INI_WriteInt(playerFile, "Authorization", 0);
  1263.         INI_WriteInt(playerFile, "VIP", 0);
  1264.         INI_WriteInt(playerFile, "Cash", 1);
  1265.         INI_WriteInt(playerFile, "Skin", 0);
  1266.         INI_WriteInt(playerFile, "Score", 0);
  1267.         INI_WriteInt(playerFile, "Kills", 0);
  1268.         INI_WriteInt(playerFile, "Deaths", 0);
  1269.         INI_WriteInt(playerFile, "PlayersHealed", 0);
  1270.         INI_WriteInt(playerFile, "Achievements_0", 0);
  1271.         INI_WriteInt(playerFile, "Achievements_1", 0);
  1272.         INI_WriteInt(playerFile, "Achievements_2", 0);
  1273.         INI_WriteInt(playerFile, "Achievements_3", 0);
  1274.  
  1275.         INI_Close(playerFile);
  1276.  
  1277.         SetPVarInt(playerid, "Logged", 1);
  1278.         return true;
  1279.     }
  1280.    
  1281.     public UserDataLoad(playerid,name[],value[]) {
  1282.    
  1283.         INI_String("Password", cInfo[playerid][Password], 128);
  1284.         INI_Int("Authorization", cInfo[playerid][AuthLvl]);
  1285.         INI_Int("VIP", cInfo[playerid][VIP]);
  1286.         INI_Int("Cash", cInfo[playerid][Cash]);
  1287.         INI_Int("Skin", cInfo[playerid][CustomSkin]);
  1288.         INI_Int("Score", cInfo[playerid][Score]);
  1289.         INI_Int("Kills", cInfo[playerid][Kills]);
  1290.         INI_Int("Deaths", cInfo[playerid][Deaths]);
  1291.         INI_Int("PlayersHealed", cInfo[playerid][PlayersHealed]);
  1292.         INI_Int("Achievements_0", cInfo[playerid][Achievements][0]);
  1293.         INI_Int("Achievements_1", cInfo[playerid][Achievements][1]);
  1294.         INI_Int("Achievements_2", cInfo[playerid][Achievements][2]);
  1295.         INI_Int("Achievements_3", cInfo[playerid][Achievements][3]);
  1296.         return true;
  1297.     }
  1298.    
  1299.     forward HealPlayer(playerid);
  1300.     public HealPlayer(playerid) {
  1301.  
  1302.         HealTimer[playerid] = 0;
  1303.         return true;
  1304.  
  1305.     }
  1306.    
  1307.     forward CheckHP(playerid, Player);
  1308.     public CheckHP(playerid, Player) {
  1309.         new
  1310.             Float:Health, string[128];
  1311.    
  1312.         GetPlayerHealth(Player, Health);
  1313.         HealthBefore[Player][1] = Health;
  1314.         if(HealthBefore[Player][0] == HealthBefore[Player][1]) {
  1315.  
  1316.             format(string, sizeof(string), "<ACMD> Health1: %0.2f | Health2: %0.2f -- {ED134A}Possible Hacks (Not 100 Percent!)", HealthBefore[Player][0], HealthBefore[Player][1]);
  1317.         }
  1318.         else {
  1319.             format(string, sizeof(string), "<ACMD> Health1: %0.2f | Health2: %0.2f -- {2AB50E}Not cheating!", HealthBefore[Player][0], HealthBefore[Player][1]);
  1320.             SetPlayerHealth(Player, Health+1);
  1321.         }
  1322.         TogglePlayerControllable(Player, 1);
  1323.         SendClientMessage(playerid, -1, string);
  1324.         return true;
  1325.    
  1326.     }
  1327.    
  1328.     forward HideAchievements(playerid);
  1329.     public HideAchievements(playerid) {
  1330.  
  1331.         TextDrawHideForPlayer(playerid, Achievement01_1);
  1332.         TextDrawHideForPlayer(playerid, Achievement01_2);
  1333.         TextDrawHideForPlayer(playerid, Achievement01_3);
  1334.         TextDrawHideForPlayer(playerid, Achievement01_4);
  1335.         TextDrawHideForPlayer(playerid, Achievement01_5);
  1336.         TextDrawHideForPlayer(playerid, Achievement01_6);
  1337.         TextDrawHideForPlayer(playerid, Achievement02_1);
  1338.         TextDrawHideForPlayer(playerid, Achievement02_2);
  1339.         TextDrawHideForPlayer(playerid, Achievement02_3);
  1340.         TextDrawHideForPlayer(playerid, Achievement02_4);
  1341.         TextDrawHideForPlayer(playerid, Achievement02_5);
  1342.         TextDrawHideForPlayer(playerid, Achievement03_1);
  1343.         TextDrawHideForPlayer(playerid, Achievement03_2);
  1344.         TextDrawHideForPlayer(playerid, Achievement03_3);
  1345.         TextDrawHideForPlayer(playerid, Achievement03_4);
  1346.         TextDrawHideForPlayer(playerid, Achievement03_5);
  1347.         TextDrawHideForPlayer(playerid, Achievement04_1);
  1348.         TextDrawHideForPlayer(playerid, Achievement04_2);
  1349.         TextDrawHideForPlayer(playerid, Achievement04_3);
  1350.         TextDrawHideForPlayer(playerid, Achievement04_4);
  1351.         TextDrawHideForPlayer(playerid, Achievement04_5);
  1352.         return true;
  1353.  
  1354.     }
  1355.    
  1356.     stock IsNumeric(const string[]) {
  1357.  
  1358.         for (new i = 0, j = strlen(string); i < j; i++)
  1359.         {
  1360.                 if (string[i] > '9' || string[i] < '0') return 0;
  1361.         }
  1362.         return true;
  1363.     }
  1364.    
  1365.     stock Float:GetDistanceBetweenPoints(Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2) {
  1366.         x1 -= x2;
  1367.         y1 -= y2;
  1368.         z1 -= z2;
  1369.         return floatsqroot((x1 * x1) + (y1 * y1) + (z1 * z1));
  1370.     }
  1371.    
  1372.     stock GetClosestPlayer(playerid,Float:limit) { //By cessil
  1373.         new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2;
  1374.         GetPlayerPos(playerid,x1,y1,z1);
  1375.         new Float:Range = 999.9;
  1376.         new id = -1;
  1377.         foreach(Player,i)
  1378.         {
  1379.             if(playerid != i)
  1380.             {
  1381.                 GetPlayerPos(i,x2,y2,z2);
  1382.                 new Float:Dist = GetDistanceBetweenPoints(x1,y1,z1,x2,y2,z2);
  1383.                 if(floatcmp(Range,Dist) == 1 && floatcmp(limit,Range) == 1)
  1384.                 {
  1385.                     Range = Dist;
  1386.                     id = i;
  1387.                 }
  1388.             }
  1389.         }
  1390.         return id;
  1391.     }
Advertisement
Add Comment
Please, Sign In to add comment