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

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

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

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

Админ/вип зашли

, Добавить звуки
Статус пользователя VenigreT
сообщение 11.2.2018, 17:49
Сообщение #1
Стаж: 8 лет 6 месяцев

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

Здравствуйте.
Прошу помощи
Нужно чтобы когда заходит админ на сервер (у админов флаг "c") воспроизводился звук. (свой звук добавлю сам)
Так же нужно сделать звук при заходите вип игрока на сервер (у випов флаг "t") (свой звук добавлю сам)
Но так, чтобы игрок с флагами и "c" и "t" вместе два звука сразу не воспроизводились, а воспроизводился только звук админский. Т.е флаг "C"
Желательно указать путь к звукам sound/misc "и моя папка"(сам её назову) и в ней будут два звука в формате wav"

Вот код:
Код:
#include <amxmodx>
#include <amxmisc>

enum CVARS_DATA
{
MAIN_ADMIN_FLAG,
ADMIN_FLAG,
VIP_FLAG,
};

new g_CvarsData[CVARS_DATA]

new const PLUGIN[] = "Connect Admin/Vip"
new const VERSION[] = "0.1"
new const AUTHOR[] = "chelovek"

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

g_CvarsData[MAIN_ADMIN_FLAG] = register_cvar("main_admin_flag", "");
g_CvarsData[ADMIN_FLAG] = register_cvar("admin_flag", "");
g_CvarsData[VIP_FLAG] = register_cvar("vip_flag", "");

register_dictionary("cuser.txt")
}

public plugin_cfg()
{
new szCfgDir[96];
get_localinfo("amxx_configsdir", szCfgDir, charsmax(szCfgDir));
server_cmd("exec %s/zhuba/conn.cfg", szCfgDir);
}

public client_putinserver(id)
{
new name[32]
get_user_name(id,name,charsmax(name))


if(is_user_connected(id) && main_admin(id))
{
ColorChat(0, "%L", LANG_PLAYER, "MAIN_ADMIN_CHAT", name);
return;
}

if(is_user_connected(id) && admin(id))
{
ColorChat(0, "%L", LANG_PLAYER, "ADMIN_CHAT", name);
return;
}

if(is_user_connected(id) && vip(id))
{
ColorChat(0, "%L", LANG_PLAYER, "VIP_CHAT", name);
return;
}



if(is_user_steam(id)) // Если юзверь с лицензии
{
//ColorChat(0, "%L", LANG_PLAYER, "STEAM_CHAT", name);
return;
}

//ColorChat(0, "%L", LANG_PLAYER, "PLAYER_CHAT", name);
return;
}

stock main_admin(id)
{
new sFlags[32], sFlag[ 5 ], flags = get_user_flags(id), status[33]; status[id] = false;
get_pcvar_string(g_CvarsData[MAIN_ADMIN_FLAG], sFlag, charsmax(sFlag));
get_flags(flags, sFlags, charsmax(sFlags));
if(contain(sFlags, sFlag) != -1) status[id] = true;
return status[id];
}

stock admin(id)
{
new sFlags[32], sFlag[ 5 ], flags = get_user_flags(id), status[33]; status[id] = false;
get_pcvar_string(g_CvarsData[ADMIN_FLAG], sFlag, charsmax(sFlag));
get_flags(flags, sFlags, charsmax(sFlags));
if(contain(sFlags, sFlag) != -1) status[id] = true;
return status[id];
}

stock vip(id)
{
new sFlags[32], sFlag[ 5 ], flags = get_user_flags(id), status[33]; status[id] = false;
get_pcvar_string(g_CvarsData[VIP_FLAG], sFlag, charsmax(sFlag));
get_flags(flags, sFlags, charsmax(sFlags));
if(contain(sFlags, sFlag) != -1) status[id] = true;
return status[id];
}
stock 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 ) ? 1 : 0;
}
return 0;
}

