/Ban fehler

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
  • ocmd:ban(playerid,params[])
    {
    if(isPlayerAnAdmin(playerid,5))
    {
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason)) return SendClientMessage(playerid,RED,"Versuch es noch einmal es geht so: /ban Playerid Grund.");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(RED,string);
    SetPVarInt(playerid,"Gebannt",1);
    BanEx(pID, reason); // Du hast hier Kick angewendet. Das kickt den Spieler aber nur.
    }
    return 1;
    }


    Mit freundl. Grüßen
    Padarom

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • So ist es richtig:


    ocmd:ban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))
    {
    new pID, reason[128],string[128];
    if(sscanf(params,"us",pID,reason)) return SendClientMessage(playerid,RED,"Versuch es noch einmal es geht so: /ban Playerid Grund.");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(RED,string);
    SetPVarInt(pID,"Gebannt",1);
    Kick(pID);
    }
    return 1;
    }

  • @FrostWolf: Wieso sollte es? Die PVar hat mit dem Bannen nichts zu tun.
    Die Funktion die danach aufgerufen wird ist Kick, nicht Ban. Deswegen wird der Spieler nur gekickt.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • @FrostWolf: Wieso sollte es? Die PVar hat mit dem Bannen nichts zu tun.
    Die Funktion die danach aufgerufen wird ist Kick, nicht Ban. Deswegen wird der Spieler nur gekickt.


    Ja, aber wenn er sich wieder Einloggt wird das Wert geprüft ob 1 ist (gebannt) oder nicht. Dann wird er aus dem Server gekickt.

  • Und seit wann werden PVars beim Verlassen des Servers gespeichert?
    Hier ist dein Pastebin mit meiner Version: http://pastebin.com/0uqPu5pa
    So sollte es eigentlich klappen.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger


  • SetPVarInt(pID,"Gebannt",1);
    BanEx(pID,reason);

    Bei Padaroms Variante bannt er die jeweilige ID, aber setzt die PVar vom jeweiligen Ausführer des Befehles (wäre fatal, wenn die Variablen gespeichert werden (& geladen) und es eine Abfrage geben würde). Bei FrostWolfs Variante kickt er die jeweilige ID, setzt aber die PVar richtig.


    /E:
    Er lässt sie aber speichern :)


    /E²:
    Padarom war schneller, Fu :D

  • Douq: Yo, ist mir auch erst jetzt eingefallen. Habe ich aber schon vor deinem Post in der Pastebin editiert, wird jetzt richtig gesetzt.
    edit: Wenn er Ban nutzt, dann braucht er sie aber eigentlich garnicht speichern lassen, da der Spieler garnicht bis zur Abfrage kommt wenn er den Server connected. Wie gesagt, meine Pastebin sollte eigentlich stimmen.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • @FrostWolf: Wieso sollte es? Die PVar hat mit dem Bannen nichts zu tun.
    Die Funktion die danach aufgerufen wird ist Kick, nicht Ban. Deswegen wird der Spieler nur gekickt.

    Und seit wann werden PVars beim Verlassen des Servers gespeichert?
    Hier ist dein Pastebin mit meiner Version: http://pastebin.com/0uqPu5pa
    So sollte es eigentlich klappen.


    Bei mir klappts nicht ich bin immer banned egal ob bei gebannt 1 oder 0 steht.

  • Du hast meine alte Version ausprobiert?
    Dann geh mal in die Dini und setze das Banned von dir auf 0. Außerdem die samp.ban löschen, dadrin werden die Bans nämlich jetzt gespeichert.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger