Beiträge von VitoHusky

    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 =)

    aus
    public VUTimer(playerid)


    public VUTimer()


    und dann das ganze dadrinn in eine Schleife setzen wie


    for(new p = 0; p < MAX_PLAYERS; p++) {
    und dann in der Funktion selber natürlich noch aus playerid p machen fertig =)



    Problem erklärung
    Du rufst eine Funktion ohne angaben auf
    Standart wert ist in dem Fall nicht gesetzt also wird es 0
    Die ganze funktion geht nur auf ID 0 =)

    Kurzanleitung


    Tot -> Variable setzen und ins Krankenhaus stecken
    Medic kriegt ne meldung + Ort
    Wenn medic da ist kann er /revive machen vorher wird ein Timer erstellt wo die Zeit angegeben ist, wielange er /revive machen kann
    wenn revive fertig aus dem kh holen und an die posi stellen und variable auf 0 setzen
    bei disconnect oder nach ablauf der zeit den medics freundlicherweise ne nachricht das es zu spät ist und das Definierte Pickup entfernen