• Уважаемые пользователи!
    За решением проблем с работой плагинов, компиляцией, падением сервера и прочими обращайтесь в раздел Помощи!
    Данная тема предназначена для обсуждения плагина, его функционала, принципа работы и предложений.

Разработка VIP рандомно одному игроку.

Статус
В этой теме нельзя размещать новые ответы.
Если хотите открыть тему, нажмите кнопку Жалоба в первом сообщении.

krenko3

Участник
Сообщения
126
Реакции
13
Баллы
18
Техническое задание
Каждую карту случайному игроку выдается VIP, если игрок вышел, то выдается другому. И в чат сообщение, что то вроде "Случайная/рандомная VIP выдана на одну карту nick"
Добрый вечер! Предложение следующее.

Аля тестовая вип????
 
C++:
#include <amxmodx>
#include <gamecms5>

#define TIME_GIVE         60.0
#define MAX_PLAYERS     32

#define Flags "t"                    // флаги
#define Time 600                        // время дейтсвия
#define ONLY_NOT_FLAGS                // Выдавать лишь тем, у кого есть лишь флаг Z

new szPluginInfo[][] = { "Test", "1.0", "V1adJkee" };

public plugin_init()
{

    register_plugin(szPluginInfo[0], szPluginInfo[1], szPluginInfo[2]);

}

public plugin_cfg()
{

    set_task(TIME_GIVE, "OnGivePriveleges");

}

public OnGivePriveleges()
{

    new bool:status = false;

    while(!status)
    {

        new index = random_num(1, MAX_PLAYERS);

        if(!is_user_connected(index)) continue;

        #if defined ONLY_NOT_FLAGS

        if(~get_user_flags(index) & ADMIN_USER) continue;

        #endif

        /**
        *    Добавление флагов пользователю
        *    @index - id игрока
        *    @szFlags[] - флаги доступа
        *    @iTime - срок действия флагов, секунд (-1 - на карту)
        *    @szServiceName[] - название услуги (например, "вип за стим", "ночной вип" и т.п.)
        *    @bSilent - тихое добавление без вызова форварда OnAPIAdminConnected
        *    return - 1- при успешном добавлении, 0- если услуга с этими флагами уже есть.
        */

        if ( cmsapi_set_user_flags( index, Flags, Time,"рандомный вип", false ) == -1 )
        {

            new szName[25];
            get_user_name(index, szName, charsmax(szName));

            client_print_color(0, 0,  "[^4 AS © ^1] Игрок %s получил бесплатный [^4 VIP-статус ^1] на [^4 %d ^1] минут", szName, Time / 60);
            status = true;

        } else {

            log_amx("Ошибка добавления");
            status = true;

        }

    }

}
not tested
 
Последнее редактирование:
C++:
#include <amxmodx>
#include <gamecms5>

#define TIME_GIVE         60.0
#define MAX_PLAYERS     32

#define Flags "t"                    // флаги
#define Time 600                        // время дейтсвия
#define ONLY_NOT_FLAGS                // Выдавать лишь тем, у кого есть лишь флаг Z

new szPluginInfo[][] = { "Test", "1.0", "V1adJkee" };

public plugin_init()
{

    register_plugin(szPluginInfo[0], szPluginInfo[1], szPluginInfo[2]);

}

public plugin_cfg()
{

    set_task(TIME_GIVE, "OnGivePriveleges");

}

public OnGivePriveleges()
{

    new bool:status = false;

    while(!status)
    {

        new index = random_num(1, MAX_PLAYERS);

        if(!is_user_connected(index)) continue;

        #if defined ONLY_NOT_FLAGS

        if(~get_user_flags(index) & ADMIN_USER) continue;

        #endif

        /**
        *    Добавление флагов пользователю
        *    @index - id игрока
        *    @szFlags[] - флаги доступа
        *    @iTime - срок действия флагов, секунд (-1 - на карту)
        *    @szServiceName[] - название услуги (например, "вип за стим", "ночной вип" и т.п.)
        *    @bSilent - тихое добавление без вызова форварда OnAPIAdminConnected
        *    return - 1- при успешном добавлении, 0- если услуга с этими флагами уже есть.
        */

        if ( cmsapi_set_user_flags( index, Flags, Time,"рандомный вип", false ) == -1 )
        {

            new szName[25];
            get_user_name(index, szName, charsmax(szName));

            client_print_color(0, 0,  "[^4 AS © ^1] Игрок %s получил бесплатный [^4 VIP-статус ^1] на [^4 %d ^1] минут", szName, Time / 60);
            status = true;

        } else {

            log_amx("Ошибка добавления");
            status = true;

        }

    }

}
not tested
А для чего время действия? и Time Give
 
В логах тоже пустота. И в чат ничего не пишет. Вип никто не получил. Плагин запустился успешно.


Вот это не совсем понимаю TIME_GIVE, что за квар?
 
@krenko3, это не совсем то что вам нужно. Этот плагин выдаст лишь 1 раз в начале карты рандомному игроку. TIME_GIVE - Время через которое начнется выбор того счастливчика ( Чтобы все успели подключиться ).
 

Вложения

  • test.sma
    2 KB · Просмотры: 11
@krenko3, это не совсем то что вам нужно. Этот плагин выдаст лишь 1 раз в начале карты рандомному игроку. TIME_GIVE - Время через которое начнется выбор того счастливчика ( Чтобы все успели подключиться ).
Работает, спасибо!
 
Статус
В этой теме нельзя размещать новые ответы.
Если хотите открыть тему, нажмите кнопку Жалоба в первом сообщении.
Назад
Сверху