new Target = -1;
new ColorCase;
new ColorBlip = -1;
public OnGameModeInit()
{
SetTimer("ChooseNewHVT", 2000, 0);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(playerid == Target) ChooseNewHVT();
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(playerid == Target && killerid == INVALID_PLAYER_ID) ChooseNewHVT();
else
{
new string[128], PlayerName[MAX_PLAYER_NAME], KillerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
GetPlayerName(killerid, KillerName, MAX_PLAYER_NAME);
format(string, 128, "[High Value Target] %s (ID:%d) has killed the High Value Target '%s (ID:%d)' !", KillerName, killerid, PlayerName, playerid);
SendClientMessageToAll(COLOR_BLUE, string);
MakePlayerHVT(playerid);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/hvt", cmdtext, true))
{
new string[128], PlayerName[MAX_PLAYER_NAME];
GetPlayerName(Target, PlayerName, MAX_PLAYER_NAME);
format(string, 128, "[High Value Target] %s (ID:%d) is the High Value Target! Kill him!", PlayerName, Target);
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
return 0;
}
forward ChooseNewHVT();
public ChooseNewHVT()
{
new playerid = GetRandomPlayer();
if(playerid == -1) return SetTimer("ChooseNewHVT", 2000, 0);
else return MakePlayerHVT(playerid);
}
forward ChangeColor(playerid);
public ChangeColor(playerid)
{
if(ColorCase == 0) SetPlayerColor(playerid, COLOR_YELLOW), ColorCase++;
else SetPlayerColor(playerid, COLOR_RED), ColorCase = 0;
return 1;
}
stock MakePlayerHVT(playerid)
{
new string[128], PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
format(string, 128, "[High Value Target] %s (ID:%d) is now the High Value Target! Kill him!", PlayerName, playerid);
SendClientMessageToAll(COLOR_RED, string);
Target = playerid;
if(ColorBlip != -1) KillTimer(ColorBlip);
ColorBlip = SetTimerEx("ChangeColor", 1000, 1, "d", playerid);
for(new i=0; i<MAX_PLAYERS; i++) SetPlayerColor(i, COLOR_BLUE); //All others are blue now.
SetPlayerColor(playerid, COLOR_RED); // Just the Target is red/yellow blipping.
return 1;
}
stock GetRandomPlayer() // By MadeMan, modified by me.
{
new ConnectedPlayers[MAX_PLAYERS];
new idx;
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ConnectedPlayers[idx] = i;
idx++;
}
}
if(idx == 0) return -1;
else return ConnectedPlayers[random(idx)];
}
Add This at Top of your GM:
pawn Код:
pawn Код:
pawn Код:
I hope this helps you. If you have any questions, or Errors, just ask me. Regards, Jeffry ![]() |
for(new i=0; i<MAX_PLAYERS; i++) SetPlayerColor(i, COLOR_BLUE); //All others are blue now.
public OnPlayerSpawn(playerid) { Kills[playerid] = 0; SetPlayerHealth(playerid,99999); SetTimerEx("AntiSpawnKill",10000,0,"i",playerid); StartCheckpointSeeking(); SetPlayerInterior(playerid,0); GangZoneShowForAll(usa,GREEN); GangZoneShowForAll(china,YELLOW); GangZoneShowForAll(upetrol,BLUE); GangZoneShowForAll(sapla,RED); GangZoneShowForAll(merc,PURPLE); if(gTeam[playerid] == TEAM_USA) { SetPlayerArmour(playerid, 100); SetPlayerHealth(playerid, 100); SetPlayerTeam(playerid, 0); SetPlayerColor(playerid,GREEN); SendClientMessage(playerid, GREEN, "[Operation Liberate]:The Rivals Are Stealing Our Fuel! Liberate It Back,At All Costs!"); SendClientMessage(playerid, GREEN, "[Commands]:Use /rules Before Playing! Use /help For Info And /cmds For Available Commands."); } else if(gTeam[playerid] == TEAM_CHINA) { SetPlayerArmour(playerid, 100); SetPlayerHealth(playerid, 100); SetPlayerTeam(playerid, 1); SetPlayerColor(playerid,YELLOW); SendClientMessage(playerid, YELLOW, "[Operation Liberate]:The Rivals Are Stealing Our Fuel! Liberate It Back,At All Costs!"); SendClientMessage(playerid, YELLOW, "[Commands]:Use /rules Before Playing! Use /help For Info And /cmds For Available Commands."); } else if(gTeam[playerid] == TEAM_UP) { SetPlayerArmour(playerid, 100); SetPlayerHealth(playerid, 100); SetPlayerTeam(playerid, 2); SetPlayerColor(playerid,BLUE); SendClientMessage(playerid, BLUE, "[Operation Liberate]:The Rivals Are Stealing Our Fuel! Liberate It Back,At All Costs!"); SendClientMessage(playerid, BLUE, "[Commands]:Use /rules Before Playing! Use /help For Info And /cmds For Available Commands."); } else if(gTeam[playerid] == TEAM_SAPLA) { SetPlayerArmour(playerid, 100); SetPlayerHealth(playerid, 100); SetPlayerTeam(playerid, 3); SetPlayerColor(playerid,RED); SendClientMessage(playerid, RED, "[Operation Liberate]:The Rivals Are Stealing Our Fuel! Liberate It Back,At All Costs!"); SendClientMessage(playerid, RED, "[Commands]:Use /rules Before Playing! Use /help For Info And /cmds For Available Commands."); } else if(gTeam[playerid] == CLASS_MERC) { SetPlayerArmour(playerid, 100); SetPlayerHealth(playerid, 100); SetPlayerTeam(playerid, 4); SetPlayerColor(playerid,PURPLE); SendClientMessage(playerid, PURPLE, "[Classified]:Control The Situation,Bring Down The Enemys,Take Fuel At No Mercy,Airstikes At Your Disposal!"); SendClientMessage(playerid, PURPLE, "[Commands]:Use /rules Before Playing! Use /help For Info And /cmds For Available Commands."); }
SetPlayerTeam(playerid, 1);
new Target = -1;
new ColorCase;
new ColorBlip = -1;
public OnGameModeInit()
{
SetTimer("ChooseNewHVT", 2000, 0);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(playerid == Target) ChooseNewHVT();
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(playerid == Target && killerid == INVALID_PLAYER_ID) ChooseNewHVT(), SetPlayerColor(playerid, GetPlayerTeamColor(playerid));
else
{
new string[128], PlayerName[MAX_PLAYER_NAME], KillerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
GetPlayerName(killerid, KillerName, MAX_PLAYER_NAME);
format(string, 128, "[High Value Target] %s (ID:%d) has killed the High Value Target '%s (ID:%d)' !", KillerName, killerid, PlayerName, playerid);
SendClientMessageToAll(COLOR_BLUE, string);
MakePlayerHVT(playerid);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/hvt", cmdtext, true))
{
new string[128], PlayerName[MAX_PLAYER_NAME];
GetPlayerName(Target, PlayerName, MAX_PLAYER_NAME);
format(string, 128, "[High Value Target] %s (ID:%d) is the High Value Target! Kill him!", PlayerName, Target);
SendClientMessage(playerid, COLOR_RED, string);
return 1;
}
return 0;
}
forward ChooseNewHVT();
public ChooseNewHVT()
{
new playerid = GetRandomPlayer();
if(playerid == -1) return SetTimer("ChooseNewHVT", 2000, 0);
else return MakePlayerHVT(playerid);
}
forward ChangeColor(playerid);
public ChangeColor(playerid)
{
if(ColorCase == 0) SetPlayerColor(playerid, GetPlayerTeamColor(playerid)), ColorCase++;
else SetPlayerColor(playerid, WHITE), ColorCase = 0;
return 1;
}
stock GetPlayerTeamColor(playerid)
{
if(gTeam[playerid] == TEAM_USA) return GREEN;
else if(gTeam[playerid] == TEAM_CHINA) return YELLOW;
else if(gTeam[playerid] == TEAM_UP) return BLUE;
else if(gTeam[playerid] == TEAM_SAPLA) return RED;
else if(gTeam[playerid] == CLASS_MERC) return PURPLE;
else return WHITE;
}
stock MakePlayerHVT(playerid)
{
new string[128], PlayerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, PlayerName, MAX_PLAYER_NAME);
format(string, 128, "[High Value Target] %s (ID:%d) is now the High Value Target! Kill him!", PlayerName, playerid);
SendClientMessageToAll(COLOR_RED, string);
Target = playerid;
if(ColorBlip != -1) KillTimer(ColorBlip);
ColorBlip = SetTimerEx("ChangeColor", 1000, 1, "d", playerid);
SetPlayerColor(playerid, WHITE);
return 1;
}
stock GetRandomPlayer() // By MadeMan, modified by me.
{
new ConnectedPlayers[MAX_PLAYERS];
new idx;
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ConnectedPlayers[idx] = i;
idx++;
}
}
if(idx == 0) return -1;
else return ConnectedPlayers[random(idx)];
}
C:\Users\Weponz\Desktop\Server Files\gamemodes\M-SAIF.pwn(1735) : warning 219: local variable "ConnectedPlayers" shadows a variable at a preceding
stock GetRandomPlayer() // By MadeMan, modified by me.
{
new xConnectedPlayers[MAX_PLAYERS];
new idx;
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
xConnectedPlayers[idx] = i;
idx++;
}
}
if(idx == 0) return -1;
else return xConnectedPlayers[random(idx)];
}
public OnPlayerDisconnect(playerid, reason)
{
if(playerid == Target) ChooseNewHVT();
return 1;
}
Have you added this:
pawn Код:
|