Duda con un conteo de players
#1

Bueno mi duda o problema es sobre un conteo de players que denomine de la siguiente manera

players ++; para cuando se sume uno a un minijuego en el cual se sumaran los players

players --; para cuando uno vaya muriendo se reste

lo que quiero hacer esque en OnplayerDeath cuando quede un player gane
ya defini usando

if(derbyrank < 2){ osea cuando queden menos de 2 que seria 1 gane el juego, pero no me funciona

si no entienden lo que trato de hacer es que cuando en ese juego u evento, quede solo 1 sobreviviente Gane

Mis codigos que hice, y no hay funcion exacta y me sale mal es asн

PHP код:
new string[128];
    if(
SurvivalGameKill[playerid] == 1)
    {
    if(
killerid != INVALID_PLAYER_ID)
     {
        new 
DerbyPlayerName[MAX_PLAYER_NAME];
        
GetPlayerName(playeridDerbyPlayerNamesizeof(DerbyPlayerName));
        
format(Bytssizeof(Byts), "» %s fue eliminado del Survival {FFFF80}[Puesto: %d]",DerbyPlayerName,players);
        
SendClientMessageToAll(0x008000C8Byts);
        
format(string2sizeof(string2), "deathmatchers # ~r~~h~%d",players);
        
TextDrawSetString(Participantes,string2);
        
TextDrawShowForAll(Participantes);
        
players--;
        if(
players 2)
        {
            for(new 
i=0i<MAX_PLAYERSi++)
            {
                if (
IsPlayerConnected(i) && SurvivalGameKill[i] == 1)
                {
                    new 
winnername[128];
                    
GetPlayerName(i,winnernamesizeof(winnername));
                    
RewardCalc(i,100,1000);
                    
format(stringsizeof(string), "» %s Gana el Survival {80FF00}[Premio: +$%d]"winnernamereward);
                    
SendClientMessageToAll(0x008000C8string);
                    
format(Bytssizeof(Byts), "Win # ~b~~h~%s",winnername);
                    
TextDrawSetString(Participantes,Byts);
                    
TextDrawShowForAll(Participantes);
                    
GivePlayerMoney(i,reward);
                    
SurvivalGameKill[i] = 0;
                    
SetPlayerVirtualWorld(i,0);
                    
SetPlayerInterior(playerid0);
                    
SetPlayerPos(ispawnXspawnYspawnZ);
                    
GameTextForPlayer(i,"~g~Ganaste el ~y~Survival",4000,3);
                    
TimeKillEvento SetTimer("ComandoListo",30000,0);
                    
SetTimer("HideWin",5000,0);
                    
players 0;
                }
           }
         }
       }
     } 
Reply
#2

Tenнas mal colocada una variable, le editй un par de cosas de los ifs para que sea mбs corto el cуdigo (aunque no influya) y la variable players era disminuida luego de que se ejecutara el primer textdraw cuando en realidad tendrнa que haber sido antes.
pawn Код:
new string[128];
if(killerid != INVALID_PLAYER_ID && SurvivalGameKill[playerid] == 1)
{
    new DerbyPlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, DerbyPlayerName, sizeof(DerbyPlayerName));
    format(Byts, sizeof(Byts), "» %s fue eliminado del Survival {FFFF80}[Puesto: %d]",DerbyPlayerName,players);
    SendClientMessageToAll(0x008000C8, Byts);
    players--;
    format(string2, sizeof(string2), "deathmatchers # ~r~~h~%d",players);
    TextDrawSetString(Participantes,string2);
    TextDrawShowForAll(Participantes);
    SurvivalGameKill[playerid] = 0;
    if(players == 1)
    {
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if (IsPlayerConnected(i) && SurvivalGameKill[i] == 1)
            {
                new winnername[MAX_PLAYER_NAME];
                GetPlayerName(i,winnername, sizeof(winnername));
                RewardCalc(i,100,1000);
                format(string, sizeof(string), "» %s Gana el Survival {80FF00}[Premio: +$%d]", winnername, reward);
                SendClientMessageToAll(0x008000C8, string);
                format(Byts, sizeof(Byts), "Win # ~b~~h~%s",winnername);
                TextDrawSetString(Participantes,Byts);
                TextDrawShowForAll(Participantes);
                GivePlayerMoney(i,reward);
                SetPlayerVirtualWorld(i,0);
                SetPlayerInterior(playerid, 0);
                SetPlayerPos(i, spawnX, spawnY, spawnZ);
                GameTextForPlayer(i,"~g~Ganaste el ~y~Survival",4000,3);
                TimeKillEvento = SetTimer("ComandoListo",30000,0);
                SetTimer("HideWin",5000,0);
                players = 0;
                break;
            }
        }
    }
}
Reply
#3

Quote:
Originally Posted by JustBored
Посмотреть сообщение
Tenнas mal colocada una variable, le editй un par de cosas de los ifs para que sea mбs corto el cуdigo (aunque no influya) y la variable players era disminuida luego de que se ejecutara el primer textdraw cuando en realidad tendrнa que haber sido antes.
pawn Код:
new string[128];
if(killerid != INVALID_PLAYER_ID && SurvivalGameKill[playerid] == 1)
{
    new DerbyPlayerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, DerbyPlayerName, sizeof(DerbyPlayerName));
    format(Byts, sizeof(Byts), "» %s fue eliminado del Survival {FFFF80}[Puesto: %d]",DerbyPlayerName,players);
    SendClientMessageToAll(0x008000C8, Byts);
    players--;
    format(string2, sizeof(string2), "deathmatchers # ~r~~h~%d",players);
    TextDrawSetString(Participantes,string2);
    TextDrawShowForAll(Participantes);
    SurvivalGameKill[playerid] = 0;
    if(players == 1)
    {
        for(new i=0; i<MAX_PLAYERS; i++)
        {
            if (IsPlayerConnected(i) && SurvivalGameKill[i] == 1)
            {
                new winnername[MAX_PLAYER_NAME];
                GetPlayerName(i,winnername, sizeof(winnername));
                RewardCalc(i,100,1000);
                format(string, sizeof(string), "» %s Gana el Survival {80FF00}[Premio: +$%d]", winnername, reward);
                SendClientMessageToAll(0x008000C8, string);
                format(Byts, sizeof(Byts), "Win # ~b~~h~%s",winnername);
                TextDrawSetString(Participantes,Byts);
                TextDrawShowForAll(Participantes);
                GivePlayerMoney(i,reward);
                SetPlayerVirtualWorld(i,0);
                SetPlayerInterior(playerid, 0);
                SetPlayerPos(i, spawnX, spawnY, spawnZ);
                GameTextForPlayer(i,"~g~Ganaste el ~y~Survival",4000,3);
                TimeKillEvento = SetTimer("ComandoListo",30000,0);
                SetTimer("HideWin",5000,0);
                players = 0;
                break;
            }
        }
    }
}
Muchas gracias soluciones mas certeras jamas tuve el agun foro distinto, pase tiempo deduciendo por mi mismo, pero ya quedo +Rescpet
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)