Balanceador
#1

Hola, consegui este codigo:

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new Count1, Count2;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if (gTeam[playerid] == TEAM_1) Count1++;
        else if (gTeam[playerid] == TEAM_2) Count2++;
    }
    if ((Count1 > Count2) && gTeam[playerid] == TEAM_1)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
        return 0;
    }
    else if ((Count2 > Count1) && gTeam[playerid] == TEAM_2)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
        return 0;
    }
    return 1;
}
Pero el problema consiste en que si no hay nadie conectado, no te deja entrar en ninguno de los 2 Equipos
Ojala me puedan ayudar

Gracias
Reply
#2

Puedes cambiar el cуdigo para que en lugar de decirte: "[BALANCEADOR]: Selecciona otro Equipo", te cambie al otro equipo directamente.

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new Count1, Count2;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if (gTeam[playerid] == TEAM_1) Count1++;
        else if (gTeam[playerid] == TEAM_2) Count2++;
    }
    if ((Count1 > Count2) && gTeam[playerid] == TEAM_1)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Se le ha asignado el otro equipo para igualar el combate");
        gTeam[playerid] == TEAM_2
        return 1;
    }
    else if ((Count2 > Count1) && gTeam[playerid] == TEAM_2)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Se le ha asignado el otro equipo para igualar el combate");
        gTeam[playerid] == TEAM_1
        return 1;
    }
    return 1;
}
(Creo que deberнa funcionar)
Reply
#3

Funciono
Gracias, me servira mientras. Pero me gustaria mas la forma como dije

Saludos, si alguien sabe como arreglarlo porfavor postearlo
Reply
#4

Creo que asн funcionarб bien.

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new Count1, Count2;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if (gTeam[playerid] == TEAM_1) Count1++;
        else if (gTeam[playerid] == TEAM_2) Count2++;
    }
    if ((Count1 > Count2) && gTeam[playerid] == TEAM_1 && Count2 >= 1)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
        return 0;
    }
    else if ((Count2 > Count1) && gTeam[playerid] == TEAM_2 && Count1 >= 1)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
        return 0;
    }
    return 1;
}
Reply
#5

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new Count1, Count2;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if (gTeam[playerid] == TEAM_1) Count1++;
        else if (gTeam[playerid] == TEAM_2) Count2++;
    }
    if(Count2 != 0)
    {
        if ((Count1 > Count2) && gTeam[playerid] == TEAM_1)
        return SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
    }
    else if(Count1 != 0)
    {
        if ((Count2 > Count1) && gTeam[playerid] == TEAM_2)
        return SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
    }
    return 1;
}
creo que ahi deberia funcionar
Reply
#6

Nada =S
Gracias por intentar ayudarme
Reply
#7

UP !

No dejen morir el Tema. Nadie conoce un GM que traiga ese sistema ї?
Reply
#8

Quote:
Originally Posted by Wesk3R
Посмотреть сообщение
UP !

No dejen morir el Tema. Nadie conoce un GM que traiga ese sistema ї?
pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    new Count1, Count2;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if (gTeam[playerid] == TEAM_1) Count1++;
        else if (gTeam[playerid] == TEAM_2) Count2++;
    }
    if ((Count1 > Count2) && gTeam[playerid] == TEAM_1)
    {
       if(Count2 >= 1) return SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
    }
    else if ((Count2 > Count1) && gTeam[playerid] == TEAM_2)
    {
        if(Count1 >= 1) return SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
    }
    return 1;
}
Tiene q funcionar con ese...
Reply
#9

pawn Код:
public OnPlayerRequestSpawn(playerid)
{
    // El bug era gTeam[playerid] en vez de gTeam[i]

    new Count1, Count2;
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
        if (gTeam[i] == TEAM_1) Count1++;
        else if (gTeam[i] == TEAM_2) Count2++;
    }
    if ((Count1 > Count2) && gTeam[playerid] == TEAM_1)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
        return 0;
    }
    else if ((Count2 > Count1) && gTeam[playerid] == TEAM_2)
    {
        SendClientMessage(playerid, COLOR_ROJO, "[BALANCEADOR]: Selecciona otro Equipo");
        return 0;
    }
    return 1;
}
Reply
#10

No puede ser

Nada ha funcionado :S
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)