Флуд Pickup - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: [CM]OlegEhtler, Getbackthere, Phoenixxx_Czar  
Флуд Pickup
Fresh_Stream Дата: Вторник, 07.06.2016, 14:17 | Сообщение # 1
Боец
Сообщений: 129
Статус: Offline
Подскажите как убрать флуд Pickup?

FCS

Работы:
[Урок]Система Satiety - http://cheat-master.ru/forum/117-584800-1
[Command]Снять одежду - http://cheat-master.ru/forum/124-567074-1
[FS]Admin Helper - http://cheat-master.ru/forum/122-589828-1
[PWN]new.pwn со всеми пабликами - http://cheat-master.ru/forum/125-718522-1
=) Дата: Вторник, 07.06.2016, 16:21 | Сообщение # 2
Боец
Сообщений: 271
Статус: Offline
Два варианта: с проверкой на время или с проверкой на дистанцию.
В первом любой пикап будет браться через определенное количество времени.
Во втором, от пикапа нужно будет отбежать, чтобы взять его повторно.

new flood_pick[MAX_PLAYERS];

Код
public OnPlayerConnect(playerid)
{
    flood_pick[playerid] = 0; // для первого варианта
    flood_pick[playerid] = -1; // для второго варианта
}


Для первого варианта:

Код
public OnPlayerPickUpPickup(playerid, pickupid)
{
    if(flood_pick[playerid] > gettime()) return 0;
    flood_pick[playerid] = gettime()+5;
}


Для второго варианта:

1) пикапы создавать через стример.

Код
public OnPlayerPickUpDynamicPickup(playerid, pickupid)
{
    if(flood_pick[playerid] != -1) return 1;
    flood_pick[playerid] = pickupid;
}


В таймер для игрока с ежесекундным обновлением:

Код
    new Float: PickupPos[3];
    Streamer_GetFloatData(STREAMER_TYPE_PICKUP, flood_pick[playerid], E_STREAMER_X, PickupPos[0]);
    Streamer_GetFloatData(STREAMER_TYPE_PICKUP, flood_pick[playerid], E_STREAMER_Y, PickupPos[1]);
    Streamer_GetFloatData(STREAMER_TYPE_PICKUP, flood_pick[playerid], E_STREAMER_Z, PickupPos[2]);

    if(!IsPlayerInRangeOfPoint(playerid, 2.0, PickupPos[0], PickupPos[1], PickupPos[2]))
    {
        flood_pick[playerid] = -1;
    }


Сообщение отредактировал =) - Вторник, 07.06.2016, 16:30
Tom_Fender Дата: Среда, 08.06.2016, 04:30 | Сообщение # 3
Боец
Сообщений: 102
Статус: Offline
ну допустим у меня есть пикап с лицензиями
Код
if(pickupid == Nooblic)
    {
     if(PINFO[playerid][pExp] > 2) return SendClientMessage(playerid, 0xD2D200AA, "Вы уже получали лицензии, либо не успели их взять, поскольку лицензии выдаются всего 2 часа после регистрации");
  PINFO[playerid][pVodPrava] = bool:1;
  PINFO[playerid][pFlyLic] = bool:1;
  PINFO[playerid][pGunLic] = bool:1;
  PINFO[playerid][pBizLic] = bool:1;
  PINFO[playerid][pBoatLic] = bool:1;
        SendClientMessage(playerid, 0xD2D200AA,"Вы получили полный комплект лицензий. Чтобы проверить список, пропишите '/licenses'");
    }

и мне нужен анти-флуд.
вставляем это после проверки на пикап
Код
if(GetPVarInt(playerid, "Nooblic") > gettime()) return 1;

и в конец пикапа ставим это
Код
SetPVarInt(playerid, "Nooblic",gettime()+8);

в итоге получаем это
Цитата
if(pickupid == Nooblic)
    {
        if(GetPVarInt(playerid, "Nooblic") > gettime()) return 1;
     if(PINFO[playerid][pExp] > 2) return SendClientMessage(playerid, 0xD2D200AA, "Вы уже получали лицензии, либо не успели их взять, поскольку лицензии выдаются всего 2 часа после регистрации");
  PINFO[playerid][pVodPrava] = bool:1;
  PINFO[playerid][pFlyLic] = bool:1;
  PINFO[playerid][pGunLic] = bool:1;
  PINFO[playerid][pBizLic] = bool:1;
  PINFO[playerid][pBoatLic] = bool:1;
        SendClientMessage(playerid, 0xD2D200AA,"Вы получили полный комплект лицензий. Чтобы проверить список, пропишите '/licenses'");
  SetPVarInt(playerid, "Nooblic",gettime()+8);
    }


Сообщение отредактировал Tom_Fender - Среда, 08.06.2016, 04:30
  • Страница 1 из 1
  • 1
Поиск: