Jump to content

[Tutorial] Anti-Flood pack


Recommended Posts

Salutare,astazi va voi invata cum sa faceti un anti-flood total al serverului nu numai in chat,ceea ce o sa va arat astazi ese foarte bun sistem si sper sa va fie de folos,pare complicat dar munca grea da si rezultate bune!
Ce rost are aceasta sistema? Sunt metode de DDos a serverului prin chemarea unor publicuri,respectiv mai multe chemari,mai putin se ispraveste hostingurile cu sarcinile chemate de jucator
Citat

//introducere

#define MIN_CONNECTED_TIME    1000 

static const Mtc[27] = {
    250,    //OnDialogResponse
    800,    //OnEnterExitModShop
    150,    //OnPlayerClickMap
    500,    //OnPlayerClickPlayer
    180,    //OnPlayerClickTextDraw
    400,    //OnPlayerCommandText
    3000,    //OnPlayerDeath
    150,    //OnPlayerEnterVehicle
    300,    //OnPlayerExitVehicle
    500,    //OnPlayerInteriorChange
    400,    //OnPlayerPickUpPickup
    180,    //OnPlayerRequestClass
    250,    //OnPlayerSelectedMenuRow
    600,    //OnPlayerStateChange
    530,    //OnVehicleMod
    530,    //OnVehiclePaintjob
    530,    //OnVehicleRespray
    1000,    //OnPlayerSpawn
    600,    //OnVehicleDeath
    400,    //OnPlayerText
    580,    //OnPlayerEnterCheckpoint
    580,    //OnPlayerLeaveCheckpoint
    200,    //OnPlayerRequestSpawn
    350,    //OnPlayerExitedMenu
    320,    //OnPlayerDeath (for killer)
    300,    //OnIncomingConnection
    150,    //Cross-public
    580,    //OnPlayerEnterRaceCheckpoint
    580,    //OnPlayerLeaveRaceCheckpoint
    180      //OnPlayerClickPlayerTextDraw
},


Mfc[27] =
{
    4,        //OnDialogResponse
    2,        //OnEnterExitModShop
    5,        //OnPlayerClickMap
    5,        //OnPlayerClickPlayer
    5,        //OnPlayerClickTextDraw
    4,        //OnPlayerCommandText
    2,        //OnPlayerDeath
    5,        //OnPlayerEnterVehicle
    3,        //OnPlayerExitVehicle
    3,        //OnPlayerInteriorChange
    3,        //OnPlayerPickUpPickup
    5,        //OnPlayerRequestClass
    3,        //OnPlayerSelectedMenuRow
    3,        //OnPlayerStateChange
    3,        //OnVehicleMod
    3,        //OnVehiclePaintjob
    3,        //OnVehicleRespray
    2,        //OnPlayerSpawn
    2,        //OnVehicleDeath
    4,        //OnPlayerText
    3,        //OnPlayerEnterCheckpoint
    3,        //OnPlayerLeaveCheckpoint
    3,        //OnPlayerRequestSpawn
    2,        //OnPlayerExitedMenu
    3,        //OnPlayerDeath (for killer)
    2,        //OnIncomingConnection
    4,         //Cross-public
    2,        //OnPlayerEnterRaceCheckpoint
    2,        //OnPlayerLeaveRaceCheckpoint
    5        //OnPlayerClickPlayerTextDraw
};

new
    Call[27][MAX_PLAYERS],            //Time
    FloodCount[27][MAX_PLAYERS];    //Flood count

 

Citat

// public,forward

forward OnPlayerFlood(playerid, publicid, attempt, time);

public OnPlayerFlood(playerid, publicid, attempt, time)
{
    if(attempt > Mfc[publicid])
    {
        if(publicid == 25) return Ban(playerid);
        return Kick(playerid);
    }
    return 1;
}

