// On my defines
#define PocketMoney 1000
///////////////////////////////////////////////////The command
public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new giveplayerid, moneys, idx;
cmd = strtok(cmdtext, idx);
if(!IsPlayerAdmin(playerid)) return 1;
if(strcmp(cmd, "/givecash", true) == 0) {
PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, 0xFFFFFFAA, "{FF3300}Use: {FFFFFF}/givecash [id] [amount]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, 0xFFFFFFAA, "{FF3300}Usa: {FFFFFF}/givecash [id] [amount]");
return 1;
}
moneys = strval(tmp);
//printf("givecash_command: %d %d",giveplayerid,moneys);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys) {
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), "You gave to {DBED15}%s(id: %d){FFFFFF}, ${00CCFF}%d{FFFFFF}.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, 0xFFFFFFAA, string);
format(string, sizeof(string), "You got ${00CCFF}%d{FFFFFF} from {DBED15}%s(id: %d){FFFFFF}.", moneys, sendername, playerid);
SendClientMessage(giveplayerid, 0xFFFFFFAA, string);
printf("{DBED15}%s (id: %d){FFFFFF} gave ${00CCFF}%d{FFFFFF} to {DBED15}%s (id: %d){FFFFFF}.",sendername, playerid, moneys, giveplayer, giveplayerid);
}
else {
SendClientMessage(playerid, 0xFFFFFFAA, "Invalid transaction amount.");
}
}
else {
format(string, sizeof(string), "The player {DBED15}%d{FFFFFF} is not connected.", giveplayerid);
SendClientMessage(playerid, 0xFFFFFFAA, string);
}
return 1;
}
/////////////////////At the end of my script
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;
}
COMMAND:money(playerid, params[]) { new targetid, amount; GivePlayerMoney(targetid, amount); return 1; }
CMD:givemoney(playerid, params[])
{
new string[128], playerb, amount;
if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoney [playerid] [amount]");
if(amount <= 0) return SendClientMessage(playerid, -1, "Invalid money amount.");
if(GetPlayerMoney(playerid) < amount) return SendClientMessage(playerid, -1, "You don't have that much on you right now.");
GivePlayerMoney(playerid, -amount);
GivePlayerMoney(playerb, amount);
return 1;
}
CMD:givemoney(playerid, params[])
{
new string[128], playerb, amount;
if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoney [playerid] [amount]");
if(amount <= 0) return SendClientMessage(playerid, -1, "Invalid money amount.");
GivePlayerMoney(playerb, amount);
return 1;
}
new string[256];
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new giveplayerid, moneys, idx;
cmd = strtok(cmdtext, idx);
if(!IsPlayerAdmin(playerid)) return 1;
if(strcmp(cmd, "/givecash", true) == 0) {
PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, 0xFFFFFFAA, "{FF3300}Use: {FFFFFF}/givecash [id] [amount]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, 0xFFFFFFAA, "{FF3300}Usa: {FFFFFF}/givecash [id] [amount]");
return 1;
}
moneys = strval(tmp);
//printf("givecash_command: %d %d",giveplayerid,moneys);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0) {
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), "You gave to {DBED15}%s(id: %d){FFFFFF}, ${00CCFF}%d{FFFFFF}.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, 0xFFFFFFAA, string);
format(string, sizeof(string), "You got ${00CCFF}%d{FFFFFF} from {DBED15}%s(id: %d){FFFFFF}.", moneys, sendername, playerid);
SendClientMessage(giveplayerid, 0xFFFFFFAA, string);
printf("{DBED15}%s (id: %d){FFFFFF} gave ${00CCFF}%d{FFFFFF} to {DBED15}%s (id: %d){FFFFFF}.",sendername, playerid, moneys, giveplayer, giveplayerid);
}
}
else {
format(string, sizeof(string), "The player {DBED15}%d{FFFFFF} is not connected.", giveplayerid);
SendClientMessage(playerid, 0xFFFFFFAA, string);
}
return 1;
}
/////////////////////At the end of my script
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;
}
CMD:givemoney(playerid, params[])
{
new string[128], playerb, amount;
if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoney [playerid] [amount]");
if(amount <= 0) return SendClientMessage(playerid, -1, "Invalid money amount.");
GivePlayerMoney(playerb, amount);
return 1;
}
DM.pwn(1960) : warning 204: symbol is assigned a value that is never used: "string" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Warning.
CMD:givemoney(playerid, params[])
{
new playerb, amount;
if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoney [playerid] [amount]");
if(amount <= 0) return SendClientMessage(playerid, -1, "Invalid money amount.");
GivePlayerMoney(playerb, amount);
return 1;
}
pawn Код:
Hope it was this you wanted ![]() |
DM.pwn(1959) : error 017: undefined symbol "sscanf" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 1 Error.
#include <sscanf2>
CMD:givemoney(playerid, params[])
{
new playerb, amount;
if(sscanf(params, "ui", playerb, amount)) return SendClientMessage(playerid, -1, "USAGE: /givemoney [playerid] [amount]");
if(amount <= 0) return SendClientMessage(playerid, -1, "Invalid money amount.");
if(amount > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "You don't have that much money.");
GivePlayerMoney(playerb, amount);
return 1;
}
Well then it's highly recommended you use sscanf for this kind of command.
Download the latest SSCANF include/plugin and add pawn Код:
pawn Код:
|