Befehle mit Übergabewerten

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
  • Ich komme damit voll net klar :S


    Wie mach ich das ich wen ich /route [Zahl 1-5] eingebe das bei Zahl1 dann ein text erscheint z.B Du fährt route eins,und das genause bei 2,3,4,5 :)
    Ich kapiere diesen Code von oben nicht.

  • if(!strlen(params)) return SendClientMessage(playerid,COLOR_RED," Fehler: /route [Zahl 1-5] ");
    route = strval(params);
    if(route == 1)
    {
    // make blabla
    }
    else if(route == 2)
    {
    // make something
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • danke aber errors:



    undefined symbol "params"
    undefined symbol "route"
    undefined symbol "params"
    undefined symbol "route"
    undefined symbol "route"

  • @Maercell,
    es geht hier um sscanf :0
    if (sscanf(params,"d", route)) { print("ERROR") }
    if(route==1) {}
    else if(route==2) {}
    ...


    Sampi,
    Grundlagen?Außerdem ist das keine Hilfe für irgendwelche Scriptprobleme sondern nur zu sscanf und dcmd und deren Benutztung.

  • Achso habs ja schon versucht aber nicht hinbekommen.
    Mache dann nen eigenen Thread auf ;)

  • Das geht,gibt ein Paramter 'p',der kann den darauffolgenden Char zum Trennsymbol machen.
    if (sscanf(params,"p/ddd", Tag, Monat, Jahr))//Macht '/' zum Trennsymbol


    cool danke. Kann man auch so machen, das man ohne / am anfang machen muss? normal sind die cmds ja /kill.


    MY SELFMADE GAMEMODE "NoName"

    Spoiler anzeigen


    - AccountSystem: 100%
    - LizenzenSystem: 5%
    - TelefonSystem: 5%
    - JobSystem: 3%
    - GeldSystem: 80%
    - AutoSystem: 75%
    - FahndungsSystem: [color=#ff6600]10%
    [color=#000000]- HausSystem: [color=#ff0000]0%

    [color=#000000]- GeschäftsSystem: [color=#ff0000]0%

    [color=#000000]- ZahlTag System: [color=#ff0000]0%

    [color=#000000]- WetterSystem: [color=#ff0000]0%

    [color=#000000]- AntiCheatSystem: [color=#ff0000]0%

    Spoiler anzeigen
    GameModeName: [GM]MyGamemode
    Filterscripts: None
    Benutze Includes: [Inc]MyInclude
    Voraussichtliche Fertigstellung: Unbekannt
    Voraussichtliche Servereröffnung: Unbekannt
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Voraussichtliche Veröffentlichung des Scripts: Wahrscheinlich NIE
    Sonstige Anmerkungen: Selfmade

  • Ich zitier mich mal selber.

    Zitat

    Natürlich funktioniert der Command auch so wunderbar,aber nur weil es funktioniert heisst nicht,dass es
    so auch die beste Lösung ist.Sehr anläufig für viele Bugs.Was ist wenn wir einen String bestehend aus "gwefd23f%D" in einen Integer konvertieren wollen?Gut,dafür gibt es IsNumeric,aber wir werden später sehen,es geht besser.
    Dazu kommt,dass man so auch euren Server crashen kann (Ja,das ist tatsächlich möglich mit dem Beispielcommand).


    Bei dem Beispiel von dir wäre es möglich den Server zu crashen.

  • Ja man muss beide Funktionen deklarieren.
    dcmd_armor(playerid, params[]);
    dcmd_armour(playerid, params[]);


    dcmd_armor(playerid, params[])
    {
    // Armor CMD
    }


    dcmd_armour(playerid, params[])
    return dcmd_armor(playerid, params);


    @OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(ad, 2, cmdtext);
    dcmd(advertise, 9, cmdtext);
    }

  • ich hab noch ein Problem bezüglich dcmd und dem PAWNO-Compiler
    jeder kenn sicher den ooc chat oder? "/ooc" oder auch "/o"
    hab ich so definiert:
    dcmd(ooc,3,cmdtext);dcmd(o,1,cmdtext);
    soweit so gut
    dann halt die zugehörige function:
    dcmd_o(playerid,params[]){return dcmd_ooc(playerid,params);}
    dcmd_ooc(playerid,params[])
    {
    new sendername[MAX_PLAYER_NAME],string[256];
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist nicht eingeloggt !");
    return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du bist nicht befugt !");
    return 1;
    }
    if(PlayerInfo[playerid][pMuted] == 1)
    {
    SendClientMessage(playerid, TEAM_CYAN_COLOR, " Du kannst nicht reden, da du gemutet wurdest !");
    return 1;
    }
    if ((noooc) && PlayerInfo[playerid][pAdmin] < 1)
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Der OOC Channel wurde ausgeschaltet !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new result[64];
    if(sscanf(params,"s",result))
    {
    return 1;
    }
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/o)oc [ooc chat]");
    return 1;
    }
    format(string, sizeof(string), "(( %s: %s ))", sendername, result);
    OOCOff(COLOR_ADMINMSG,string);
    printf("%s", string);
    }
    return 1;
    }
    doch der Compiler reagiert nicht wenn ich Compiliere.
    er stürzt aber auch nicht ab.
    ich muss ihn dann manuell mit dem Task Manager beenden, doch warum ist das so?
    PS: Wenn ich
    dcmd(o,1,cmdtext);
    und
    dcmd_o(playerid,params[]){return dcmd_ooc(playerid,params);}
    rausnehme geht es
    //edit: habe den command für /o kopiert und nun gehts

    you have been Traceured.


    Einmal editiert, zuletzt von Mike_Traceur ()

  • aber teste dochmal mit gleichen ersten zeichen
    /o und /ooc


    dcmd_o()
    dcmd_ooc()


    oder teste mal mit einem befehl, 3 bezeichnungen jeweils 3(4) zeichen lang
    dcmd_sms()
    dcmd_txt()
    dcmd_text()
    kompiler kompiliert das bei mir nicht

    you have been Traceured.


  • Ich hab mittlerweile mein ganzes Selfmade-Script umgeschrieben, nur ich hab Probleme mit diesem Datentyp u.
    new giveplayerid;
    if(sscanf(params,"u",giveplayerid)) return SendClientBlaBla(...);
    SetPlayerHealth(giveplayerid,100.0); // Beispiel


    Das sollte doch so gehen oder? Ich hatte da immer Probleme. Zb hab ich mit /sethp mein Health auf 100 setzen wollen und zack, war ich tot. Aber ich hab alles auf d geändert, also eine Ganzzahl und es geht.


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen