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

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

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

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

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Несолько флагов для админского префикса

Статус пользователя WarDeN4ik
сообщение 9.6.2014, 14:06
Сообщение #1


Стаж: 12 лет

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

Привет всем!
Есть такой вопрос, к плагину префиксы в colored_translit. Можно ли сделать админам префикс при условии что у них 2 флага (ad) а у випов только 1 (a).
Смысл в том чтобы не выставлять випам отдельный флаг.
т.е. админский префикс если
Код
ADMIN_BAN & ADMIN_IMMUNITY

а випам только если
Код
ADMIN_IMMUNITY


Или по двум и более флагам вовсе не делается?

Я так и попробовал, но как и ожидал не получилось, у админа префикс "VIP" получился.
Код:
#include <amxmodx>
#include <colored_translit>

public ct_message_format(id)
{
new szSteam[32]
get_user_authid(id, szSteam, charsmax(szSteam))
if(equal(szSteam, "STEAM_X:X:XXXXXXXX"))
{
ct_add_to_msg(CT_MSGPOS_PREFIX, "^x01[^x04Главный Админ^x01]")
}

else if(get_user_flags(id) & ADMIN_BAN & ADMIN_IMMUNITY)
{
ct_add_to_msg(CT_MSGPOS_PREFIX, "^x01[^x04Админ^x01]")
}
else if(get_user_flags(id) & ADMIN_IMMUNITY)
{
ct_add_to_msg(CT_MSGPOS_PREFIX, "^x01[^x04VIP^x01]")
}
return PLUGIN_CONTINUE
}

Сильно не пинайте за глупый вопрос, в скриптинге я 0))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 9.6.2014, 14:14
Сообщение #2


Иконка группы

Стаж: 13 лет

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

ADMIN_BAN & ADMIN_IMUNITY --> & на &&
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя WarDeN4ik
сообщение 9.6.2014, 14:16
Сообщение #3


Стаж: 12 лет

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

Хотя вот попробовал
админам только
Код
ADMIN_BAN

а випам
Код
ADMIN_IMMUNITY

Вроде получилось, и префиксы правильно выдало, но не будет ли глючить и путать префиксы время от времени?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя WarDeN4ik
сообщение 9.6.2014, 14:32
Сообщение #4


Стаж: 12 лет

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

Цитата(GOOD FELLOW @ 9.6.2014, 16:14) *
ADMIN_BAN & ADMIN_IMUNITY --> & на &&

Всё получилось, спасибо!
И ещё вопрос, отдельную тему создавть думаю не стоит...
Как в этот плагин внедрить ещё префикс для стимов?
steam_prefixт
Код:
#include <amxmodx>
#include <colored_translit>

#define PLUGIN "Steam Prefix"
#define VERSION "1.0"
#define AUTHOR "Sho0ter / Stimul"

#define GetBit(%1) (g_bIsUserSteam & (1 << (%1 & 31)))
#define SetBit(%1) (g_bIsUserSteam |= (1 << (%1 & 31)))
#define ResetBit(%1) (g_bIsUserSteam &= ~(1 << (%1 & 31)))

new g_bIsUserSteam;

public plugin_init()
register_plugin(PLUGIN, VERSION, AUTHOR);

public client_putinserver(id)
is_user_steam(id) ? SetBit(id) : ResetBit(id);

public ct_message_format(id)
if(GetBit(id))
ct_add_to_msg(CT_MSGPOS_PREFIX, "[^x04Steam^x01]");

stock bool:is_user_steam(id)
{
static dp_pointer;

if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}

new szAuthid[34];
get_user_authid(id, szAuthid, charsmax(szAuthid));

return (containi(szAuthid, "LAN") < 0);
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 9.6.2014, 14:38
Сообщение #5


Иконка группы

Стаж: 13 лет

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

Код:
#include <amxmodx>
#include <colored_translit>

#define GetBit(%1) (g_bIsUserSteam & (1 << (%1 & 31)))
#define SetBit(%1) (g_bIsUserSteam |= (1 << (%1 & 31)))
#define ResetBit(%1) (g_bIsUserSteam &= ~(1 << (%1 & 31)))

new g_bIsUserSteam;

public client_putinserver(id)
is_user_steam(id) ? SetBit(id) : ResetBit(id);

public ct_message_format(id)
{
new szSteam[32]
get_user_authid(id, szSteam, charsmax(szSteam))
if(GetBit(id))
ct_add_to_msg(CT_MSGPOS_PREFIX, "[^x04Steam^x01]");

if(equal(szSteam, "STEAM_X:X:XXXXXXXX"))
{
ct_add_to_msg(CT_MSGPOS_PREFIX, "^x01[^x04Главный Админ^x01]")
}

else if(get_user_flags(id) & ADMIN_BAN & ADMIN_IMMUNITY)
{
ct_add_to_msg(CT_MSGPOS_PREFIX, "^x01[^x04Админ^x01]")
}
else if(get_user_flags(id) & ADMIN_IMMUNITY)
{
ct_add_to_msg(CT_MSGPOS_PREFIX, "^x01[^x04VIP^x01]")
}
return PLUGIN_CONTINUE
}

stock bool:is_user_steam(id)
{
static dp_pointer;

if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
{
server_cmd("dp_clientinfo %d", id);
server_exec();
return (get_pcvar_num(dp_pointer) == 2) ? true : false;
}

new szAuthid[34];
get_user_authid(id, szAuthid, charsmax(szAuthid));

return (containi(szAuthid, "LAN") < 0);
}



как-то так
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя WarDeN4ik
сообщение 9.6.2014, 14:54
Сообщение #6


Стаж: 12 лет

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

GOOD FELLOW, Ага работает, спасибо снова! Только желательно чтобы показывало только один префикс, а то если админ со стима то показывает оба префикса Админ и Steam, думаю это лишнее.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 9.6.2014, 14:56
Сообщение #7


Иконка группы

Стаж: 13 лет

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

Код:
if(GetBit(id))


замени на

Код:
if(GetBit(id) && !(get_user_flags(id) & ADMIN_BAN && ADMIN_IMMUNITY))


попробуй так:)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя WarDeN4ik
сообщение 9.6.2014, 15:16
Сообщение #8


Стаж: 12 лет

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

GOOD FELLOW , Всё работает, спасибо!
Думаю тему можно закрывать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: