Whitelist für einen RL Server?

  • Hey, ich überlege gerade, ob ich eine Whitelist fürs Forum bruache.


    Positive Dinge:


    Bei bans, sind Spieler für immer gebannt.
    Volle Kontrolle über jeden User, da er auch im Forum registriert sein muss.


    Negative Dinge:


    Es kommen weniger Spieler drauf, da manche zu faul sind sich im Forum zu registrieren.
    Es kommen irgendwelche Spieler drauf, die nur 2 Mins drauf sin, und nur mit Userfiles den Server Space vollhauen.



    Was würdet ihr machen/empfehlen?? Bitte antworten und kommentieren!


    LG

  • Hallo


    Eine Whitelist filtert zwar, aber schlussendlich ist man doch zu faul, die neue IP mit evt. gebannten IPs abzugleichen. Ich würde einfach den Leuten, die Mist bauen, ein IP-Rangebann reinhauen und gut ist. Wegen dem Serverspace würde ich mir mal keine Gedanken machen und sonst machste halt eine Art Cronjob, wleche aus einer seperaten Datei die "Zuletzt online" Daten ausliest und ab einer gewissen Zeit die entsprechende Datei löscht.


    MfG Simon

  • Eine Range sind die ersten beiden Zahlen der Ip die sich trotz mehrfacher Routerrestarts auch nicht verändern.
    Habe ich beispielsweise die IP: 83.555.111.45 so ist meine Range: 83.555.
    Um diese zu bannen banne ich diese IP:
    83.555.*.* das * steht einfach für alle möglichen zahlen.


    Problem dabei ist: ich bin nciht der einzige mit der Range, es können immer wieder unschuldige gebannt sein.


    edit:

    Bei bans, sind Spieler für immer gebannt.


    Dort arbeite ich seid geraumer zeit an einer weiteren Methode

  • Nein sondern so:


    forward RangeBan(playerid);


    ocmd:rangeban(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,WEIß,"* Du bist kein Admin.");
    new pID, reason[128], string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, WEIß, "Benutzung: /rangeban [ID/Name] [Grund]");
    format(string,sizeof(string),"AdmCmd: Die RangeIP von %s wurde von %s gebannt. Grund: %s", SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    SendClientMessage(pID,ROT,"Solltest du zu Unrecht gebannt worden sein, so melde dich bitte im TeamSpeak 3 oder im Forum.");
    SetPVarInt(pID,"baned",1);
    RangeBan(pID);
    Kick(pID);
    return 1;
    }


    stock RangeBan(playerid)
    {
    new string[64], total[16],ip[16];
    if(!IsPlayerConnected(playerid)) return 0;
    GetPlayerIp(playerid, ip, sizeof(ip));
    new cnt;
    for(new i=0;i<strlen(ip);i++)
    {
    if(ip[i] == '.') cnt++;
    if(cnt == 2)
    {
    i++;
    strdel(ip, i, strlen(ip));
    format(total,sizeof(total),"%s*.*",ip);
    }
    }
    format(string, sizeof(string),"banip %s",total);
    SendRconCommand(string);
    return 1;
    }


    Die Bans sind in der server_ban datei oder so.. Einfach die Zeile in der Datei löschen und der Spieler ist entbannt...
    Viel Spaß :D
    LG,
    badnat

  • Rangebans sind heutzutage eins der schlechtesten Sachen,
    die man überhaupt machen kann.
    Bringt nix und sperrt unschuldige Leute.


    Stattdessen daher entweder per gpci sperren,
    oder einfach alle per Hand.


    Whitelist's nerven für Spieler und bedeuten zusätzliche Arbeit für die Administration,
    und am Ende wird eh jeder angenommen - unnütz!

  • GPCI ist der größte Müll, Trooper. ;)
    Jeder, der den gleichen Benutzernamen vom Benutzeraccount von Windows hat, hat die gleiche Serial.
    D.h., alle die "Tobias" als Benutzerkonto haben, haben die gleiche Serial.
    Auf Multi-Reallife ist mir dies aufgefallen.

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Ich bekomme 1 Error.


    error 017: undefined symbol "SpielerName"



    if(!IsPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,WEIß,"* Du bist kein Admin.");
    new pID, reason[128], string[128];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, WEIß, "Benutzung: /rangeban [ID/Name] [Grund]");
    Hier rauf bezogen --->format(string,sizeof(string),"AdmCmd: Die RangeIP von %s wurde von %s gebannt. Grund: %s", SpielerName(pID),SpielerName(playerid),reason);
    SendClientMessageToAll(ROT,string);
    SendClientMessage(pID,ROT,"Solltest du zu Unrecht gebannt worden sein, so melde dich bitte im TeamSpeak 3 oder im Forum.");
    SetPVarInt(pID,"baned",1);
    RangeBan(pID);
    Kick(pID);
    return 1;

  • Kye hat nicht umsonst die Funktion versteckt gehalten.

    Kalcor: "... it makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."

  • Ok, danke, jedoch hae ich noch eine Frage:


    man kann mit BanEx noch eine Begründung im Samp.ban machen. Beispiel:


    Das Normale: 127.0.*.* [11/09/11 | 00:27:14] NONE - IP BAN


    Möglich ist:



    127.0.*.* [11/09/11 | 00:27:14] NONE - SpielerName --- Grund: Test


    Ich hab es so probiert, bekomme es abern icht hin:


    RangeBanEx(pID,"%s --> Grund: %s",SpielerName,reason(pID));



    Ich wollte den Namen und Grund, wie der oben schon definiert ist, da rein kommt, einer eine Ahnung?