• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Анти-флуд пикапами

trevison123

Умник
проблема заключается в том, что иногда, когда игрок заходит в пикап, её телепортирует и сразу же срабатывает второй пикап
код:
Код:
new Float:gTeleports[TELEPORTS_COUNT][2][4] =
{
    { //Цех оружия
        {-1006.6297,-696.1597,32.0078,6.6875},
        {2576.8445,-1289.9153,1044.1250,86.4804}
    }, 
и т.д.
Код:
    if(areaid >= gTeleportAreas[0][0] && areaid <= gTeleportAreas[TELEPORTS_COUNT-1][1])
    {
        if(pTemp[playerid][pJustTP]) return pTemp[playerid][pJustTP] = false;
        new id,subid;
        for(new i;i<TELEPORTS_COUNT;i++)
        {
            if(areaid == gTeleportAreas[i][0]) {id = i; subid = 1;}
            if(areaid == gTeleportAreas[i][1]) {id = i; subid = 0;}
        }
        if(id == 1 && pTemp[playerid][pChangingSkin])
        {
            pTemp[playerid][pChangingSkin] = false;
            SetPlayerSkin(playerid,pData[playerid][pSkin]);
        }
        if(id == 2) //Автошкола
        {
            if(pTemp[playerid][pWaitingExam])
            {
                SendInf(playerid, "Вы были сняты с экзамена.");
                pTemp[playerid][pWaitingExam] = false;
                pTemp[playerid][pExamCandidate] = INVALID_PLAYER_ID;
                pTemp[playerid][pOnExam] = false;
            }
        }
        if(id == 34 || id == 35 || id == 39 || id == 40 || id == 41 || id == 42 || id == 43 ||  id == 18 ||  id == 20 ||  id == 22)
        {
            if(!propusk[playerid]) return SendErr(playerid, "Вы не можете зайти в участок без пропуска");
        }
        if(id == 49)
        {
            if(pData[playerid][pFraction] != 11) return SendErr(playerid, "Вход доступен только для сотрудников Правительства");
        }
        if((id == 3 || id == 4 || id == 5) && subid == 0)
        {
            if(pData[playerid][pHealth] < 80.0) return SendErr(playerid, "Вы не можете выйти из больницы, пока не вылечетесь.");
            pTemp[playerid][pInHospital] = false;
            if(GetPVarInt(playerid,"HospitalBedUse") == 1)
            {
                for(new hbn = 0; hbn < 14; hbn++)
                {
                    for(new hbvw = 0; hbvw < 3; hbvw++)
                    {
                        if(hospbed[hbvw][hbn] != playerid) continue;
                        UpdateHospitalBed(hbvw,hbn,false,INVALID_PLAYER_ID);
                        break;
                    }
                }
                DeletePVar(playerid,"HospitalBedUse");
            }
        }
        if((id == 3 || id == 4 || id == 5) && subid == 1) pTemp[playerid][pInHospital] = true;
        if(id >= 16 && id <= 24 && subid == 0)
        {
            if(pTemp[playerid][pCuffee] == playerid) return SendErr(playerid, "Вы не можете выйти из участка в наручниках");
        }
        if(id == 11)
        {
            if(GetPVarInt(playerid,"carrygun"))
            {
                ClearAnimations(playerid);
                ApplyAnimation(playerid,"CARRY","liftup",1.0,0,1,1,0,0,1);
                SetTimerEx("CarryDelay",1000,false,"i",playerid);
            }
        }
        FreezePlayer(playerid, 1);
        pTemp[playerid][pJustTP] = true;
        SetPlayerVirtualWorld(playerid,gTeleportData[id][subid][0]);
        SetPlayerInterior(playerid,gTeleportData[id][subid][1]);
        SetPlayerPosEx(playerid,gTeleports[id][subid][0],gTeleports[id][subid][1],gTeleports[id][subid][2],0);
        SetPlayerFacingAngle(playerid,gTeleports[id][subid][3]);
        SetCameraBehindPlayer(playerid);
    }
Код:
    for(new i;i<TELEPORTS_COUNT;i++)
    {
        CreateDynamicPickup(19132,1,gTeleports[i][0][0],gTeleports[i][0][1],gTeleports[i][0][2],gTeleportData[i][0][0]);
        CreateDynamicPickup(19132,1,gTeleports[i][1][0],gTeleports[i][1][1],gTeleports[i][1][2],gTeleportData[i][1][0]);
        gTeleportAreas[i][0] = CreateDynamicSphere(gTeleports[i][0][0],gTeleports[i][0][1],gTeleports[i][0][2],2.0,gTeleportData[i][0][0],gTeleportData[i][0][1]);
        gTeleportAreas[i][1] = CreateDynamicSphere(gTeleports[i][1][0],gTeleports[i][1][1],gTeleports[i][1][2],2.0,gTeleportData[i][1][0],gTeleportData[i][1][1]);
    }
 
Сверху Снизу