Szerző Téma: Időre bannolás  (Megtekintve 1004 alkalommal)

Nem elérhető Brand

  • 273
    • Profil megtekintése
Időre bannolás
« Dátum: 2016. Július 31. - 17:50:39 »
0 Show voters
Sziasztok!
Meg szeretném oldani ,hogy egy adott játékost adott ideig tudjak bannolni, például 1 órára , 1 napra, stb..
Én arra gondoltam ,hogy lekérem a jelenlegi időt és hozzááadok annyit amennyit kell, majd a kapott dátumot elmentem[Dini] és amikor felcsatlakozik a játékos akkor a rendszer megnézi ,hogy a dátum előbbi e vagy sem mint a mai dátum.
Ezzel a hozzáadással, lekérdezéssel gondban vagyok, ebben kérném a segítséget.

Időre bannolás
« Válasz #1 Dátum: 2016. Július 31. - 19:17:57 »
0 Show voters
Esetleg ez segíthet.
 
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp(cmdtext, \"/ban\", true) == 0)
    {
        if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000FF, \"You aren\'t a RCON Admin.\");
        new b[256], idx;
        b = strtok(cmdtext, idx);
        new player = strval(b);
        if(!strlen(b)) return SendClientMessage(playerid, 0xFFFFFFFF, \"USE: /ban [playerid] [time/hours]\");
        b = strtok(cmdtext, idx);
        new time = strval(b);
        if(!strlen(b)) return SendClientMessage(playerid, 0xFFFFFFFF, \"USE: /ban [playerid] [time/hours]\");
        if(!IsPlayerConnected(player) || player == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000FF, \"Invalid ID.\");
        if(time < 1) return SendClientMessage(playerid, 0xFF0000FF, \"Iime must be greater than 0.\");
        SendClientMessage(player, 0xFFFF00FF, \"You was banned.\");
        GetPlayerName(player, b, 24);
        format(b, 35, \"/Bans/%s.txt\", b);
        if(!fexist(b)) { dini_Create(b); }
        dini_IntSet(b, \"BanTime\", (gettime()+(time*3600)));
        Kick(player);
        SendClientMessage(playerid, 0xFFFF00FF, \"Player banned successfully.\");
        return 1;
    }
    return 0;
}
public OnPlayerSpawn(playerid)
{
    new str[35];
    GetPlayerName(playerid, str, 24);
    format(str, 35, \"/Bans/%s.txt\", str);
    if(fexist(str))
    {
        if(dini_Int(str, \"BanTime\") < gettime())
        {
            SendClientMessage(playerid, 0xFF0000FF, \"You are still banned.\");
            Kick(playerid);
        }
    }
    return 1;
}

Nem elérhető Brand

  • 273
    • Profil megtekintése
Időre bannolás
« Válasz #2 Dátum: 2016. Július 31. - 20:40:37 »
0 Show voters
Majdnem jó lenne csak idő közben rájöttem arra ,hogy amikor kitiltok valakit akkor nem csak az adott nevet hanem az IP címet is tiltom, a tiltott IP címek egy külön mappába kerülnek, illetve a játékos adatainál elmentem a legutolsó IP címét, így ez alapján fel tudjuk oldani. Ha viszont időre tiltjuk a nevet akkor mellé az IP címet is tiltani kellene, azonban amikor felcsatlakozik az illető és ha lejárt a tiltása az IP címe még ugyan úgy tiltva van, erre próbálok meg kitalálni valamit.

Időre bannolás
« Válasz #3 Dátum: 2016. Augusztus 02. - 09:35:34 »
0 Show voters
Tessék ezzel külön lehet IP-t, nevet bannolni és unbannolni lehet a tempban-t.
Link: Katt

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal