Guten Tag,
ich habe folgendes Problem: wenn ich jetzt bspw. /pay <Name .. z.B. Test> -45000 eingebe, wird dem Spieler (hier "Test") 45000$ abgezogen. Das wäre ja ein Bug, den man ausnutzen kann. Kann man das irgendwie fixxen?
Mein aktueller Code:
ocmd:pay(playerid,params[])
{
	new targetid,name[MAX_PLAYER_NAME],target[MAX_PLAYER_NAME],tmoney;
	if(sscanf(params,"ui",targetid,tmoney))return SendClientMessage(playerid,0xFFA300FF,"Benutzung: /pay <SpielerName / ID> <Betrag>");
	if(!IsPlayerConnected(targetid))return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht verbunden.");
	if(tmoney == 0) return SendClientMessage(playerid,COLOR_RED,"Der Betrag muss minimal 1$ betragen!");
	if(GetPlayerMoney(playerid) < tmoney)return SendClientMessage(playerid,COLOR_RED,"Du hast nicht so viel Geld!");
	if(playerid == targetid)return SendClientMessage(playerid,COLOR_RED,"Du kannst dir selbst kein Geld geben!");
	if(GetDistanceBetweenPlayers(playerid,targetid) > 10)return SendClientMessage(playerid,COLOR_RED,"Der Spieler ist nicht in deiner Nähe!");
	GetPlayerName(playerid,name,sizeof(name));
	GetPlayerName(targetid,target,sizeof(target));
	GivePlayerMoney(playerid,-tmoney);
	GivePlayerMoney(targetid,tmoney);
	new Float:xm, Float:ym, Float:zm,maxplayers=GetMaxPlayers();
	if(GetPlayerPos(playerid,xm,ym,zm))
	{
		for(new i=0;i<maxplayers;i++){
			if(IsPlayerConnected(i) && (i==playerid || IsPlayerInRangeOfPoint(i,15,xm,ym,zm))) {
				new string[256];
				format(string,sizeof(string),"* %s nimmt Geld aus seiner Tasche und gibt es %s (%i$).",name,target,tmoney);
				SendClientMessage(i,0xC2A2DAFF,string);
			}
		}
	}
	return 1;
}
Mit freundlichen Grüßen
Gredsoft