Bestimmten User etwas geben?

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
  • Hallöchen Leute. Ich möchte eine Funktion hinkriegen, so dass ich anderen z.B etwas geben kann
    Nehmen wir als Beispiel Drogen
    Was muss ich dann machen, dass der Befehl so lauten muss: /Drogen [Player ID] [Anzahl der Drogen] ?
    Sowas ist jetzt als Beispiel, ich weiß nicht wie man sowas formulieren kann :o


    Mit freundlichen Grüßen,


    PacMario :)!

  • Hm, Anfänger wie ich kann damit nicht besonders viel anfangen :(. Könntest du mir vielleicht ein Beispiel senden? Aber bitte nicht aus einem GodFather kopieren xD. Einfach ein Beispiel mit einem Command.


    Mit freundlichen Grüßen,


    PacMario :)!

  • 1. Kopiere ich sicherlich nichts aus einem GF.


    2. Code:



    ocmd:befehl(playerid,params[])
    {
    new pID, Anzahl; //Neue Variablen erstellen, ID und Anzahl für die Eingabe
    if(sscanf(params,"ui",pID,Anzahl))return SendClientMessage(playerid,-1,"Nutze: /Befehl [ID/Name] [Anzahl]"); //Fehlernachricht
    pID += Anzahl; //SpielerID die eingegeben wurde, kriegt die Anzahl die eingegeben wurde
    //bsp.: /Befehl BOMBER 50 | Hier würde ich jetzt 50 dazu kriegen.
    return 1;
    }


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Super, Danke schön. Geht sowas eigentlich auch mit diesem Normalen Command System? OnPlayerCommand ? Das passt mir irgendwie in die Logik besser. :)

  • Super, Danke schön. Geht sowas eigentlich auch mit diesem Normalen Command System? OnPlayerCommand ? Das passt mir irgendwie in die Logik besser.


    Natürlich geht das, dennoch ist das normale Commandsystem Müll und langsam, und komplizierter zu schreiben, damit kenn ich mich nicht aus.


    Am besten steigst du auf OCMD / ZCMD um, wobei ich dir eher ZCMD empfehlen würde.


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Natürlich geht das, dennoch ist das normale Commandsystem Müll und langsam, und komplizierter zu schreiben, damit kenn ich mich nicht aus.


    Am besten steigst du auf OCMD / ZCMD um, wobei ich dir eher ZCMD empfehlen würde.

    Hm okay. Ich bleibe erstmal bei deinem Beispiel, ich check da aber gerade gar nichts von :D. Wo kann ich hinschreiben, was hinzufügt werden soll? Ich sehe da ja nur pID und Anzahl xD

  • Hm okay. Ich bleibe erstmal bei deinem Beispiel, ich check da aber gerade gar nichts von :D. Wo kann ich hinschreiben, was hinzufügt werden soll? Ich sehe da ja nur pID und Anzahl xD


    Der Anzahl musst du deine Variable einsetzen.
    Er hat doch alles extra schön dahinter geschrieben ;)
    Guck dir den Befehl mal an und geh nach und nach durch für was das steht ;)

  • Hm okay. Ich bleibe erstmal bei deinem Beispiel, ich check da aber gerade gar nichts von . Wo kann ich hinschreiben, was hinzufügt werden soll? Ich sehe da ja nur pID und Anzahl xD


    Das war ein Beispiel.
    Anzahl lässt sich natürlich auch mit: LSD, Hanf, Speed, Koks o.ä. ersetzen, falls du dass im Script schon definiert hast.
    Wäre denn aber wohl eher eine Spielervariable.


    Beispiel:



    new str[128],name[MAX_PLAYER_NAME+1]; //Variablen erstellen
    GetPlayerName(playerid,name,sizeof(name)); //Spielername auslesen
    format(str,sizeof(str), "%s hat dir %ig Koks gegeben!",Name,Anzahl); //String formatieren auf %s für den Namen und %i für die Anzahl (Integer)
    Koks[pID] += Anzahl; //Anzahl der Eingabe im Befehl
    SendClientMessage(pID,-1,str); //Nachricht senden


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Krass, bin gerade so überfordert, ich verstehe da wirklich nichts von xD. Das ist ja jetzt in Dini Format, doch ich benutze MySQL xD

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Krass, bin gerade so überfordert, ich verstehe da wirklich nichts von xD. Das ist ja jetzt in Dini Format, doch ich benutze MySQL xD


    1. Das ist kein Dini format, das lässt sich ebenso in MySQL / SQLite / Was auch immer verwenden.


    2. Evtl. solltest du dich mehr mit dem SA:MP Wiki befassen, dort steht eigentlich alles relevantes.


    3. Klick mich!


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Was müsste ich hier drehen, damit es geht? xD
    Ich will aber eigentlich nur, dass die User ID verwendet wird, und nicht der Name.


    ocmd:givedrogen(playerid,params[]){ new pID, aDrogen, name[MAX_PLAYER_NAME],string[10]; GetPlayerName(playerid,name,sizeof(name)); if(SpielerInfo[playerid][pAdmin] == 7) { SpielerInfo[pID][pDrogen] = aDrogen; format(string, sizeof(string), "Du hast ID:%s %s Drogen gegeben!",pID, aDrogen); SendClientMessage(playerid,Blau,string); } return 1;}

  • Öhm, wie kann ich Anzahl als Drogen definieren?
    Also dass Anzahl die DrogenAnzahl ist. Ich habe es jetzt fast fertig, nur ich gib eine Anzahl an, doch es steht immer 0. Und in Datenbank wird auch nichts eingefügt.