Help, please, /heal cmd strtok
#1

Alright, this is my heal cmd - used strtok.

pawn Код:
if (strcmp(cmdtext, "/heal, true, 10) == 0)
    {
        if(GetPlayerSkin(playerid) == 70)
        {
       
        index,
        new cmd[20];
        cmd = strtok(cmdtext, index);
        new tmp[20],
            id;
        tmp = strtok(cmdtext, index);
        if (strlen(tmp))
        {
            id = strval(tmp);
            if (IsPlayerConnected(id))
            {
                SetPlayerHealth(id, 100.0);
                SendClientMessage(id, 0x00FF00AA, "
You have been healed");
                SendClientMessage(playerid, 0x00FF00AA, "
Player healed");
            }
            else
            {
                SendClientMessage(playerid, 0xFF0000AA, "
Player not found");
            }
        }
        else
        {
            SendClientMessage(playerid, 0xFF0000AA, "
Usage: \"/heal <playerid>\"");
        }
        return 1;
}
When I compile - I get these errors:
Quote:

C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(264) : error 037: invalid string (possibly non-terminated string)
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(269) : error 017: undefined symbol "index"
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(269 -- 270) : error 029: invalid expression, assumed zero
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(270) : error 017: undefined symbol "cmd"
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(270) : fatal error 107: too many error messages on one line

Please help me!
Reply
#2

You should change index, to new index;
Reply
#3

here u go

if (strcmp(cmd, "/heal", true) == 0)
{
tmp = strtok(cmdtext, index);
if (strlen(tmp))
{
id = strval(tmp);
if (IsPlayerConnected(id))
{
SetPlayerHealth(id, 100.0);
SendClientMessage(id, 0x00FF00AA, "You have been healed");
SendClientMessage(playerid, 0x00FF00AA, "Player healed");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Player not found");
}
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/heal <playerid>\"");
}
return 1;
}


Ecko
Reply
#4

Quote:
Originally Posted by .::: [E
Ecko :::. ]
here u go

if (strcmp(cmd, "/heal", true) == 0)
{
tmp = strtok(cmdtext, index);
if (strlen(tmp))
{
id = strval(tmp);
if (IsPlayerConnected(id))
{
SetPlayerHealth(id, 100.0);
SendClientMessage(id, 0x00FF00AA, "You have been healed");
SendClientMessage(playerid, 0x00FF00AA, "Player healed");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Player not found");
}
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/heal <playerid>\"");
}
return 1;
}


Ecko
This gave me around 20 errors.

Quote:
Originally Posted by Don Correlli
You should change index, to new index;
This gave me 26 errors instead of 5.
Reply
#5

Quote:
Originally Posted by Klutty
Quote:
Originally Posted by .::: [E
Ecko :::. ]
here u go

if (strcmp(cmd, "/heal", true) == 0)
{
tmp = strtok(cmdtext, index);
if (strlen(tmp))
{
id = strval(tmp);
if (IsPlayerConnected(id))
{
SetPlayerHealth(id, 100.0);
SendClientMessage(id, 0x00FF00AA, "You have been healed");
SendClientMessage(playerid, 0x00FF00AA, "Player healed");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Player not found");
}
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/heal <playerid>\"");
}
return 1;
}


Ecko
What's that two errors?

Ecko

This gave me around 20 errors.

Quote:
Originally Posted by Don Correlli
You should change index, to new index;
This gave me 26 errors instead of 5.
You fucked up something XD

try this:

if (strcmp(cmd, "/heal", true) == 0)
{

tmp = strtok(cmdtext, index);
if (strlen(tmp))
{
id = strval(tmp);


if(GetPlayerSkin(playerid) == 70)
{
SetPlayerHealth(id, 100.0);
SendClientMessage(id, 0x00FF00AA, "You have been healed");
SendClientMessage(playerid, 0x00FF00AA, "Player healed");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Player not found");
}
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "Usage: \"/heal <playerid>\"");
}
return 1;
}

Ecko
Reply
#6

I need the
pawn Код:
if(GetPlayerSkin(playerid) == 70)
{
Since the code must be restricted so it can only be used with skinid 70!
Reply
#7

Try putting it in by yourself, you'll learn the most from that.

Try - see what happens
Reply
#8

I got:

pawn Код:
if (strcmp(cmd, "/heal", true) == 0)
    {
        new id[128];
        new cmd[128];
        new tmp[128];
     cmd = strtok(cmdtext, index);
     tmp = strtok(cmdtext, index);
    if (strlen(tmp))
    {
     id = strval(tmp);


     if(GetPlayerSkin(playerid) == 70)
     {
      SetPlayerHealth(id, 100.0);
      SendClientMessage(id, 0x00FF00AA, "You have been healed");
      SendClientMessage(playerid, 0x00FF00AA, "Player healed");
     }
     else
     {
      SendClientMessage(playerid, 0xFF0000AA, "Player not found");
     }
    }
    else
    {
        SendClientMessage(playerid, 0xFF0000AA, "Usage: /heal <playerid>");
    }
    return 1;
  }
And the strtok function:

pawn Код:
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;
}
But I get these errors:
Quote:

C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(264) : error 017: undefined symbol "cmd"
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(269) : error 017: undefined symbol "idx"
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(270) : error 017: undefined symbol "index"
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(273) : error 033: array must be indexed (variable "id")
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(27 : error 035: argument type mismatch (argument 1)
C:\Program\SAMP Server\gamemodes\PLOX TDM.pwn(279) : error 035: argument type mismatch (argument 1)

Reply
#9

Bump..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)