[Ajuda] Usar funзгo em uma pessoa
#1

Pessoal eu criei um comando de curar. Ai eu quero que a pessoa digite /curar [id]

Mas tipo, eu nгo sei o que colocar ao invйs de playerid nessa linha:

pawn Код:
SetPlayerHealth(playerid, 100.0)
O Comando й este
pawn Код:
if (strcmp("/curar", cmdtext, true, 8) == 0)
    {
        if (pClass[playerid] == 10)
        {
        SetPlayerHealth(playerid, 100.0)
        return 1;
        }
        else SendClientMessage(playerid,VERMELHO,"Vocк nгo й um(a) Mйdico(a)");
    }
Reply
#2

@Edit

Dei uma melhorada no code '-'

Tenta assim:

Obs vc usa sscanf?

pawn Код:
new ID;
if (strcmp("/curar", cmdtext, true, 8) == 0)
{
    if(pClass[playerid] == 10) return SendClientMessage(playerid, -1, "Vocк nгo й um(a) Mйdico(a)");
    if(sscanf(params, "u", ID)) return SendClientMessage(playerid, -1, "Use /Curar [ID]");
    if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "ID invalido");
    SetPlayerHealth(playerid, 100.0);
    return 1;
}
Reply
#3

Cara , nгo tenho sscanf '-'
Reply
#4

entгo cara nгo tem como eu te ajuda

@Edit

procurei e achei isso adapte para seu game mode

pawn Код:
static CurarTime[MAX_PLAYERS];


stock CurarFlooding(playerid)
{
    if(GetTickCount() - CurarTime[playerid] < 15000 )
    return 1;
    return 0;
}

public OnPlayerCommandText(playerid, cmdtext[])
{

    new cmd[256], idx;
    cmd = strtok(cmdtext, idx);

    if(strcmp(cmd, "/Curar", true) == 0)
    {
       
        if(CurarFlooding(playerid)){SendClientMessage(playerid, 0xFF0000FF, "vocк sу pode usar este comando cada 15 Segundo.");return 1;}
        CurarTime[playerid] = GetTickCount();
        new tmp[256];
        tmp = strtok(cmdtext,idx);
        new Float:xx, Float:yy, Float:zz;
        GetPlayerPos(playerid,  xx,yy,zz);//ou vice-versa com strval(tmp)
        if(IsPlayerInRangeOfPoint(strval(tmp), 4.0, xx,yy,zz))
        {
           
            if(TeamGang[playerid] == 0)//Mйdico
            {
               
                if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USE: /Curar [Nick/ID] no player que estiver prуximo");
                SetPlayerArmour(strval(tmp), 70.0);
                SetPlayerHealth(strval(tmp),100.0);
                SendClientMessage(strval(tmp),0xFFFF00AA,"Vocк foi curado por um Mйdico.");
            }
        }

        return 1;
    }

    return 1;
}
Reply
#5

pawn Код:
C:\Users\Tiago\Documents\Tiago\samp03x_svr_R1-2_win32\gamemodes\GangWar.pwn(186) : error 017: undefined symbol "strtok"
C:\Users\Tiago\Documents\Tiago\samp03x_svr_R1-2_win32\gamemodes\GangWar.pwn(186) : error 033: array must be indexed (variable "cmd")
C:\Users\Tiago\Documents\Tiago\samp03x_svr_R1-2_win32\gamemodes\GangWar.pwn(199) : error 017: undefined symbol "strtok"
C:\Users\Tiago\Documents\Tiago\samp03x_svr_R1-2_win32\gamemodes\GangWar.pwn(199) : error 033: array must be indexed (variable "tmp")
C:\Users\Tiago\Documents\Tiago\samp03x_svr_R1-2_win32\gamemodes\GangWar.pwn(185) : warning 203: symbol is never used: "idx"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
Reply
#6

Resolvi ja, eu adicionei essa stock

pawn Код:
stock strtok(const string[], &index)
{
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
        index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
        result[index - offset] = string[index];
        index++;
    }
    result[index - offset] = EOS;
    return result;
}
Agora vou testar , logo te falo
Reply
#7

se nгo funcionar tente '--'

pawn Код:
if (strcmp("/curar", cmdtext, true, 8) == 0)
    {
     if (pClass[playerid] == 10)
        {
        new plid;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) {
            SendClientMessage(playerid, Vermelho, "| ERRO | > Digite: /curar [id]");
            return 1;
        }
        SendClientMessage(playerid, COLOR_GREEN,"| INFO | Recuperado(a) com sucesso.");
        SetPlayerHealth(playerid, 100.0);
        return 1;
 }
 else
 SendClientMessage(playerid,VERMELHO,"| ERRO | Vocк nгo й um(a) Mйdico(a)");
 return 1;
    }
Reply
#8

pawn Код:
if(!strcmp(cmdtext, "/curar", true))
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
        return SendClientMessage(playerid, /*COR*/, "/curar [id]");

    static x = strval(tmp);

    if(!IsPlayerConnected(x))
        return SendClientMessage(playerid, /*COR*/, "Jogador desconectado!");

    /*aqui coloque as paradas que quer que sejam feitas, tipo: dar a vida, alguma mensagem, ... */

    return true;
}
Agora adapte ao seu sistema.
Caso nгo funcione ou dк qualquer erro avise.
Reply
#9

Quote:
Originally Posted by Knight97
Посмотреть сообщение
pawn Код:
if(!strcmp(cmdtext, "/curar", true))
{
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
        return SendClientMessage(playerid, /*COR*/, "/curar [id]");

    static x = strval(tmp);

    if(!IsPlayerConnected(x))
        return SendClientMessage(playerid, /*COR*/, "Jogador desconectado!");

    /*aqui coloque as paradas que quer que sejam feitas, tipo: dar a vida, alguma mensagem, ... */

    return true;
}
Agora adapte ao seu sistema.
Caso nгo funcione ou dк qualquer erro avise.
Erro nessa Linha:

pawn Код:
static x = strval(tmp);
pawn Код:
C:\Users\Tiago\Documents\Tiago\samp03x_svr_R1-2_win32\gamemodes\GangWar.pwn(221) : error 008: must be a constant expression; assumed zero
Reply
#10

Olha gente meu comando estб assim, sу que nгo funciona o /curar na pessoa. Da Server Unknown Command

pawn Код:
if (strcmp("/curar", cmdtext, true, 8) == 0)
    {
        if (pClass[playerid] == 10)
        {
        new tmp[256];
        tmp = strtok(cmdtext,idx);
        new Float:xx, Float:yy, Float:zz;
        GetPlayerPos(playerid,  xx,yy,zz);//ou vice-versa com strval(tmp)
        if(CurarFlooding(playerid)){SendClientMessage(playerid, 0xFF0000FF, "vocк sу pode usar este comando cada 15 Segundos.");return 1;}
        if(IsPlayerInRangeOfPoint(strval(tmp), 4.0, xx,yy,zz))
            {
        if(strlen(tmp) == 0) return SendClientMessage(playerid, 0xFFFFFFFF, "USE: /Curar [Nick/ID] no player que estiver prуximo");
        SetPlayerHealth(strval(tmp),100.0);
        SendClientMessage(strval(tmp),0xFFFF00AA,"Vocк foi curado por um Mйdico.");
        CurarTime[playerid] = GetTickCount();
        return 1;
            }
        }
        else SendClientMessage(playerid,VERMELHO,"Vocк nгo й um(a) Mйdico(a)");
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)