Guest User

DJTunes Help

a guest
Jul 2nd, 2013
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 25.46 KB | None | 0 0
  1. //--------------------------------------------------------------------//
  2. //------------------[Call of Duty 4: Last Chance]---------------------//
  3. //--------------------------------------------------------------------//
  4. //----[Information]----//
  5. // Script Start: 6/22/2013
  6. // Script Mode: Team Death Match
  7. //----[Credits]----//
  8. // Script Owner(s): DJTunes, and JJB562
  9. // Scripter(s): DJTunes, and JJB562
  10. // Mapper(s): None
  11. //----[Links]----//
  12. // DJTunes's SA-MP Forum Profile: http://forum.sa-mp.com/member.php?u=187999
  13. // JJB562's SA-MP Forum Profile: http://forum.sa-mp.com/member.php?u=134993
  14. // DJTunes's Tutorials/Gamemodes/Filterscripts/Ect: https://docs.google.com/document/d/1q2zB_VFa35V1EumAWWnFp48--7hMecc2FFhVgjEwd2o/edit?usp=sharing
  15. // Call of Duty 4 Script Changelog: https://docs.google.com/document/d/1A8ItfbwgNChsmifPTNxDSfW9qhpfX4aEi9oDxqdarxM/edit?usp=sharing
  16. //-----------------------------------//
  17. //----[Includes]----//
  18. #include <a_samp>
  19. #include <zcmd>
  20. #include <YSI\y_ini>
  21. //-----------------------------------//
  22. //---[Variables]---//
  23. new Text:COD4DM;
  24.  
  25.  
  26. //---[Enum]---//
  27. enum eZone
  28. {
  29.     Float:zMinX,
  30.     Float:zMinY,
  31.     Float:zMaxX,
  32.     Float:zMaxY,
  33.     zTeam
  34. }
  35. //---[Zones]---//
  36.  
  37. //---[Capture Zones]---//
  38. new ZoneAttacker[sizeof(ZoneInfo)] = {-1, ...};
  39. new ZoneAttackTime[sizeof(ZoneInfo)];
  40.  
  41. //----[Random Messages]----//
  42. new RandomMSG[][] =
  43. {
  44.     "Having problems? Type /help for a list of server commands.", // Edit inside the '"'
  45.     "Like the script? Then say so by commenting on the release located on sa-mp forums.",
  46.     "Credits: DJTunes, and JJB562."
  47. };
  48.  
  49. //----[Defines]----//
  50.  
  51. //----[Colors]----//
  52. #define COLOR_GREY 0xAFAFAFAA
  53. #define COLOR_GREEN 0x33AA33AA
  54. #define COLOR_RED 0xFF0000
  55. #define COLOR_YELLOW 0xFFFF00AA
  56. #define COLOR_WHITE 0xFFFFFFAA
  57. #define COLOR_BLUE 0x0000BBAA
  58. #define COLOR_LIGHTBLUE 0x33CCFFAA
  59. #define COLOR_ORANGE 0xFF9900AA
  60. #define COLOR_LIME 0x10F441AA
  61. #define COLOR_MAGENTA 0xFF00FFFF
  62. #define COLOR_NAVY 0x000080AA
  63. #define COLOR_AQUA 0xF0F8FFAA
  64. #define COLOR_CRIMSON 0xDC143CAA
  65. #define COLOR_FLBLUE 0x6495EDAA
  66. #define COLOR_BISQUE 0xFFE4C4AA
  67. #define COLOR_BLACK 0x000000AA
  68. #define COLOR_CHARTREUSE 0x7FFF00AA
  69. #define COLOR_BROWN 0XA52A2AAA
  70. #define COLOR_CORAL 0xFF7F50AA
  71. #define COLOR_GOLD 0xB8860BAA
  72. #define COLOR_GREENYELLOW 0xADFF2FAA
  73. #define COLOR_INDIGO 0x4B00B0AA
  74. #define COLOR_IVORY 0xFFFF82AA
  75. #define COLOR_LAWNGREEN 0x7CFC00AA
  76. #define COLOR_SEAGREEN 0x20B2AAAA
  77. #define COLOR_LIMEGREEN 0x32CD32AA
  78. #define COLOR_MIDNIGHTBLUE 0X191970AA
  79. #define COLOR_MAROON 0x800000AA
  80. #define COLOR_OLIVE 0x808000AA
  81. #define COLOR_ORANGERED 0xFF4500AA
  82. #define COLOR_PINK 0xFFC0CBAA
  83. #define COLOR_SPRINGGREEN 0x00FF7FAA
  84. #define COLOR_TOMATO 0xFF6347AA
  85. #define COLOR_YELLOWGREEN 0x9ACD32AA
  86. #define COLOR_MEDIUMAQUA 0x83BFBFAA
  87. #define COLOR_MEDIUMMAGENTA 0x8B008BAA
  88. #define COL_WHITE "{FFFFFF}"
  89. #define COL_RED "{F81414}"
  90. #define COL_GREEN "{00FF22}"
  91. #define COL_LIGHTBLUE "{00CED1}"
  92.  
  93. //----[Login System]----//
  94. #define DIALOG_REGISTER 1
  95. #define DIALOG_LOGIN 2
  96. #define DIALOG_SUCCESS_1 3
  97. #define DIALOG_SUCCESS_2 4
  98. #define PATH "/Users/%s.ini"
  99. #define DIALOG_SVRRULES 5
  100.  
  101. //----[Teams]----//
  102. #define TEAM_USA 0
  103. #define TEAM_GERMANY 1
  104. #define TEAM_UK 2
  105. #define TEAM_FRANCE 3
  106. #define TEAM_SOVIET 4
  107. #define TEAM_IMPERIALS 5
  108. #define TEAM_REBELS 6
  109.  
  110. #define TAKEOVER_TIME 60
  111. #define MIN_MEMBERS_TO_START_WAR 1
  112. //-----------------------------------//
  113. new Teams[] = {
  114.     TEAM_USA,
  115.     TEAM_UK
  116. };
  117.  
  118. new ZoneInfo[][eZone] = {
  119.     {103.7123,1805.2091,386.8307,2079.9294,TEAM_USA},
  120.     {2084.7,-1808.8383,2337.9004,-1610.3673,TEAM_UK}
  121. };
  122. new ZoneID[sizeof(ZoneInfo)];
  123.  
  124. //----[Variables]----//
  125. new gTeam[MAX_PLAYERS];
  126.  
  127. SetPlayerTeamFromClass(playerid, classid)
  128. {
  129.     if(classid == 0) gTeam[playerid] = TEAM_IMPERIALS;
  130.     else if(classid == 1) gTeam[playerid] = TEAM_GERMANY;
  131.     else if(classid == 2) gTeam[playerid] = TEAM_UK;
  132.     else if(classid == 3) gTeam[playerid] = TEAM_FRANCE;
  133.     else if(classid == 4) gTeam[playerid] = TEAM_SOVIET;
  134.     else if(classid == 5) gTeam[playerid] = TEAM_USA;
  135.     else if(classid == 6) gTeam[playerid] = TEAM_REBELS;
  136. }
  137.  
  138. //----[Login/Register System]----//
  139. enum pInfo
  140. {
  141.     pPass,
  142.     pCash,
  143.     pAdmin,
  144.     pKills,
  145.     pScore,
  146.     pDeaths
  147. }
  148. new PlayerInfo[MAX_PLAYERS][pInfo];
  149.  
  150. forward LoadUser_data(playerid,name[],value[]);
  151. public LoadUser_data(playerid,name[],value[])
  152. {
  153.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  154.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  155.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  156.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  157.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  158.     INI_Int("Score",PlayerInfo[playerid][pScore]);
  159.     return 1;
  160. }
  161.  
  162. //----[Print]----//
  163. main()
  164. {
  165.     print("\n----------------------------------");
  166.     print("Call of Duty 4: Last Chance loaded.");
  167.     print("Scripted by - DJTunes, and JJB562");
  168.     print("----------------------------------\n");
  169. }
  170.  
  171.  
  172. //----[Ranks]----//
  173. forward Rank(playerid);
  174. public Rank(playerid)
  175. {
  176.     if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
  177.     {
  178.     SendClientMessage(playerid, COLOR_RED,"You have came into battle as a Recruit - 1");
  179.     }
  180.     if (GetPlayerScore(playerid) >= 101 && GetPlayerScore(playerid) <=200)
  181.     {
  182.     SendClientMessage(playerid, COLOR_RED,"You have came into battle as a Soldier - 2");
  183.     }
  184.     if (GetPlayerScore(playerid) >= 201 && GetPlayerScore(playerid) <=300)
  185.     {
  186.     SendClientMessage(playerid, COLOR_RED,"You have came into battle as a Elite Soldier - 3");
  187.     }
  188.     if (GetPlayerScore(playerid) >= 301 && GetPlayerScore(playerid) <=400)
  189.     {
  190.     SendClientMessage(playerid, COLOR_RED,"You have came into battle as a Elite Captain - 4");
  191.     }
  192.     if (GetPlayerScore(playerid) >= 401 && GetPlayerScore(playerid) <=900)
  193.     {
  194.     SendClientMessage(playerid, COLOR_RED,"You have came into battle as a Elite Commander - 5");
  195.     }
  196.     if (GetPlayerScore(playerid) >= 901)
  197.     {
  198.     SendClientMessage(playerid, COLOR_RED,"You have came into battle as a General - 6");
  199.     }
  200. }
  201.  
  202. //--------------------------------------------------------------------//
  203. //------------------[Call of Duty 4: Commands]------------------------//
  204. //--------------------------------------------------------------------//
  205.  
  206. CMD:forum(playerid, params[])
  207. {
  208.     SendClientMessage(playerid, COLOR_GREEN, "www.sa-mp.com");
  209.     GameTextForPlayer(playerid, "~w~Server Website:~n~www.sa-mp.com", 2500, 3);
  210.     return 1;
  211. }
  212.  
  213. CMD:rank(playerid, params[])
  214. {
  215.     Rank(playerid);
  216.     return 1;
  217. }
  218.  
  219. CMD:ranks(playerid, params[])
  220. {
  221.     SendClientMessage(playerid, COLOR_RED,"==========================Ranks=====================");
  222.     SendClientMessage(playerid, COLOR_GREEN,"Recruit (000-100)");
  223.     SendClientMessage(playerid, COLOR_GREEN,"Soldier (101-200)");
  224.     SendClientMessage(playerid, COLOR_GREEN,"Elite Soldier (201-300)");
  225.     SendClientMessage(playerid, COLOR_GREEN,"Elite Captain (301-400)");
  226.     SendClientMessage(playerid, COLOR_GREEN,"Elite Commander (401-500)");
  227.     SendClientMessage(playerid, COLOR_GREEN,"General (501-600)");
  228.     SendClientMessage(playerid, COLOR_RED,"====================================================");
  229.     return 1;
  230. }
  231.  
  232. CMD:rankbonus(playerid, params[])
  233. {
  234.     SendClientMessage(playerid, COLOR_RED,"=====================Rank-Bonus===================");
  235.     SendClientMessage(playerid, COLOR_GREEN,"Recruit Bonus = 100 Health + 20 Armour");
  236.     SendClientMessage(playerid, COLOR_GREEN,"Soldier Bonus = 100 Health + 30 Armour");
  237.     SendClientMessage(playerid, COLOR_GREEN,"Elite Soldier Bonus = 100 Health + 40 Armour");
  238.     SendClientMessage(playerid, COLOR_GREEN,"Elite Captain Bonus = 100 Health + 60 Armour");
  239.     SendClientMessage(playerid, COLOR_GREEN,"Elite Commander Bonus = 100 Health + 80 Armour");
  240.     SendClientMessage(playerid, COLOR_GREEN,"General Bonus = 100 Health + 100 Armour");
  241.     SendClientMessage(playerid, COLOR_RED,"===================================================");
  242.     return 1;
  243. }
  244.  
  245. CMD:help(playerid, params[])
  246. {
  247.     SendClientMessage(playerid, COLOR_RED,"=====================Help===================");
  248.     SendClientMessage(playerid, COLOR_GREEN,"[Rank Help] /rank, /rankbonus, /ranks");
  249.     SendClientMessage(playerid, COLOR_GREEN,"[General Help] /kill, /help, /forum");
  250.     SendClientMessage(playerid, COLOR_GREEN,"[Team Help] /changeteam");
  251.     SendClientMessage(playerid, COLOR_RED,"============================================");
  252.     return 1;
  253. }
  254.  
  255. CMD:kill(playerid)
  256. {
  257.     SetPlayerHealth(playerid,0.0);
  258.     return 1;
  259. }
  260.  
  261. CMD:changeteam(playerid, params[])
  262. {
  263.     SetPlayerHealth(playerid, 0.0);
  264.     ForceClassSelection(playerid);
  265.     SendClientMessage(playerid, -1,"Select your new Team!");
  266.     return 1;
  267. }
  268. //--------------------------------------------------------------------//
  269. //------------------[Call of Duty 4: Gamemode]------------------------//
  270. //--------------------------------------------------------------------//
  271.  
  272. public OnPlayerDisconnect(playerid, reason)
  273. {
  274.     new INI:File = INI_Open(UserPath(playerid));
  275.     INI_SetTag(File,"data");
  276.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  277.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  278.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  279.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  280.     INI_WriteInt(File,"Score",GetPlayerScore(playerid));
  281.     INI_Close(File);
  282. //----[Leave Messages]----//
  283.  
  284.     new pname[MAX_PLAYER_NAME], string[39 + MAX_PLAYER_NAME];
  285.     GetPlayerName(playerid, pname, sizeof(pname));
  286.     switch(reason)
  287.     {
  288.         case 0: format(string, sizeof(string), "%s has left the server. (Lost Connection)", pname);
  289.         case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", pname);
  290.         case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", pname);
  291.     }
  292.     SendClientMessageToAll(0xAAAAAAAA, string);
  293.     return 1;
  294. }
  295. //---------------------------
  296. public OnPlayerSpawn(playerid)
  297. {
  298.     for(new i=0; i < sizeof(ZoneInfo); i++)
  299.     {
  300.     GangZoneShowForPlayer(playerid, ZoneID[i], GetTeamZoneColor(ZoneInfo[i][zTeam]));
  301.     if(ZoneAttacker[i] != -1) GangZoneFlashForPlayer(playerid, ZoneID[i], GetTeamZoneColor(ZoneAttacker[i]));
  302.     }
  303.     for(new i=0; i < sizeof(ZoneInfo); i++)
  304.     {
  305.     GangZoneShowForPlayer(playerid, ZoneID[i], GetTeamZoneColor(ZoneInfo[i][zTeam]));
  306.     }
  307.     ForceClassSelection(playerid);
  308.     //----[Team System]----//
  309.     if(gTeam[playerid] == TEAM_IMPERIALS)
  310.     {
  311.         SetPlayerColor(playerid, COLOR_YELLOW);
  312.         SetPlayerPos(playerid, 2540.2231, 2822.2043, 10.8203);
  313.         SetPlayerInterior(playerid,0);
  314.         SetPlayerVirtualWorld(playerid, 0);
  315.         SetCameraBehindPlayer(playerid);
  316.         TogglePlayerControllable(playerid, true);
  317.     }
  318.     else if(gTeam[playerid] == TEAM_GERMANY)
  319.     {
  320.         SetPlayerColor(playerid, COLOR_GREEN);
  321.         SetPlayerPos(playerid, -1347.3311, 492.1618, 18.2344);
  322.         SetPlayerInterior(playerid,0);
  323.         SetPlayerVirtualWorld(playerid, 0);
  324.         SetCameraBehindPlayer(playerid);
  325.         TogglePlayerControllable(playerid, true);
  326.     }
  327.     else if(gTeam[playerid] == TEAM_UK)
  328.     {
  329.         SetPlayerColor(playerid, COLOR_BLUE);
  330.         SetPlayerPos(playerid, -250.6950, 2600.0293, 62.8582);
  331.         SetPlayerInterior(playerid,0);
  332.         SetPlayerVirtualWorld(playerid, 0);
  333.         SetCameraBehindPlayer(playerid);
  334.         TogglePlayerControllable(playerid, true);
  335.     }
  336.     else if(gTeam[playerid] == TEAM_FRANCE)
  337.     {
  338.         SetPlayerColor(playerid, COLOR_ORANGE);
  339.         SetPlayerPos(playerid, -329.1653, 1537.0428, 76.6117);
  340.         SetPlayerInterior(playerid,0);
  341.         SetPlayerVirtualWorld(playerid, 0);
  342.         SetCameraBehindPlayer(playerid);
  343.         TogglePlayerControllable(playerid, true);
  344.     }
  345.     else if(gTeam[playerid] == TEAM_SOVIET)
  346.     {
  347.         SetPlayerColor(playerid, COLOR_RED);
  348.         SetPlayerPos(playerid, 415.2696, 2537.1301, 19.1484);
  349.         SetPlayerInterior(playerid,0);
  350.         SetPlayerVirtualWorld(playerid, 0);
  351.         SetCameraBehindPlayer(playerid);
  352.         TogglePlayerControllable(playerid, true);
  353.     }
  354.     else if(gTeam[playerid] == TEAM_USA)
  355.     {
  356.         SetPlayerColor(playerid, COLOR_WHITE);
  357.         SetPlayerPos(playerid, 203.1575, 1869.2867, 13.1406);
  358.         SetPlayerInterior(playerid,0);
  359.         SetPlayerVirtualWorld(playerid, 0);
  360.         SetCameraBehindPlayer(playerid);
  361.         TogglePlayerControllable(playerid, true);
  362.     }
  363.     else if(gTeam[playerid] == TEAM_REBELS)
  364.     {
  365.         SetPlayerColor(playerid, COLOR_RED);
  366.         SetPlayerPos(playerid, 244.9354, 1408.4061, 10.7075);
  367.         SetPlayerInterior(playerid,0);
  368.         SetPlayerVirtualWorld(playerid, 0);
  369.         SetCameraBehindPlayer(playerid);
  370.         TogglePlayerControllable(playerid, true);
  371.     }
  372.  
  373.     //----[Spawn System (Health + Armor Check)----//
  374.     if (GetPlayerScore(playerid) >= 0 && GetPlayerScore(playerid) <= 100)
  375.     {
  376.     SendClientMessage(playerid, COLOR_RED,"Health Check: {FFFFFF}Armour: 20% | {FF0000}Health: 100%");
  377.     SetPlayerHealth(playerid, 100);
  378.     SetPlayerArmour(playerid, 20);
  379.     }
  380.     if (GetPlayerScore(playerid) >= 101 && GetPlayerScore(playerid) <=200)
  381.     {
  382.     SendClientMessage(playerid, COLOR_RED,"Health Check: {FFFFFF}Armour: 30% | {FF0000}Health: 100%");
  383.     SetPlayerHealth(playerid, 100);
  384.     SetPlayerArmour(playerid, 30);
  385.     }
  386.     if (GetPlayerScore(playerid) >= 201 && GetPlayerScore(playerid) <=300)
  387.     {
  388.     SendClientMessage(playerid, COLOR_RED,"Health Check: {FFFFFF}Armour: 40% | {FF0000}Health: 100%");
  389.     SetPlayerHealth(playerid, 100);
  390.     SetPlayerArmour(playerid, 40);
  391.     }
  392.     if (GetPlayerScore(playerid) >= 301 && GetPlayerScore(playerid) <=400)
  393.     {
  394.     SendClientMessage(playerid, COLOR_RED,"Health Check: {FFFFFF}Armour: 60% | {FF0000}Health: 100%");
  395.     SetPlayerHealth(playerid, 100);
  396.     SetPlayerArmour(playerid, 60);
  397.     }
  398.     if (GetPlayerScore(playerid) >= 401 && GetPlayerScore(playerid) <=900)
  399.     {
  400.     SendClientMessage(playerid, COLOR_RED,"Health Check: {FFFFFF}Armour: 80% | {FF0000}Health: 100%");
  401.     SetPlayerHealth(playerid, 100);
  402.     SetPlayerArmour(playerid, 80);
  403.     }
  404.     if (GetPlayerScore(playerid) >= 901)
  405.     {
  406.     SendClientMessage(playerid, COLOR_RED,"Health Check: {FFFFFF}Armour: 100% | {FF0000}Health: 100%");
  407.     SetPlayerHealth(playerid, 100);
  408.     SetPlayerArmour(playerid, 100);
  409.     }
  410.     return 1;
  411. }
  412.  
  413. public OnPlayerConnect(playerid)
  414. {
  415.     if(fexist(UserPath(playerid)))
  416.     {
  417.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  418.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  419.     }
  420.     else
  421.     {
  422.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  423.     }
  424.     new string[78], pnome[MAX_PLAYER_NAME];
  425.     GetPlayerName(playerid, pnome, sizeof(pnome));
  426.     format(string, sizeof(string), "{1E90FF}%s {006400}(ID:%d) {B22222}Connected to Call of Duty 4: Last Chance.", pnome, playerid);
  427.     SendClientMessageToAll(-1, string);
  428.     TextDrawShowForPlayer(playerid, COD4DM);
  429.     PlayAudioStreamForPlayer(playerid, "http://videogamers.eu/public/product/Modern%20Warfare%203%20(PC)%20mixtape%20by%20Ramiires.mp3");
  430.     //----[Agreement System]-----------//
  431.     //ShowPlayerDialog(playerid, DIALOG_SVRRULES, DIALOG_STYLE_MSGBOX, "Server Rules", "You must agree with these rules.\n1. Do not team kill\n2. Do not base rape\n3. Do not spawn kill\n4. You will respect all users\n5. You will not use any kind of hack\n6. You will not advertise anything on our server\n7. You will follow these rules, and if not get banned.", "Close", "");
  432.     //---------------------------------//
  433.  
  434.     SendClientMessage(playerid, COLOR_GREEN, "Welcome to Call of Duty 4: Last Chance... Stand by for depature.");
  435.     SendClientMessage(playerid, COLOR_GREEN, "Make sure no of them gets out of this alive.");
  436.     SendClientMessage(playerid, COLOR_GREEN, "Depature complete, you're clear to engage.");
  437.     SendClientMessage(playerid, COLOR_GREEN, "This script is released on SA-MP forums by DJTunes.");
  438.     return 1;
  439. }
  440.  
  441. public OnGameModeInit()
  442. {
  443.     for(new i=0; i < sizeof(ZoneInfo); i++)
  444.     {
  445.     ZoneID[i] = GangZoneCreate(ZoneInfo[i][zMinX], ZoneInfo[i][zMinY], ZoneInfo[i][zMaxX], ZoneInfo[i][zMaxY]);
  446.     }
  447.     SetGameModeText("COD4");
  448.     SendRconCommand("mapname San Andreas");
  449.     UsePlayerPedAnims();
  450.     //----[Timers]----//
  451.     SetTimer("SendMSG", 60000, true);
  452.     SetTimer("ZoneTimer", 1000, true);
  453.     //-------------------------------//
  454.     //----[Teams]----//
  455.     AddPlayerClass(282,2540.2231,2822.2043,10.8203,256.3714,0,0,0,0,0,0); // Imperials 0
  456.     AddPlayerClass(111,-1347.3311,492.1618,18.2344,2.5182,0,0,0,0,0,0); // Germany 1
  457.     AddPlayerClass(285,-250.6950,2600.0293,62.8582,94.9302,0,0,0,0,0,0); // United Kingdom 2
  458.     AddPlayerClass(250,-329.1653,1537.0428,76.6117,80.1225,0,0,0,0,0,0); // France 3
  459.     AddPlayerClass(121,415.2696,2537.1301,19.1484,267.7282,0,0,0,0,0,0); // Soviets 4
  460.     AddPlayerClass(287,203.1575,1869.2867,13.1406,63.4316,0,0,0,0,0,0); // United States 5
  461.     AddPlayerClass(179,244.9354,1408.4061,10.7075,92.0684,0,0,0,0,0,0); // Rebels 6
  462.     //-------------------------------//
  463.     COD4DM= TextDrawCreate(1.0, 433.0, "Call of Duty 4: Last Chance");
  464.     TextDrawAlignment(COD4DM,0);
  465.     TextDrawBackgroundColor(COD4DM,0x000000ff);
  466.     TextDrawFont(COD4DM,2);
  467.     TextDrawLetterSize(COD4DM,0.2999, 1.4);
  468.     TextDrawBoxColor(COD4DM,0x00000050);
  469.     TextDrawColor(COD4DM,0xffffffff);
  470.     TextDrawSetOutline(COD4DM,1);
  471.     TextDrawSetProportional(COD4DM,1);
  472.     TextDrawSetShadow(COD4DM,1);
  473.  
  474.     for(new i; i < MAX_PLAYERS; i ++)
  475.         {
  476.         if(IsPlayerConnected(i))
  477.                 {
  478.                 TextDrawShowForPlayer(i, COD4DM);
  479.                 }
  480.         }
  481.     return 1;
  482. }
  483.  
  484. public OnPlayerRequestClass(playerid, classid)
  485. {
  486.     SetPlayerTeamFromClass(playerid, classid);
  487.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  488.     SetPlayerCameraPos(playerid, 1958.3783 + (5 * floatsin(-89.6528, degrees)), 1343.1572 + (5 * floatcos(-89.6528, degrees)), 15.3746);
  489.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  490.     SetPlayerInterior(playerid, 0);
  491.     if(classid == 0) // Imperials
  492.     {
  493.         GameTextForPlayer(playerid, "~y~Imperials", 3000, 3);
  494.     }
  495.     else if(classid == 1) // Germany
  496.     {
  497.         GameTextForPlayer(playerid, "~g~Germany", 3000, 3);
  498.     }
  499.     else if(classid == 2) // United Kingdom (UK)
  500.     {
  501.         GameTextForPlayer(playerid, "~b~United Kingdom", 3000, 3);
  502.     }
  503.     else if(classid == 3) // France
  504.     {
  505.         GameTextForPlayer(playerid, "~y~France", 3000, 3);
  506.     }
  507.     else if(classid == 4) // Soviets
  508.     {
  509.         GameTextForPlayer(playerid, "~r~Soviet", 3000, 3);
  510.     }
  511.     else if(classid == 5) // United States (USA)
  512.     {
  513.         GameTextForPlayer(playerid, "~w~United States", 3000, 3);
  514.     }
  515.     else if(classid == 6) // Rebels
  516.     {
  517.         GameTextForPlayer(playerid, "~r~Rebels", 3000, 3);
  518.     }
  519.     return 1;
  520. }
  521.  
  522. public OnGameModeExit()
  523. {
  524.     TextDrawHideForAll(COD4DM);
  525.     TextDrawDestroy(COD4DM);
  526.     return 1;
  527. }
  528.  
  529. public OnPlayerDeath(playerid, killerid, reason)
  530. {
  531.     PlayerInfo[killerid][pKills]++; // Saves player(s) kills.
  532.     PlayerInfo[playerid][pDeaths]++; // Saves player(s) deaths.
  533.     PlayerInfo[killerid][pScore]+= 10; // Saves player(s) score.
  534.     GivePlayerMoney(killerid, 100); // Gives player(s) that killed another player, $100.
  535.     GivePlayerMoney(playerid, -50); // Takes away any player(s) that die.
  536.     SendDeathMessage(killerid, playerid, reason);
  537.     SendClientMessage(playerid, 0xAAAAAAAA, "You have been killed, and have lost 50$ for death.");
  538.     GameTextForPlayer(playerid, "~r~Killed!",2500,3);
  539.     SendClientMessage(killerid, 0xAAAAAAAA, "You killed a enemy soldier, and have been awarded 100$, and 10 score.");
  540.     SetPlayerWantedLevel(killerid, 6);
  541.     return 1;
  542. }
  543.  
  544. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  545. {
  546.     switch( dialogid )
  547.     {
  548.         case DIALOG_REGISTER:
  549.         {
  550.             if (!response) return Kick(playerid);
  551.             if(response)
  552.             {
  553.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  554.                 new INI:File = INI_Open(UserPath(playerid));
  555.                 INI_SetTag(File,"data");
  556.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  557.                 INI_WriteInt(File,"Cash",0);
  558.                 INI_WriteInt(File,"Admin",0);
  559.                 INI_WriteInt(File,"Kills",0);
  560.                 INI_WriteInt(File,"Deaths",0);
  561.                 INI_WriteInt(File,"Score",0);
  562.                 INI_Close(File);
  563.  
  564.                 ForceClassSelection(playerid);
  565.                 //ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have been registered. Please continue!","Ok","");
  566.                 ShowPlayerDialog(playerid, DIALOG_SVRRULES, DIALOG_STYLE_MSGBOX, "Server Rules", "You must agree with these rules.\n1. Do not team kill\n2. Do not base rape\n3. Do not spawn kill\n4. You will respect all users\n5. You will not use any kind of hack\n6. You will not advertise anything on our server\n7. You will follow these rules, and if not get banned.", "Close", "");
  567.             }
  568.         }
  569.  
  570.         case DIALOG_LOGIN:
  571.         {
  572.             if ( !response ) return Kick ( playerid );
  573.             if( response )
  574.             {
  575.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  576.                 {
  577.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  578.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  579.                     SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
  580.                     ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  581.                 }
  582.                 else
  583.                 {
  584.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  585.                 }
  586.                 return 1;
  587.             }
  588.         }
  589.  
  590.         case DIALOG_SUCCESS_2:
  591.         {
  592.             if(!response) return 0;
  593.             if(response)
  594.             {
  595.                 ShowPlayerDialog(playerid, DIALOG_SVRRULES, DIALOG_STYLE_MSGBOX, "Server Rules", "You must agree with these rules.\n1. Do not team kill\n2. Do not base rape\n3. Do not spawn kill\n4. You will respect all users\n5. You will not use any kind of hack\n6. You will not advertise anything on our server\n7. You will follow these rules, and if not get banned.", "Close", "");
  596.             }
  597.         }
  598.     }
  599.     return 1;
  600. }
  601.  
  602. //----------------------------------------------------------------------------------------//
  603. //----------------------------------------Fowards-----------------------------------------//
  604. //----------------------------------------------------------------------------------------//
  605. forward SendMSG();
  606. //----[Random Messages]----//
  607. public SendMSG()
  608. {
  609.     new randMSG = random(sizeof(RandomMSG));
  610.     SendClientMessageToAll(COLOR_WHITE, RandomMSG[randMSG]);
  611. }
  612.  
  613. forward ZoneTimer();
  614. public ZoneTimer()
  615. {
  616.     for(new i=0; i < sizeof(ZoneInfo); i++)
  617.     {
  618.         if(ZoneAttacker[i] != -1)
  619.         {
  620.             if(GetPlayersInZone(i, ZoneAttacker[i]) >= MIN_MEMBERS_TO_START_WAR)
  621.             {
  622.                 ZoneAttackTime[i]++;
  623.                 if(ZoneAttackTime[i] == TAKEOVER_TIME)
  624.                 {
  625.                     GangZoneStopFlashForAll(ZoneID[i]);
  626.                     ZoneInfo[i][zTeam] = ZoneAttacker[i];
  627.                     GangZoneShowForAll(ZoneID[i], GetTeamZoneColor(ZoneInfo[i][zTeam]));
  628.                     ZoneAttacker[i] = -1;
  629.                 }
  630.             }
  631.             else
  632.             {
  633.                 GangZoneStopFlashForAll(ZoneID[i]);
  634.                 ZoneAttacker[i] = -1;
  635.             }
  636.         }
  637.         else
  638.         {
  639.             for(new t=0; t < sizeof(Teams); t++)
  640.             {
  641.                 if(Teams[t] != ZoneInfo[i][zTeam] && GetPlayersInZone(i, Teams[t]) >= MIN_MEMBERS_TO_START_WAR)
  642.                 {
  643.                     ZoneAttacker[i] = Teams[t];
  644.                     ZoneAttackTime[i] = 0;
  645.                     GangZoneFlashForAll(ZoneID[i], GetTeamZoneColor(ZoneAttacker[i]));
  646.                 }
  647.             }
  648.         }
  649.     }
  650. }
  651. //----------------------------------------------------------------------------------------//
  652. //----[Stocks]----//
  653. stock UserPath(playerid)
  654. {
  655.     new string[128],playername[MAX_PLAYER_NAME];
  656.     GetPlayerName(playerid,playername,sizeof(playername));
  657.     format(string,sizeof(string),PATH,playername);
  658.     return string;
  659. }
  660. stock udb_hash(buf[]) {
  661.     new length=strlen(buf);
  662.     new s1 = 1;
  663.     new s2 = 0;
  664.     new n;
  665.     for (n=0; n<length; n++)
  666.     {
  667.        s1 = (s1 + buf[n]) % 65521;
  668.        s2 = (s2 + s1)     % 65521;
  669.     }
  670.     return (s2 << 16) + s1;
  671. }
  672. stock GetTeamZoneColor(teamid)
  673. {
  674.     switch(teamid)
  675.     {
  676.         case TEAM_USA: return 0xFFFFFF55;
  677.         case TEAM_UK: return 0x0000BB55;
  678.     }
  679.     return -1;
  680. }
  681. stock IsPlayerInZone(playerid, zoneid)
  682. {
  683.     new Float:x, Float:y, Float:z;
  684.     GetPlayerPos(playerid, x, y, z);
  685.     return (x > ZoneInfo[zoneid][zMinX] && x < ZoneInfo[zoneid][zMaxX] && y > ZoneInfo[zoneid][zMinY] && y < ZoneInfo[zoneid][zMaxY]);
  686. }
  687.  
  688. stock GetPlayersInZone(zoneid, teamid)
  689. {
  690.     new count;
  691.     for(new i=0; i < MAX_PLAYERS; i++)
  692.     {
  693.         if(IsPlayerConnected(i) && GetPlayerTeam(i) == teamid && IsPlayerInZone(i, zoneid))
  694.         {
  695.             count++;
  696.         }
  697.     }
  698.     return count;
  699. }
Advertisement
Add Comment
Please, Sign In to add comment