CMD:givemoney(playerid, params[])
{
new
targetID,
parameter
;
if(sscanf(params, "ui", targetID, parameter)) return UsageTag(playerid, "/givemoney [ID] [AMOUNT]");
if(!IsPlayerConnected(targetID)) return ErrorTag(playerid, "The specified player is offline!");
GivePlayerCash(targetID, parameter);
return 1;
}
new targetID, parameter, ;
stock ErrorTag(playerid, message[])
{
new string[128];
format(string, sizeof(string), ""TEXT_RED"[ERROR] "TEXT_WHITE"%s", message);
SendClientMessage(playerid, RED, string);
return 1;
}
Look:
Код:
new targetID, parameter, ; |
CMD:givemoney(playerid, params[])
{
new
targetID,
parameter,
string[128],
query[128]
;
if(pData[playerid][pAdmin] < 2) return ErrorTag(playerid, "You have no permission to use this command!");
if(sscanf(params, "ui", targetID, parameter)) return UsageTag(playerid, "/givemoney [ID] [AMOUNT]");
if(parameter < 0) return ErrorTag(playerid, "You cant use minus value.");
if(pData[targetID][pIsLoggedIn] == false) return ErrorTag(playerid, "The selected player is not logged in!");
if(!IsPlayerConnected(targetID)) return SendClientMessage(playerid, 0xFFFFFF, "Test");
mysql_format(g_sql, query, sizeof(query), "UPDATE characters SET p_money = '%d' WHERE p_name = '%e'", pData[playerid][pMoney], ReturnName(targetID));
mysql_tquery(g_sql, query);
format(string, sizeof(string), "%s gave you $%d", ReturnName(playerid), parameter);
ServerTag(targetID, string);
format(string, sizeof(string), "You gave %s $%d", ReturnName(targetID), parameter);
ServerTag(playerid, string);
GivePlayerCash(targetID, parameter);
return 1;
}
pData[targetID][pMoney] += parameter;
ResetPlayerMoney(targetID);
GivePlayerMoney(targetID, pData[targetID][pMoney]);
mysql_format(g_sql, query, sizeof(query), "UPDATE characters SET p_money = '%d' WHERE p_name = '%e'", pData[targetID][pMoney], ReturnName(targetID));
mysql_tquery(g_sql, query);
mysql_format(g_sql, query, sizeof(query), "UPDATE characters SET p_money = '%d' WHERE p_name = '%e'", pData[playerid][pMoney], ReturnName(targetID));
'pData[playerid][pMoney]' should be 'pData[targetID][pMoney]' |
Also, the IsPlayerConnected check should be above the pData[targetID][pIsLoggedIn] check, shouldn't it?
Because if you receive an Invalid Player ID with sscanf, then you will have an error when trying to access the array at that invalid index, I believe. And you should use "r" instead of "u" for sscanf, because "u" also detects NPCs, which you don't want, right? https://sampforum.blast.hk/showthread.php?tid=570927 |