Dann erklär ich dir das.
Ich benutzte dazu ocmd. Dafür brauchst du aber dann auch das sscanf Include + Plugin oder die Funktion direkt in deinem Script. Diese findest du hier: http://wiki.sa-mp.com/wiki/Sscanf_code
Nun aber zum Befehl. Erstmal brauchst du ein Grundgerüst womit du das ganze dann machen kannst. Dazu machst du jetzt das hier irgendwo ins Script:
ocmd:pay(playerid,params[])
{
return 1;
}
Hast du das gemacht musst du nun neue Variablen erstellen die wir dann später brauchen werden.
new AndereID, Betrag;
Zu diesen Variablen müssen wir jetzt Floats erstellen, da wir ja abfragen wollen ob der Spieler, den man dann im Befehl wählt, in der Nähe ist. Dazu ergänzt du jetzt folgende Zeile:
new AndereID, Betrag, Float:X,Float:Y,Float:Z;
Jetzt können wir mit dem eigentlichen Befehl anfangen, dazu benutze ich hier jetzt sscanf.
if(sscanf(params,"ud",AndereID,Betrag))return SendClientMessage(playerid,-1,"Benutze: /pay [ID][Betrag]");
Was das mit dem u und d auf sicht hat kannst du hier nachlesen: http://wiki.sa-mp.com/wiki/Fast_Commands#Data_types
Jetzt steht die Abfrage ob alle nötigen Parameter eingegeben wurden, die wir brauchen. Haben wir das gemacht können wir weiter machen. Ich macher hier jetzt mit der Abfrage ob der Spieler in der nähe ist weiter.
Dazu müssen wir jetzt zuerst die Position herausfinden, und das macht man mit GetPlayerPos.
GetPlayerPos(AndereID,X,Y,Z);
Jetzt haben wir die Position des ausgewählten Spielers. Nun können wir mit der Abfrage beginnen. Das macht man mit IsPlayerInRangeOfPoint.
if(!IsPlayerInRangeOfPoint(playerid,RANGE,X,Y,Z))return SendClientMessage(playerid,-1,"Der Spieler ist nicht in der nähe");
Die Abfrage ob der Spieler in der nähe ist steht, und damit auch der Halbe Befehl. Mit Range ist die Distanz zum Spieler gemeint. Kommen wir nun zu der Abfrage ob der Spieler genug Geld auf der Hand für diese Aktion hat. Das machen wir mit GetPlayerMoney und einer if Abfrage.
if(!GetPlayerMoney(playerid) > Betrag)return SendClientMessage(playerid,-1,"Du hast nicht genug Geld für diese Aktion");
Wenn wir diese Abfrage haben, haben wir es gleich geschafft. Nun muss man dem Player wo ausgewählt wurde das Geld geben, und dem der den Befehl anwendet, das angegebene Geld abziehen.
GivePlayerMoney(playerid,-Betrag);
GivePlayerMoney(AndereID,Betrag);
Jetzt könnte man den Befehl noch ausschmücken, das mache ich hier nicht da das einfach nur zur Demonstration sein soll.
Jetzt kannst du dir den Befehl zusammenbasteln.
Notwendige Sachen für den Befehl:
OCMD: [ INCLUDE ] ocmd 2.1.1 [ Update 3.11.2013 ]
SSCANF Plugin + Include: http://forum.sa-mp.com/showthread.php?t=120356
SSCANF Funktion: http://wiki.sa-mp.com/wiki/Sscanf_code