bueno es un poco largo de explicar creo, pero aca te doy un empujon x asi decirlo para que te puedas guiar
si ya tienes los equipos definidos, crea una variable globalos asecinatos de cada equipo y un timer.
una vez que tienes la variable, en el callback OnPlayerDeath, vas a ver de que equipo es cada jugador, lo puedes hacer con un if. y le sumas 1 asecinato al equipo anterior(a la variable).
dentro del timer que va a tener el tiempo que tu elijas mediante un if comparas que equipo tiene mas asecinatos y decides quien es el ganador.
podria quedar algo asi:
pawn Код:
#define EQUIPO1 1 //yo defini el equipo 1 para que te puedas guiar y que no haya nada sin definir dentro de lo q te digo
#define EQUIPO2 2 //IDEM que arriba
new Equipo1Kills; // variable global para guardar los asecinatos del equipo 1.
new Equipo2Kills; // variable global para guardar los asecinatos del equipo 2.
new gTeam[MAX_PLAYERS]; //variable para guardar el equipo de cada jugador.
forward Partida(); //forward del timer
pawn Код:
public OnGameModeodeInit()
{
SetTimer("Partida", 1200000, 0);//timer que determina la duracion de cada partida. (Nota: El timer esta puesto en 20 minutos)
return 1;
}
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
if(gTeam[playerid] != gTeam[killerid]){ //si el jugador que murio y el que lo mato no son del mismo equipo...
if(gTeam[playerid] == EQUIPO1){ //si el jugador que murio es del equipo 1...
Equipo2Kills++; //suma 1 a la variable de asecinatos del equipo 2.
}
//si solo son 2 equipos usa else, si no usa if.
else{
Equipo1Kills++; //suma 1 a la variable de asecinatos del equipo 1.
}
}
return 1;
}
pawn Код:
public Partida() //El Timer
{
if(Equipo1Kills > Equipo2Kills){ //si los asecinatos del equipo 1 son mas que los del equipo 2...
for(new i=0; i<MAX_PLAYERS; i++){ //variable q almacena todos los id de los jugadores
if(IsPlayerConnected(i) && gTeam[i] == EQUIPO2){ //si i esta conectado y es miembro del equipo 1...
GameTextForPlayer(i, "-B-Tu equipo ha Ganado la batalla!", 3000, 3); //manda un mensaje
}
}
}
if(Equipo1Kills < Equipo2Kills){ //si los asecinatos del equipo 2 son mas que los del equipo 1...
for(new i=0; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i) && gTeam[i] == EQUIPO2){
GameTextForPlayer(i, "-B-Tu equipo ha Ganado la batalla!", 3000, 3);
}
}
}
else{
for(new i=0; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
GameTextForPlayer(i, "-B-EMPATE!", 3000, 3);
}
}
}
}
Espero que te sirva