Русское сообщество по скриптингу

Проблема с плагином VIP

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Проблема с плагином VIP

Сообщение evsa » 18 мар 2020, 23:47

VIP игрок не может поднять выброшенное золотое оружие. Пишет: "Только для VIP игроков".

Помогите, а то не получается что-то.(

Код: Выделить всё
//■■■■■■■■■■■■■■■■■■■■■■■ CONFIG START ■■■■■■■■■■■■■■■■■■■■■■■//

#define ACCESS_FLAG         ADMIN_LEVEL_H

#define MAX_MODEL_LEN         32

new const BLOCK_MODELS[][MAX_MODEL_LEN] = { 
    
"models/gold/w_awp.mdl",
    "models/gold/w_ak47.mdl",
    "models/gold/w_deagle.mdl",
    "models/gold/w_m4a1.mdl"
}

//■■■■■■■■■■■■■■■■■■■■■■■■ CONFIG END ■■■■■■■■■■■■■■■■■■■■■■■■//

#include <amxmodx>
#include <engine>

#define IsEntOnGround(%1)             (entity_get_int(%1, EV_INT_flags) & FL_ONGROUND)
#define UserHasAccess(%1)             (get_user_flags(%1) & ACCESS_FLAG)


public plugin_init() 
{
    register_plugin("Block Pickup Gold", "0.1", "Vaqtincha")
    register_touch("weaponbox", "player", "OnWeaponboxTouch")
}

public OnWeaponboxTouch(wEnt, id)
{
    if(/* !is_user_alive(id) || */ UserHasAccess(id) || !IsEntOnGround(wEnt))
    {
        return PLUGIN_CONTINUE
    
}

    static szModel[MAX_MODEL_LEN]
    entity_get_string(wEnt, EV_SZ_model, szModel, charsmax(szModel))

    for(new i = 0; i <sizeof(BLOCK_MODELS); i++)
    {
        if(!strcmp(szModel, BLOCK_MODELS[i]))
        {
            ChatColor(id, id, "^1[^4M9COPY6KA^1] Только для ^3VIP ^1игроков!"); 
            return PLUGIN_HANDLED
        
}
    }
    
    return PLUGIN_CONTINUE
}

stock ChatColor(id, id2, const szMessage[], any:...)
{
    if(id && !is_user_connected(id))
        return;
        
    new szMsg
[190]; vformat(szMsg, charsmax(szMsg), szMessage, 4);
    
    message_begin
(id ? MSG_ONE : MSG_ALL, 76, .player = id);
    write_byte(id2 ? id2 : id);
    write_string(szMsg);
    message_end();
}
Аватара пользователя
evsa
 
Сообщения: 28
Зарегистрирован: 04 фев 2020, 02:02
Откуда: Челябинск
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев

Re: Проблема с плагином VIP

Сообщение httpeace// » 19 мар 2020, 08:45

А вы точно выдали игроку флаг ADMIN_LEVEL_H ?
(ADMIN_LEVEL_H ===> Флаг "t" - Зарезервированные флаги)
скромность украшает, но оставляет голодным
________________________________
Аватара пользователя
httpeace//
 
Сообщения: 179
Зарегистрирован: 01 окт 2013, 14:31
Откуда: Владивосток
Благодарил (а): 51 раз.
Поблагодарили: 15 раз.
Опыт программирования: Больше трех лет
Языки программирования: Lua

Re: Проблема с плагином VIP

Сообщение evsa » 19 мар 2020, 10:25

Да. У меня на простое оружие флаг "p", а на золотое "q". Только VIP игрок не может поднять оружие, которое только что выбросил.

Добавлено спустя 1 минуту 4 секунды:
Поменял на флаги "PQ". Теперь не компилится.
Аватара пользователя
evsa
 
Сообщения: 28
Зарегистрирован: 04 фев 2020, 02:02
Откуда: Челябинск
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 6 месяцев

Re: Проблема с плагином VIP

Сообщение Qruker » 19 мар 2020, 15:15

#define ACCESS_FLAG ADMIN_LEVEL_H // - флаг, отвечающий за "t"

Если у вас прописан другой флаг для VIP, то замените ADMIN_LEVEL_H на нужный:
"p" - флаг отвечающий за ADMIN_LEVEL_D
"q" - флаг отвечающий за ADMIN_LEVEL_E

Пример:
#define ACCESS_FLAG ADMIN_LEVEL_D
теперь у вас проверяет на наличие флага "p"

Список флагов можно найти на просторе интернета.
Skills are no more important than reason.
Аватара пользователя
Qruker
 
Сообщения: 21
Зарегистрирован: 27 авг 2019, 18:19
Благодарил (а): 2 раз.
Поблагодарили: 4 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn & AmxModX (CS 1.6; SA:MP)
Java
JavaScript (+HTML/CSS)
Python
C# (+Unity)


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Yandex [Bot] и гости: 5