ban with delay

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
xedga
Jau po truputį tampa savu
Posts: 154
Joined: 2010 Sep 24 20:12
Skype: xedga-beribu
Location: Šiauliai/Kaunas

ban with delay

Post by xedga »

Sveiki,
Tarkim yra kodas, baninantis išėjusį žaidėją, kaip reiktu padaryti delay, kad ji banintu tik po 5min ir tik jei jis negrįžo į serverį.

Code: Select all

public client_disconnect(id) {    new Name[32], Sid[32]        get_user_name(id, Name, 31)    get_user_authid(id, Sid, 31)     server_cmd( "amx_ban ^"%s^" ^"%s^" 60 ^"Disconnected^"", Name, Sid)        } 
Ačiū už pagalbą :)
Last edited by xedga on 2013 Feb 04 19:41, edited 1 time in total.

User avatar
hleV
AMX Mod X ekspertai
Posts: 875
Joined: 2011 Apr 02 11:23
Skype: hlev.lt
Location: Šiauliai

Re: ban with delay

Post by hleV »

Turėtų veikt. Veikimo principas toks: Kai žaidėjas atsijungia, išsaugomas jo atsijungimo laikas. Kai jis vėl bando prisijungti, tikrinama kiek laiko praėjo. Jei daugiau nei 5 min., jį išbanina (60 - praėjęs laikas nuo atsijungimo) min.

Code: Select all

#include <amxmodx> #define RECONNECT_TIME 5#define BAN_TIME 60 new Trie:DisconnectTimes;new BannedClient; public plugin_init(){    DisconnectTimes = TrieCreate();} public client_putinserver(client){    new steamId[35];    get_user_authid(client, steamId, charsmax(steamId));        new disconnectTime;        if (!TrieGetCell(DisconnectTimes, steamId, disconnectTime))        return;        TrieDeleteKey(DisconnectTimes, steamId);        new timeSinceDisconnect = get_systime() - disconnectTime;        if (timeSinceDisconnect > RECONNECT_TIME * 60)    {        BannedClient = client;        server_cmd("amx_ban #%d %d Disconnected", get_user_userid(client), BAN_TIME - (timeSinceDisconnect / 60));    }} public client_disconnect(client){    if (client == BannedClient)    {        BannedClient = 0;                return;    }        if (!is_user_connected(client))        return;        new steamId[35];    get_user_authid(client, steamId, charsmax(steamId));    TrieSetCell(DisconnectTimes, steamId, get_systime());}
Image ← RIP best userbar
DISKUSIJA: KIETAS PLUGIN'O UŽSAKOVAS
Privačios pagalbos neteikiu!

xedga
Jau po truputį tampa savu
Posts: 154
Joined: 2010 Sep 24 20:12
Skype: xedga-beribu
Location: Šiauliai/Kaunas

Re: ban with delay

Post by xedga »

Ačiū, atrodo viskas veikia ;)

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 4 guests