Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для kat4ex
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.02.2017
    Сообщений
    3
    Репутация:
    0 ±

    Проблема с пикапами

    Итак, решил я написать для себя фикс пикапов через стример и динамик зоны.
    Все работало нормально, пока я не столкнулся со вторым типом пикапа, которые должен пропадать. Но т.к. зона никуда не пропадает, то пикап работает, но без визаульного содержания.
    Сделал проверку на тип пикапа, и если он == 2, то возвращал просто айди созданного пикапа, иначе делал с зонами
    *(возвращал тоже айди диалога).
    **(в перехвате OnPlayerEnterDynamicArea возвращал айди созданного пикапа)
    PHP код:
    stock _fix_CreateDynamicPickup(modelidtypeFloat:xFloat:yFloat:zworldid = -1interiorid = -1playerid = -1Float:streamdistance STREAMER_PICKUP_SD)
    {
        new 
    temp;
        if(
    type == 2
        {
            
    temp CreateDynamicPickup(modelidtypexyzworldidinterioridplayeridstreamdistance),
            
    printf("Pickup ID : %d | Areaid: None | type: %d"temptype);
            return 
    temp;
        }
        else
        {
            
    temp CreateDynamicSphere(xyzPickup_Radiusworldidinterioridplayerid);
            
    DynamicPick[temp] = CreateDynamicPickup(modelidtypexyzworldidinterioridplayeridstreamdistance);
            
    printf("Pickup ID : %d | Areaid: %d | type: %d"DynamicPick[temp], temptype);
            return 
    DynamicPick[temp];
        }

    В итоге я на выходе получаю, что пикапы != 2 типа работают нормально, а вторые пикапы выполняют функцию статичных пикапов, при этом, как и должны, пропадают.


    Сделал лог создания пикапов и срабатывания коллбека.


    *taked pick - коллбек, Pickup & Area ID - перехват OnPlayerEnterDynamicArea*

    А вот пикапы со вторым типом вызывают коллбек OnPlayerPickUpDynamicPickup, без участия динамик зоны, и в итоге вызывается не тот айди пикапа.
    Подбираю пикап, айди которого равен 39, вызывается коллбек с 35 айди(с 39-го начинается создание пикапов второго типа)


    Почему так происходит, или это я накосячил?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    А если не писать костыли, а использовать TogglePlayerDynamicArea с таймером?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    09.02.2017
    Сообщений
    3
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А если не писать костыли, а использовать TogglePlayerDynamicArea с таймером?
    Если поднять пикап, то он пропадает на 30 сек, но при условии, что ты отошел за 15 метров. Иначе он не появляется.

  4. #4
    Аватар для kat4ex
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.02.2017
    Сообщений
    3
    Репутация:
    0 ±
    Нет идей никаких ?

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от kat4ex Посмотреть сообщение
    Если поднять пикап, то он пропадает на 30 сек, но при условии, что ты отошел за 15 метров. Иначе он не появляется.
    Ну так вот и запускай таймер при взятии пикапа и отключай для конкретного игрока динамическую зону, пока условия появления пикапа не сработают (как сработают - включай)
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

 

 

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

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

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

Ваши права

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