[AJUDA] Vida do Player '-'
#1

Olб, estou com um pequeno problema em meu cуdigo de fome / sede.

E estou necessitando de uma pequena ajuda.
O problema й que quando vem a fome / sede, ao invйs de tirar somente o life que estб no cуdigo, ele mata o player '-'
pawn Код:
public AtualizarVontade(playerid)
{
    new Float:vida[MAX_PLAYERS], string[24];

    for(new x = 0; x < MAX_PLAYERS; x++)
    {
        if(StatusFome[x] == 1)
        {
            GetPlayerHealth(playerid,vida[x]);
            StatusFome[x] = 1;
            SendClientMessage(x, 0xFF6347AA, "* Seu personagem estб com fome!");
            SendClientMessage(x, 0xFF6347AA, "* Procure uma das lanchonetes espalhadas por Los Santos!");
            format(string, sizeof(string), "~w~Fome...");
            TextDrawSetString(fome[x], string);
            TextDrawShowForPlayer(playerid, fome[x]);
            SetPlayerHealth(playerid, vida[x] - 20);
            SetTimerEx("FomeContinua", 60000 * 5, false, "i", x);
            SetTimerEx("LimparCreditos", 8000, false, "i", x);
            return 1;
        }
        if(StatusCede[x] == 1)
        {
            StatusCede[x] = 1;
            SendClientMessage(x, 0xFF6347AA, "* Seu personagem estб com sede!");
            SendClientMessage(x, 0xFF6347AA, "* Procure uma das barracas de bebidas espalhadas por Los Santos!");
            format(string, sizeof(string), "~w~Sede...");
            TextDrawSetString(fome[x], string);
            TextDrawShowForPlayer(playerid, fome[x]);
            SetPlayerHealth(playerid, vida[x] - 15);
            SetTimerEx("FomeContinua", 60000 * 5, false, "i", x);
            SetTimerEx("LimparCreditos", 8000, false, "i", x);
            return 1;
            }
    }
    return 1;
}
Alguйm poderia dar essa forзa? Sou grato desde jб!
Reply
#2

AtualizarVontade й executado de quanto em quanto tempo?
Reply
#3

Tu ta setando pra -20 de life ae mata mesmo.
Reply
#4

pawn Код:
TimerFome[playerid] = SetTimerEx("AtualizarVontade", 1200000, true, "i", playerid);
@EDIT

Jefe, ai vai vim 30 fomes, e o player vai ficar sempre life 85 ¬¬
Reply
#5

Quote:
Originally Posted by Mercurio
Посмотреть сообщение
pawn Код:
TimerFome[playerid] = SetTimerEx("AtualizarVontade", 1200000, true, "i", playerid);
Parece que cada ID de jogador tem um timer correspondente .


Sendo assim, troque seu cуdigo por este :


pawn Код:
forward AtualizarVontade(playerid);
public AtualizarVontade(playerid)
{
    new Float:vida, string[24];
    GetPlayerHealth(playerid,vida);
    if(StatusFome[playerid] == 1)
    {
        StatusFome[playerid] = 1;
        SendClientMessage(playerid, 0xFF6347AA, "* Seu personagem estб com fome!");
        SendClientMessage(playerid, 0xFF6347AA, "* Procure uma das lanchonetes espalhadas por Los Santos!");
        format(string, sizeof(string), "~w~Fome...");
        TextDrawSetString(fome[playerid], string);
        TextDrawShowForPlayer(playerid, fome[playerid]);
        SetPlayerHealth(playerid, (vida - 20.0));
        SetTimerEx("FomeContinua", 60000 * 5, false, "i", playerid);
        SetTimerEx("LimparCreditos", 8000, false, "i", playerid);
    }
    if(StatusCede[playerid] == 1)
    {
        StatusCede[playerid] = 1;
        SendClientMessage(playerid, 0xFF6347AA, "* Seu personagem estб com sede!");
        SendClientMessage(playerid, 0xFF6347AA, "* Procure uma das barracas de bebidas espalhadas por Los Santos!");
        format(string, sizeof(string), "~w~Sede...");
        TextDrawSetString(fome[playerid], string);
        TextDrawShowForPlayer(playerid, fome[playerid]);
        SetPlayerHealth(playerid, (vida - 15.0));
        SetTimerEx("FomeContinua", 60000 * 5, false, "i", playerid);
        SetTimerEx("LimparCreditos", 8000, false, "i", playerid);
    }
    return 1;
}


Espero ter ajudado .
Reply
#6

pawn Код:
if(StatusFome[playerid] == 1)
{
    StatusFome[playerid] = 1;
//
if(StatusCede[playerid] == 1)
{
    StatusCede[playerid] = 1;
Isso nгo faz sentido
Reply
#7

irei ver rjjj, um momento e.e
Reply
#8

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
pawn Код:
if(StatusFome[playerid] == 1)
{
    StatusFome[playerid] = 1;
//
if(StatusCede[playerid] == 1)
{
    StatusCede[playerid] = 1;
Isso nгo faz sentido
Nao faiz sentido mesmo vai verificar se esta 1 e depois vai setar para 1 denovo kkkk
Reply
#9

Vocк nгo estб getando o hp dele no statuscede e estб setando para -20 isso irб mata-lo.
Reply
#10

Como faзo para destruir o text em um certo timer?

pawn Код:
format(string, sizeof(string), "~w~Fome...");
TextDrawSetString(fome[x], string);
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)