[Ajuda] Sistema de Fome que eu estava fazendo.
#1

Oi galera, estou aqui perguntando de novo .

Bom, eu estava fazendo um sisteminha bбsico de fome, para ver se eu tф pegando a o jeitinho da coisa.. E deu estes erro. Analisem o code para min por favor.

pawn Код:
// Topo GM
new Fome[MAX_PLAYERS];

forward pFome(playerid);



public pFome();
{
    if (Fome[playerid] => 10)
    {
            Fome[playerid]--;
    }
    else (Fome[playerid] =< 10)
    {
        Fome[playerid]--;
        SetPlayerHealth(playerid, -10);
        SendClientMessage(playerid, VERMELHO,"Vocк perdeu vida por estar com muita fome");
    }
{


public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/status", cmdtext, true, 10) == 0)
    {
        new stringFome[256];
        SendClientMessage(playerid,VERDE,"Seus status:");
        format(stringFome,sizeof(stringFome),"Fome: %d", Fome[playerid]);
        SendClientMessage(playerid,0xFF9933AA, stringFome);
        return 1;
    }
    return 0;
}


public OnGameModeInit()
{
    SetGameModeText("ZBR-RP");
    DisableInteriorEnterExits();
    SetTimer("pFome", 3600000 , true);
    return 1;
}
Erros :

C:\Users\Raн\Documents\GM\gamemodes\ZRP.pwn(25) : error 055: start of function body without function header
C:\Users\Raн\Documents\GM\gamemodes\ZRP.pwn(26) : error 010: invalid function or declaration
C:\Users\Raн\Documents\GM\gamemodes\ZRP.pwn(30) : error 010: invalid function or declaration

(Vejam se ele esse sistema funcionarб tambйm por favor ?)
Reply
#2

Vocк estб fazendo isso muito errado, explique exatamente o que vocк quer fazer.
O que vocк usa para atualizar a 'fome' do jogador ?
Reply
#3

Uso os SetTimer..

A cada 1 hora, ele diminui -1 de fome.

EDIT:

Esqueci de postar a parte do settimer e alguns erros. Pera ae.

EDIT 2:

AGORA SIM OLHA LБ.
Reply
#4

pawn Код:
// Topo GM
new Fome[MAX_PLAYERS];

forward pFome();
public pFome()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Fome[i] >= 10)
            {
                Fome[i]--;
            }
            else if(Fome[i] <= 10)
            {
                Fome[i]++;
                SetPlayerHealth(i, -10);
                SendClientMessage(i, VERMELHO, "Vocк perdeu vida por estar com muita fome");
            }
        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/status", cmdtext, true, 10) == 0)
    {
        new stringFome[256];
        SendClientMessage(playerid,VERDE,"Seus status:");
        format(stringFome,sizeof(stringFome),"Fome: %d", Fome[playerid]);
        SendClientMessage(playerid,0xFF9933AA, stringFome);
        return 1;
    }
    return 0;
}

public OnGameModeInit()
{
    SetTimer("pFome", 3600000 , true);
    return 1;
}
Alguns erros com chaves, operadores e callbacks.
Reply
#5

Deixa-me olhar. Obrigado jб toma REP pela forзa dada, eu acho que й o unico meio de agradecer nй.
Reply
#6

Rookie, voce nao pode dar REP ainda --'

@TOPIC:

pawn Код:
// Topo GM
new Fome[MAX_PLAYERS];

forward pFome();
public pFome()
{
    for(new i; i < MAX_PLAYERS; i++)
    {
        if(IsPlayerConnected(i))
        {
            if(Fome[i] >= 10)
            {
                Fome[i]--;
            }
            else if(Fome[i] <= 10)
            {
                Fome[i]++;
                SetPlayerHealth(i, -10);
                SendClientMessage(i, VERMELHO, "Vocк perdeu vida por estar com muita fome");
            }
        }
    }
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/status", cmdtext, true, 10) == 0)
    {
        new stringFome[256];
        SendClientMessage(playerid,VERDE,"Seus status:");
        format(stringFome,sizeof(stringFome),"Fome: %d", Fome[playerid]);
        SendClientMessage(playerid,0xFF9933AA, stringFome);
        return 1;
    }
    return 0;
}

public OnGameModeInit()
{
    SetTimer("pFome", 3600000 , 1);
    return 1;
}
Reply
#7

Biel, pode me responder uma coisa ?

Como faзo para tirar UM POUCO do sangue do cara..
Eu tinha usado o SetPlayerHealth, mas ele seta o sangue do player e nгo "Tira."
Por exemplo, queria mesmo dar um dano de tipo.. 10 no sangue do cara, mas nгo deixa-lo no 10, somente diminuir 10..
Reply
#8

Jб entendi o que й.

pawn Код:
SetPlayerHealth(i, -10);
Isto acima vai setar a vida do player para -10, ou seja, ele morrerб :S

pawn Код:
new Float:Life;

GetPlayerHealth(playerid,Life);

SetPlayerHealth(playerid,Life-10);
O correto й isso acima. Jб que tirarб 10% da vida que a pessoa tem, e nao setarб.
Reply
#9

Quote:
Originally Posted by RookieCoder
Посмотреть сообщение
Biel, pode me responder uma coisa ?

Como faзo para tirar UM POUCO do sangue do cara..
Eu tinha usado o SetPlayerHealth, mas ele seta o sangue do player e nгo "Tira."
Por exemplo, queria mesmo dar um dano de tipo.. 10 no sangue do cara, mas nгo deixa-lo no 10, somente diminuir 10..
й sу usar a funзгo GetPlayerHealth e conforme a vida dele, voce seta um valor 'x' a menos ^^

Quote:
Originally Posted by BielCOP
Посмотреть сообщение
Jб entendi o que й.

pawn Код:
SetPlayerHealth(i, -10);
Isto acima vai setar a vida do player para -10, ou seja, ele morrerб :S

pawn Код:
new Float:Life;

GetPlayerHealth(playerid,Life);

SetPlayerHealth(playerid,Life-10);
O correto й isso acima. Jб que tirarб 10% da vida que a pessoa tem, e nao setarб.
Nao ira tirar 10% da vida nao :S
Reply
#10

Tem como provar ?

Nao se contrarie ao meu post.

Ele estб correto, uso uma funcao parecida no meu GM.

Porque no dele nao ira pegar ? --'
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)