public OnPlayerCommandText(playerid, cmdtext[])
{
new idx[256];
new cmd[256];
cmd = strtok(cmd, idx,
if(strcmp("/pay", cmd, true, 10) ==0)
{
new tmp[256], tmp2[256];
tmp = strtok(cmdtext, idx,
tmp2 = strtok(cmdtext, idx, //money
}
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_GREY, "Usage: /pay [playerid] [amount]");
return 1;
}
if(strlen(tmp2))
{
SendClientMessage(playerid, COLOR_GREY, "Usage: /pay [playerid] [amount]");
return 1;
}
new reciever, money;
reciever = strval(tmp);
money = strval(tmp2);
if(GetPlayerMoney(playerid) < money)
{
SendClientMessage(playerid, COLOR_GREY, "You don't have that much!");
return 1;
}
new string[128];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string, sizeof(string), "You recieved &%d from %s.", money, playername);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "You gave &%d to %s.", money, playername);
SendClientMessage(playerid, COLOR_GREY, string);
GivePlayerMoney(playerid, (0 - money));
GivePlayerMoney(reciever, money);
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;
}
return 1;
}
C:\Documents and Settings\Administrator\My Documents\My DM from scratch\gamemodes\new.pwn(236) : error 017: undefined symbol "strtok" C:\Documents and Settings\Administrator\My Documents\My DM from scratch\gamemodes\new.pwn(236 -- 238) : error 029: invalid expression, assumed zero C:\Documents and Settings\Administrator\My Documents\My DM from scratch\gamemodes\new.pwn(238 -- 239) : error 029: invalid expression, assumed zero C:\Documents and Settings\Administrator\My Documents\My DM from scratch\gamemodes\new.pwn(238 -- 239) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors.
public OnPlayerCommandText(playerid, cmdtext[])
{
new idx;
new cmd[128];
cmd = strtok(cmdtext, idx);
if(strcmp("/pay", cmd, true, 10) ==0 )
{
new tmp[128], tmp2[128];
tmp = strtok(cmd, idx);
tmp2 = strtok(cmd, idx); //money
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, "Usage: /pay [playerid] [amount]");
return 1;
}
if(strlen(tmp2))
{
SendClientMessage(playerid, COLOR_GREY, "Usage: /pay [playerid] [amount]");
return 1;
}
new reciever, money;
reciever = strval(tmp);
money = strval(tmp2);
if(GetPlayerMoney(playerid) < money)
{
SendClientMessage(playerid, COLOR_GREY, "You don't have that much!");
return 1;
}
new string[128];
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string, sizeof(string), "You recieved &%d from %s.", money, playername);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "You gave &%d to %s.", money, playername);
SendClientMessage(playerid, COLOR_GREY, string);
GivePlayerMoney(playerid, (0 - money));
GivePlayerMoney(reciever, money);
return 1;
}
return 0;
}
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;
}
Originally Posted by SA-MP Wiki
Strtok
Note: This function is deprecated and use of it should be avoided where possible. Better alternatives like sscanf are available for you to use. |
if(strcmp(cmd, "/pay", true) == 0)
{
new reciever, money;
if (sscanf(params, "dd", reciever, money)) SendClientMessage(playerid, COLOR_WHITE, "Usage: /pay [playerid] [amount]");
else
{
if(GetPlayerMoney(playerid) < money)
{
SendClientMessage(playerid, COLOR_GREY, "You don't have that much!");
return 1;
}
new string[64], playername[MAX_PLAYER_NAME], playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerName(reciever, playername2, sizeof(playername2));
format(string, sizeof(string), "You recieved &%d from %s.", money, playername);
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "You gave &%d to %s.", money, playername);
SendClientMessage(playerid, COLOR_GREY, string);
GivePlayerMoney(playerid, GetPlayerMoney(playerid) - money);
GivePlayerMoney(reciever, GetPlayerMoney(reciever) + money);
return 1;
}
}