stock ColorChat(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
format(msg, sizeof(msg), "%s", msg)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя VenigreT
сообщение 17.2.2018, 11:58
Сообщение #2
Стаж: 8 лет 6 месяцев

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

Ребятки, может кто помочь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Jelly
сообщение 18.2.2018, 7:32
Сообщение #3


Стаж: 7 лет 5 месяцев
Город: Красноярск

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

Меценат Меценат

Цитата(VenigreT @ 17.2.2018, 16:58) *
Ребятки, может кто помочь?

Подобный плагин есть в сети интернета.
Пробуйте вырезать код и вставлять!
А если не хотите заморачиваться, то вперед к скриптерам.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя VenigreT
сообщение 18.2.2018, 9:31
Сообщение #4
Стаж: 8 лет 6 месяцев

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

Есть подобные плагины, но они мне не нужны.
Умел бы сам вырезать и т.д не просил бы здесь никого.
Где скриптеры?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wypukt
сообщение 22.2.2018, 13:34
Сообщение #5
Стаж: 11 лет

Сообщений: 268
Благодарностей: 6
Полезность: < 0

VenigreT, я думаю он говорит, о том что бы заказывать доработку у скриптера за деньги.
Если по делу выкинь нафиг все что ты там накуралесил, не надо юзать никакие конфиги, это идиотизм, ради 2-3 строк, потом у вас хреналион файлов, лагают/падают серваки. Потом ошибки сыпятся ругающиеся на квары.
Куча калечных стоков, переменных, масивов зачем это все. Код можно сжать в 3 раза минимум.

Отредактировал: wypukt, - 22.2.2018, 13:45
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя VenigreT
сообщение 22.2.2018, 14:51
Сообщение #6
Стаж: 8 лет 6 месяцев

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

wypukt,
Если ты сможешь сжать такой код в 3 строки, и сделать то что требуется, буду признателен
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wypukt
сообщение 22.2.2018, 15:52
Сообщение #7
Стаж: 11 лет

Сообщений: 268
Благодарностей: 6
Полезность: < 0

VenigreT, с твоим задалбыванием в лс и тем что ты не понимаешь когда тебе говорят не строчи в лс, я тебя лично просто буду впредь обходить стороной.
Ты видимо что то путаешь в этой жизни, учись писать и спрашивай советы по шагам, а не напишите мне готовый плагин за спасибо. В край уже поахреневали, может мне еще пойти поработать за тебя, за спасибо, или поучиться?!

Отредактировал: wypukt, - 22.2.2018, 15:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neverminde
сообщение 22.2.2018, 16:06
Сообщение #8


Стаж: 13 лет

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

Примерно так, флаги от балды поставил, звуки тоже первые попавшиеся, стандартные.
.sma

Код:

#include <amxmodx>
#include <amxmisc>

enum CVARS_DATA
{
MAIN_ADMIN_FLAG,
ADMIN_FLAG,
VIP_FLAG,
};

new g_CvarsData[CVARS_DATA]

new const PLUGIN[] = "Connect Admin/Vip"
new const VERSION[] = "0.1"
new const AUTHOR[] = "chelovek"

new g_i_taskOffset = 1234

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

g_CvarsData[MAIN_ADMIN_FLAG] = register_cvar("main_admin_flag", "t");
g_CvarsData[ADMIN_FLAG] = register_cvar("admin_flag", "c");
g_CvarsData[VIP_FLAG] = register_cvar("vip_flag", "m");

register_dictionary("cuser.txt")
}

public plugin_cfg()
{
new szCfgDir[96];
get_localinfo("amxx_configsdir", szCfgDir, charsmax(szCfgDir));
server_cmd("exec %s/zhuba/conn.cfg", szCfgDir);
}

public client_putinserver(id)
{
new name[32]
get_user_name(id,name,charsmax(name))


if(is_user_connected(id) && main_admin(id))
ColorChat(0, "%L", LANG_PLAYER, "MAIN_ADMIN_CHAT", name);

if(is_user_connected(id) && admin(id))
ColorChat(0, "%L", LANG_PLAYER, "ADMIN_CHAT", name);

if(is_user_connected(id) && vip(id))
ColorChat(0, "%L", LANG_PLAYER, "VIP_CHAT", name);

// if(is_user_steam(id)) // Если юзверь с лицензии
// {
// //ColorChat(0, "%L", LANG_PLAYER, "STEAM_CHAT", name);
// return;
// }

set_task( 2.0, "taskSound", id + g_i_taskOffset )

//ColorChat(0, "%L", LANG_PLAYER, "PLAYER_CHAT", name);
return;
}

public taskSound( taskId )
{
new id = taskId - g_i_taskOffset;

if ( !is_user_connected(id) ) return;

if( main_admin(id) ) client_cmd( 0, "speak main" );

if( admin(id) ) client_cmd( 0, "speak administration" );

if( vip(id) ) client_cmd( 0, "speak hazard" );

// if( is_user_steam(id) )
}

