command frage

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Moin moin
    ich brauche einen command mit dem ich mit dem befehl /geld [id] dem das ganze geld wegnehmen kann und das ich den das geld bekomme was er hatte?
    er muss in der range vom anderen spieler sein?


    ich habe keine ahnung wie ich das scripte?
    es währe cool wen mir einer hilft :D


    mfg gtaec :thumbup:

  • Als erstes machst du wieder einen Command der so aussehen kann:


    ocmd:geld(playerid,params[])
    {
    return 1;
    }
    Dann ist erstmal die Frage wie man den Geldstatus, also wie viel der Spieler besitzt erfragen kann. Das kommt gleich. Zuerst kommen noch die nötigen Defines.
    new pID;
    Wenn ein Text angezeigt werden soll kannst du noch new textA[100], textB[100]; machen, und mit format die nötigen Informationen einspeisen.
    Nun wird folgendes gemacht:
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE,"Benutze: /geld [id]"); //sollte klar sein
    Jetzt zu der Frage wie man das Geld erfragen kann. Das geht mit GetPlayerMoney, und es wird so angewendet:
    GetPlayerMoney(playerid);
    Jedoch wollen wir ja nicht das Geld von sich selber erfragen, sondern das von dem Spieler wo man wählt. Dazu playerid, in pID ändern.
    GetPlayerMoney(pID);
    Nun ist der Geldstatus abgefragt, doch man kann ihn nicht so anwenden wie man es gerne haben möchte. Also das dass Geld von dem Spieler abgezogen wird und dem anderem gegeben wird.
    Dazu wird jetzt das gemacht:
    new Geld = GetPlayerMoney(pID);
    Jetzt liegt auf der Variable Geld das Geld wo von dem Spieler ausgelesen wird. Jetzt kann man auch mit GivePlayerMoney arbeiten. Das sieht jetzt so aus:
    GivePlayerMoney(playerid,Geld);
    Jetzt erhälst du das gesamte Geld von dem anderem Spieler. Doch bei ihn ist das Geld auch noch vorhanden. Das macht man mit ResetPlayerMoney weg.
    ResetPlayerMoney(pID);
    Nun zu der IsPlayerInRangeOfPoint Abfrage die geht so:
    new Float:x, Float:y, Float:z; //Koordinaten sind Floats und werden deswegen so erstellt.
    GetPlayerPos(pID,x,y,z); //Hier werden die Koordinanten herausgefunden
    So nun ist man im Besitzt der Koordinaten. Jetzt wird die IsPlayerInRangeOfPoint Abfrage erstellt:
    if(IsPlayerInRangeOfPoint(playerid,2.0/*distanz anpassen*/,x,y,z))
    {


    }
    Nun wird erfragt ob der Spieler den man auswählt auch an der Position des anderen Spieler ist.
    Alles in einem sieht der Command dann so aus:
    ocmd:geld(playerid,params[])
    {
    new pID, Float:x,Float:y,Float:z;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,WEISS,"Benutze: /geld [id]");
    new Geld = GetPlayerMoney(pID);
    GetPlayerPos(pID,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,2.0/*distanz anpassen*/,x,y,z))
    {
    GivePlayerMoney(playerid,Geld);
    ResetPlayerMoney(pID);
    }
    return 1;
    }


    MfG: T4125Gamer