22.06.2014, 00:22
Wanted a basis for identifying the only player to stay alive an event x1, can someone help thanks.
new TotalEvenParticipants;
TotalEvenParticipants++;
// When someone joins
TotalEvenParticipants--;
//When someone dies
if (TotalEvenParticipants == 1)
//only one left
new JoinedEvent[MAX_PLAYERS]; // Top of script
/joinevent
JoinedEvent[playerid] = 1;
new count;
count++;
OnPlayerDeath:
if(JoinedEvent[playerid] == 1)
{
count--;
You've been killed and you're now out of the event.
if(count == 1)
{
Declare winner.
}
}
pawn Код:
|
new bool:inEvent[MAX_PLAYERS]; //example usage of the function public OnPlayerConnect(playerid) { playerEventState(playerid, false); return 1; } public OnPlayerDeath(playerid, killerid, reason) { playerEventState(playerid, false); return 1; } //you can use this to place player in an event or take him out. stock playerEventState(player, bool: st) { inEvent[player] = st; //player is disqualified. if(!st) { if(pOfEvent() == 1) { new lastPlayerID = eventLastPlayer(), str[50]; //do what you wish with the last player, example format(str, sizeof str, "INFO: ID %d is the last alive ", lastPlayerID); SendClientMessageToAll(str, 0xFF0000AA); } } return st; } stock eventLastPlayer() { //this function is used only if we know that there is one player for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i) && inEvent[i])return i; } stock pOfEvent() { new playersEvent = 0; for(new i = 0; i < MAX_PLAYERS; ++i) if(IsPlayerConnected(i) && inEvent[i])playersEvent++; return playersEvent; }