public OnPlayerConnect(playerid)
{
    for(new i = 24; i != -1; --i)
    {
        Call[playerid] = 0;
        FloodCount[playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerConnect
        a = OnPlayerConnect(playerid);
    #endif
    return a;
}

#if defined _ALS_OnPlayerConnect
    #undef OnPlayerConnect
#else
    #define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect OnPlayerConnect
#if defined OnPlayerConnect
    forward OnPlayerConnect(playerid);
#endif

public OnPlayerDisconnect(playerid, reason)
{
    new a = 1;
    #if defined OnPlayerDisconnect
        a = OnPlayerDisconnect(playerid, reason);
    #endif
    if(NetStats_GetConnectedTime(playerid) > MIN_CONNECTED_TIME)
    {
        FloodCount[25][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    Call[25][playerid] = GetTickCount();
    Call[26][playerid] = Call[25][playerid];
    return a;
}

#if defined _ALS_OnPlayerDisconnect
    #undef OnPlayerDisconnect
#else
    #define _ALS_OnPlayerDisconnect
#endif
#define OnPlayerDisconnect OnPlayerDisconnect
#if defined OnPlayerDisconnect
    forward OnPlayerDisconnect(playerid, reason);
#endif

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[0][playerid] = gtc - Call[0][playerid];
    if(Call[0][playerid] < Mtc[0])
    {
        FloodCount[0][playerid]++;
        OnPlayerFlood(playerid, 0, FloodCount[0][playerid], Call[0][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[0][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnDialogResponse
        a = OnDialogResponse(playerid, dialogid, response, listitem, inputtext);
    #endif
    Call[0][playerid] = GetTickCount();
    Call[26][playerid] = Call[0][playerid];
    return a;
}

#if defined _ALS_OnDialogResponse
    #undef OnDialogResponse
#else
    #define _ALS_OnDialogResponse
#endif
#define OnDialogResponse OnDialogResponse
#if defined OnDialogResponse
    forward OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]);
#endif

public OnEnterExitModShop(playerid, enterexit, interiorid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[1][playerid] = gtc - Call[1][playerid];
    if(Call[1][playerid] < Mtc[1])
       {
        FloodCount[1][playerid]++;
        OnPlayerFlood(playerid, 1, FloodCount[1][playerid], Call[1][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[1][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnEnterExitModShop
        a = OnEnterExitModShop(playerid, enterexit, interiorid);
    #endif
    Call[1][playerid] = GetTickCount();
    Call[26][playerid] = Call[1][playerid];
    return a;
}

#if defined _ALS_OnEnterExitModShop
    #undef OnEnterExitModShop
#else
    #define _ALS_OnEnterExitModShop
#endif
#define OnEnterExitModShop OnEnterExitModShop
#if defined OnEnterExitModShop
    forward OnEnterExitModShop(playerid, enterexit, interiorid);
#endif

public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[2][playerid] = gtc - Call[2][playerid];
    if(Call[2][playerid] < Mtc[2])
    {
        FloodCount[2][playerid]++;
        OnPlayerFlood(playerid, 2, FloodCount[2][playerid], Call[2][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[2][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerClickMap
        a = OnPlayerClickMap(playerid, fX, fY, fZ);
    #endif
    Call[2][playerid] = GetTickCount();
    Call[26][playerid] = Call[2][playerid];
    return a;
}

#if defined _ALS_OnPlayerClickMap
    #undef OnPlayerClickMap
#else
    #define _ALS_OnPlayerClickMap
#endif
#define OnPlayerClickMap OnPlayerClickMap
#if defined OnPlayerClickMap
    forward OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ);
#endif

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[3][playerid] = gtc - Call[3][playerid];
    if(Call[3][playerid] < Mtc[3])
    {
        FloodCount[3][playerid]++;
        OnPlayerFlood(playerid, 3, FloodCount[3][playerid], Call[3][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[3][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerClickPlayer
        a = OnPlayerClickPlayer(playerid, clickedplayerid, source);
    #endif
    Call[3][playerid] = GetTickCount();
    Call[26][playerid] = Call[3][playerid];
    return a;
}

#if defined _ALS_OnPlayerClickPlayer
    #undef OnPlayerClickPlayer
#else
    #define _ALS_OnPlayerClickPlayer
#endif
#define OnPlayerClickPlayer OnPlayerClickPlayer
#if defined OnPlayerClickPlayer
    forward OnPlayerClickPlayer(playerid, clickedplayerid, source);
#endif

public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[4][playerid] = gtc - Call[4][playerid];
    if(Call[4][playerid] < Mtc[4])
    {
        FloodCount[4][playerid]++;
        OnPlayerFlood(playerid, 4, FloodCount[4][playerid], Call[4][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[4][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerClickTextDraw
        a = OnPlayerClickTextDraw(playerid, clickedid);
    #endif
    Call[4][playerid] = GetTickCount();
    Call[26][playerid] = Call[4][playerid];
    return a;
}

#if defined _ALS_OnPlayerClickTextDraw
    #undef OnPlayerClickTextDraw
#else
    #define _ALS_OnPlayerClickTextDraw
#endif
#define OnPlayerClickTextDraw OnPlayerClickTextDraw
#if defined OnPlayerClickTextDraw
    forward OnPlayerClickTextDraw(playerid, Text:clickedid);
#endif

public OnPlayerCommandText(playerid, cmdtext[])
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[5][playerid] = gtc - Call[5][playerid];
    if(Call[5][playerid] < Mtc[5])
    {
        FloodCount[5][playerid]++;
        OnPlayerFlood(playerid, 5, FloodCount[5][playerid], Call[5][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[5][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerCommandText
        a = OnPlayerCommandText(playerid, cmdtext);
    #endif
    Call[5][playerid] = GetTickCount();
    Call[26][playerid] = Call[5][playerid];
    return a;
}

#if defined _ALS_OnPlayerCommandText
    #undef OnPlayerCommandText
#else
    #define _ALS_OnPlayerCommandText
#endif
#define OnPlayerCommandText OnPlayerCommandText
#if defined OnPlayerCommandText
    forward OnPlayerCommandText(playerid, cmdtext[]);
#endif

public OnPlayerDeath(playerid, killerid, reason)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[6][playerid] = gtc - Call[6][playerid];
    if(Call[6][playerid] < Mtc[6])
    {
        FloodCount[6][playerid]++;
        OnPlayerFlood(playerid, 6, FloodCount[6][playerid], Call[6][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[6][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    if(killerid != INVALID_PLAYER_ID)
    {
        Call[26][killerid] = gtc - Call[26][killerid];
        Call[24][killerid] = Call[6][playerid];

        if(Call[24][killerid] < Mtc[24])
        {
            FloodCount[24][killerid]++;
            OnPlayerFlood(killerid, 24, FloodCount[24][killerid], Call[24][killerid]);
        }
        else if(Call[26][killerid] < Mtc[26])
        {
            FloodCount[26][killerid]++;
            OnPlayerFlood(killerid, 26, FloodCount[26][killerid], Call[26][killerid]);
        }
        else
        {
            FloodCount[24][killerid] = 0;
            FloodCount[26][killerid] = 0;
        }
    }
    new a = 1;
    #if defined OnPlayerDeath
        a = OnPlayerDeath(playerid, killerid, reason);
    #endif
    if(killerid != INVALID_PLAYER_ID)
    {
        Call[24][killerid] = GetTickCount();
        Call[26][killerid] = Call[24][killerid];
    }
    Call[6][playerid] = GetTickCount();
    Call[26][playerid] = Call[6][playerid];
    return a;
}

#if defined _ALS_OnPlayerDeath
    #undef OnPlayerDeath
#else
    #define _ALS_OnPlayerDeath
#endif
#define OnPlayerDeath OnPlayerDeath
#if defined OnPlayerDeath
    forward OnPlayerDeath(playerid, killerid, reason);
#endif

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[7][playerid] = gtc - Call[7][playerid];
    if(Call[7][playerid] < Mtc[7])
    {
        FloodCount[7][playerid]++;
        OnPlayerFlood(playerid, 7, FloodCount[7][playerid], Call[7][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[7][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerEnterVehicle
        a = OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
    #endif
    Call[7][playerid] = GetTickCount();
    Call[26][playerid] = Call[7][playerid];
    return a;
}

#if defined _ALS_OnPlayerEnterVehicle
    #undef OnPlayerEnterVehicle
#else
    #define _ALS_OnPlayerEnterVehicle
#endif
#define OnPlayerEnterVehicle OnPlayerEnterVehicle
#if defined OnPlayerEnterVehicle
    forward OnPlayerEnterVehicle(playerid, vehicleid, ispassenger);
#endif

public OnPlayerExitVehicle(playerid, vehicleid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[8][playerid] = gtc - Call[8][playerid];
    if(Call[8][playerid] < Mtc[8])
    {
        FloodCount[8][playerid]++;
        OnPlayerFlood(playerid, 8, FloodCount[8][playerid], Call[8][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[8][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerExitVehicle
        a = OnPlayerExitVehicle(playerid, vehicleid);
    #endif
    Call[8][playerid] = GetTickCount();
    Call[26][playerid] = Call[8][playerid];
    return a;
}

#if defined _ALS_OnPlayerExitVehicle
    #undef OnPlayerExitVehicle
#else
    #define _ALS_OnPlayerExitVehicle
#endif
#define OnPlayerExitVehicle OnPlayerExitVehicle
#if defined OnPlayerExitVehicle
    forward OnPlayerExitVehicle(playerid, vehicleid);
#endif

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[9][playerid] = gtc - Call[9][playerid];
    if(Call[9][playerid] < Mtc[9])
    {
        FloodCount[9][playerid]++;
        OnPlayerFlood(playerid, 9, FloodCount[9][playerid], Call[9][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[9][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerInteriorChange
        a = OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
    #endif
    Call[9][playerid] = GetTickCount();
    Call[26][playerid] = Call[9][playerid];
    return a;
}

#if defined _ALS_OnPlayerInteriorChange
    #undef OnPlayerInteriorChange
#else
    #define _ALS_OnPlayerInteriorChange
#endif
#define OnPlayerInteriorChange OnPlayerInteriorChange
#if defined OnPlayerInteriorChange
    forward OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid);
#endif

public OnPlayerPickUpPickup(playerid, pickupid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[10][playerid] = gtc - Call[10][playerid];
    if(Call[10][playerid] < Mtc[10])
    {
        FloodCount[10][playerid]++;
        OnPlayerFlood(playerid, 10, FloodCount[10][playerid], Call[10][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[10][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerPickUpPickup
        a = OnPlayerPickUpPickup(playerid, pickupid);
    #endif
    Call[10][playerid] = GetTickCount();
    Call[26][playerid] = Call[10][playerid];
    return a;
}

#if defined _ALS_OnPlayerPickUpPickup
    #undef OnPlayerPickUpPickup
#else
    #define _ALS_OnPlayerPickUpPickup
#endif
#define OnPlayerPickUpPickup OnPlayerPickUpPickup
#if defined OnPlayerPickUpPickup
    forward OnPlayerPickUpPickup(playerid, pickupid);
#endif

public OnPlayerRequestClass(playerid, classid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[11][playerid] = gtc - Call[11][playerid];
    if(Call[11][playerid] < Mtc[11])
    {
        FloodCount[11][playerid]++;
        OnPlayerFlood(playerid, 11, FloodCount[11][playerid], Call[11][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[11][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerRequestClass
        a = OnPlayerRequestClass(playerid, classid);
    #endif
    Call[11][playerid] = GetTickCount();
    Call[26][playerid] = Call[11][playerid];
    return a;
}

#if defined _ALS_OnPlayerRequestClass
    #undef OnPlayerRequestClass
#else
    #define _ALS_OnPlayerRequestClass
#endif
#define OnPlayerRequestClass OnPlayerRequestClass
#if defined OnPlayerRequestClass
    forward OnPlayerRequestClass(playerid, classid);
#endif

public OnPlayerSelectedMenuRow(playerid, row)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[12][playerid] = gtc - Call[12][playerid];
    if(Call[12][playerid] < Mtc[12])
    {
        FloodCount[12][playerid]++;
        OnPlayerFlood(playerid, 12, FloodCount[12][playerid], Call[12][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[12][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerSelectedMenuRow
        a = OnPlayerSelectedMenuRow(playerid, row);
    #endif
    Call[12][playerid] = GetTickCount();
    Call[26][playerid] = Call[12][playerid];
    return a;
}

#if defined _ALS_OnPlayerSelectedMenuRow
    #undef OnPlayerSelectedMenuRow
#else
    #define _ALS_OnPlayerSelectedMenuRow
#endif
#define OnPlayerSelectedMenuRow OnPlayerSelectedMenuRow
#if defined OnPlayerSelectedMenuRow
    forward OnPlayerSelectedMenuRow(playerid, row);
#endif

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[13][playerid] = gtc - Call[13][playerid];
    if(Call[13][playerid] < Mtc[13])
    {
        FloodCount[13][playerid]++;
        OnPlayerFlood(playerid, 13, FloodCount[13][playerid], Call[13][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[13][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerStateChange
        a = OnPlayerStateChange(playerid, newstate, oldstate);
    #endif
    Call[13][playerid] = GetTickCount();
    Call[26][playerid] = Call[13][playerid];
    return a;
}

#if defined _ALS_OnPlayerStateChange
    #undef OnPlayerStateChange
#else
    #define _ALS_OnPlayerStateChange
#endif
#define OnPlayerStateChange OnPlayerStateChange
#if defined OnPlayerStateChange
    forward OnPlayerStateChange(playerid, newstate, oldstate);
#endif

public OnVehicleMod(playerid, vehicleid, componentid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[14][playerid] = gtc - Call[14][playerid];
    if(Call[14][playerid] < Mtc[14])
    {
        FloodCount[14][playerid]++;
        OnPlayerFlood(playerid, 14, FloodCount[14][playerid], Call[14][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[14][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnVehicleMod
        a = OnVehicleMod(playerid, vehicleid, componentid);
    #endif
    Call[14][playerid] = GetTickCount();
    Call[26][playerid] = Call[14][playerid];
    return a;
}

#if defined _ALS_OnVehicleMod
    #undef OnVehicleMod
#else
    #define _ALS_OnVehicleMod
#endif
#define OnVehicleMod OnVehicleMod
#if defined OnVehicleMod
    forward OnVehicleMod(playerid, vehicleid, componentid);
#endif

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[15][playerid] = gtc - Call[15][playerid];
    if(Call[15][playerid] < Mtc[15])
    {
        FloodCount[15][playerid]++;
        OnPlayerFlood(playerid, 15, FloodCount[15][playerid], Call[15][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[15][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnVehiclePaintjob
        a = OnVehiclePaintjob(playerid, vehicleid, paintjobid);
    #endif
    Call[15][playerid] = GetTickCount();
    Call[26][playerid] = Call[15][playerid];
    return a;
}

#if defined _ALS_OnVehiclePaintjob
    #undef OnVehiclePaintjob
#else
    #define _ALS_OnVehiclePaintjob
#endif
#define OnVehiclePaintjob OnVehiclePaintjob
#if defined OnVehiclePaintjob
    forward OnVehiclePaintjob(playerid, vehicleid, paintjobid);
#endif

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[16][playerid] = gtc - Call[16][playerid];
    if(Call[16][playerid] < Mtc[16])
    {
        FloodCount[16][playerid]++;
        OnPlayerFlood(playerid, 16, FloodCount[16][playerid], Call[16][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[16][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnVehicleRespray
        a = OnVehicleRespray(playerid, vehicleid, color1, color2);
    #endif
    Call[16][playerid] = GetTickCount();
    Call[26][playerid] = Call[16][playerid];
    return a;
}

#if defined _ALS_OnVehicleRespray
    #undef OnVehicleRespray
#else
    #define _ALS_OnVehicleRespray
#endif
#define OnVehicleRespray OnVehicleRespray
#if defined OnVehicleRespray
    forward OnVehicleRespray(playerid, vehicleid, color1, color2);
#endif

public OnPlayerSpawn(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[17][playerid] = gtc - Call[17][playerid];
    if(Call[17][playerid] < Mtc[17])
    {
        FloodCount[17][playerid]++;
        OnPlayerFlood(playerid, 17, FloodCount[17][playerid], Call[17][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[17][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerSpawn
        a = OnPlayerSpawn(playerid);
    #endif
    Call[17][playerid] = GetTickCount();
    Call[26][playerid] = Call[17][playerid];
    return a;
}

#if defined _ALS_OnPlayerSpawn
    #undef OnPlayerSpawn
#else
    #define _ALS_OnPlayerSpawn
#endif
#define OnPlayerSpawn OnPlayerSpawn
#if defined OnPlayerSpawn
    forward OnPlayerSpawn(playerid);
#endif

public OnVehicleDeath(vehicleid, killerid)
{
    new gtc = GetTickCount();
    Call[26][killerid] = gtc - Call[26][killerid];
    Call[18][killerid] = gtc - Call[18][killerid];
    if(Call[18][killerid] < Mtc[18])
    {
        FloodCount[18][killerid]++;
        OnPlayerFlood(killerid, 18, FloodCount[18][killerid], Call[18][killerid]);
    }
    else if(Call[26][killerid] < Mtc[26])
    {
        FloodCount[26][killerid]++;
        OnPlayerFlood(killerid, 26, FloodCount[26][killerid], Call[26][killerid]);
    }
    else
    {
        FloodCount[18][killerid] = 0;
        FloodCount[26][killerid] = 0;
    }
    new a = 1;
    #if defined OnVehicleDeath
        a = OnVehicleDeath(vehicleid, killerid);
    #endif
    Call[18][killerid] = GetTickCount();
    Call[26][killerid] = Call[18][killerid];
    return a;
}

#if defined _ALS_OnVehicleDeath
    #undef OnVehicleDeath
#else
    #define _ALS_OnVehicleDeath
#endif
#define OnVehicleDeath OnVehicleDeath
#if defined OnVehicleDeath
    forward OnVehicleDeath(vehicleid, killerid);
#endif

public OnPlayerText(playerid, text[])
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[19][playerid] = gtc - Call[19][playerid];
    if(Call[19][playerid] < Mtc[19])
    {
        FloodCount[19][playerid]++;
        OnPlayerFlood(playerid, 19, FloodCount[19][playerid], Call[19][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[19][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerText
        a = OnPlayerText(playerid, text);
    #endif
    Call[19][playerid] = GetTickCount();
    Call[26][playerid] = Call[19][playerid];
    return a;
}

#if defined _ALS_OnPlayerText
    #undef OnPlayerText
#else
    #define _ALS_OnPlayerText
#endif
#define OnPlayerText OnPlayerText
#if defined OnPlayerText
    forward OnPlayerText(playerid, text[]);
#endif

public OnPlayerEnterCheckpoint(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[20][playerid] = gtc - Call[20][playerid];
    if(Call[20][playerid] < Mtc[20])
    {
        FloodCount[20][playerid]++;
        OnPlayerFlood(playerid, 20, FloodCount[20][playerid], Call[20][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[20][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerEnterCheckpoint
        a = OnPlayerEnterCheckpoint(playerid);
    #endif
    Call[20][playerid] = GetTickCount();
    Call[26][playerid] = Call[20][playerid];
    return a;
}

#if defined _ALS_OnPlayerEnterCheckpoint
    #undef OnPlayerEnterCheckpoint
#else
    #define _ALS_OnPlayerEnterCheckpoint
#endif
#define OnPlayerEnterCheckpoint OnPlayerEnterCheckpoint
#if defined OnPlayerEnterCheckpoint
    forward OnPlayerEnterCheckpoint(playerid);
#endif

public OnPlayerLeaveCheckpoint(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[21][playerid] = gtc - Call[21][playerid];
    if(Call[21][playerid] < Mtc[21])
    {
        FloodCount[21][playerid]++;
        OnPlayerFlood(playerid, 21, FloodCount[21][playerid], Call[21][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[21][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerLeaveCheckpoint
        a = OnPlayerLeaveCheckpoint(playerid);
    #endif
    Call[21][playerid] = GetTickCount();
    Call[26][playerid] = Call[21][playerid];
    return a;
}

#if defined _ALS_OnPlayerLeaveCheckpoint
    #undef OnPlayerLeaveCheckpoint
#else
    #define _ALS_OnPlayerLeaveCheckpoint
#endif
#define OnPlayerLeaveCheckpoint OnPlayerLeaveCheckpoint
#if defined OnPlayerLeaveCheckpoint
    forward OnPlayerLeaveCheckpoint(playerid);
#endif

public OnPlayerRequestSpawn(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[22][playerid] = gtc - Call[22][playerid];
    if(Call[22][playerid] < Mtc[22])
    {
        FloodCount[22][playerid]++;
        OnPlayerFlood(playerid, 22, FloodCount[22][playerid], Call[22][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[22][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerRequestSpawn
        a = OnPlayerRequestSpawn(playerid);
    #endif
    Call[22][playerid] = GetTickCount();
    Call[26][playerid] = Call[22][playerid];
    return a;
}

#if defined _ALS_OnPlayerRequestSpawn
    #undef OnPlayerRequestSpawn
#else
    #define _ALS_OnPlayerRequestSpawn
#endif
#define OnPlayerRequestSpawn OnPlayerRequestSpawn
#if defined OnPlayerRequestSpawn
    forward OnPlayerRequestSpawn(playerid);
#endif

public OnPlayerExitedMenu(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[23][playerid] = gtc - Call[23][playerid];
    if(Call[23][playerid] < Mtc[23])
    {
        FloodCount[23][playerid]++;
        OnPlayerFlood(playerid, 23, FloodCount[23][playerid], Call[23][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[23][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerExitedMenu
        a = OnPlayerExitedMenu(playerid);
    #endif
    Call[23][playerid] = GetTickCount();
    Call[26][playerid] = Call[23][playerid];
    return a;
}

#if defined _ALS_OnPlayerExitedMenu
    #undef OnPlayerExitedMenu
#else
    #define _ALS_OnPlayerExitedMenu
#endif
#define OnPlayerExitedMenu OnPlayerExitedMenu
#if defined OnPlayerExitedMenu
    forward OnPlayerExitedMenu(playerid);
#endif

public OnIncomingConnection(playerid, ip_address[], port)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[25][playerid] = gtc - Call[25][playerid];
    if(Call[25][playerid] < Mtc[25])
    {
        FloodCount[25][playerid]++;
        OnPlayerFlood(playerid, 25, FloodCount[25][playerid], Call[25][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[25][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnIncomingConnection
        a = OnIncomingConnection(playerid, ip_address, port);
    #endif
    Call[25][playerid] = GetTickCount();
    Call[26][playerid] = Call[25][playerid];
    return a;
}

#if defined _ALS_OnIncomingConnection
    #undef OnIncomingConnection
#else
    #define _ALS_OnIncomingConnection
#endif
#define OnIncomingConnection OnIncomingConnection
#if defined OnIncomingConnection
    forward OnIncomingConnection(playerid, ip_address[], port);
#endif

/*public OnPlayerEnterRaceCheckpoint(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[27][playerid] = gtc - Call[27][playerid];
    if(Call[27][playerid] < Mtc[27])
    {
        FloodCount[27][playerid]++;
        OnPlayerFlood(playerid, 27, FloodCount[27][playerid], Call[27][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[27][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerEnterRaceCheckpoint
        a = OnPlayerEnterRaceCheckpoint(playerid);
    #endif
    Call[27][playerid] = GetTickCount();
    Call[26][playerid] = Call[27][playerid];
    return a;
}

#if defined _ALS_OnPlayerEnterRaceCheckpoint
    #undef OnPlayerEnterRaceCheckpoint
#else
    #define _ALS_OnPlayerEnterRaceCheckpoint
#endif
#define OnPlayerEnterRaceCheckpoint OnPlayerEnterRaceCheckpoint
#if defined OnPlayerEnterRaceCheckpoint
    forward OnPlayerEnterRaceCheckpoint(playerid);
#endif*/

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[28][playerid] = gtc - Call[28][playerid];
    if(Call[28][playerid] < Mtc[28])
    {
        FloodCount[28][playerid]++;
        OnPlayerFlood(playerid, 28, FloodCount[28][playerid], Call[28][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[28][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerLeaveRaceCheckpoint
        a = OnPlayerLeaveRaceCheckpoint(playerid);
    #endif
    Call[28][playerid] = GetTickCount();
    Call[26][playerid] = Call[28][playerid];
    return a;
}

#if defined _ALS_OnPlayerLeaveRaceCheckpoint
    #undef OnPlayerLeaveRaceCheckpoint
#else
    #define _ALS_OnPlayerLeaveRaceCheckpoint
#endif
#define OnPlayerLeaveRaceCheckpoint OnPlayerLeaveRaceCheckpoint
#if defined OnPlayerLeaveRaceCheckpoint
    forward OnPlayerLeaveRaceCheckpoint(playerid);
#endif

public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
{
    new gtc = GetTickCount();
    Call[26][playerid] = gtc - Call[26][playerid];
    Call[29][playerid] = gtc - Call[29][playerid];
    if(Call[29][playerid] < Mtc[29])
    {
        FloodCount[29][playerid]++;
        OnPlayerFlood(playerid, 29, FloodCount[29][playerid], Call[29][playerid]);
    }
    else if(Call[26][playerid] < Mtc[26])
    {
        FloodCount[26][playerid]++;
        OnPlayerFlood(playerid, 26, FloodCount[26][playerid], Call[26][playerid]);
    }
    else
    {
        FloodCount[29][playerid] = 0;
        FloodCount[26][playerid] = 0;
    }
    new a = 1;
    #if defined OnPlayerClickPlayerTextDraw
        a = OnPlayerClickPlayerTextDraw(playerid, playertextid);
    #endif
    Call[29][playerid] = GetTickCount();
    Call[26][playerid] = Call[29][playerid];
    return a;
}

#if defined _ALS_OnPlayerClickPlayerTextDraw
    #undef OnPlayerClickPlayerTextDraw
#else
    #define _ALS_OnPlayerClickPlayerTextDraw
#endif
#define OnPlayerClickPlayerTextDraw OnPlayerClickPlayerTextDraw
#if defined OnPlayerClickPlayerTextDraw
    forward OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid);
#endif

 

 

Mersi de atentie,astept macar un "+" de staruinta <em><em><span class=?">

sourceantiflood.inc // modalitate ca include

Edited by #Yudin
  • Like 1
  • Thanks 1
[ Anti Flood Pack ] / Click [ Pugb SA:MP ] Click / [ TD Autorizatie ] Click
[ Created dm zone ] Click / [ Salvare vreme si timp ] Click [ Statistica a serverului ] Click
[ Sistema duel ] Click [ TD Registrare/Autorizatie ] Click [ Sistema kill/killed by ] Click
[ Sistema data si ora Click /  [ GM Anticheat ] Click   /  [ Schimbarea mersului ] Click
[ Save Camera ] Click  [ Sitema Concurs ] Click [ Projector pentru elicopter ] Click /
[ DM Zona ] Click / [ Folosirea textelor lungi ] Click / [Khain RPG] Click  / Antisobeit Click
Link to post
Share on other sites
Acum 44 minute, Banditul a spus:

Doar folosesti include. Codul e prea complicat ca sa il dai copy-paste intr-un script deja existent. E mai simplu sa dai copy-paste intr-un post si sa il numesti tutorial 

Pai nici nu zic ca eu sunt autorul?

[ Anti Flood Pack ] / Click [ Pugb SA:MP ] Click / [ TD Autorizatie ] Click
[ Created dm zone ] Click / [ Salvare vreme si timp ] Click [ Statistica a serverului ] Click
[ Sistema duel ] Click [ TD Registrare/Autorizatie ] Click [ Sistema kill/killed by ] Click
[ Sistema data si ora Click /  [ GM Anticheat ] Click   /  [ Schimbarea mersului ] Click
[ Save Camera ] Click  [ Sitema Concurs ] Click [ Projector pentru elicopter ] Click /
[ DM Zona ] Click / [ Folosirea textelor lungi ] Click / [Khain RPG] Click  / Antisobeit Click
Link to post
Share on other sites
Acum 5 minute, #Yudin a spus:

Pai nici nu zic ca eu sunt autorul?

Atunci asta trebuia postat la sectiunea de https://www.sa-mp.ro/forums/forum/374-librării/ nu cea de tutoriale. Eu nu simt ca pot invata ceva din acest topic

Codul este copiat din include-ul pe care l-ai facut, variabilele nu au nume specific deci poate sa insemne orice acea variabila. Deci eu  unul nu vad "tutorialu"

Edited by Banditul
Link to post
Share on other sites

 

Acum 1 minut, Banditul a spus:

Atunci asta trebuia postat la sectiunea de https://www.sa-mp.ro/forums/forum/374-librării/ nu cea de tutoriale. Eu nu simt ca pot invata ceva din acest topic

Codul este copiat din include-ul pe care l-ai facut, variabilele nu au nume specific deci poate sa insemne orice acea variabila. Deci eu  unul nu vad "tutorialu"

Ai dreptate

[ Anti Flood Pack ] / Click [ Pugb SA:MP ] Click / [ TD Autorizatie ] Click
[ Created dm zone ] Click / [ Salvare vreme si timp ] Click [ Statistica a serverului ] Click
[ Sistema duel ] Click [ TD Registrare/Autorizatie ] Click [ Sistema kill/killed by ] Click
[ Sistema data si ora Click /  [ GM Anticheat ] Click   /  [ Schimbarea mersului ] Click
[ Save Camera ] Click  [ Sitema Concurs ] Click [ Projector pentru elicopter ] Click /
[ DM Zona ] Click / [ Folosirea textelor lungi ] Click / [Khain RPG] Click  / Antisobeit Click
Link to post
Share on other sites
On 1/8/2019 at 1:10 AM, #Yudin said:
Salutare,astazi va voi invata cum sa faceti un anti-flood total al serverului nu numai in chat,ceea ce o sa va arat astazi ese foarte bun sistem si sper sa va fie de folos,pare complicat dar munca grea da si rezultate bune!
Ce rost are aceasta sistema? Sunt metode de DDos a serverului prin chemarea unor publicuri,respectiv mai multe chemari,mai putin se ispraveste hostingurile cu sarcinile chemate de jucator

 

Mersi de atentie,astept macar un "+" de staruinta <em><em><span class=?">

sourceantiflood.inc // modalitate ca include

10.000 linii inutile, daca iti ofera firma un anti-flood, de ce sa iti mai faci si tu unul? Nu inteleg rostul! Doar ca sa fie acolo..

Ai nevoie de ajutor in scripting si nu ai bani? Te pot ajuta cu mare drag. Dar asta nu inseamna sa iti lucrez un Sistem de joc complet, daca ai nevoie de ajutor ma poti contacta pe Discord.ezgif-2-3a38433e2465.gif.9283810e304f5e405309769455e5e14b.gif

Link to post
Share on other sites
Acum 8 minute, razvanduciuc a spus:

10.000 linii inutile, daca iti ofera firma un anti-flood, de ce sa iti mai faci si tu unul? Nu inteleg rostul! Doar ca sa fie acolo..

?in cuvintele dale nu vad rostul,tie nu iti trebuie altul o sa primeasca un  folos

 

[ Anti Flood Pack ] / Click [ Pugb SA:MP ] Click / [ TD Autorizatie ] Click
[ Created dm zone ] Click / [ Salvare vreme si timp ] Click [ Statistica a serverului ] Click
[ Sistema duel ] Click [ TD Registrare/Autorizatie ] Click [ Sistema kill/killed by ] Click
[ Sistema data si ora Click /  [ GM Anticheat ] Click   /  [ Schimbarea mersului ] Click
[ Save Camera ] Click  [ Sitema Concurs ] Click [ Projector pentru elicopter ] Click /
[ DM Zona ] Click / [ Folosirea textelor lungi ] Click / [Khain RPG] Click  / Antisobeit Click
Link to post
Share on other sites
  • 2 weeks later...
Acum 2 ore, SuNNyAdv a spus:

trebuie pus la #include <antiflood>? sau ceva de genul in script?

Sistemul il poti introduce ca includ #include <sourceantiflood.incsau il adaugi chiar in GM

Edited by #Yudin
[ Anti Flood Pack ] / Click [ Pugb SA:MP ] Click / [ TD Autorizatie ] Click
[ Created dm zone ] Click / [ Salvare vreme si timp ] Click [ Statistica a serverului ] Click
[ Sistema duel ] Click [ TD Registrare/Autorizatie ] Click [ Sistema kill/killed by ] Click
[ Sistema data si ora Click /  [ GM Anticheat ] Click   /  [ Schimbarea mersului ] Click
[ Save Camera ] Click  [ Sitema Concurs ] Click [ Projector pentru elicopter ] Click /
[ DM Zona ] Click / [ Folosirea textelor lungi ] Click / [Khain RPG] Click  / Antisobeit Click
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.