Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- new Float:RandPos[9][4] = {
- {-1291.6622,2513.7566,87.0500,355.3697},
- {-1303.8662,2527.4270,87.5878,358.6714},
- {-1308.1099,2544.3853,87.7422,171.4412},
- {-1321.0725,2526.1138,87.4379,183.3481},
- {-1335.7893,2520.8984,87.0469,270.7455},
- {-1298.5408,2547.2991,87.6747,356.4313},
- {-1291.3345,2533.8853,87.7422,92.7705},
- {-1288.5410,2528.5769,87.6331,183.0114},
- {-1316.3402,2499.9949,87.0420,271.8305}
- };
- new Weaps[14] = {
- 23,
- 22,
- 27,
- 26,
- 29,
- 32,
- 30,
- 31,
- 38,
- 33,
- 34,
- 35,
- 36,
- 24
- };
- enum status {
- level,
- bool:dead,
- bool:pw, //Primary weapon
- Text:Health,
- }
- new PlayerStatus[MAX_PLAYERS][status];
- new Text:Respawn;
- main()
- {
- print("\n----------------------------------");
- print(" The Pack! - Gun Game");
- print(" Simple gamemode by Hiddos");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("Gun Game");
- AddPlayerClass(0, -1291.6622, 2513.7566, 87.0500, 355.3697, 0, 0, 0, 0, 0, 0);
- ShowPlayerMarkers(0);
- //Textdraws
- for(new i; i < MAX_PLAYERS; i++)
- {
- PlayerStatus[i][Health] = TextDrawCreate(547.000000, 69.000000, "lllllllllllllllllllllll");
- TextDrawBackgroundColor(PlayerStatus[i][Health], -16776961);
- TextDrawFont(PlayerStatus[i][Health], 0);
- TextDrawLetterSize(PlayerStatus[i][Health], 0.500000, 0.499999);
- TextDrawColor(PlayerStatus[i][Health], -16776961);
- TextDrawSetOutline(PlayerStatus[i][Health], 0);
- TextDrawSetProportional(PlayerStatus[i][Health], 1);
- TextDrawSetShadow(PlayerStatus[i][Health], 0);
- TextDrawUseBox(PlayerStatus[i][Health], 1);
- TextDrawBoxColor(PlayerStatus[i][Health], 255);
- TextDrawTextSize(PlayerStatus[i][Health], 607.000000, 0.000000);
- }
- Respawn = TextDrawCreate(320.000000, 155.000000, "~y~Press '~r~~k~~VEHICLE_ENTER_EXIT~~y~' to spawn!");
- TextDrawAlignment(Respawn, 2);
- TextDrawBackgroundColor(Respawn, 255);
- TextDrawFont(Respawn, 2);
- TextDrawLetterSize(Respawn, 0.549999, 1.500000);
- TextDrawColor(Respawn, -65281);
- TextDrawSetOutline(Respawn, 0);
- TextDrawSetProportional(Respawn, 1);
- TextDrawSetShadow(Respawn, 3);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
- SetPlayerCameraPos(playerid, -1251.1089, 2551.7546, 104.6863);
- SetPlayerCameraLookAt(playerid, -1302.1554, 2533.4226, 93.8427);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerStatus[playerid][level] = 0;
- PlayerStatus[playerid][dead] = true;
- PlayerStatus[playerid][pw] = true;
- TextDrawHideForPlayer(playerid, Respawn);
- TextDrawHideForPlayer(playerid, PlayerStatus[playerid][Health]);
- SetPlayerColor(playerid, 0xFF0000FF);
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- //Pos
- new rand = random(9);
- SetPlayerPos(playerid, RandPos[rand][0], RandPos[rand][1], RandPos[rand][2]);
- SetPlayerFacingAngle(playerid, RandPos[rand][3]);
- SetPlayerWorldBounds(playerid, -1274.2817, -1358.5095, 2575.6509, 2472.3486);
- SetCameraBehindPlayer(playerid);
- //Weaps
- GivePlayerWeapon(playerid, 4, 1);
- GivePlayerWeapon(playerid, Weaps[PlayerStatus[playerid][level]], 65535);
- //Diff
- PlayerStatus[playerid][dead] = false;
- PlayerStatus[playerid][pw] = true;
- SetPlayerHealth(playerid, 20);
- TextDrawShowForPlayer(playerid, PlayerStatus[playerid][Health]);
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- TextDrawHideForPlayer(playerid, PlayerStatus[playerid][Health]);
- SendDeathMessage(killerid, playerid, reason);
- TogglePlayerSpectating(playerid, 1);
- TextDrawShowForPlayer(playerid, Respawn);
- PlayerStatus[playerid][dead] = true;
- if(killerid == INVALID_PLAYER_ID)
- {
- SetPlayerCameraPos(playerid, -1251.1089, 2551.7546, 104.6863);
- SetPlayerCameraLookAt(playerid, -1302.1554, 2533.4226, 93.8427);
- }
- else
- {
- PlayerSpectatePlayer(playerid, killerid);
- if(reason == 4)
- {
- GameTextForPlayer(killerid, "~r~Humiliation!~n~~y~Demoted the player by one rank!", 1650, 6);
- GameTextForPlayer(playerid, "~r~Humiliated~n~~y~You got demoted!", 1650, 6);
- if(PlayerStatus[playerid][level] != 0) PlayerStatus[playerid][level]--;
- }
- else
- {
- GameTextForPlayer(killerid, "~r~Player Killed!~n~~y~Advanced to the next tier!", 1650, 6);
- PlayerStatus[killerid][level]++;
- SetPlayerScore(killerid, PlayerStatus[killerid][level] + 1);
- if(PlayerStatus[killerid][level] == 14)
- {
- SendClientMessageToAll(0x008000FF, "A new round will start in 8 seconds!");
- new Highest[3] = {INVALID_PLAYER_ID, ...};
- for(new i; i < MAX_PLAYERS; i++)
- {
- TogglePlayerSpectating(i, 1);
- SetPlayerCameraPos(i, -1251.1089, 2551.7546, 104.6863);
- SetPlayerCameraLookAt(i, -1302.1554, 2533.4226, 93.8427);
- if(GetPlayerScore(i) > GetPlayerScore(Highest[0]))
- {
- Highest[2] = Highest[1];
- Highest[1] = Highest[0];
- Highest[0] = i;
- }
- else if(GetPlayerScore(i) > GetPlayerScore(Highest[1]))
- {
- Highest[2] = Highest[1];
- Highest[1] = i;
- }
- else if(GetPlayerScore(i) > GetPlayerScore(Highest[1]))
- {
- Highest[2] = i;
- }
- TextDrawHideForPlayer(i, Respawn);
- TextDrawHideForPlayer(i, PlayerStatus[i][Health]);
- PlayerStatus[i][dead] = false;
- }
- new string[144], pName[2][MAX_PLAYER_NAME];
- GetPlayerName(Highest[0], string, MAX_PLAYER_NAME);
- GetPlayerName(Highest[1], pName[0], MAX_PLAYER_NAME);
- GetPlayerName(Highest[2], pName[0], MAX_PLAYER_NAME);
- 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]);
- GameTextForAll(string, 7500, 1);
- SetTimer("EndRound", 8000, 0);
- }
- else
- {
- ResetPlayerWeapons(killerid);
- GivePlayerWeapon(killerid, 4, 1);
- GivePlayerWeapon(killerid, Weaps[PlayerStatus[killerid][level]], 65535);
- }
- }
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- if(PlayerStatus[playerid][dead] == false)
- {
- //Health
- new Float:HP, string[24];
- GetPlayerHealth(playerid, HP);
- new dots = floatround(floatdiv(HP, 0.8695652173913044), floatround_round);
- for(new i; i < dots; i++) { string[i] = 'l'; }
- TextDrawSetString(PlayerStatus[playerid][Health], string);
- //Weapon Check
- if(!GetPlayerWeapon(playerid))
- {
- if(PlayerStatus[playerid][pw] == true)
- {
- SetPlayerArmedWeapon(playerid, 4);
- PlayerStatus[playerid][pw] = false;
- }
- else
- {
- SetPlayerArmedWeapon(playerid, Weaps[PlayerStatus[playerid][level]]);
- PlayerStatus[playerid][pw] = true;
- }
- }
- else PlayerStatus[playerid][pw] = GetPlayerWeapon(playerid) == 4 ? false : true;
- }
- else
- {
- SetPlayerCameraPos(playerid, -1251.1089, 2551.7546, 104.6863);
- SetPlayerCameraLookAt(playerid, -1302.1554, 2533.4226, 93.8427);
- new Keys[3];
- GetPlayerKeys(playerid, Keys[0], Keys[1], Keys[2]);
- if(Keys[0] & KEY_SECONDARY_ATTACK)
- {
- TogglePlayerSpectating(playerid, 0);
- SpawnPlayer(playerid);
- TextDrawHideForPlayer(playerid, Respawn);
- PlayerStatus[playerid][dead] = false;
- }
- }
- return 1;
- }
- forward EndRound();
- public EndRound()
- {
- SendRconCommand("gmx");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement