|HILFE| Mit "ocmd" & "Strcmp" Befehl.

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
  • Hallo alle zusammen ich brauche Hilfe ich komm einfach nicht weiter damit ich möchte gerne "ocmd" in "Strcmp" umschreiben,
    doch nur weis ich nicht wie ich das mit den sscanf "params" machen soll kann mir einer helfen ?. Wäre echt dankebar für eure Hilfe.
    Hier einfach mal der


    PWN-code:
    ocmd:makebizz(playerid,params[])
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    new Float:x,Float:y,Float:z,preis,level,int,world;
    if(sscanf(params,"dddd",preis,level,int,world))return SendClientMessage(playerid,BLAU,"Benutze: /makebizz [PREIS] [LEVEL] [INT-NR] [WORLD]");
    GetPlayerPos(playerid,x,y,z);
    CreateBizz(x,y,z,"Keiner",preis,level,int,world); //Mit Stock
    }
    return 1;
    }


    MFG.Chrisco

  • params kannst in diesem Fall durch cmdtext[10] ersetzen ( wenn unter OnPlayerCommandText ).
    Warum 10 ?
    Angenommen du gibst "/makebizz 500 1 1 1" ein, dann müssen wir den Text bis nach dem ersten Leerzeichen hinter makebizz abschneiden. Einfach den index von cmdtext direkt ansprechen.
    "/makebizz " muss weg. Einfachen die Zeichen zählen, dann hast den korrekten index.

  • Da ist doch ein Beispiel 0o.
    Was verstehst du denn daran nicht,musst mal etwas genauer werden.
    Der Text "/makebizz" hat 9 Zeichen, dazu kommt noch ein Leerzeichen.Macht also 10.
    Also nehmen wir den cmdtext ab der 10 Stelle anstatt params.

  • nun ich habe es so gemacht aber es klappt trozdem nicht wenn ich /makebizz eingib komm Benutze: /makebizz [Preis] [Level] [Int-nr] [World] dann gebe ich /makebizz 500 1 1 1 ein und es kommt gar nicht es wird auch nichts erstellt ?? Habe ich was falsch gemacht ?
    if(strcmp(cmd, "/makebizz", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new preis = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new level = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new int = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new world = strval(tmp);
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateBizz(x,y,z,"Keiner",preis,level,int,world); //stock
    }
    return 1;
    }

    Einmal editiert, zuletzt von Chrisco () aus folgendem Grund: NEU

  • ich habs so gemacht jetzt ?


    if(strcmp(cmd, "/makebizz", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new preis = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new level = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new int = strval(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]");
    new world = strval(tmp);
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    CreateBizz(x,y,z,"Keiner",preis,level,int,world); //stock
    }
    return 1;
    }


    Es geht auch jeztz alles nur wen ich /makebizz 500 1 1 1 mach kommt nichts es tuht sich nicht und wenn ich es falsch eingebe komm das "Benutze: /makebizz [Preis] [Level] [Int-nr] [World]"

  • Nein,du hättest nur params in der sscanf Zeile mit cmdtext[10] ersetzen müssen und den Kopf durch "if(!strcmp(..)".



    if(!strcmp(cmdtext,"/makebizz")) {
    {
    if(PlayerInfo[playerid][pAdmin] >= 3)
    {
    new Float:x,Float:y,Float:z,preis,level,int,world;
    if(sscanf(params,"dddd",preis,level,int,world))return SendClientMessage(playerid,BLAU,"Benutze: /makebizz [PREIS] [LEVEL] [INT-NR] [WORLD]"); // hier params durch cmdtext[10].
    GetPlayerPos(playerid,x,y,z);
    CreateBizz(x,y,z,"Keiner",preis,level,int,world); //Mit Stock
    }
    return 1;
    }