Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Чек adm/vip

Статус пользователя Acer
сообщение 31.8.2017, 13:12
Сообщение #1


Стаж: 7 лет 1 месяц
Город: Chicago

Сообщений: 304
Благодарностей: 55
Полезность: 35

Всем привет=) Может кто то немножечко отредактировать исходник?
Нужно:
- Убрать задержку вывода списка онлайн адм/vip, то есть при написании команды /admin или /vip чтоб сразу же выводило список в чат, а не как сейчас через секунды 2.
- Добавить проверку на флаг "ADMIN_BAN", чтоб при написании /vip, админы с флагом бана не отображались в списке онлайн vip.
Исходник
Код
#include <amxmodx>
#include <amxmisc>

#define ADMIN_CHECK ADMIN_BAN
#define VIP_CHECK ADMIN_LEVEL_H

new maxplayers
new gmsgSayText

public plugin_init()
{
    register_plugin("Check Admin & Vip", "2.0", "Leo_[BH]")

    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    
    register_clcmd("say",         "handle_say");
    register_clcmd("say_team",     "handle_say");
}


public handle_say(id)
{
    new said[192]
    read_args(said,192)
    
    if ( contain(said, "admin") != -1)
    {
        set_task(0.2,"print_adminlist",id)
    }
    
    if ( contain(said, "vip") != -1 )
    {
        set_task(0.2,"print_viplist",id)
    }
}


public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]

    new id, count, x, len
    
    for(id = 1; id <= maxplayers; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_CHECK)
                get_user_name(id, adminnames[count++], 31)
                
    len = format(message, 255, "^x04[%d] ^x03Админы на сервере: ^x04",count)
    if(count > 0) {
        for(x = 0; x < count; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "^x04 ")
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "^x03 Отсутствуют.")
        print_message(user, message)
    }
}

public print_viplist(user)
{
    new vipnames[33][32]
    new message[256]
    new id, count, x, len
    
    for(id = 1; id <= maxplayers; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & VIP_CHECK)
                get_user_name(id, vipnames[count++], 31)

    len = format(message, 255, "^x04[%d] ^x03VIP-игроки на сервере: ^x04",count)
    if(count > 0) {
        for(x = 0; x < count; x++) {
            len += format(message[len], 255-len, "%s%s ", vipnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "^x04 ")
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "^x03 Отсутствуют.")
        print_message(user, message)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}


Отредактировал: Acer, - 31.8.2017, 13:31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Grable
сообщение 1.9.2017, 0:05
Сообщение #2


Стаж: 6 лет 6 месяцев

Сообщений: 99
Благодарностей: 12
Полезность: 12

Acer, обращайся - vk.com/oleja.gresko
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя esterio
сообщение 1.9.2017, 10:46
Сообщение #3
Стаж: 11 лет
Город: Украина

Сообщений: 266
Благодарностей: 215
Полезность: 627

Цитата
Убрать задержку вывода списка онлайн адм/vip, то есть при написании команды /admin или /vip чтоб сразу же выводило список в чат, а не как сейчас через секунды 2.

Там не спроста задержка. Можна разве что уменьшить


Ми будемо вбивати росіян у будь-якій точці світу до повної перемоги України
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Avrora
сообщение 1.9.2017, 11:13
Сообщение #4


Стаж: 11 лет
Город: Санкт-Петербург


Сообщений: 806
Благодарностей: 171
Полезность: 95

Cкрытый текст
public handle_say(id)
{
new said[192]
read_args(said,192)

if ( contain(said, "admin") != -1)
{
set_task(0.2,"print_adminlist",id)
}

if ( contain(said, "vip") != -1 )
{
set_task(0.2,"print_viplist",id)
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Acer
сообщение 2.9.2017, 10:55
Сообщение #5


Стаж: 7 лет 1 месяц
Город: Chicago

Сообщений: 304
Благодарностей: 55
Полезность: 35

esterio, У данного автора есть ещё чек стимов, там была тоже задержка. Он её убрал и всё ок.

Отредактировал: Acer, - 2.9.2017, 10:55
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Acer
сообщение 2.9.2017, 11:16
Сообщение #6


Стаж: 7 лет 1 месяц
Город: Chicago

Сообщений: 304
Благодарностей: 55
Полезность: 35

С задержкой разобрался, может кто то - Добавить проверку на флаг "ADMIN_BAN", чтоб при написании /vip, админы с флагом бана не отображались в списке онлайн vip?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: