VIP/ADMIN connect

Статус
В этой теме нельзя размещать новые ответы.

flexcorejz

Пользователь
Регистрация
8 Ноя 2017
Сообщения
303
Симпатии
24
Кто сможет добавить сюда что бы писало и ADMIN когда заходит? Буду благодарен:D
 

Вложения

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.217
Симпатии
304
flexcorejz, попробуй такой вариант :D

Код:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #include <colorchat>
#endif

#define CON_SOUND "misc/vip.wav"

public plugin_init()
    register_plugin("User connect", "1.0", "TBONTB");

public client_putinserver(id)
    connect(id);

public connect(id)
{
    new name[32]; get_user_name(id, name, 31);
    
    if(get_user_flags(id) & ADMIN_BAN)
    {
        client_print_color(0, print_team_default, "^1[^4INFO^1] ^3Слишком мало ^1игроков ^3для запуска ^4Мода. ^1Зовите друзей :)");
        client_cmd(0, "stopsound")
        client_cmd(0, "spk %s", CON_SOUND)
        return PLUGIN_HANDLED;
    }
    if(get_user_flags(id) & ADMIN_LEVEL_H)
    {
        client_print_color(0, print_team_default, "^1[^4INFO^1] ^3Слишком мало ^1игроков ^3для запуска ^4Мода. ^1Зовите друзей :)");
        client_cmd(0, "stopsound")
        client_cmd(0, "spk %s", CON_SOUND)
        return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}

public plugin_precache()
    precache_sound(CON_SOUND);
 

Bravo

Пользователь
Регистрация
8 Июн 2017
Сообщения
181
Симпатии
24
Пол
Мужской
To be or not to be, А причем здесь это: [ INFO ] Слишком мало игроков для запуска Мода. Зовите друзей : ) ?
 

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.217
Симпатии
304
Bravo, из свеого плагина функцию скопировал по быстрому, не заменил.
flexcorejz, держи
Код:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #include <colorchat>
#endif

#define CON_SOUND "misc/vip.wav"

public plugin_init()
    register_plugin("User connect", "1.0", "TBONTB");

public client_putinserver(id)
    connect(id);

public connect(id)
{
    new name[32]; get_user_name(id, name, 31);
   
    if(get_user_flags(id) & ADMIN_BAN)
    {
        client_print_color(0, print_team_default, "^1[^4INFO^1] На сервер зашел ^3Админ-Клиент^1 -^4%s", name);
        client_cmd(0, "stopsound")
        client_cmd(0, "spk %s", CON_SOUND)
        return PLUGIN_HANDLED;
    }
    if(get_user_flags(id) & ADMIN_LEVEL_H)
    {
        client_print_color(0, print_team_default, "^1[^4INFO^1] На сервер зашел ^3VIP-Клиент^1 -^4%s", name);
        client_cmd(0, "stopsound")
        client_cmd(0, "spk %s", CON_SOUND)
        return PLUGIN_HANDLED;
    }
    return PLUGIN_HANDLED;
}

public plugin_precache()
    precache_sound(CON_SOUND);
 
  • Мне нравится
Симпатии: Bravo

paffgame

D0L64E6
Разработчик
Регистрация
9 Июн 2017
Сообщения
154
Симпатии
84
Пол
Мужской
Telegram
@paffgame
C++:
#include <amxmodx>

#if AMXX_VERSION_NUM < 183
    #include <colorchat>
#endif

#define VIP            ADMIN_LEVEL_H
#define ADMIN        ADMIN_BAN
#define CON_SOUND     "misc/vip.wav"

public plugin_init()
    register_plugin("User connect", "1.0", "TBONTB");

public client_putinserver(id){
    new flag = get_user_flags(id) & ADMIN ? 2 : get_user_flags(id) & VIP ? 1 : 0;
    if(!flag)
        return;
    
    client_cmd(0, "stopsound");
    client_cmd(0, "spk %s", CON_SOUND);
    
    new name[32];
    get_user_name(id, name, charsmax(name));
    client_print_color(false, false, "^1На сервер зашёл ^4%s^1 клиент -^4 %s", flag == 1 ? "VIP" : "Admin", name);
}

public plugin_precache()
    precache_sound(CON_SOUND);
 

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
235
Симпатии
134
Пол
Мужской
Не ну раз уж на то пошло :)
flexcorejz,
PHP:
#include <amxmodx>

#define CONNECTED_SOUND "misc/vip.wav"
#define PREFIX_CHAT        "^1[^4Connect Info^1]"