stock main_admin(id)
{
new sFlags[32], sFlag[ 5 ], flags = get_user_flags(id), status[33]; status[id] = false;
get_pcvar_string(g_CvarsData[MAIN_ADMIN_FLAG], sFlag, charsmax(sFlag));
get_flags(flags, sFlags, charsmax(sFlags));
if(contain(sFlags, sFlag) != -1) status[id] = true;
return status[id];
}

stock admin(id)
{
new sFlags[32], sFlag[ 5 ], flags = get_user_flags(id), status[33]; status[id] = false;
get_pcvar_string(g_CvarsData[ADMIN_FLAG], sFlag, charsmax(sFlag));
get_flags(flags, sFlags, charsmax(sFlags));
if(contain(sFlags, sFlag) != -1) status[id] = true;
return status[id];
}

stock vip(id)
{
new sFlags[32], sFlag[ 5 ], flags = get_user_flags(id), status[33]; status[id] = false;
get_pcvar_string(g_CvarsData[VIP_FLAG], sFlag, charsmax(sFlag));
get_flags(flags, sFlags, charsmax(sFlags));
if(contain(sFlags, sFlag) != -1) status[id] = true;
return status[id];
}
stock 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 ) ? 1 : 0;
}
return 0;
}

stock ColorChat(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
format(msg, sizeof(msg), "%s", msg)
replace_all(msg, 190, "!g", "^4") // Green Color
replace_all(msg, 190, "!y", "^1") // Default Color
replace_all(msg, 190, "!t", "^3") // Team Color

if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя VenigreT
сообщение 22.2.2018, 16:06
Сообщение #9
Стаж: 8 лет 6 месяцев

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

Я всего лишь попросил о помощи...
Если не писать в лс, то куда? На тапочек?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wypukt
сообщение 22.2.2018, 16:09
Сообщение #10
Стаж: 11 лет

Сообщений: 268
Благодарностей: 6
Полезность: < 0

neverminde, зачем тут таск ? Кто так строит код, ничего что имея все эти флаги, будут 3 разных звука одновременно ?

VenigreT, не задавай тупых вопросов, а тем более не пытайся умничать когда в голове дыра. Ответ прост - ждать ответа в теме, а не строчить в лс люядм, потому что ты важный кхер не можешь ждать, тебе надо все и сразу, ты же у нас особенный. Все покорно ждут, а ты не такой, у тебя пукан бомбит когда тебе не отвечают быстро, надо построчить людям в лс...
Настолько лицемерен, что еще и пытаешься тут оправдываться будто это я тут не прав.

Отредактировал: wypukt, - 22.2.2018, 16:13
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя neverminde
сообщение 22.2.2018, 16:14
Сообщение #11


Стаж: 13 лет

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

Цитата(wypukt @ 22.2.2018, 17:09) *
neverminde, зачем тут таск ? Кто так строит код, ничего что имея все эти флаги, будут 3 разных звука одновременно ?

Разве админ/vip, который заходит на сервер, услышит звук, пока сам находится в стадии putinserver? Если память не изменяет, то в этот момент бесполезно что-то клиенту отправлять.
У меня на сервере флаги не пересекаются. Одновременных звуков нет.
Ну и тут вроде первоклассный код не заказывали.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя wypukt
сообщение 22.2.2018, 16:20
Сообщение #12
Стаж: 11 лет

Сообщений: 268
Благодарностей: 6
Полезность: < 0

neverminde, а зачем ему слышать свой заход? Такие плагины ставят для оповещения игроков что админ/вип заходит на сервак, я точно не помню услышит или нет, не задавался никогда такой целью. Если отправлять мр3 вполне может быть. Вспомни моменты когда бывало коннектишся к серваку и слышишь разные звуки с сервака. В любом случае для данного плагина это не уместно, ну и однозначно, если пишешь код черещ "if if if" - ставь ретурны.
Флаги в любом случае пересекаются, админ и вип всегда разные флаги на всех серверах. ТЗ написал приоритет для проигрывания звука, а значит нужно писать или с ретурнами или через if/else, т.к. он тут же напишет что звуки не правильно работают.
Бесполезно по-моему если использовать client_connected, но это не точно - надо тестировать.

Отредактировал: wypukt, - 22.2.2018, 16:23
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: