Advertisement
Guest User

Untitled

a guest
Jan 29th, 2011
960
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 7.39 KB | None | 0 0
  1. #include <a_samp>
  2. new Float:RandPos[9][4] = {
  3.     {-1291.6622,2513.7566,87.0500,355.3697},
  4.     {-1303.8662,2527.4270,87.5878,358.6714},
  5.     {-1308.1099,2544.3853,87.7422,171.4412},
  6.     {-1321.0725,2526.1138,87.4379,183.3481},
  7.     {-1335.7893,2520.8984,87.0469,270.7455},
  8.     {-1298.5408,2547.2991,87.6747,356.4313},
  9.     {-1291.3345,2533.8853,87.7422,92.7705},
  10.     {-1288.5410,2528.5769,87.6331,183.0114},
  11.     {-1316.3402,2499.9949,87.0420,271.8305}
  12. };
  13.  
  14. new Weaps[14] = {
  15.     23,
  16.     22,
  17.     27,
  18.     26,
  19.     29,
  20.     32,
  21.     30,
  22.     31,
  23.     38,
  24.     33,
  25.     34,
  26.     35,
  27.     36,
  28.     24
  29. };
  30.  
  31. enum status {
  32.     level,
  33.     bool:dead,
  34.     bool:pw, //Primary weapon
  35.     Text:Health,
  36. }
  37. new PlayerStatus[MAX_PLAYERS][status];
  38. new Text:Respawn;
  39. main()
  40. {
  41.     print("\n----------------------------------");
  42.     print(" The Pack! - Gun Game");
  43.     print(" Simple gamemode by Hiddos");
  44.     print("----------------------------------\n");
  45. }
  46.  
  47. public OnGameModeInit()
  48. {
  49.     SetGameModeText("Gun Game");
  50.     AddPlayerClass(0, -1291.6622, 2513.7566, 87.0500, 355.3697, 0, 0, 0, 0, 0, 0);
  51.     ShowPlayerMarkers(0);
  52.    
  53.         //Textdraws
  54.     for(new i; i < MAX_PLAYERS; i++)
  55.     {
  56.         PlayerStatus[i][Health] = TextDrawCreate(547.000000, 69.000000, "lllllllllllllllllllllll");
  57.         TextDrawBackgroundColor(PlayerStatus[i][Health], -16776961);
  58.         TextDrawFont(PlayerStatus[i][Health], 0);
  59.         TextDrawLetterSize(PlayerStatus[i][Health], 0.500000, 0.499999);
  60.         TextDrawColor(PlayerStatus[i][Health], -16776961);
  61.         TextDrawSetOutline(PlayerStatus[i][Health], 0);
  62.         TextDrawSetProportional(PlayerStatus[i][Health], 1);
  63.         TextDrawSetShadow(PlayerStatus[i][Health], 0);
  64.         TextDrawUseBox(PlayerStatus[i][Health], 1);
  65.         TextDrawBoxColor(PlayerStatus[i][Health], 255);
  66.         TextDrawTextSize(PlayerStatus[i][Health], 607.000000, 0.000000);
  67.     }
  68.    
  69.     Respawn = TextDrawCreate(320.000000, 155.000000, "~y~Press '~r~~k~~VEHICLE_ENTER_EXIT~~y~' to spawn!");
  70.     TextDrawAlignment(Respawn, 2);
  71.     TextDrawBackgroundColor(Respawn, 255);
  72.     TextDrawFont(Respawn, 2);
  73.     TextDrawLetterSize(Respawn, 0.549999, 1.500000);
  74.     TextDrawColor(Respawn, -65281);
  75.     TextDrawSetOutline(Respawn, 0);
  76.     TextDrawSetProportional(Respawn, 1);
  77.     TextDrawSetShadow(Respawn, 3);
  78.     return 1;
  79. }
  80.  
  81. public OnGameModeExit()
  82. {
  83.     return 1;
  84. }
  85.  
  86. public OnPlayerRequestClass(playerid, classid)
  87. {
  88.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  89.     SetPlayerCameraPos(playerid, -1251.1089, 2551.7546, 104.6863);
  90.     SetPlayerCameraLookAt(playerid, -1302.1554, 2533.4226, 93.8427);
  91.     return 1;
  92. }
  93.  
  94. public OnPlayerConnect(playerid)
  95. {
  96.     PlayerStatus[playerid][level] = 0;
  97.     PlayerStatus[playerid][dead] = true;
  98.     PlayerStatus[playerid][pw] = true;
  99.     TextDrawHideForPlayer(playerid, Respawn);
  100.     TextDrawHideForPlayer(playerid, PlayerStatus[playerid][Health]);
  101.     SetPlayerColor(playerid, 0xFF0000FF);
  102.     return 1;
  103. }
  104.  
  105. public OnPlayerSpawn(playerid)
  106. {
  107.         //Pos
  108.     new rand = random(9);
  109.     SetPlayerPos(playerid, RandPos[rand][0], RandPos[rand][1], RandPos[rand][2]);
  110.     SetPlayerFacingAngle(playerid, RandPos[rand][3]);
  111.     SetPlayerWorldBounds(playerid, -1274.2817, -1358.5095, 2575.6509, 2472.3486);
  112.     SetCameraBehindPlayer(playerid);
  113.    
  114.         //Weaps
  115.     GivePlayerWeapon(playerid, 4, 1);
  116.     GivePlayerWeapon(playerid, Weaps[PlayerStatus[playerid][level]], 65535);
  117.    
  118.         //Diff
  119.     PlayerStatus[playerid][dead] = false;
  120.     PlayerStatus[playerid][pw] = true;
  121.     SetPlayerHealth(playerid, 20);
  122.     TextDrawShowForPlayer(playerid, PlayerStatus[playerid][Health]);
  123.     return 1;
  124. }
  125.  
  126. public OnPlayerDeath(playerid, killerid, reason)
  127. {
  128.     TextDrawHideForPlayer(playerid, PlayerStatus[playerid][Health]);
  129.     SendDeathMessage(killerid, playerid, reason);
  130.     TogglePlayerSpectating(playerid, 1);
  131.     TextDrawShowForPlayer(playerid, Respawn);
  132.     PlayerStatus[playerid][dead] = true;
  133.     if(killerid == INVALID_PLAYER_ID)
  134.     {
  135.         SetPlayerCameraPos(playerid, -1251.1089, 2551.7546, 104.6863);
  136.         SetPlayerCameraLookAt(playerid, -1302.1554, 2533.4226, 93.8427);
  137.     }
  138.         else
  139.     {
  140.         PlayerSpectatePlayer(playerid, killerid);
  141.    
  142.         if(reason == 4)
  143.         {
  144.             GameTextForPlayer(killerid, "~r~Humiliation!~n~~y~Demoted the player by one rank!", 1650, 6);
  145.             GameTextForPlayer(playerid, "~r~Humiliated~n~~y~You got demoted!", 1650, 6);
  146.             if(PlayerStatus[playerid][level] != 0) PlayerStatus[playerid][level]--;
  147.         }
  148.             else
  149.         {
  150.             GameTextForPlayer(killerid, "~r~Player Killed!~n~~y~Advanced to the next tier!", 1650, 6);
  151.             PlayerStatus[killerid][level]++;
  152.             SetPlayerScore(killerid, PlayerStatus[killerid][level] + 1);
  153.             if(PlayerStatus[killerid][level] == 14)
  154.             {
  155.                 SendClientMessageToAll(0x008000FF, "A new round will start in 8 seconds!");
  156.                 new Highest[3] = {INVALID_PLAYER_ID, ...};
  157.                 for(new i; i < MAX_PLAYERS; i++)
  158.                 {
  159.                     TogglePlayerSpectating(i, 1);
  160.                     SetPlayerCameraPos(i, -1251.1089, 2551.7546, 104.6863);
  161.                     SetPlayerCameraLookAt(i, -1302.1554, 2533.4226, 93.8427);
  162.                     if(GetPlayerScore(i) > GetPlayerScore(Highest[0]))
  163.                     {
  164.                         Highest[2] = Highest[1];
  165.                         Highest[1] = Highest[0];
  166.                         Highest[0] = i;
  167.                     }
  168.                         else if(GetPlayerScore(i) > GetPlayerScore(Highest[1]))
  169.                     {
  170.                         Highest[2] = Highest[1];
  171.                         Highest[1] = i;
  172.                     }
  173.                         else if(GetPlayerScore(i) > GetPlayerScore(Highest[1]))
  174.                     {
  175.                         Highest[2] = i;
  176.                     }
  177.                     TextDrawHideForPlayer(i, Respawn);
  178.                     TextDrawHideForPlayer(i, PlayerStatus[i][Health]);
  179.                     PlayerStatus[i][dead] = false;
  180.                 }
  181.                
  182.                 new string[144], pName[2][MAX_PLAYER_NAME];
  183.                 GetPlayerName(Highest[0], string, MAX_PLAYER_NAME);
  184.                 GetPlayerName(Highest[1], pName[0], MAX_PLAYER_NAME);
  185.                 GetPlayerName(Highest[2], pName[0], MAX_PLAYER_NAME);
  186.                 format(string, sizeof string, "~r~The match ended!~n~~g~1. %02i - %s~n~~y~2. %02i - %s~n~~r~~h~3. %02i - %s", GetPlayerScore(Highest[0]), string, GetPlayerScore(Highest[1]), pName[0], GetPlayerScore(Highest[2]), pName[1]);
  187.                 GameTextForAll(string, 7500, 1);
  188.                 SetTimer("EndRound", 8000, 0);
  189.             }
  190.                 else
  191.             {
  192.                 ResetPlayerWeapons(killerid);
  193.                 GivePlayerWeapon(killerid, 4, 1);
  194.                 GivePlayerWeapon(killerid, Weaps[PlayerStatus[killerid][level]], 65535);
  195.             }
  196.         }
  197.     }
  198.     return 1;
  199. }
  200.  
  201. public OnPlayerUpdate(playerid)
  202. {
  203.     if(PlayerStatus[playerid][dead] == false)
  204.     {
  205.             //Health
  206.         new Float:HP, string[24];
  207.         GetPlayerHealth(playerid, HP);
  208.         new dots = floatround(floatdiv(HP, 0.8695652173913044), floatround_round);
  209.         for(new i; i < dots; i++) { string[i] = 'l'; }
  210.         TextDrawSetString(PlayerStatus[playerid][Health], string);
  211.        
  212.             //Weapon Check
  213.         if(!GetPlayerWeapon(playerid))
  214.         {
  215.             if(PlayerStatus[playerid][pw] == true)
  216.             {
  217.                 SetPlayerArmedWeapon(playerid, 4);
  218.                 PlayerStatus[playerid][pw] = false;
  219.             }
  220.                 else
  221.             {
  222.                 SetPlayerArmedWeapon(playerid, Weaps[PlayerStatus[playerid][level]]);
  223.                 PlayerStatus[playerid][pw] = true;
  224.             }
  225.         }
  226.         else PlayerStatus[playerid][pw] = GetPlayerWeapon(playerid) == 4 ? false : true;
  227.        
  228.     }
  229.     else
  230.     {
  231.         SetPlayerCameraPos(playerid, -1251.1089, 2551.7546, 104.6863);
  232.         SetPlayerCameraLookAt(playerid, -1302.1554, 2533.4226, 93.8427);
  233.         new Keys[3];
  234.         GetPlayerKeys(playerid, Keys[0], Keys[1], Keys[2]);
  235.         if(Keys[0] & KEY_SECONDARY_ATTACK)
  236.         {
  237.             TogglePlayerSpectating(playerid, 0);
  238.             SpawnPlayer(playerid);
  239.             TextDrawHideForPlayer(playerid, Respawn);
  240.             PlayerStatus[playerid][dead] = false;
  241.         }
  242.     }
  243.     return 1;
  244. }
  245.  
  246. forward EndRound();
  247. public EndRound()
  248. {
  249.     SendRconCommand("gmx");
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement