
Описание: Как же вставить голос в jbextreme новый способ для CS 1.6 JB
Всем привет, бродил я по интернету в поисках вопроса как встроить голоса в мод jbextreme но все попытки встроить голос в мод кончались неудачей и я подправил кое-что вроде получилось)
1 Регистрируем команду и ставим любую функцию
вот пример:
Спойлер
register_clcmd(“say /voice”, “cmd_simon_micr”)
2 Регистрируем глобал переменную : new g_PlayerVoice
3 Создаем функцию которую мы указали в команде в моем случае public cmd_simon_micr(id)
4 В него вставляем следующее:
Спойлер
{
if (g_Simon == id || is_user_admin(id))
{
menu_players(id, CS_TEAM_T, 0, 1, “voice_enable_select”, “%L”, LANG_SERVER, “MENU_VOICE”)
}
}
тут стоит проверка на саймона и админа,следующая функция и название меню выдачи голоса которое вы можете поменять : заходим в jbextreme.txt пишем туда MENU_VOICE = “Название меню”
5 Создаем само меню):
Спойлер
public voice_enable_select(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}
static dst[32], data[5], player, access, callback
menu_item_getinfo(menu, item, access, data, charsmax(data), dst, charsmax(dst), callback)
player = str_to_num(data)
enable_player_voice(id, player)
return PLUGIN_HANDLED
}
6 И самое главное функцию самой выдачи и вывода сообщения о том кто и кому выдал голос:
Спойлер
public enable_player_voice(id, player)
{
static src[32], dst[32]
get_user_name(player, dst, charsmax(dst))
if (!get_bit(g_PlayerVoice, player))
{
set_bit(g_PlayerVoice, player)
if(0
{
get_user_name(id, src, charsmax(src))
player_hudmessage(0, 6, 3.0, {010, 010, 250}, “%L”, LANG_SERVER, “VOICEENABLED”, src, dst)
}
}
else
{
clear_bit(g_PlayerVoice, player)
if(0
{
get_user_name(id, src, charsmax(src))
player_hudmessage(0, 6, 3.0, {250, 010, 250}, “%L”, LANG_SERVER, “VOICEDISABLED”, src, dst)
}
}
7 Что бы показывало кто и кому выдал голос пишем в jbextreme.txt : VOICEDISABLED = %s отобрал голос у %
VOICEENABLED = %s разрешил говорить %s
Кое-что забыл важное:
Ищем паблик public voice_listening(receiver, sender, bool:listen)
Спускаемся до
Спойлер
if(sender == g_Simon)
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}
После него вставляем это:
Спойлер
if(get_bit(g_PlayerVoice, sender))
{
engfunc(EngFunc_SetClientListening, receiver, sender, true)
return FMRES_SUPERCEDE
}
Да после этой проверки должно стоять вот это:listen = true
Вот и все) Компилим и профит)
100% способ? Да ладно? Если так, то ты его сделай и скомпилируй. И будет ошибка на "g_PlayerVoice". Сто процентный бле…
Какая ошибка, он же написал:
А ну ок, хоть он сказал. А то в других статьях нету такого.
ps. не увидел.
Legalize, в будущем прочитайте полностью тему а потом уже коментируйте
комментируем) я хоть кому-то помог? зря писал значит(
чувак кинь мне мод написаный уже с голосом в лс
ModZona55.sma(750) : error 017: undefined symbol "fm_set_user_rendering"
ModZona55.sma(751) : error 017: undefined symbol "fm_set_user_rendering"
ModZona55.sma(1946) : error 029: invalid expression, assumed zero
ModZona55.sma(1946) : error 017: undefined symbol "voice_enable_select"
ModZona55.sma(1946) : error 017: undefined symbol "item"
ModZona55.sma(1946) : fatal error 107: too many error messages on one line