Beiträge von VitoHusky

    Da schließe ich mich Sonderzeichen an


    Da gibts kaum einen fertigen Code den man auch verwenden kann...


    Am besten schaust du dir an wie das alles aufgebaut ist lässt ne Variable machen dann das das oamt abscleppen kann dann die variable auf geld setzen und das der Player es wieder freikaufen kann


    ich bezweifle das dir jemand das mal eben so macht :D
    Natürlich gibt es bestimmt Leute die das machen aber.. naja ^^


    MfG

    Ja ich hab nochnie mit sscanf 2 gearbeitet :D
    Wie muss ich es denn verändern das es geht?


    ocmd:medis(playerid, params[])
    {
    if(IstInFraktion(playerid) != FRAK_Medic) { return SendInfoMsg(playerid, "Du bist kein Medic!"); }
    if(Duty[playerid] != 2) return SendInfoMsg(playerid, "Du bist nicht im Dienst! (/duty)");
    new Auswahl[20],Anzahl,tmpstr[128];
    if(sscanf(params,"s",Auswahl)) {
    SendNutzMsg(playerid, "/medis [Medikamente/Spritzen]");
    return 1;
    }
    printf("Auswahl: %s", Auswahl);
    if(!strcmp(Auswahl, "medikamente", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
    sscanf(params , "s[11]D(0)",Auswahl,Anzahl);
    if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");
    printf("Auswahl: %s | Anzahl", Auswahl, Anzahl);
    new MediAnzahl = SpielerVariablen[playerid][Medikamente]+Anzahl;
    if(MediAnzahl > 1200) {
    format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Medikamente mitnehmen! (Höchstens 1200)",1200-SpielerVariablen[playerid][Medikamente]);
    }
    new MediPreis = Anzahl*3;
    if(Spieler[playerid][Geld] < MediPreis) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Medikament 3$)", MediPreis);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][Medikamente] += Anzahl;
    format(tmpstr, sizeof tmpstr, "Du hast dir %d Medikamente für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,MediPreis,SpielerVariablen[playerid][Medikamente]);
    SendBlueMsg(playerid, tmpstr);
    return 1;
    }
    else if(!strcmp(Auswahl, "spritzen", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
    sscanf(params , "s[8]D(0)",Auswahl,Anzahl);
    if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Spritzen [Anzahl]");
    new SpritzenAnzahl = SpielerVariablen[playerid][Spritzen]+Anzahl;
    if(SpritzenAnzahl >= 1000) {
    format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Spritzen mitnehmen! (Höchstens 1000)",1000-SpielerVariablen[playerid][Medikamente]);
    }
    new SpritzenPreis = Anzahl*4;
    if(Spieler[playerid][Geld] < SpritzenPreis) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Spritzen 4$)", SpritzenPreis);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][Spritzen] += Anzahl;
    format(tmpstr, sizeof tmpstr, "Du hast dir %d Spritzen für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,SpritzenPreis,SpielerVariablen[playerid][Spritzen]);
    SendBlueMsg(playerid, tmpstr);
    return 1;
    }
    else if(!strcmp(Auswahl, "show", true)) {
    format(tmpstr, sizeof tmpstr, "Medikamente: %d/1200 \nSpritzen: %d/1000", SpielerVariablen[playerid][Medikamente],SpielerVariablen[playerid][Spritzen]);
    ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Medikamente u. Spritzen:", tmpstr, "Ok", "");
    return 1;
    }
    else {
    SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show]");
    return 1;
    }
    }

    Also hab hier mal ausgeben lassen



    printf("Auswahl: %s", Auswahl);
    if(!strcmp(Auswahl, "medikamente", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
    sscanf(params , "s[11]D(0)",Auswahl,Anzahl);
    if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");
    printf("Auswahl: %s | Anzahl", Auswahl, Anzahl);
    new MediAnzahl = SpielerVariablen[playerid][Medikamente]+Anzahl;
    if(MediAnzahl > 1200) {
    format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Medikamente mitnehmen! (Höchstens 1200)",1200-SpielerVariablen[playerid][Medikamente]);
    }
    new MediPreis = Anzahl*3;
    if(Spieler[playerid][Geld] < MediPreis) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Medikament 3$)", MediPreis);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][Medikamente] += Anzahl;
    format(tmpstr, sizeof tmpstr, "Du hast dir %d Medikamente für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,MediPreis,SpielerVariablen[playerid][Medikamente]);
    SendBlueMsg(playerid, tmpstr);
    return 1;
    }


    bei
    ./medis Medikamente
    kommt

    Code
    [00:17:06] sscanf warning: Strings without a length are deprecated, please add a destination size.
    [00:17:06] Auswahl: Medikamente
    [00:17:06] sscanf warning: String buffer overflow.


    bei
    ./medi Medikamente 10
    kommt

    Code
    [00:17:19] sscanf warning: Strings without a length are deprecated, please add a destination size.
    [00:17:19] Auswahl: Medikamente 10


    Ich verstehs nicht xD


    1. Wieso diese Warnings?
    2. wieso geht er ohne Zahl da rein und mit nicht? :D

    Genau ich hab sie in


    if(sscanf(params , "s[11]D(0)",Auswahl,Anzahl)) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");


    geändert


    wenn ich nichts eingebe nimmt er 0
    Wenn ich aber 10 dahinter eingebe kommt wieder eine Hilfe moment hier der ganze Befehl:
    http://pastebin.de/28963



    nur kommt jetzt bei der Eingabe von /medis Medikamente 10
    die untere Hilfe Meldung... also die


    else {
    SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show]");
    return 1;
    }

    Also das war schonmal ein guter Ansatz =) Danke Goldkiller


    jetzt habe ich den Code
    if(sscanf(params , "s[11]D(0)",Auswahl,Anzahl)) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");


    Klar standart = 0


    Also wenn ich "/medis medikamente" eingebe kommt keine Hilfe sondern er will sich 0 Medikamente kaufen xD
    Dan hab ich den standart wert weggenommen also
    if(sscanf(params , "s[11]d",Auswahl,Anzahl)) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");


    und dann kam wieder nur die Hilfe und man konnte nichts kaufen :huh:

    Hallo Community


    Ich möchte gerne den Befehl /medis [Medikamente, Spritzen, Show] [Anzahl] machen


    so nun benötige ich die Anzahl aber nur bei Medikamente und Spritzen


    Also dachte ich mir wenn das Medikamente ausgelesen ist lass ihn nochmal auslesen
    das brachte diesen Code zustande


    ocmd:medis(playerid, params[])
    {
    if(IstInFraktion(playerid) != FRAK_Medic) { return SendInfoMsg(playerid, "Du bist kein Medic!"); }
    if(Duty[playerid] != 2) return SendInfoMsg(playerid, "Du bist nicht im Dienst! (/duty)");
    new Auswahl[11],Anzahl,tmpstr[128];
    if(sscanf(params,"s",Auswahl)) {
    SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show]");
    return 1;
    }
    if(!strcmp(Auswahl, "medikamente", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
    if(sscanf(Auswahl,"si",Auswahl,Anzahl)) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");
    new MediAnzahl = SpielerVariablen[playerid][Medikamente]+Anzahl;
    if(MediAnzahl > 1200) {
    format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Medikamente mitnehmen! (Höchstens 1200)",1200-SpielerVariablen[playerid][Medikamente]);
    }
    new MediPreis = Anzahl*3;
    if(Spieler[playerid][Geld] > MediPreis) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Medikament 3$)", MediPreis);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][Medikamente] += Anzahl;
    format(tmpstr, sizeof tmpstr, "Du hast dir %d Medikamente für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,MediPreis,SpielerVariablen[playerid][Medikamente]);
    SendBlueMsg(playerid, tmpstr);
    return 1;
    }
    }


    Nur kommt jetzt bei ausführung "Unkown Command"
    Bitte um Rat zur später Stund =)