[Ajuda] Conflito
#1

Eaew Galera... bom, eu to fazendo um sistema de fome, com as includes...

PHP код:
ZCMD
SSCANF
PROGRESS 
Sу que quando eu faзo o comando /setfome [ID] [QUANTIDADE]... sу faz returnar a mensagem "Use: /setfome [ID] [QUANTIDADE]", como se eu nгo tivesse colocando o ID e a Quantidade...

Cуdigo aew:

pawn Код:
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <progress>

new Fome[MAX_PLAYERS];
new Bar:BarraFome[MAX_PLAYERS];

main()
{
    print("\n--------------------------------------");
    print(" Sistema de Fome");
    print("--------------------------------------\n");
}

public OnGameModeInit()
{
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
}

public OnPlayerConnect(playerid)
{
    SetTimer("UpFome",1000,true);
    SetTimer("VerificarFome",1000,true);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    BarraFome[playerid] = CreateProgressBar(503.00, 103.00, 101.50, 3.20, -8388353, 100.0);
    ShowProgressBarForAll(BarraFome[playerid]);
    return 1;
}

CMD:setfome(playerid, params[])
{
    new rID, rQuantia;
    if(sscanf(params, "ud", rID, rQuantia)) return SendClientMessage(playerid, -1, "Use: /setfome [ID] [QUANTIDADE]");
    if(!IsPlayerConnected(rID)) return SendClientMessage(playerid, -1, "Nгo conectado.");
    if(rQuantia <= 100)
    {
        Fome[rID] = rQuantia;
    }
    else
    {
        SendClientMessage(playerid, -1, "Valor invбlido.");
    }
    return 1;
}

forward UpFome(playerid);
public UpFome(playerid)
{
    Fome[playerid] += 1;
    return 1;
}

forward VerificarFome(playerid);
public VerificarFome(playerid)
{
    SetProgressBarValue(BarraFome[playerid], Fome[playerid]);
    UpdateProgressBar(BarraFome[playerid], playerid);

    if(Fome[playerid] > 100) //Sу verificando se tem bug.
    {
        Fome[playerid] = 100;
    }

    if(Fome[playerid] == 100)
    {
        SetProgressBarColor(BarraFome[playerid], 0x80FF00FF);
        //SendClientMessage(playerid, GetPlayerColor(playerid), "Vocк estб com muita fome!");
    }
    return 1;
}


Por favor, quem quiser ajudar aн...
Reply
#2

Faz um debug, e descobre o que o sscanf estб fazendo com as variбveis.
Parece estar correto, tenha certeza que compilou e que o servidor estб rodando a ъltima compilaзгo do AMX.
Reply
#3

pawn Код:
CMD:setfome(playerid,params[])
{
    new rID, rQuantia;
    if(sscanf(params, "ud", rID, rQuantia)) SendClientMessage(playerid, -1, "Use: /setfome [ID] [QUANTIDADE]");
    else if(!IsPlayerConnected(rID)) SendClientMessage(playerid, -1, "Nгo conectado.");
    else
    {
        if(rQuantia <= 100)
        {
            Fome[rID] = rQuantia;
        }
        else
        {
            SendClientMessage(playerid, -1, "Valor invбlido.");
        }
    }
    return 1;
}
Reply
#4

Quote:
Originally Posted by StreetGT
Посмотреть сообщение
pawn Код:
CMD:setfome(playerid,params[])
{
    new rID, rQuantia;
    if(sscanf(params, "ud", rID, rQuantia)) SendClientMessage(playerid, -1, "Use: /setfome [ID] [QUANTIDADE]");
    else if(!IsPlayerConnected(rID)) SendClientMessage(playerid, -1, "Nгo conectado.");
    else
    {
        if(rQuantia <= 100)
        {
            Fome[rID] = rQuantia;
        }
        else
        {
            SendClientMessage(playerid, -1, "Valor invбlido.");
        }
    }
    return 1;
}
LOL nesse codigo

PHP код:
CMD:setfome(playerid,params[])
{
    new 
rIDrQuantia;
    if(
sscanf(params"ui"rIDrQuantia))
    {
        
SendClientMessage(playerid, -1"Use: /setfome [ID] [QUANTIDADE]");
        return 
1;
    }
    if(
IsPlayerConnected(rID))
    {
         if(
rID != INVALID_PLAYER_ID)
        {
            if(
rQuantia || rQuantia <= 100)
            {
                
Fome[rID] = rQuantia;
            }
            else
            {
                
SendClientMessage(playerid, -1"Valor invбlido.");
            }
        }
    }
    else
    {
        
SendClientMessage(playerid, -1"Nгo conectado.");
    }
    return 
1
Tenta esse aki q eu coloquei

@Codigo atualizado
Reply
#5

Quote:
Originally Posted by lucas_mdr1235
Посмотреть сообщение
LOL nesse codigo

PHP код:
CMD:setfome(playerid,params[])
{
    new 
rIDrQuantia;
    if(
sscanf(params"ui"rIDrQuantia))
    {
        
SendClientMessage(playerid, -1"Use: /setfome [ID] [QUANTIDADE]");
        return 
1;
    }
    if(
IsPlayerConnected(rID))
    {
         if(
rID != INVALID_PLAYER_ID)
        {
            if(
rQuantia || rQuantia <= 100)
            {
                
Fome[rID] = rQuantia;
            }
            else
            {
                
SendClientMessage(playerid, -1"Valor invбlido.");
            }
        }
    }
    else
    {
        
SendClientMessage(playerid, -1"Nгo conectado.");
    }
    return 
1
Tenta esse aki q eu coloquei

@Codigo atualizado
teste e veja se nгo funciona, hб muitos metodos LOL
Reply
#6

e pq vc fez comparacoes aki pode ate funcionar mais tem tera bug ou estou errado ?
PHP код:
    if(sscanf(params"ud"rIDrQuantia)) SendClientMessage(playerid, -1"Use: /setfome [ID] [QUANTIDADE]");
    else if(!
IsPlayerConnected(rID)) SendClientMessage(playerid, -1"Nгo conectado.");
    else
    {
        if(
rQuantia <= 100)
        {
            
Fome[rID] = rQuantia;
        }
        else
        {
            
SendClientMessage(playerid, -1"Valor invбlido.");
        }
    } 
Reply
#7

Quote:
Originally Posted by lucas_mdr1235
Посмотреть сообщение
e pq vc fez comparacoes aki pode ate funcionar mais tem tera bug ou estou errado ?
PHP код:
    if(sscanf(params"ud"rIDrQuantia)) SendClientMessage(playerid, -1"Use: /setfome [ID] [QUANTIDADE]");
    else if(!
IsPlayerConnected(rID)) SendClientMessage(playerid, -1"Nгo conectado.");
    else
    {
        if(
rQuantia <= 100)
        {
            
Fome[rID] = rQuantia;
        }
        else
        {
            
SendClientMessage(playerid, -1"Valor invбlido.");
        }
    } 
depende do que voce considerar bug. ele disse apenas que o comando nao estava a dar, se considerar que ao fazer /setfome StreetGT e nao colocar o ultimo parametro nao vai receber nenhuma mensagem, considera isso bug? lol
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)