#pragma semicolon 1
public plugin_precache()
    precache_sound(CONNECTED_SOUND);

public client_putinserver(id) {
    new iFlags = get_user_flags(id);
    if(~iFlags & (ADMIN_BAN | ADMIN_LEVEL_H)) return;

    new szName[32];  get_user_name(id, szName, charsmax(szName));
    new iUsers[32], iNum; get_players(iUsers, iNum, "ch");

    for(new i, user; i < iNum ; i++) {
        user = iUsers[i];
        if(id == user) continue;
  
        client_cmd(user, "spk %s", CONNECTED_SOUND);
        client_print_color(user, -3, "%s ^1На сервер зашёл ^3%s ^1клиент ^4%s", PREFIX_CHAT, (iFlags & ADMIN_BAN) ? "ADMIN" : "VIP", szName);
    }
}
Если юзаете амх 1.8.2 тогда добавьте строчку
#include <colorchat>
После этой
#include <amxmodx>
Ну и сам инклюд в компилятор соответственно.
 
Последнее редактирование:

paffgame

D0L64E6
Разработчик
Регистрация
9 Июн 2017
Сообщения
154
Симпатии
84
Пол
Мужской
Telegram
@paffgame
Не ну раз уж на то пошло :)
flexcorejz,
PHP:
#include <amxmodx>

#define CONNECTED_SOUND "misc/vip.wav"
#define PREFIX_CHAT        "^1[^4Connect Info^1]"

#pragma semicolon 1
public plugin_precache()
    precache_sound(CONNECTED_SOUND);

public client_putinserver(id) {
    new iFlags = get_user_flags(id);
    if(~iFlags & (ADMIN_BAN | ADMIN_LEVEL_H)) return;

    new szName[32];  get_user_name(id, szName, charsmax(szName));
    new iUsers[32], iNum; get_players(iUsers, iNum, "ch");

    for(new i, user; i < iNum ; i++) {
        user = iUsers[I];
        if(id == user) continue;
  
        client_cmd(user, "spk %s", CONNECTED_SOUND);
        client_print_color(user, -3, "%s ^1На сервер зашёл ^3%s ^1клиент ^4%s", PREFIX_CHAT, (iFlags & ADMIN_BAN) ? "ADMIN" : "VIP", szName);
    }
}
Если юзаете амх 1.8.2 тогда добавьте строчку
#include <colorchat>
После этой
#include <amxmodx>
Ну и сам инклюд в компилятор соответственно.
ля, я видимо дурачок, зачем цикол >< онли из-за ' if(id == user) continue; '?
 

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace
Код:
#include <amxmodx>

#define VIP ADMIN_LEVEL_D        // Флаг доступа випа "VIP"
#define ADMIN ADMIN_LEVEL_B        // Флаг доступа админа "Админ"
#define GL_ADMIN ADMIN_LEVEL_G        // Флаг доступа главного админа "Гл. Админ"
#define STEAM                // Поддержка <steam> Показывает стим игрок или нет при конекте.

new player_name[32]

public plugin_init()
    register_plugin("Info Connect", "1.0", "AcE")

public client_putinserver(id)
{
    if (is_user_ignore(id)) return

    get_user_name(id, player_name, 31)
    static const szAdminPrefix[][] = {"^1игрок", "^1[^4Гл. Админ^1]", "^1[^4Админ^1]", "^1[^4Вип^1]"}

    #if defined STEAM
        ChatColor(0, "^4[Сервер] ^1На сервер заходит %s ^3%s^1, У него ^4%s", szAdminPrefix[CheckFlags(id)], player_name, is_user_steam(id) ? "Steam" : "Non-Steam")
    #else
        ChatColor(0, "^4[Сервер] ^1На сервер заходит %s ^3%s", szAdminPrefix[CheckFlags(id)], player_name)
    #endif
}

public client_disconnected(id)
{
    get_user_name(id, player_name, 31)
    static const szAdminPrefix[][] = {"^1Игрок", "^1[^4Гл. Админ^1]", "^1[^4Админ^1]", "^1[^4Вип^1]"}
    ChatColor(0, "^4[Сервер] %s ^3%s ^1покидает наш сервер.", szAdminPrefix[CheckFlags(id)], player_name)
}

stock CheckFlags(id)
{
    static iFlags
    iFlags = get_user_flags(id)
    if (iFlags & GL_ADMIN) return 1
    else if (iFlags & ADMIN) return 2
    else if (iFlags & VIP) return 3
    return 0
}

#if defined STEAM
stock bool:is_user_steam(id)
{
    server_cmd("dp_clientinfo %d", id)
    server_exec()
    return get_pcvar_num(get_cvar_pointer("dp_r_id_provider")) == 2 ? true : false
}
#endif

ChatColor(id, const MSG[], any:...)
{
    new szMsg[190]; vformat(szMsg, charsmax(szMsg), MSG, 3)
    message_begin(MSG_ONE_UNRELIABLE, 76, .player = id)
    write_byte(id); write_string(szMsg); message_end()
}

is_user_ignore(id)
    return is_user_bot(id) || is_user_hltv(id)
Подправте как вам угодно. Показывает кто заходит и выходит. + стим или нет)
 

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
235
Симпатии
134
Пол
Мужской
paffgame, А по вашему как лучше?
  1. Ля, видимо да :)
  2. Мы отсеиваем "циколом" ботов и хлтв они же нам зачем?
  3. Так же как и выше, зачем воспроизводить звук и выводить уведомление самому себе?
  4. Ну и напоследок данные изamxmodx.cpp при client_print_color(false,... тот же "цикол"
    • PHP:
      if (params[1] == 0)    // 0 = All players    {
              for (int i = 1; i <= gpGlobals->maxClients; ++i)
              {
                  CPlayer *pPlayer = GET_PLAYER_POINTER_I(i);
      
                  if (pPlayer->ingame)
                  {
                      g_langMngr.SetDefLang(i);
                      msg = format_amxstring(amx, params, 3, len);
      
                      // params[2]: print_notify = 1, print_console = 2, print_chat = 3, print_center = 4
                      if (((params[2] == 1) || (params[2] == 2)) && (len > 126))    // Client console truncates after byte 127. (126 + \n = 127)
                      {
                          len = 126;
                          if ((msg[len - 1] & 1 << 7))
                          {
                              len -= UTIL_CheckValidChar(msg + len - 1); // Don't truncate a multi-byte character
                          }
                      }
                      msg[len++] = '\n';    // Client expects newline from the server
                      msg[len] = 0;
      
                      UTIL_ClientPrint(pPlayer->pEdict, params[2], msg);
                  }
              }
          }
  5. Ля, выводы делаем сами :)
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Ля, выводы делаем сами :)
Давайте попробуем сделать выводы..
Ради чего? Отсеить ботов и хлтв? Их много? ХЛТВ- 1шт, если есть.. Ботов, чаще всего, - 0 шт.
Зато "коду-то понаписали))". Обывателю, как лес дремучий.
зачем воспроизводить звук и выводить уведомление самому себе
Ну, на _putinserver можно увидеть, если постараться, а на _connect, _authorized уж точно не увидите уведомлений.
Но, как говорится, "на вкус и цвет..."
 

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
235
Симпатии
134
Пол
Мужской
Чё бля? Где ты это там увидел? Молодец садись "пять".
_putinserver можно увидеть, если постараться
Зачем стараться все итак хорошо получается :)
Зато "коду-то понаписали))". Обывателю, как лес дремучий.
И что? размер кода как то влияет? Нет, пускай учаться кто не понимает, не хотят? тогда тут не место таким...
Ну и в итоге мизерная но все же оптимизация ведь разница между maxClients и get_players очевидна.
У меня все, проехали...
 

georgeml

Скриптер
Постоялец
Регистрация
12 Сен 2017
Сообщения
595
Симпатии
314
Взгляд не разработчика, а недоучки.. Не говоря про поведение злого школьника.
Какая оптимизация? 1 цикл х 32 + 31 вызов client_print_color на полном сервере, вместо 1-го натива при отправке всем. Удачи "разработчик"
 

flexcorejz

Пользователь
Регистрация
8 Ноя 2017
Сообщения
303
Симпатии
24
Код:
#include <amxmodx>

#define VIP ADMIN_LEVEL_D        // Флаг доступа випа "VIP"
#define ADMIN ADMIN_LEVEL_B        // Флаг доступа админа "Админ"
#define GL_ADMIN ADMIN_LEVEL_G        // Флаг доступа главного админа "Гл. Админ"
#define STEAM                // Поддержка <steam> Показывает стим игрок или нет при конекте.

new player_name[32]

public plugin_init()
    register_plugin("Info Connect", "1.0", "AcE")

public client_putinserver(id)
{
    if (is_user_ignore(id)) return

    get_user_name(id, player_name, 31)
    static const szAdminPrefix[][] = {"^1игрок", "^1[^4Гл. Админ^1]", "^1[^4Админ^1]", "^1[^4Вип^1]"}

    #if defined STEAM
        ChatColor(0, "^4[Сервер] ^1На сервер заходит %s ^3%s^1, У него ^4%s", szAdminPrefix[CheckFlags(id)], player_name, is_user_steam(id) ? "Steam" : "Non-Steam")
    #else
        ChatColor(0, "^4[Сервер] ^1На сервер заходит %s ^3%s", szAdminPrefix[CheckFlags(id)], player_name)
    #endif
}

public client_disconnected(id)
{
    get_user_name(id, player_name, 31)
    static const szAdminPrefix[][] = {"^1Игрок", "^1[^4Гл. Админ^1]", "^1[^4Админ^1]", "^1[^4Вип^1]"}
    ChatColor(0, "^4[Сервер] %s ^3%s ^1покидает наш сервер.", szAdminPrefix[CheckFlags(id)], player_name)
}

stock CheckFlags(id)
{
    static iFlags
    iFlags = get_user_flags(id)
    if (iFlags & GL_ADMIN) return 1
    else if (iFlags & ADMIN) return 2
    else if (iFlags & VIP) return 3
    return 0
}

#if defined STEAM
stock bool:is_user_steam(id)
{
    server_cmd("dp_clientinfo %d", id)
    server_exec()
    return get_pcvar_num(get_cvar_pointer("dp_r_id_provider")) == 2 ? true : false
}
#endif

ChatColor(id, const MSG[], any:...)
{
    new szMsg[190]; vformat(szMsg, charsmax(szMsg), MSG, 3)
    message_begin(MSG_ONE_UNRELIABLE, 76, .player = id)
    write_byte(id); write_string(szMsg); message_end()
}

is_user_ignore(id)
    return is_user_bot(id) || is_user_hltv(id)
Подправте как вам угодно. Показывает кто заходит и выходит. + стим или нет)
Выдает чет многовато ошибок.
Можешь кинуть амхх готовый уже ?
Компилил как через сайт так и через пк.
 

Вложения

Анатолий

Заблокированные
Пользователь
Регистрация
8 Июн 2017
Сообщения
686
Симпатии
196
Пол
Мужской
ВКонтакте
e1337ace

пазлик~

Скриптер
Скриптер
Регистрация
8 Июн 2017
Сообщения
235
Симпатии
134
Пол
Мужской
georgeml, Ты чего вообще ополоумел? -_- get_players получает количество игроков коих может быть и 10 и 5 и 25, улавливаешь разницу где цикл повторяется при maxClients 32 раза, а где цикл зависит от количества игроков, конечно что при фул сервере это не уместно но не у всех так. Так что сарказм свой запхайте куда по дальше, при том что я вас не оскорблял "Умник".
 
Последнее редактирование:

flexcorejzzz

Пользователь
Регистрация
12 Ноя 2017
Сообщения
25
Симпатии
1
что за ошибки хоть?
Sat Nov 25 10:35:28 EET 2017
sma file name:info_connect.sma
Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2013 ITB CompuPhase, AMX Mod X Team

info_connect.sma(1) : error 010: invalid function or declaration
info_connect.sma(11) : error 017: undefined symbol "register_plugin"
info_connect.sma(17) : error 017: undefined symbol "get_user_name"
info_connect.sma(29) : error 017: undefined symbol "get_user_name"
info_connect.sma(37) : error 017: undefined symbol "get_user_flags"
info_connect.sma(38) : error 017: undefined symbol "ADMIN_LEVEL_G"
info_connect.sma(39) : error 017: undefined symbol "ADMIN_LEVEL_B"
info_connect.sma(40) : error 017: undefined symbol "ADMIN_LEVEL_D"
info_connect.sma(42) : warning 203: symbol is never used: "id"
info_connect.sma(47) : error 017: undefined symbol "server_cmd"
info_connect.sma(48) : error 017: undefined symbol "server_exec"
info_connect.sma(49) : error 017: undefined symbol "get_pcvar_num"
info_connect.sma(55) : error 017: undefined symbol "vformat"
info_connect.sma(56) : error 017: undefined symbol "message_begin"
info_connect.sma(56) : warning 215: expression has no effect
info_connect.sma(56) : error 029: invalid expression, assumed zero
info_connect.sma(56) : error 017: undefined symbol "player"
info_connect.sma(56) : fatal error 107: too many error messages on one line

Compilation aborted.
16 Errors.
 

To be or not to be

Пользователь
Регистрация
9 Июн 2017
Сообщения
1.217
Симпатии
304
flexcorejzzz, плагин Анатолия.
Хз, в чем у тебя проблемы)))
 

Вложения

Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу