[Frage] Clantags verbieten

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,


    da ich immer wieder auf Servern sehe, wie leute Clantags haben wie [GM] oder [Admin] möchte ich auf meinem Server es so machen, dass kein Spieler in seinem Namen einen Clantag haben darf.
    Aber wie mache ich dies?


    Danke für eure Hilfe und ich hoffe, dass es hier richtig gepostet ist :)


    LG


    Phyber :thumbup:

  • Ungetestet:



    //irgendwo unten ins Script:
    stock DoesPlayerHasTag(playerid,tag[]) {
    new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,sizeof(name));
    return (strfind(name,tag,true) != -1) ? 1 : 0;
    }
    //zu den anderen news:
    new BannedTags[][10] =
    //10 ist hier die länge, muss nichts geändert werden wenn neue geaddet werden
    {
    "[LoL]",
    "[xD]",
    "[123]"//letzte kein komma
    };
    //Und dann unter OnPlayerRequestClass z.B.
    for(new i = 0; i < sizeof(BannedTags); i++)
    {
    if(DoesPlayerHasTag(playerid,BannedTags[i]) == 1)
    {
    //hat
    }
    }

  • Vielen Dank! :D


    Also es funtioniert soweit, jedoch habe ich jetzt versucht, dass die Admins (System von MrMonat -> mit dini) nicht gekickt werden...


    so ist mein Code:

    Einmal editiert, zuletzt von Phyber ()

  • if(dini_Int(Spielerdatei,"Adminlevel")<1);
    1. Nach einer Abfrage kommt kein Semikolon ";".
    2. Warum liest du das ganze per dini aus und nicht direkt per enum ?

  • Also Errors hab ich jetzt keine mehr (Simikolon ich hasse dich xDD), jedoch kickt er mich nicht, wenn ich mich connecte... :( Wo ist der Fehler?


    Code:
    new playername[MAX_PLAYER_NAME];
    if(strfind(playername, "[") == 0)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Int(Spielerdatei,"Adminlevel")<1)
    {
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Nur Admins dürfen Clantags haben!");
    Kick(playerid);
    }
    return 1;
    }

  • new playername[MAX_PLAYER_NAME];
    if(strfind(playername, "["))
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Int(Spielerdatei,"Adminlevel")<1)
    {
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Nur Admins dürfen Clantags haben!");
    Kick(playerid);
    return 1;
    }

  • Hat leider auch nicht geholfen...


    public OnPlayerConnect(playerid)
    {
    TextDrawShowForPlayer(playerid,Forum);
    SetPlayerColor(playerid,weis);
    RemovePlayerAttachedObject(playerid, SLOT); //Helm
    SendClientMessage(playerid,gold,"~~~~~~~~~~~~~~[Willkommen auf Phybers Reallife Server!]~~~~~~~~~~~~~~~~~~~");
    new Loginname[MAX_PLAYER_NAME], string[128];
    GetPlayerName(playerid,Loginname,sizeof(Loginname));
    format(string,sizeof(string),"[Betreten] %s [ID: %d] hat den Server betreten!",SpielerName(playerid),playerid);
    SendClientMessageToAll(orange,string);


    PlayerChance[playerid] = 0;
    Knasti[playerid] = 0;
    Bankraub[playerid] = 0;
    Muellwagentour1[playerid] = 0;
    Truckertour1[playerid] = 0;
    SetTimerEx("ResetPlayerUpdate", 4000, 1, "d", playerid); // Alle 4 Sekunden sollte passen.
    PlayerUpdate[playerid] = true;

    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "Bus_Bot", true))
    {
    gPlayerLogged[playerid]=1;
    }
    }
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein","Register","Abbrechen") ;
    }
    new playername[MAX_PLAYER_NAME];
    if(strfind(playername, "["))
    {
    if(dini_Int(Spielerdatei,"Adminlevel")<2)
    {
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Nur Admins dürfen Clantags haben!");
    Kick(playerid);
    return 1;
    }
    }
    PDTimer[playerid] = SetTimerEx("PayDay", 60000, 1, "i", playerid);
    return 1;
    }

    2 Mal editiert, zuletzt von Phyber ()

  • mach aus:

    if(strfind(playername, "["))
    {
    if(dini_Int(Spielerdatei,"Adminlevel")<1)
    {
    return 1;
    }
    else
    {
    SendClientMessage(playerid,rot,"Nur Admins dürfen Clantags haben!");
    Kick(playerid);
    return 1;
    }
    }


    das hier



    if(strfind(playername, "["))
    {
    if(dini_Int(Spielerdatei,"Adminlevel")<2) {// Denke mal das Dein Adminrank die 2 ist.. sonst umändern..
    SendClientMessage(playerid,rot,"Nur Admins dürfen Clantags haben!");
    Kick(playerid);
    return 1;
    }
    }


    Edit: Klammerfehler behoben

    Einmal editiert, zuletzt von AlexLS95 ()