Recent Posts
WHOIS | 5 sec ago
WHOIS | 9 sec ago
WHOIS | 13 sec ago
WHOIS | 15 sec ago
WHOIS | 16 sec ago
WHOIS | 17 sec ago
None | 22 sec ago
WHOIS | 30 sec ago
WHOIS | 39 sec ago
PHP | 43 sec ago
Sitereport
Find cool info about any domain on the internet?
visit sitereport
Free Subdomains
Want a pastebin.com sub-domain for your community?
learn more...
What is pastebin?
Pastebin is a website that hosts all your text & code on dedicated servers for easy sharing.
learn more...
Learn a little bit about the new Pastebin.com on our help page. hide message
By eddy on the 4th of Jul 2009 09:23:09 PM Download | Raw | Embed | Report
  1. #include <a_samp>
  2. #include <dini>
  3. #include <JunkBuster>
  4.  
  5. //CONFIGURATION
  6. #define RoundTime 10 //(number of minutes)
  7. new AllowPrimeMinisterToDriveCars = 1;
  8. #define StartMoney 100
  9. //END OF CONFIGURATION
  10.  
  11. #define TEAMLESS 0
  12. #define BODYGUARD 1
  13. #define TERRORIST 2
  14. #define PM 3
  15. #define POLICE 4
  16. #define PSYCHO 5
  17.  
  18. //TEAMCOLORS:
  19. #define TEAMCOLOR_TEAMLESS 0xA9A9A9AA //grey
  20. #define TEAMCOLOR_BODYGUARD 0x87CEEBAA //Lightblue
  21. #define TEAMCOLOR_TERRORIST 0xFF0000AA //Red
  22. #define TEAMCOLOR_PM 0xFFFF00AA //Yellow
  23. #define TEAMCOLOR_POLICE 0x0000FFAA //DarkBlue
  24. #define TEAMCOLOR_PSYCHO 0x32CD32AA //Limegreen
  25.  
  26. #define CARFILE "Protect The PM/Vehicles.txt"
  27.  
  28. #define GAMEMODE        "Carlito's Roleplay" // This is what the gamemode text will be set to.
  29. #define GAMEMODE_USE_VERSION    "Yes" // This shows the Server name and the version in Gamemode text, if set to "No" it will only display the gamemode name.
  30. #define MAP_NAME        "x-serverz.com" // This is what the map name will be set to.
  31. #define SERVER_NAME     "Edit Line 78 (HostName)" // This is what the hostname/servername will be set to.
  32. #define WEBSITE "sa-mp.com" // This is what the website will be set to.
  33. #define VERSION "V0.3" // Script Version
  34. #define LAST_UPDATE     "23rd February 2009" // Script was last updated.
  35. #define DEVELOPER       "Scott Davey" // Developer Name.
  36. #define PASSWORD        "" // Server Password
  37. #define SCRIPT_LINES    16505 // For printing the script lines amount, unfortunately it has to be updated manually.
  38. //==============================================================================================
  39. static gTeam[MAX_PLAYERS];
  40. new IsPMChosen;
  41. new RoundTimer;
  42. new PMscore, TerroristScore;
  43. new Text:Textdraw;
  44. new TimeLeft;
  45. new TextdrawString[128];
  46. new IsDeadPM = -1;
  47.  
  48. new TeamNames[6][15] =
  49. {
  50.         "No Team",
  51.         "Bodyguard",
  52.         "Terrorist",
  53.         "Mayor",
  54.         "PoliceOfficer",
  55.         "Psycho"
  56. };
  57.  
  58. main()
  59. {
  60.         print(" -------------------------------------- ");
  61.         print("|      Attack on the Mayor             |");
  62.         print("|                  by                  |");
  63.         print("|              =>Sandra<=              |");
  64.         print(" -------------------------------------- ");
  65.         if(dini_Exists("Protect The PM/Scores.txt"))
  66.         {
  67.                 print("|             Current Score:           |");
  68.                 printf("|  Prime Minister %02d - %02d Terrorists   |", dini_Int("Protect The PM/Scores.txt", "PMSCORE"), dini_Int("Protect The PM/Scores.txt", "TERRORISTSCORE"));
  69.             print(" -------------------------------------- ");
  70.         }
  71. }
  72.  
  73.  
  74. public OnGameModeInit()
  75. {
  76.         SetGameModeText("Protect The PM");
  77.         SetWorldTime(3);
  78.  
  79.         //SKINS:
  80.        
  81.         //BodyGuards:
  82.         AddPlayerClass(163, 0.0, 0.0, 0.0, 0.0, 23, 500, 28, 750, 30, 500);
  83.         AddPlayerClass(164, 0.0, 0.0, 0.0, 0.0, 23, 500, 28, 750, 30, 500);
  84.         AddPlayerClass(165, 0.0, 0.0, 0.0, 0.0, 23, 500, 28, 750, 30, 500);
  85.         AddPlayerClass(166, 0.0, 0.0, 0.0, 0.0, 23, 500, 28, 750, 30, 500);
  86.        
  87.         //Terrorists:
  88.         AddPlayerClass(121, 0.0, 0.0, 0.0, 0.0, 4, 1, 30, 200, 32, 150);
  89.         AddPlayerClass(122, 0.0, 0.0, 0.0, 0.0, 4, 1, 30, 200, 32, 150);
  90.         AddPlayerClass(181, 0.0, 0.0, 0.0, 0.0, 4, 1, 30, 200, 32, 150);
  91.        
  92.         //Mayor:
  93.         AddPlayerClass(147, 0.0, 0.0, 0.0, 0.0, 15, 1, 0, 0, 0, 0);
  94.        
  95.         //Police:
  96.     AddPlayerClass(280, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  97.     AddPlayerClass(281, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  98.     AddPlayerClass(282, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  99.     AddPlayerClass(283, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  100.     AddPlayerClass(284, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  101.     AddPlayerClass(285, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  102.     AddPlayerClass(288, 0.0, 0.0, 0.0, 0.0, 22, 500, 25, 100, 0, 0);
  103.    
  104.         //Psycho's:
  105.         AddPlayerClass(79, 0.0, 0.0, 0.0, 0.0, 6, 1, 28, 500, 0, 0);
  106.         AddPlayerClass(137, 0.0, 0.0, 0.0, 0.0, 6, 1, 28, 500, 0, 0);
  107.         AddPlayerClass(213, 0.0, 0.0, 0.0, 0.0, 6, 1, 28, 500, 0, 0);
  108.         AddPlayerClass(230, 0.0, 0.0, 0.0, 0.0, 6, 1, 28, 500, 0, 0);
  109.         AddPlayerClass(239, 0.0, 0.0, 0.0, 0.0, 6, 1, 28, 500, 0, 0);
  110.        
  111.         //Vehicle and object for ClassSelection-Screen:
  112.         AddStaticVehicle(484, 4498.3254,-2517.7302,-0.4128,138.2467, -1, -1);
  113.         CreateObject(12990, 4495.664063, -2510.759155, 2.373306, 0.0000, 0.0000, 270.0000);
  114.  
  115.         //Pickups
  116.         AddStaticPickup(1242, 2, -2723.0383,-320.7197,7.8438); //Armor @ PM-spawn
  117.         AddStaticPickup(1242, 2, -2718.2517,-315.0976,7.8438); //Armor @ PM-spawn
  118.  
  119.         //Load other Vehicles:
  120.         LoadVehicles();
  121.  
  122.         if(!dini_Exists("Protect The PM/Scores.txt"))
  123.         {
  124.             dini_Create("Protect The PM/Scores.txt");
  125.             dini_IntSet("Protect The PM/Scores.txt", "MayorSCORE", 0);
  126.             dini_IntSet("Protect The PM/Scores.txt", "TERRORISTSCORE", 0);
  127.         }
  128.         PMscore = dini_Int("Protect The PM/Scores.txt", "PMSCORE");
  129.         TerroristScore = dini_Int("Protect The PM/Scores.txt", "TERRORISTSCORE");
  130.         format(TextdrawString, 128, " ");
  131.         Textdraw = TextDrawCreate(480, 420, TextdrawString);
  132.         TextDrawLetterSize(Textdraw,0.40,1.10);
  133.         TextDrawSetShadow(Textdraw, 0);
  134.         TextDrawSetOutline(Textdraw, 1);
  135.        
  136.         return 1;
  137. }
  138.  
  139. public OnGameModeExit()
  140. {
  141.         return 1;
  142. }
  143.  
  144. public OnPlayerRequestClass(playerid, classid)
  145. {
  146.         SetPlayerWeather(playerid, 9);
  147.         SetPlayerPos(playerid, 4480.9756,-2510.5552,3.6747);
  148.     SetPlayerCameraPos(playerid, 4475.0513,-2508.5028,4.1533);
  149.     SetPlayerCameraLookAt(playerid, 4480.9756,-2510.5552,3.6747);
  150.     SetPlayerFacingAngle(playerid, 91.9195);
  151.         switch(classid)
  152.         {
  153.                 case 0..3:
  154.                 {
  155.                     GameTextForPlayer(playerid, "~b~Bodyguard", 999999, 6);
  156.                     gTeam[playerid] = BODYGUARD;
  157.                 }
  158.                 case 4..6:
  159.                 {
  160.                     GameTextForPlayer(playerid, "~r~Terrorist", 999999, 6);
  161.                     gTeam[playerid] = TERRORIST;
  162.                 }
  163.                 case 7:
  164.                 {
  165.                     GameTextForPlayer(playerid, "~y~Mayor", 999999, 6);
  166.                     if(IsPMChosen == 1)
  167.                     {
  168.                         GameTextForPlayer(playerid, "~y~Mayor~n~~r~Not Available", 999999, 6);
  169.                         }
  170.                     gTeam[playerid] = PM;
  171.                 }
  172.                 case 8..14:
  173.                 {
  174.                     GameTextForPlayer(playerid, "~b~Police", 999999, 6);
  175.                     gTeam[playerid] = POLICE;
  176.                 }
  177.                 case 15..19:
  178.                 {
  179.                     GameTextForPlayer(playerid, "~r~Psycho", 999999, 6);
  180.                     gTeam[playerid] = PSYCHO;
  181.                 }
  182.         }
  183.         return 1;
  184. }
  185.  
  186. public OnPlayerRequestSpawn(playerid)
  187. {
  188.         new pName[MAX_PLAYER_NAME], str[128];
  189.         GetPlayerName(playerid, pName, sizeof(pName));
  190.        
  191.         if(IsPMChosen == 1 && gTeam[playerid] == PM)
  192.         {
  193.                 return 0;
  194.         }
  195.         else if(IsPMChosen == 0 && gTeam[playerid] == PM)
  196.         {
  197.             IsPMChosen = 1;
  198.         }
  199.         format(str, sizeof(str), "%s is now a %s", pName, TeamNames[gTeam[playerid]]);
  200.         SendClientMessageToAll(0xFFFFFFAA, str);
  201.         return 1;
  202. }
  203.  
  204. public OnPlayerConnect(playerid)
  205. {
  206.     new pName[MAX_PLAYER_NAME], str[128];
  207.     GetPlayerName(playerid, pName, sizeof(pName));
  208.     format(str, sizeof(str), "%s has joined the server!", pName);
  209.     SendClientMessageToAll(0xA9A9A9AA, str);
  210.     SendDeathMessage(playerid, playerid, 200);
  211.     gTeam[playerid] = TEAMLESS;
  212.     Muted[playerid] = 0;
  213.     SetPlayerColor(playerid, TEAMCOLOR_TEAMLESS);
  214.     PlayerPlaySound(playerid, 1188, 0.0, 0.0, 0.0);
  215.     GivePlayerMoney(playerid, StartMoney);
  216.         return 1;
  217. }
  218.  
  219. public OnPlayerDisconnect(playerid, reason)
  220. {
  221.     new pName[MAX_PLAYER_NAME], str[128];
  222.     GetPlayerName(playerid, pName, sizeof(pName));
  223.     format(str, sizeof(str), "%s has left the server.", pName);
  224.     SendClientMessageToAll(0xA9A9A9AA, str);
  225.     SendDeathMessage(playerid, playerid, 201);
  226.     if(gTeam[playerid] == PM)
  227.         {
  228.             format(str, sizeof(str), "%s is no longer the Mayor", pName);
  229.             SendClientMessageToAll(0xFFA500AA, str);
  230.             TextDrawHideForAll(Textdraw);
  231.             IsPMChosen = 0;
  232.             KillTimer(RoundTimer);
  233.         }
  234.         return 1;
  235. }
  236.  
  237. public OnPlayerSpawn(playerid)
  238. {
  239.         GameTextForPlayer(playerid, " ", 10, 3);
  240.     SetPlayerWeather(playerid, 1);
  241.     if(playerid == IsDeadPM)
  242.     {
  243.         TogglePlayerControllable(playerid, 0);
  244.         }
  245.     switch(gTeam[playerid])
  246.     {
  247.         case BODYGUARD:
  248.         {
  249.             SetPlayerPos(playerid, (-2787.6155+random(66)), (-294.2365+random(8)), 7.04);
  250.             SetPlayerFacingAngle(playerid, random(360));
  251.             SetPlayerColor(playerid, TEAMCOLOR_BODYGUARD);
  252.         }
  253.         case TERRORIST:
  254.         {
  255.             SetPlayerPos(playerid, (1672.6182+random(23)), (1440.2610+random(15)), 10.7791);
  256.             SetPlayerFacingAngle(playerid, random(360));
  257.             SetPlayerColor(playerid, TEAMCOLOR_TERRORIST);
  258.                 }
  259.         case PM:
  260.         {
  261.             SetPlayerPos(playerid, -2721.3049,-317.2299,7.8438);
  262.             SetPlayerFacingAngle(playerid, 45.857);
  263.             SetPlayerColor(playerid, TEAMCOLOR_PM);
  264.             if(playerid != IsDeadPM)
  265.                         {
  266.                     RoundTimer = SetTimer("EndRound", 1000, 1);
  267.                     TimeLeft = RoundTime*60;
  268.                         }
  269.         }
  270.         case POLICE:
  271.         {
  272.             SetPlayerPos(playerid, (-1639.0775+random(66)), (655.8917+random(14)), 7.1901);
  273.             SetPlayerFacingAngle(playerid, random(360));
  274.             SetPlayerColor(playerid, TEAMCOLOR_POLICE);
  275.                 }
  276.                 case PSYCHO:
  277.         {
  278.             SetPlayerPos(playerid, (2471.2419+random(36)), (-1684.1920+random(30)), 13.546);
  279.             SetPlayerFacingAngle(playerid, random(360));
  280.             SetPlayerColor(playerid, TEAMCOLOR_PSYCHO);
  281.         }
  282.  
  283.         }
  284.    
  285.     SetCameraBehindPlayer(playerid);
  286.    
  287.         return 1;
  288. }
  289.  
  290. public OnPlayerDeath(playerid, killerid, reason)
  291. {
  292.         SendDeathMessage(killerid, playerid, reason);
  293.         SetPlayerScore(playerid, GetPlayerScore(playerid)-1);
  294.         if(killerid != INVALID_PLAYER_ID)
  295.         {
  296.             SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  297.         }
  298.         if(gTeam[playerid] == PM)
  299.         {
  300.                 //The Prime Minister Died!
  301.                 IsDeadPM = playerid;
  302.                 IsPMChosen = 0;
  303.                 KillTimer(RoundTimer);
  304.                 TerroristScore++;
  305.                 new str[128];
  306.                 format(str, 128, "The Mayor is killed!", RoundTime);
  307.                 SendClientMessageToAll(0xFFFF00AA, " ");
  308.                 SendClientMessageToAll(0xFFFF00AA, " ");
  309.                 SendClientMessageToAll(0xFFFF00AA, str);
  310.                 SendClientMessageToAll(0xFFFF00AA, " ");
  311.                 SendClientMessageToAll(0xFFFF00AA, "A new round will start soon! Please Wait!");
  312.                 SendClientMessageToAll(0xFFFF00AA, " ");
  313.             SendClientMessageToAll(0xFFFF00AA, "Scores:");
  314.             format(str, 128, "-- Mayor/Bodyguards & Police: %d", PMscore);
  315.             SendClientMessageToAll(0xFFFF00AA, str);
  316.             format(str, 128, "-- Terrorists & Psycho's: %d", TerroristScore);
  317.             SendClientMessageToAll(0xFFFF00AA, str);
  318.             SendClientMessageToAll(0xFFFF00AA, " ");
  319.             TextDrawHideForAll(Textdraw);
  320.                 for(new i; i<MAX_PLAYERS; i++)
  321.                 {
  322.                     if(IsPlayerConnected(i))
  323.                     {
  324.                         PlayerPlaySound(i, 1187, 0.0, 0.0, 0.0);
  325.                         if(gTeam[i] == TERRORIST || gTeam[i] == PSYCHO)
  326.                         {
  327.                             GameTextForPlayer(i, "~y~Congratulations!", 8000, 3);
  328.                                 }
  329.                                 if(gTeam[i] == PM || gTeam[i] == BODYGUARD || gTeam[i] == POLICE)
  330.                         {
  331.                             GameTextForPlayer(i, "~r~Game Over", 8000, 3);
  332.                                 }
  333.                         }
  334.                 }
  335.                 SetTimer("StartNewGame", 8000, 0);
  336.                 TogglePlayerControllable(playerid, 0);
  337.            
  338.         }
  339.         return 1;
  340. }
  341.  
  342. public OnPlayerText (playerid, text[])
  343. {
  344.     if(Muted[playerid] == 1)
  345.         {
  346.                 SendClientMessage(playerid, 0xFF0000AA, "You're muted!");
  347.                 return 0;
  348.         }
  349.         if(text[0] == '#')
  350.         {
  351.             //TeamChat
  352.                 new str[128], pn[24];
  353.                 GetPlayerName(playerid, pn, 24);
  354.                 format(str, 128, "[TEAM]%s: %s", pn, text[1]);
  355.                 if(gTeam[playerid] == PM || gTeam[playerid] == BODYGUARD || gTeam[playerid] == POLICE)
  356.                 {
  357.                         for(new i; i<MAX_PLAYERS; i++)
  358.                         {
  359.                                 if(IsPlayerConnected(i))
  360.                                 {
  361.                                     if(gTeam[i] == PM || gTeam[i] == BODYGUARD || gTeam[i] == POLICE)
  362.                                         {
  363.                                             SendClientMessage(i, 0xFFFF00AA, str);
  364.                                 }
  365.                                 }
  366.                         }
  367.                 }
  368.                 if(gTeam[playerid] == TERRORIST)
  369.                 {
  370.                     for(new i; i<MAX_PLAYERS; i++)
  371.                         {
  372.                             if(IsPlayerConnected(i))
  373.                                 {
  374.                                     if(gTeam[i] == TERRORIST)
  375.                                         {
  376.                                             SendClientMessage(i, 0xFFFF00AA, str);
  377.                                         }
  378.                                 }
  379.                         }
  380.                 }
  381.                 if(gTeam[playerid] == PSYCHO)
  382.                 {
  383.                     for(new i; i<MAX_PLAYERS; i++)
  384.                         {
  385.                             if(IsPlayerConnected(i))
  386.                                 {
  387.                                     if(gTeam[i] == PSYCHO)
  388.                                         {
  389.                                             SendClientMessage(i, 0xFFFF00AA, str);
  390.                                         }
  391.                                 }
  392.                         }
  393.                 }
  394.                 return 0;
  395.         }
  396.         return 1;
  397. }
  398.  
  399. public OnPlayerPrivmsg(playerid, recieverid, text[])
  400. {
  401.         if(Muted[playerid] == 1)
  402.         {
  403.                 SendClientMessage(playerid, 0xFF0000AA, "You're muted!");
  404.                 return 0;
  405.         }
  406.         return 1;
  407. }
  408.  
  409. public OnPlayerCommandText(playerid, cmdtext[])
  410. {
  411.     if(strcmp("/help", cmdtext, true) == 0)
  412.         {
  413.             SendClientMessage(playerid, 0x90EE90AA, "Commands: /kill ** /score ** /duty");
  414.             if(IsPlayerAdmin(playerid))
  415.                 {
  416.                 SendClientMessage(playerid, 0x90EE90AA, "AdminCommands: /kick ** /ban ** /(un)mute ** /(un)freeze ** /resetscores");
  417.                 }
  418.             SendClientMessage(playerid, 0x90EE90AA, "Teamchat: #[text]    **Example: #Hello Team");
  419.             return 1;
  420.         }
  421.  
  422.         if(strcmp("/kill", cmdtext, true) == 0)
  423.         {
  424.             SetPlayerHealth(playerid, 0.0);
  425.             return 1;
  426.         }
  427.        
  428.         if(strcmp("/score", cmdtext, true) == 0)
  429.         {
  430.             new str[45];
  431.             SendClientMessage(playerid, 0xFFFFFFAA, "Scores:");
  432.             format(str, 128, "Prime Minister/Bodyguards & Police: %d", PMscore);
  433.             SendClientMessage(playerid, 0xFFFFFFAA, str);
  434.             format(str, 128, "Terrorists & Psycho's: %d", TerroristScore);
  435.             SendClientMessage(playerid, 0xFFFFFFAA, str);
  436.             return 1;
  437.         }
  438.        
  439.         if(strcmp("/duty", cmdtext, true) == 0)
  440.         {
  441.             new str[128];
  442.                 switch(gTeam[playerid])
  443.                 {
  444.                     case TEAMLESS:
  445.                     {
  446.                         SendClientMessage(playerid, 0x6495EDAA, "Please choose a character first!");
  447.                 }
  448.                     case BODYGUARD:
  449.                 {
  450.                         SendClientMessage(playerid, 0x6495EDAA, "You are a Bodyguard, your duty is to protect the Mayor (Yellow)");
  451.                         SendClientMessage(playerid, 0x6495EDAA, "You work together with the Police (Dark-Blue)");
  452.                         SendClientMessage(playerid, 0x6495EDAA, "Your enemies are the Terrorists (Red) and Psycho's (Green)");
  453.                 }
  454.                 case TERRORIST:
  455.                     {
  456.                         SendClientMessage(playerid, 0x6495EDAA, "You are a Terrorist, your duty is to kill the Mayor (Yellow)");
  457.                         SendClientMessage(playerid, 0x6495EDAA, "Your enemies are the Psycho's (Green), Bodyguards and the Police (Blue)");
  458.                 }
  459.                 case PM:
  460.                     {
  461.                         format(str, 128, "You are the Prime Minister, your duty is to survive for %d minutes", RoundTime);
  462.                         SendClientMessage(playerid, 0x6495EDAA, str);
  463.                         SendClientMessage(playerid, 0x6495EDAA, "You will be protected by your bodyguards and the Police (Blue)");
  464.                         SendClientMessage(playerid, 0x6495EDAA, "Your enemies are the Terrorists (Red) and Psycho's (Green)");
  465.                 }
  466.                 case POLICE:
  467.                     {
  468.                         SendClientMessage(playerid, 0x6495EDAA, "You are a Policeofficer, your duty is to kill the Psycho's and Terrorists (Red and Green)");
  469.                         SendClientMessage(playerid, 0x6495EDAA, "You work together with the Bodyguards (Dark-Blue) protecting the Mayor");
  470.                 }
  471.                 case PSYCHO:
  472.                     {
  473.                         SendClientMessage(playerid, 0x6495EDAA, "You are a Psycho, your duty is to kill everybody. Everybody is your enemy.");
  474.                 }
  475.                 }
  476.                 return 1;
  477.         }
  478.        
  479.        
  480.         //AdminCommands
  481.        
  482.         if(strcmp("/resetscores", cmdtext, true) == 0)
  483.         {
  484.                 if(IsPlayerAdmin(playerid))
  485.                 {
  486.                         PMscore = 0;
  487.                         TerroristScore = 0;
  488.                         dini_IntSet("Protect The PM/Scores.txt", "PMSCORE", 0);
  489.                 dini_IntSet("Protect The PM/Scores.txt", "TERRORISTSCORE", 0);
  490.                 SendClientMessageToAll(0xA9A9A9AA, "An admin has set the scores to 0");
  491.                         return 1;
  492.                 }
  493.         }
  494.        
  495.         if(strcmp("/kick", cmdtext, true, 5) == 0)
  496.         {
  497.                 if(IsPlayerAdmin(playerid))
  498.                 {
  499.                     if(!strlen(cmdtext[6])) return SendClientMessage(playerid, 0xFF0000AA, "Use: /kick [playerid]");
  500.                         new gp = strval(cmdtext[6]);
  501.                         if(!IsPlayerConnected(gp)) return SendClientMessage(playerid, 0xFF0000AA, "Invalid Playerid");
  502.                         new pn[24], an[24], str[70];
  503.                     GetPlayerName(playerid, an, 24); GetPlayerName(gp, pn, 24);
  504.                         format(str, sizeof(str), "%s is kicked by admin %s", pn, an);
  505.                         SendClientMessageToAll(0xA9A9A9AA, str);
  506.                         GameTextForPlayer(gp, "~r~Kicked", 999999, 6);
  507.                         Kick(gp);
  508.                         return 1;
  509.                 }
  510.         }
  511.         if(strcmp("/ban", cmdtext, true, 4) == 0)
  512.         {
  513.                 if(IsPlayerAdmin(playerid))
  514.                 {
  515.                     if(!strlen(cmdtext[5])) return SendClientMessage(playerid, 0xFF0000AA, "Use: /ban [playerid]");
  516.                         new gp = strval(cmdtext[5]);
  517.                         if(!IsPlayerConnected(gp)) return SendClientMessage(playerid, 0xFF0000AA, "Invalid Playerid");
  518.                         new pn[24], an[24], str[70];
  519.                     GetPlayerName(playerid, an, 24); GetPlayerName(gp, pn, 24);
  520.                         format(str, sizeof(str), "%s is banned by admin %s", pn, an);
  521.                         SendClientMessageToAll(0xA9A9A9AA, str);
  522.                         GameTextForPlayer(gp, "~r~Banned", 999999, 6);
  523.                         Kick(gp);
  524.                         return 1;
  525.                 }
  526.         }
  527.         if(strcmp("/mute", cmdtext, true, 5) == 0)
  528.         {
  529.                 if(IsPlayerAdmin(playerid))
  530.                 {
  531.                     if(!strlen(cmdtext[6])) return SendClientMessage(playerid, 0xFF0000AA, "Use: /mute [playerid]");
  532.                         new gp = strval(cmdtext[6]);
  533.                         if(!IsPlayerConnected(gp)) return SendClientMessage(playerid, 0xFF0000AA, "Invalid Playerid");
  534.                         new pn[24], an[24], str[70];
  535.                     GetPlayerName(playerid, an, 24); GetPlayerName(gp, pn, 24);
  536.                         format(str, sizeof(str), "%s is muted by admin %s", pn, an);
  537.                         SendClientMessageToAll(0xA9A9A9AA, str);
  538.                         Muted[gp] = 1;
  539.                         return 1;
  540.                 }
  541.         }
  542.  
  543.     if(strcmp("/unmute", cmdtext, true, 7) == 0)
  544.         {
  545.                 if(IsPlayerAdmin(playerid))
  546.                 {
  547.                     if(!strlen(cmdtext[8])) return SendClientMessage(playerid, 0xFF0000AA, "Use: /unmute [playerid]");
  548.                         new gp = strval(cmdtext[8]);
  549.                         if(!IsPlayerConnected(gp)) return SendClientMessage(playerid, 0xFF0000AA, "Invalid Playerid");
  550.                         new pn[24], an[24], str[70];
  551.                     GetPlayerName(playerid, an, 24); GetPlayerName(gp, pn, 24);
  552.                         format(str, sizeof(str), "%s is unmuted by admin %s", pn, an);
  553.                         SendClientMessageToAll(0xA9A9A9AA, str);
  554.                         Muted[gp] = 0;
  555.                         return 1;
  556.                 }
  557.         }
  558.        
  559.         if(strcmp("/freeze", cmdtext, true, 7) == 0)
  560.         {
  561.                 if(IsPlayerAdmin(playerid))
  562.                 {
  563.                     if(!strlen(cmdtext[8])) return SendClientMessage(playerid, 0xFF0000AA, "Use: /freeze [playerid]");
  564.                         new gp = strval(cmdtext[8]);
  565.                         if(!IsPlayerConnected(gp)) return SendClientMessage(playerid, 0xFF0000AA, "Invalid Playerid");
  566.                         new pn[24], an[24], str[70];
  567.                     GetPlayerName(playerid, an, 24); GetPlayerName(gp, pn, 24);
  568.                         format(str, sizeof(str), "%s is frozen by admin %s", pn, an);
  569.                         SendClientMessageToAll(0xA9A9A9AA, str);
  570.                         TogglePlayerControllable(gp, 0);
  571.                         return 1;
  572.                 }
  573.         }
  574.         if(strcmp("/unfreeze", cmdtext, true, 9) == 0)
  575.         {
  576.                 if(IsPlayerAdmin(playerid))
  577.                 {
  578.                     if(!strlen(cmdtext[10])) return SendClientMessage(playerid, 0xFF0000AA, "Use: /unfreeze [playerid]");
  579.                         new gp = strval(cmdtext[10]);
  580.                         if(!IsPlayerConnected(gp)) return SendClientMessage(playerid, 0xFF0000AA, "Invalid Playerid");
  581.                         new pn[24], an[24], str[70];
  582.                     GetPlayerName(playerid, an, 24); GetPlayerName(gp, pn, 24);
  583.                         format(str, sizeof(str), "%s is unfrozen by admin %s", pn, an);
  584.                         SendClientMessageToAll(0xA9A9A9AA, str);
  585.                         TogglePlayerControllable(gp, 1);
  586.                         return 1;
  587.                 }
  588.         }
  589.         return 0;
  590. }
  591.  
  592. public OnPlayerStateChange(playerid, newstate, oldstate)
  593. {
  594.     if(AllowPrimeMinisterToDriveCars == 0)
  595.         {
  596.                 if(newstate == 2)
  597.                 {
  598.                     if(gTeam[playerid] == PM)
  599.                         {
  600.                             SendClientMessage(playerid, 0xFF0000AA, "You're not allowed to drive!");
  601.                             RemovePlayerFromVehicle(playerid);
  602.                         }
  603.                 }
  604.         }
  605.         return 1;
  606. }
  607.  
  608. stock LoadVehicles()
  609. {
  610.     if(fexist(CARFILE))
  611.         {
  612.             new TotalVehicles = CountVehicles();
  613.                 new Argument[7][70];
  614.                 new entry[256];
  615.                 new File:carfile = fopen(CARFILE, io_read);
  616.             if (carfile)
  617.                 {
  618.                     for(new id; id<TotalVehicles; id++)
  619.                         {
  620.                                 fread(carfile, entry);
  621.                                 strdel(entry, 0, 17);
  622.                                 new end = strfind(entry, ")", true);
  623.                                 strdel(entry, end, strlen(entry));
  624.                                 split(entry, Argument, ',');
  625.                                 AddStaticVehicle(strval(Argument[0]), floatstr(Argument[1]), floatstr(Argument[2]), floatstr(Argument[3]), floatstr(Argument[4]), strval(Argument[5]), strval(Argument[6]));
  626.                         }
  627.                         fclose(carfile);
  628.                         printf("Loaded %d vehicles!", TotalVehicles);
  629.                 }
  630.         }
  631.         else
  632.         {
  633.             print("===============================");
  634.                 print("Warning:");
  635.                 print("There is no vehicle-file found!");
  636.                 print("No vehicles added to game!");
  637.                 print("===============================");
  638.         }
  639. }
  640.  
  641. stock CountVehicles()
  642. {
  643.     new entry[256], count;
  644.         new File: carfile = fopen(CARFILE, io_read);
  645.         while(fread(carfile, entry, 256))
  646.         {
  647.                 count++;
  648.         }
  649.         fclose(carfile);
  650.         return count;
  651. }
  652.  
  653. forward EndRound();
  654. public EndRound()
  655. {
  656.         if(TimeLeft != 0)
  657.         {
  658.                 TimeLeft--;
  659.                 format(TextdrawString, 128, "~y~Seconds Left: %d", TimeLeft);
  660.                 TextDrawHideForAll(Textdraw);
  661.                 TextDrawSetString(Textdraw, TextdrawString);
  662.                 TextDrawShowForAll(Textdraw);
  663.         }
  664.         else
  665.         {
  666.             PMscore++;
  667.             KillTimer(RoundTimer);
  668.                 new str[128];
  669.                 format(str, 128, "The Mayor survived for %d minutes!", RoundTime);
  670.                 SendClientMessageToAll(0xFFFF00AA, " ");
  671.                 SendClientMessageToAll(0xFFFF00AA, " ");
  672.                 SendClientMessageToAll(0xFFFF00AA, str);
  673.                 SendClientMessageToAll(0xFFFF00AA, " ");
  674.                 SendClientMessageToAll(0xFFFF00AA, "A new round will start soon! Please Wait!");
  675.                 SendClientMessageToAll(0xFFFF00AA, " ");
  676.             SendClientMessageToAll(0xFFFF00AA, "Scores:");
  677.             format(str, 128, "-- Mayor/Bodyguards & Police: %d", PMscore);
  678.             SendClientMessageToAll(0xFFFF00AA, str);
  679.             format(str, 128, "-- Terrorists & Psycho's: %d", TerroristScore);
  680.             SendClientMessageToAll(0xFFFF00AA, str);
  681.             SendClientMessageToAll(0xFFFF00AA, " ");
  682.                 for(new i; i<MAX_PLAYERS; i++)
  683.                 {
  684.                     if(IsPlayerConnected(i))
  685.                     {
  686.                         PlayerPlaySound(i, 1187, 0.0, 0.0, 0.0);
  687.                         if(gTeam[i] == TERRORIST || gTeam[i] == PSYCHO)
  688.                         {
  689.                             GameTextForPlayer(i, "~r~Game Over", 8000, 3);
  690.                                 }
  691.                                 if(gTeam[i] == PM || gTeam[i] == BODYGUARD || gTeam[i] == POLICE)
  692.                         {
  693.                             GameTextForPlayer(i, "~y~Congratulations!", 8000, 3);
  694.                                 }
  695.                         }
  696.                 }
  697.                
  698.                 SetTimer("StartNewGame", 8000, 0);
  699.         }
  700. }
  701.  
  702. forward StartNewGame();
  703. public StartNewGame()
  704. {
  705.     dini_IntSet("Protect The PM/Scores.txt", "PMSCORE", PMscore);
  706.     dini_IntSet("Protect The PM/Scores.txt", "TERRORISTSCORE", TerroristScore);
  707.     TextDrawHideForAll(Textdraw);
  708.     TextDrawDestroy(Textdraw);
  709.         GameModeExit();
  710. }
  711.  
  712. //Credits to the one who made this split-function!
  713. forward split(const strsrc[], strdest[][], delimiter);
  714. public split(const strsrc[], strdest[][], delimiter)
  715. {
  716.         new i, li;
  717.         new aNum;
  718.         new len;
  719.         while(i <= strlen(strsrc)){
  720.             if(strsrc[i]==delimiter || i==strlen(strsrc)){
  721.                 len = strmid(strdest[aNum], strsrc, li, i, 128);
  722.                 strdest[aNum][len] = 0;
  723.                 li = i+1;
  724.                 aNum++;
  725.                 }
  726.                 i++;
  727.         }
  728.         return 1;
  729. }
Submit a correction or amendment below. Make A New Post
To highlight particular lines, prefix each line with @h@
Syntax highlighting:
Post expiration:
Post exposure:
Name / Title:
Email: