Вопросы

Как сделать, если я стал на пикап, и пока я не нажму на "alt" код в паблике OnPlayerPickUpDynamicPickup срабатывать не должен. А когда нажму, то должен отработать сценарий в OnPlayerPickUpDynamicPickup. 

Поделиться сообщением


Ссылка на сообщение

2 ответа на этот вопрос

  • 0
Cawfee
Великий Гуру

@null, я бы на вашем месте взводил флажок, когда вы находитесь на том или ином пикапе (с использованием динамических зон), а в OnPlayerKeyStateChange в зависимости от нажатой клавиши и взведенного флажка выполнял какой-нибудь функционал. Ну, например, вот так:

Спойлер

#if !defined(PRESSED)
#define PRESSED(%0) (((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#endif

#if !defined(RELEASED)
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
#endif

enum EPickup {
    PICKUP1,
    PICKUP2,
    PICKUP3
};

enum EArea {
    AREA_PICKUP1,
    AREA_PICKUP2,
    AREA_PICKUP3,

    AREA_AMOUNT // счетчик
};

new gAreas[AREA_AMOUNT]; // все динамические зоны

public OnGameModeInit() {
    /* здесь нужно создать динамические зоны */
    gAreas[AREA_PICKUP1] = CreateDynamicSphere(...); // динамическая зона для первого пикапа
    CreateDynamicPickup(...); // объект первого пикапа

    // и так для каждого пикапа создаете еще и динамическую зону
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    if (PRESSED(newkeys) & KEY_ALT) {  // если игрок нажал ALT
        if (IsPlayerInDynamicArea(playerid, gAreas[AREA_PICKUP1])) { // если игрок нажимает ALT в зоне пикапа 1
            // ваша логика
        }
        else if (IsPlayerInDynamicArea(playerid, gAreas[AREA_PCIKUP2])) { // если игрок нажимает ALT в зоне пикапа 2
            // ваша логика
        }
    }
}

 

 

Предварительно обратите внимание на библиотеку streamer.

 

upd. Там ошибка. Должно быть PRESSED(KEY_ALT) в условии. 

Поделиться сообщением


Ссылка на сообщение
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • От dante34538
      ищу гейм мод самп рп, который не был в пабликах, по цене до 3000р, писать в вк https://vk.com/screamzmorrow
    • От DonK/Key
      Всем привет, помогите кто разбирается, так как я можно сказать начинающий сделать свой КРМП, буду благодарен. Напишите либо тут либо @evreI_sigma (Мой Telegram)