Whitelist lässt jeden auf den Server

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
  • Hey Leute,
    habe eben eine Whitelist erstellt. Das ganze sieht so aus:


    public Whitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    if(strcmp(key,ThePlayer,true)==0) { return 1; }
    }
    fclose(file);
    return 0;
    }


    public OnPlayerConnect(playerid)
    {
    if(WHITELIST == 1) // Steht nur dafür, ob sie auch aktiviert ist. Und das ist sie, das wird beim starten des Servers nämlich in das Serverfenster geschrieben
    {
    if(Whitelist(playerid)) { }
    else { SendClientMessage(playerid, COLOR_RED, "Du stehst nicht auf der Whitelist!"); Kick(playerid); return 1; }
    }
    // Der Rest von OnPlayerConnect


    So, Errors oder Warnings gibts keine, aber jetzt lässt er mich auf den Server, egal ob ich auf der Whitelist stehe oder nicht.

    ...

  • public Whitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    while(fread(file,key))
    {
    if(strcmp(key,ThePlayer,true)==0) { return 1; }
    }
    }
    fclose(file);
    return 0;
    }


    PS: Der Fehler war, dass die Datei nicht in key reingelesen wurde und somit key ein leerer String war.


    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!

  • Ich glaube(bin mir somit nicht sicher)
    das es so heißen muss.
    public Whitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    while(fread(file,key))
    {
    if(!strcmp(key,ThePlayer,true)==0) { return 1; }
    }
    }
    fclose(file);
    return 0;
    }

  • Ne, hab den Fehler gefunden. Er ist in deinem Code:
    public NotOnWhitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    while(fread(file,key))
    {
    if(strcmp(key,ThePlayer,true)==0) { return 1; }
    }
    }
    fclose(file);
    return 0;
    }


    public OnPlayerConnect(playerid)
    {
    if(WHITELIST == 1) // Steht nur dafür, ob sie auch aktiviert ist. Und das ist sie, das wird beim starten des Servers nämlich in das Serverfenster geschrieben
    {
    if(NotOnWhitelist(playerid)) { SendClientMessage(playerid, COLOR_RED, "Du stehst nicht auf der Whitelist!"); Kick(playerid); return 1; }
    }
    // Der Rest von OnPlayerConnect



    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!


  • public NotOnWhitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    fread(file,key);
    if(strfind(ThePlayer, key, false, 0) != -1) return 1;
    }
    fclose(file);
    return 0;
    }


    public OnPlayerConnect(playerid)
    {
    if(WHITELIST == 1) // Steht nur dafür, ob sie auch aktiviert ist. Und das ist sie, das wird beim starten des Servers nämlich in das Serverfenster geschrieben
    {
    if(NotOnWhitelist(playerid)) { SendClientMessage(playerid, COLOR_RED, "Du stehst nicht auf der Whitelist!"); Kick(playerid); return 1; }
    }
    // Der Rest von OnPlayerConnect


    So müsste es gehen

    Es gibt 10 Arten von Menschen.
    Die, die Binär verstehen und die, die nicht.


  • public NotOnWhitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    fread(file,key);
    if(strfind(ThePlayer, key, false, 0) != -1) return 0;
    }
    fclose(file);
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    if(WHITELIST == 1) // Steht nur dafür, ob sie auch aktiviert ist. Und das ist sie, das wird beim starten des Servers nämlich in das Serverfenster geschrieben
    {
    if(NotOnWhitelist(playerid)) { SendClientMessage(playerid, COLOR_RED, "Du stehst nicht auf der Whitelist!"); Kick(playerid); return 1; }
    }
    // Der Rest von OnPlayerConnect

    Oops, hab was vertauscht, so stimmts jetzt eigentlich.

    Es gibt 10 Arten von Menschen.
    Die, die Binär verstehen und die, die nicht.