Привет! Если вы читаете это - вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы получить доступ ко всем разделам нашего форума. Удачи!
Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 18 из 18

Тема: Отключаем частый вызов пикапов

  1. #11
    Перевыпроверенный Аватар для LINKINPARK
    Регистрация
    29.08.2011
    Сообщений
    1,732
    Репутация: 210

    Звание: - весьма и весьма положительная личность
    Цитата Сообщение от georJik Посмотреть сообщение
    MAX_PICKUPS = 4096, придется менять под себя конечно же
    PHP код:
    #undef MAX_PLAYERS
    const MAX_PLAYERS = ...; 
    к чему это?

    Перефразирую Вопрос: Почему ты не рекомендуешь массив равный MAX_PICKUPS, что страшного в нем? Просто АМХ бедет весить чутка меньше если будет 300 ячеек
    админка 100 уровней(1-модер, 2 крутой модер, 3 главный модер, 4 пздц главный модер, 5 создатель модеров, 6 младший админ, 7 так себе админ, 8 админ, 9-злой одмин, 10 старший админ, 11 пздц какой админ, 12 главный админ, 13 пздец какой главный админ, 14 ну просто пиздец какой глаынй, 15 создатель скрипта, 16 создатель второго скрипта) - не помню кто ©
    [Начинающий скриптер]
    Сообщение от free1715
    Ну я вот как сделал слил все входы и выходы в пикапы которы были на сервере,и начало все норм работать,но не знаю все же таки как мне делать так что бы они не конфликтовали.И беда в том что если я удаляю полицейских а оставляю другие то оно меня кидало в бар в первом городе на улицу.

  2. #12
    Проверенный Аватар для georJik
    Регистрация
    07.07.2013
    Сообщений
    1,370
    Репутация: 427

    Звание: - очень-очень хороший человек
    Цитата Сообщение от LINKINPARK Посмотреть сообщение
    к чему это?

    Перефразирую Вопрос: Почему ты не рекомендуешь массив равный MAX_PICKUPS, что страшного в нем? Просто АМХ бедет весить чутка меньше если будет 300 ячеек
    В этом и суть, вес, время компиляции

  3. #13
    Перевыпроверенный Аватар для LINKINPARK
    Регистрация
    29.08.2011
    Сообщений
    1,732
    Репутация: 210

    Звание: - весьма и весьма положительная личность
    Цитата Сообщение от georJik Посмотреть сообщение
    В этом и суть, вес, время компиляции
    Этим можно пожертвовать ради функциональности или универсальности, хз как назвать.

    PHP код:
    new
        
    pickup_area [MAX_PICKUPS] = {0xFFFF, ...};

    stock apf_CreateDynamicPickup(modelidtypeFloat:xFloat:yFloat:zworldid = -1interiorid = -1playerid = -1Float:streamdistance STREAMER_PICKUP_SD)
    {
        new
            
    pickupID CreateDynamicPickup(modelidtypexyzworldidinterioridplayeridstreamdistance);
        
    pickup_area [pickupID] = CreateDynamicCylinder(xyzz+1.01.2worldidinteriorid);
        return 
    pickupID;
    }

    stock apf_DestroyDynamicPickup(pickupid)
    {
        
    DestroyDynamicPickup (pickupid);
        
    DestroyDynamicArea (pickup_area [pickupid]);
        
    pickup_area [pickupid] = 0xFFFF;
        return 
    1;
    }
    #define CreateDynamicPickup apf_CreateDynamicPickup
    #define DestroyDynamicPickup apf_DestroyDynamicPickup

    if (pickup_area [ид пикапа] != 0xFFFF// 
    ради простоты и удобства, о как
    Последний раз редактировалось LINKINPARK; 10.11.2015 в 10:03.
    админка 100 уровней(1-модер, 2 крутой модер, 3 главный модер, 4 пздц главный модер, 5 создатель модеров, 6 младший админ, 7 так себе админ, 8 админ, 9-злой одмин, 10 старший админ, 11 пздц какой админ, 12 главный админ, 13 пздец какой главный админ, 14 ну просто пиздец какой глаынй, 15 создатель скрипта, 16 создатель второго скрипта) - не помню кто ©
    [Начинающий скриптер]
    Сообщение от free1715
    Ну я вот как сделал слил все входы и выходы в пикапы которы были на сервере,и начало все норм работать,но не знаю все же таки как мне делать так что бы они не конфликтовали.И беда в том что если я удаляю полицейских а оставляю другие то оно меня кидало в бар в первом городе на улицу.

  4. #14
    Проверенный Аватар для georJik
    Регистрация
    07.07.2013
    Сообщений
    1,370
    Репутация: 427

    Звание: - очень-очень хороший человек
    Цитата Сообщение от LINKINPARK Посмотреть сообщение
    Этим можно пожертвовать ради функциональности или универсальности, хз как назвать.

    PHP код:
    new
        
    pickup_area [MAX_PICKUPS] = {0xFFFF, ...};

    stock apf_CreateDynamicPickup(modelidtypeFloat:xFloat:yFloat:zworldid = -1interiorid = -1playerid = -1Float:streamdistance STREAMER_PICKUP_SD)
    {
        
    pickup_area [CreateDynamicPickup(modelidtypexyzworldidinterioridplayeridstreamdistance)] =
        
    CreateDynamicCylinder(xyzz+1.01.2worldidinteriorid);
        return 
    1;
    }

    stock apf_DestroyDynamicPickup(pickupid)
    {
        
    DestroyDynamicPickup (pickupid);
        
    DestroyDynamicArea (pickup_area [pickupid]);
        
    pickup_area [pickupid] = 0xFFFF;
        return 
    1;
    }
    #define CreateDynamicPickup apf_CreateDynamicPickup
    #define DestroyDynamicPickup apf_DestroyDynamicPickup

    if (pickup_area [ид пикапа] != 0xFFFF// 
    ради простоты и удобства, о как
    Возвращать здесь нужно функцию, а не просто 1. Ибо при конструкции типа: a = CreateDynamicPickup...
    Хук в твоем случае вернет 1.

  5. 1 пользователь сказал cпасибо georJik за это полезное сообщение:

    LINKINPARK (10.11.2015)

  6. #15
    Проверенный Аватар для e.kosovskij
    Регистрация
    09.07.2010
    Адрес
    Украина, Харьков
    Сообщений
    3,180
    Репутация: 308

    Звание: как роза среди колючек
    Вариант с порталами (вход / выход)

    PHP код:
    // ------------------------------------ PORTAL system
    #define MAX_PORTAL 2
    enum portalenum port_str[24], Floatport_pos[8], port_int[2], port_world[2], port_pickup[2], Text3Dport_text[2] };
    new
        
    portal[MAX_PORTAL][portalenum] = {
            { 
    "ЖД Вокзал", { 1754.01, -1911.9913.570.0,  1773.11, -1908.021030.790.0 }, { 0}, { 0} },
            { 
    "Аэропорт", { 1642.2217,-2334.5344,13.5469,358.3125,  2398.0398,-2592.3555,1025.9100,179.2292 }, { 0}, { 0} }
        },
        
    port_fix[MAX_PLAYERS char],
        
    port_area[MAX_PORTAL*2],
        
    value_portal
    ;
    // ------------------------------------ PORTAL system 
    PHP код:
    // OnPlayerConnect
    port_fix{playerid} = 0
    PHP код:
    public OnPlayerEnterDynamicArea(playeridareaid)
    {
        if(
    IsPlayerInAnyVehicle(playerid)) return 1;
        if(
    port_area[0] <= areaid <= port_area[(value_portal*2)-1])
        {
            if(
    port_fix{playerid} == 1) return port_fix{playerid} = 2;
            new
                
    port areaid port_area[0];
                
    portMode port 2
            
    ;
            
    port_fix{playerid} = 1;
            
    port = (port-(port 2))/2;
            if(
    portMode == 0)
            {
                
    SetPlayerInterior(playeridportal[port][port_int][1]);
                
    SetPlayerVirtualWorld(playeridportal[port][port_world][1]);
                
    ChangePlayerPos(playerid1portal[port][port_pos][4], portal[port][port_pos][5], portal[port][port_pos][6]);
                
    SetPlayerFacingAngle(playeridportal[port][port_pos][7]);
            }
            else
            {
                
    SetPlayerInterior(playeridportal[port][port_int][0]);
                
    SetPlayerVirtualWorld(playeridportal[port][port_world][0]);
                
    ChangePlayerPos(playerid1portal[port][port_pos][0], portal[port][port_pos][1], portal[port][port_pos][2]);
                
    SetPlayerFacingAngle(playeridportal[port][port_pos][3]);
            }
            
    SetCameraBehindPlayer(playerid);
        }
        return 
    1;

    PHP код:
    public OnPlayerLeaveDynamicArea(playeridareaid)
    {
        if(
    IsPlayerInAnyVehicle(playerid)) return 1;
        if(
    port_area[0] <= areaid <= port_area[(value_portal*2)-1])
            if(
    port_fix{playerid} == 2port_fix{playerid} = 0;
        return 
    1;

    Последний раз редактировалось e.kosovskij; 12.11.2015 в 01:45.

  7. #16
    Джентльмен лжец Аватар для Fallen A.
    Регистрация
    03.09.2011
    Адрес
    Минск, БССР
    Возраст
    30
    Сообщений
    2,409
    Репутация: 337

    Звание: как роза среди колючек
    Цитата Сообщение от McLuhan Посмотреть сообщение
    Вариант с порталами (вход / выход)

    PHP код:
    // ------------------------------------ PORTAL system
    #define MAX_PORTAL 2
    enum portalenum port_str[24], Floatport_pos[8], port_int[2], port_world[2], port_pickup[2], Text3Dport_text[2] };
    new
        
    portal[MAX_PORTAL][portalenum] = {
            { 
    "ЖД Вокзал", { 1754.01, -1911.9913.570.0,  1773.11, -1908.021030.790.0 }, { 0}, { 0} },
            { 
    "Аэропорт", { 1642.2217,-2334.5344,13.5469,358.3125,  2398.0398,-2592.3555,1025.9100,179.2292 }, { 0}, { 0} }
        },
        
    port_fix[MAX_PLAYERS char],
        
    port_area[MAX_PORTAL*2],
        
    value_portal
    ;
    // ------------------------------------ PORTAL system 
    PHP код:
    // OnPlayerConnect
    port_fix{playerid} = 0
    PHP код:
    public OnPlayerEnterDynamicArea(playeridareaid)
    {
        if(
    IsPlayerInAnyVehicle(playerid)) return 1;
        if(
    port_area[0] <= areaid <= port_area[(value_portal*2)-1])
        {
            if(
    port_fix{playerid} == 1) return port_fix{playerid} = 2;
            new
                
    port areaid port_area[0];
                
    portMode port 2
            
    ;
            
    port_fix{playerid} = 1;
            
    port = (port-(port 2))/2;
            if(
    portMode == 0)
            {
                
    SetPlayerInterior(playeridportal[port][port_int][1]);
                
    SetPlayerVirtualWorld(playeridportal[port][port_world][1]);
                
    ChangePlayerPos(playerid1portal[port][port_pos][4], portal[port][port_pos][5], portal[port][port_pos][6]);
                
    SetPlayerFacingAngle(playeridportal[port][port_pos][7]);
            }
            else
            {
                
    SetPlayerInterior(playeridportal[port][port_int][0]);
                
    SetPlayerVirtualWorld(playeridportal[port][port_world][0]);
                
    ChangePlayerPos(playerid1portal[port][port_pos][0], portal[port][port_pos][1], portal[port][port_pos][2]);
                
    SetPlayerFacingAngle(playeridportal[port][port_pos][3]);
            }
            
    SetCameraBehindPlayer(playerid);
        }
        return 
    1;

    PHP код:
    public OnPlayerLeaveDynamicArea(playeridareaid)
    {
        if(
    IsPlayerInAnyVehicle(playerid)) return 1;
        if(
    port_area[0] <= areaid <= port_area[(value_portal*2)-1])
            if(
    port_fix{playerid} == 2port_fix{playerid} = 0;
        return 
    1;

    Код с первого взгляда кажется не читабельным.

  8. #17
    ыыыыы Аватар для Mexanizm
    Регистрация
    16.01.2012
    Адрес
    Россия. Воронеж
    Возраст
    31
    Сообщений
    2,450
    Репутация: 287

    Звание: как роза среди колючек
    Цитата Сообщение от georJik Посмотреть сообщение
    p.s: Можно и без массива, в стримере есть EXTRA_ID, а так смотри пост выше
    Что такое EXTRA_ID и зачем нужен? Я слышал про подобное но описания чёт не где не встречал. Если можно силами стримера без массива обойтись, то это очень даже круто.
    Modern RP





  9. #18
    Проверенный Аватар для e.kosovskij
    Регистрация
    09.07.2010
    Адрес
    Украина, Харьков
    Сообщений
    3,180
    Репутация: 308

    Звание: как роза среди колючек
    Цитата Сообщение от Fallen A. Посмотреть сообщение
    Код с первого взгляда кажется не читабельным.
    Бывает

Страница 2 из 2 ПерваяПервая 12

Ваши права

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