Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 5 из 5
  1. #1
    Аватар для m1n1vv
    Пользователь

    Статус
    Онлайн
    Регистрация
    09.09.2015
    Сообщений
    307
    Репутация:
    34 ±

    OnPlayerLeaveDynamicArea

    Привет. Сделал в OnPlayerLeaveDynamicArea кик игрока. Но из-за того что респавн начинается с нулевых координат, игрока кикает. Как это можно обойти?

    PHP код:
    #define MAX_ZONES 1
    new zones[MAX_ZONES];
    new 
    Float:zones_points_0[] = 
    {
        -
    3000.0,1410.0,-2706.0,1600.0,-2660.0,1598.0,-1740.0,1606.0,-1290.0,1516.0,-1280.0,1058.0,-1064.0,698.0,-820.0,344.0,-1062.0,-90.0,-1042.0,-376.0,
        -
    1116.0,-434.0,-1186.0,-538.0,-1222.0,-696.0,-1500.0,-726.0,-1634.0,-716.0,-1710.0,-664.0,-1780.0,-662.0,-1778.0,-1232.0,-1856.0,-1488.0,-1935.0,-1404.0,
        -
    2066.0,-1254.0,-2187.0,-1060.0,-2539.0,-867.0,-2808.0,-988.0,-3000.0,-972.0,-3000.0,1410.0
    };
    public 
    OnPlayerEnterDynamicArea(playeridareaid
    {
        for (new 
    zone 0zone MAX_ZONESzone++)
            if (
    areaid == zones[zone]) 
                
    //сообщение
        
    return 1;
    }
    public 
    OnPlayerLeaveDynamicArea(playeridareaid
    {
        for (new 
    zone 0zone MAX_ZONESzone++) 
        {
            if (
    areaid==zones[zone]) 
            {
                
    SetTimerEx("KickPublicSF"100false"i"playerid);
            }
        }
        return 
    1;
    }
    forward KickPublicSF(playerid);
    public 
    KickPublicSF(playerid)
        
    Kick(playerid); 

  2. #2
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,663
    Репутация:
    2145 ±
    Попробуйте игнорировать игрока первые несколько секунд после спавна. Сделайте массив на MAX_PLAYERS ячеек (можно даже использовать char при задании размера и вместо ячеек обращаться к отдельным байтам) и в него записывайте флаг игнора игрока (1) при спавне и сбрасывайте его при срабатывании таймера, а OnPlayerLeaveDynamicArea проверяйте флаг перед киком.
    И да, ещё есть возможность того, что игрок за те первые секунды куда-нибудь телепортируется читом, поэтому в таймерной функции проверяйте его нахождение в динамическом регионе.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  3. #3
    Аватар для m1n1vv
    Пользователь

    Статус
    Онлайн
    Регистрация
    09.09.2015
    Сообщений
    307
    Репутация:
    34 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Попробуйте игнорировать игрока первые несколько секунд после спавна. Сделайте массив на MAX_PLAYERS ячеек (можно даже использовать char при задании размера и вместо ячеек обращаться к отдельным байтам) и в него записывайте флаг игнора игрока (1) при спавне и сбрасывайте его при срабатывании таймера, а OnPlayerLeaveDynamicArea проверяйте флаг перед киком.
    И да, ещё есть возможность того, что игрок за те первые секунды куда-нибудь телепортируется читом, поэтому в таймерной функции проверяйте его нахождение в динамическом регионе.
    Кик при условии, если sfnk =1. При смерти я присваиваю 0. И через пару сек после спавна 1. Ну в общем как ты сказал.

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Хмм, а если просто попробовать играть по правилам сервера и создать ещё одну динамическую зону в тех координатах, куда помещает игрока при кике? И уже если игрок в этой зоне, просто игнорировать его и не кикать. Хотя не знаю, будет ли это выгодно в плане оптимизации, ибо не особо вникал в реализацию системы, что дана в шапке темы
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  5. #5
    Аватар для m1n1vv
    Пользователь

    Статус
    Онлайн
    Регистрация
    09.09.2015
    Сообщений
    307
    Репутация:
    34 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Хмм, а если просто попробовать играть по правилам сервера и создать ещё одну динамическую зону в тех координатах, куда помещает игрока при кике? И уже если игрок в этой зоне, просто игнорировать его и не кикать. Хотя не знаю, будет ли это выгодно в плане оптимизации, ибо не особо вникал в реализацию системы, что дана в шапке темы
    Пробовал. Все равно кикакло. Я даже СФ и центр карты делал одной зоной.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •