Question

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

Share this post


Link to post

2 answers to this question

  • 0

@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) в условии. 

Share this post


Link to post
  • 0

@Cawfee Спасибо. Суть вроде бы понял. У меня будут еще некоторые вопросы. Если можно в личку.

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Topowich
      By Topowich
      Недавно начал создавать свой комп сервер,начал потихоньку заменять модели тс и столкнулся с такой проблемой,что не могу понять как менять настройку авто. Подскажите пожалуйста,как это сделать?Мне не принципиально  чтобы настройки были в коде сервера,можно и на файлах если будет хорошо работать