Erweiterter 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
  • Hab's jetzt mal so versucht aber es funktioniert nochnicht ganz.


    CMD:spec(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    if(!IsPlayerSpectating[playerid])
    {
    SpectateOn(playerid);
    }
    else
    {
    SpectateOff(playerid);
    return 1;
    }
    if(!strcmp(params[1], "/next", true, 5))
    {
    SpectateNext(playerid);
    return 1;
    }
    else if(!strcmp(params[1], "/previous", true, 9))
    {
    SpectatePrevious(playerid);
    return 1;
    }
    }
    return 1;
    }


    lg

  • So ungefähr müsste es gehen, ist frei aus dem Kopf:


    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    // Code, wenn kein Parameter angegeben wird
    }
    if(strcmp(selection,"next",true) == 0)
    {
    //Code, wenn "next" als Parameter angegeben wird
    }


    Du musst halt, wie sonst auch mit sscanf einen Parameter angeben und diesen dann mit etwas vergleichen.


    Grüße,
    tonyalva

  • Ok...
    CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid])
    {
    SpectateOn(playerid);
    }
    else
    {
    SpectateOff(playerid);
    }
    }
    if(strcmp(selection,"next",true) == 0)
    {
    SpectateNext(playerid);
    }
    if(strcmp(selection,"previous",true) == 0)
    {
    SpectatePrevious(playerid);
    }
    }
    return 1;
    }

  • Hab's jetzt so, doch immernoch dasselbe Problem:


    CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid])
    {
    SpectateOn(playerid);
    }
    else
    {
    SpectateOff(playerid);
    }
    return 1;
    }
    if(strcmp(selection,"next",true) == 0)
    {
    SpectateNext(playerid);
    return 1;
    }
    if(strcmp(selection,"previous",true) == 0)
    {
    SpectatePrevious(playerid);
    return 1;
    }
    }
    return 1;
    }


    edit:// Weiß jemand die Lösung?

    Einmal editiert, zuletzt von Zcelo12 ()


  • public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp("/spectate next",cmdtext,false)) {
    SpectateNext(playerid);
    return 1;
    }
    if(!strcmp("/spectate previous",cmdtext,false)) {
    SpectatePrevious(playerid);
    return 1;
    }
    }

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Ich würds so machen (ungetestet)


    CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid])
    {
    SpectateOn(playerid);
    }
    else
    {
    SpectateOff(playerid);
    }
    return 1;
    }
    if(strcmp(params,"next") == 0)
    {
    SpectateNext(playerid);
    return 1;
    }
    if(strcmp(params,"previous") == 0)
    {
    SpectatePrevious(playerid);
    return 1;
    }
    }
    return 1;
    }


    //edit: Oder halt die Kurzform:
    CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid]) return SpectateOn(playerid);
    else return SpectateOff(playerid);
    }
    if(strcmp(params,"next") == 0) return SpectateNext(playerid);
    if(strcmp(params,"previous") == 0) return SpectatePrevious(playerid);
    }
    return 1;
    }

    Einmal editiert, zuletzt von Firefox ()

  • CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] <= 2) return 1; // Oder Funktion (z.B. SendClientMessage)


    new selection[10];
    if(!sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid]) SpectateOn(playerid);
    else SpectateOff(playerid);


    }
    if(!strcmp(selection,"next",true)) return SpectateNext(playerid);


    if(!strcmp(selection,"previous",true)) return SpectatePrevious(playerid);


    return 1;
    }
    Ungetestet, müsste aber gehen.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Gibt es eigentlich einen Unterschied zwischen der kurzen und längeren Art?
    WÜrde mich mal interessieren ob es was mit den Ressourcen ausmacht, falls ja soltle ich mich mal
    umstellen :D


    edit://
    Bekomme jetzt Warnings á la ...Should return a vakue.
    Ich musste bei den FUnktionen ein return 1; hinzufügen, jedoch werden die immernoch auf einmal ausgeführt.

    Einmal editiert, zuletzt von Zcelo12 ()

  • Welchen hast du den genommen?


    Deine Kurzform:
    CMD:spectate(playerid,params[])
    {
    if(Player[playerid][Admin] >= 2)
    {
    new selection[10];
    if(sscanf(params,"s[10]",selection))
    {
    if(!IsPlayerSpectating[playerid]) return SpectateOn(playerid);
    else return SpectateOff(playerid);
    }
    if(strcmp(params,"next") == 0) return SpectateNext(playerid);
    if(strcmp(params,"previous") == 0) return SpectatePrevious(playerid);
    }
    return 1;
    }