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

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

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

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

4 страниц V  « 2 3 4

Voices Management

, Разделение голосового чата
Статус пользователя Bloo
сообщение 19.2.2015, 8:10
Сообщение #41


Стаж: 12 лет

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

ozmosis, точно помню, была тема где выкладывали несколько вариантов реализации. Поищите, примерного названия темы не помню к сожалению.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя ozmosis
сообщение 19.2.2015, 12:54
Сообщение #42


Стаж: 12 лет

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

Нашел вариант, не проверял (на работе, не знаю когда доберусь..)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 19.2.2015, 13:01
Сообщение #43


Стаж: 12 лет

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

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


Стаж: 12 лет

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

Цитата(Bloo @ 19.2.2015, 16:01) *

Идентичный, видимо оттуда брал. Спасибо, не сказал бы - не искал бы)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krolik144
сообщение 6.11.2015, 13:08
Сообщение #45


Стаж: 11 лет

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

Какую версию лучше установить из шапки?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krolik144
сообщение 6.11.2015, 14:35
Сообщение #46


Стаж: 11 лет

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

Alias name is invalid - после установки, в консоле пишет.

amxx
[ 1] opengl detector 0.8.8ob kanagava opengl32.amxx running
[ 2] fb_forwards 0.1.4 Kanagava & Realu fb_forwards.amx running
[ 3] FreshBan 1.1.8a kanagava fresh_bans.amxx running
[ 4] admin_loader 0.3.33 kanagava admin_loader.am running
[ 5] DopBan 2.8.2b kanagava dop_ban.amxx running
[ 6] AIM detector 0.9.4b kanagava aim_detector.am running
[ 7] SH_detector 2.5.2d kanagava sh_check.amxx running
[ 8] Menus Front-End 15.07.15 AMXX Dev Team & amxmodmenu_rbs. running
[ 9] Maps Menu 15.07.22 AMXX Dev Team & mapsmenu_rbs.am running
[ 10] BuyMenu RBS 15.07.15 SKAJIbnEJIb buymenu_rbs.amx running
[ 11] Restrict Weapons 15.07.15 AMXX Dev Team & restmenu_rbs.am running
[ 12] MapChooser RBS 15.07.15 SKAJIbnEJIb & UF mapchooser_rbs. running
[ 13] TimeLeft 15.07.15 SKAJIbnEJIb & AM timeleft.amxx running
[ 14] NextMap 15.07.15 SKAJIbnEJIb & AM nextmap.amxx running
[ 15] CsStats MySQL 15.07.15 SKAJIbnEJIb csstats_mysql.a running
[ 16] Army Ranks Ultimate 15.07.24 SKAJIbnEJIb army_ranks_ulti running
[ 17] Jobs RBS 15.07.24 SKAJIbnEJIb jobs_rbs.amxx running
[ 18] StatsX RBS 15.07.24 SKAJIbnEJIb & AM statsx_rbs.amxx running
[ 19] Stats Configuration 15.07.15 SKAJIbnEJIb & AM statscfg_rbs.am running
[ 20] CsStats Editor 15.07.15 SKAJIbnEJIb csstats_editor. running
[ 21] Voices Management 1.0.2 ConnorMcLeod Voices_Manageme running
[ 22] Ultimate Gag 15.07.15 SKAJIbnEJIb ultimate_gag.am running
[ 23] Chat Controller 15.09.24 SKAJIbnEJIb chat_controller running
[ 24] Chat RBS 15.09.24 SKAJIbnEJIb chat_rbs.amxx running
[ 25] VIP RBS 15.07.18 SKAJIbnEJIb vip_rbs.amxx running
[ 26] AFK Kicker RBS 15.07.15 SKAJIbnEJIb afkkicker_rbs.a running
[ 27] Damager RBS 15.07.15 SKAJIbnEJIb damager_rbs.amx running
[ 28] Ad From Server 15.07.15 SKAJIbnEJIb ad_from_server. running
[ 29] C4 Real Timer 15.07.15 Sanlerus c4_realtimer.am running
[ 30] Players Menu 15.07.15 AMXX Dev Team & admincmd_rbs.am running
[ 31] Admin Chat 1.8.2 AMXX Dev Team adminchat.amxx running
[ 32] Commands Menu 1.8.2 AMXX Dev Team cmdmenu.amxx running
[ 33] Parachute 1.0 maeStro parachute.amxx running
[ 34] AutoDemo 1.0 neygomon amx_demorec.amx running
[ 35] Auto Restart 1.0.3 neygomon auto_rr.amxx running
[ 36] Map Spawns Editor 1.0.16 iG_os map_spawns_edit running
[ 37] Yet Another Voteban 1.52 AndrewZ/noskill yet_another_vot running
[ 38] Ping Control 1.4 neygomon Ping_Control.am running
[ 39] Reset Score 0.1 unnamed resetscore.amxx running


metamod
[ 1] AMX Mod X RUN - amxmodx_mm_i386. v1.8.2 ini Start ANY
[ 2] dproto_EF RUN - dproto_i386.so v0.9.391 ini Start Never
[ 3] VoiceTranscoder RUN - vtc.so v302 ini ANY ANY
[ 4] WHBlocker RUN - whblocker_mm_i38 v1.5.620 ini Chlvl ANY
[ 5] Cust. Flood Fix RUN - cf_fix_mm_i386.s v1.1 ini Start Never
[ 6] FullupdatePatch RUN - fullupd_patch_mm v1.2 ini Start Never
[ 7] FakeDetector RUN - fakedetector_mm_ v2.1.3 ini Start Never
[ 8] NetBufExtender RUN - nbex.so v1.0 ini ANY Never
[ 9] LocalizeBug Fix RUN - localizebugfix_m v2.4 ini Start Never
[10] Semiclip RUN - semiclip_mm_i386 v2.2 ini ANY ANY
[11] Fun RUN - fun_amxx_i386.so v1.8.2 pl1 ANY ANY
[12] CStrike RUN - cstrike_amxx_i38 v1.8.2 pl1 ANY ANY
[13] CSX RUN - csx_amxx_i386.so v1.8.2 pl1 ANY ANY
[14] MySQL RUN - mysql_amxx_i386. v1.8.2 pl1 ANY ANY
[15] Orpheu RUN - orpheu_amxx_i386 v2.6.3 pl1 ANY ANY
[16] FakeMeta RUN - fakemeta_amxx_i3 v1.8.2 pl1 ANY ANY
[17] okapi RUN - okapi_amxx_i386. v1.0 pl1 ANY ANY
[18] Ham Sandwich RUN - hamsandwich_amxx v1.8.2 pl1 ANY ANY
[19] Engine RUN - engine_amxx_i386 v1.8.2 pl1 ANY ANY


Отредактировал: Krolik144, - 6.11.2015, 14:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 8.11.2015, 10:23
Сообщение #47


Стаж: 12 лет

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

Krolik144, где пишет? Как пишет? У клиента? На сервере? Полностью строку скопируй.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя InventoR
сообщение 8.11.2015, 14:33
Сообщение #48
Стаж: 10 лет

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

Ребят, а можно кого-то попросить модернизировать данный плагин?
Есть мысль чтобы ввести define в котором задается при каком количестве живых человек в комманде он перестает слышать всех или мертвых.

Достали когда остается 1 чел и начинают разговаривать.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krolik144
сообщение 9.11.2015, 10:30
Сообщение #49


Стаж: 11 лет

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

Цитата(Bloo @ 8.11.2015, 1:18) *
Krolik144, где пишет? Как пишет? У клиента? На сервере? Полностью строку скопируй.

На сервере в консоле. Сама ошибка описана полностью.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 9.11.2015, 18:17
Сообщение #50


Стаж: 12 лет

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

Krolik144, версия какая?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krolik144
сообщение 10.11.2015, 8:25
Сообщение #51


Стаж: 11 лет

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

Цитата(Bloo @ 9.11.2015, 10:13) *
Krolik144, версия какая?

1.0.2
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 10.11.2015, 18:42
Сообщение #52


Стаж: 12 лет

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

Krolik144, с аленей брал с первого поста?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Krolik144
сообщение 11.11.2015, 11:50
Сообщение #53


Стаж: 11 лет

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

Цитата(Bloo @ 10.11.2015, 10:37) *
Krolik144, с аленей брал с первого поста?

Эту версию
Прикрепленные файлы:
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 11.11.2015, 17:48
Сообщение #54


Стаж: 12 лет

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

Krolik144, пробуй эту Voices Management (Пост #576875)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Canek099
сообщение 2.12.2015, 14:40
Сообщение #55
Стаж: 10 лет

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

Хочу что бы исходник плагина был настроен так:

живые СТ слышат Т
живые Т слышат СТ
мертвые СТ слышали живых и мертвых СТ, Т
мертвые Т слышали живых и мертвых Т, СТ


Отредактировал: Bloo, - 2.12.2015, 18:31
Причина: Выдано устное предупреждение!
Прикрепленные файлы:
Прикрепленный файл  voices_management.sma ( 13,11 килобайт ) Кол-во скачиваний: 17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 2.12.2015, 18:33
Сообщение #56


Стаж: 12 лет

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

Canek099, зачем интересно автор делал квары, наверное что бы можно было не трогая исходник нормально настроить плагин...
В этом сообщении и версия последняя (под 1.8.2/1.8.1) и настройки как тебе нужно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 3.12.2015, 6:53
Сообщение #57
Стаж: 12 лет

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

Цитата(Canek099 @ 2.12.2015, 22:36) *
Хочу что бы исходник плагина был настроен так:

Выдерни волосок и произнеси заклинание
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Profan
сообщение 9.1.2016, 19:16
Сообщение #58


Стаж: 10 лет
Город: Сочи

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

Чет не пойму, кто подскажет?
в server.cfg стоит sv_alltalk "1"
в amxx.cfg добавлены квары vm_alives "0" vm_deads "2"
но после смены карты проверяю квар vm_alives и его значение устанавливается на "1"
что может менять его?

юзаю
Voices Management 1.0.2 ConnorMcLeod
// Required admin access level
#define ADMIN_VOICE ADMIN_CHAT

// Delay before a connected player see the text announce
// #define ANNOUNCE_TASK_DELAY 30.0

// Comment this out if you don't want that a "no sound" player can hear admins using +adminvoice
// All other player settings are respected whatever this is commented or not.
#define SUPER_ADMIN_PRIORITY

/* ** END OF EDITABLE ** */

/* Changelog
*
* v1.0.2 (04/19/08)
* -few code corrections
* -updated player spawn detection
* -added HLTV & BOT checks
*
* v1.0.1 (03/31/08)
* -added colored chat
* -added chat command /vm that display voices settings
* -inform new players about /vm command
* -display adminlisten status when toggle_adminlisten command is used
* -added support for amx_show_activity cvar on amx_(un)mute command
*
* v1.0.0 (03/26/08)
* First release
*
*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define VERSION "1.0.2"

#define MAX_PLAYERS 32

#define OFFSET_TEAM 114

new g_iClientSettings[MAX_PLAYERS+1][2]
new bool:g_bPlayerNonSpawnEvent[MAX_PLAYERS+1]
new g_iFwFmClientCommandPost
new bool:g_bAlive[MAX_PLAYERS+1]

new g_iAdminVoice
new bool:g_bAdmin[MAX_PLAYERS+1]
new bool:g_bInterAdminVoice[MAX_PLAYERS+1]
new bool:g_bAdminListen[MAX_PLAYERS+1]

new bool:g_bMuted[MAX_PLAYERS+1]
new g_szClientsIp[MAX_PLAYERS+1][22]
new Array:g_aMutedPlayersIps

new g_iMaxPlayers
new g_msgidSayText
new g_pcvarAlivesHear, g_pcvarDeadsHear
// new g_amx_show_activity

public plugin_init()
{
register_plugin("Voices Management", VERSION, "ConnorMcLeod")
register_dictionary("voicesmanagement.txt")
register_dictionary("common.txt")

g_pcvarAlivesHear = register_cvar("vm_alives", "1") // 0:alive teamates , 1:alives , 2:all
g_pcvarDeadsHear = register_cvar("vm_deads", "2") // 0:dead teamates , 1:deads , 2:all

register_forward(FM_Voice_SetClientListening, "Forward_SetClientListening")
register_event("VoiceMask", "Event_VoiceMask", "b")

register_event("TextMsg", "Event_TextMsg_Restart", "a", "2=#Game_will_restart_in")
register_event("ResetHUD", "Event_ResetHUD", "b")
register_event("DeathMsg", "Event_DeathMsg", "a")

register_clcmd("+adminvoice", "AdminCommand_VoiceOn")
register_clcmd("-adminvoice", "AdminCommand_VoiceOff")

register_clcmd("+interadminvoice", "AdminCommand_InterAdminOn")
register_clcmd("-interadminvoice", "AdminCommand_InterAdminOff")

register_clcmd("+adminlisten", "AdminCommand_ListenOn")
register_clcmd("-adminlisten", "AdminCommand_ListenOff")
register_clcmd("toggle_adminlisten", "AdminCommand_ListenToggle")

// register_concmd("amx_mute", "AdminCommand_Mute", ADMIN_VOICE, "<name/#userid>")
// register_concmd("amx_unmute", "AdminCommand_UnMute", ADMIN_VOICE, "<name/#userid>")

register_clcmd("say /vm", "ClientCommand_SayStatus")
register_clcmd("say_team /vm", "ClientCommand_SayStatus")

register_clcmd("fullupdate", "ClientCommand_fullupdate")
}

public plugin_cfg()
{
server_cmd("sv_alltalk 1;alias sv_alltalk")
server_exec()
g_iMaxPlayers = get_maxplayers()
g_aMutedPlayersIps = ArrayCreate(22)
g_msgidSayText = get_user_msgid("SayText")
// g_amx_show_activity = get_cvar_pointer("amx_show_activity")
}

public ClientCommand_SayStatus(id)
{
new iDeads = get_pcvar_num(g_pcvarDeadsHear),
iAlives = get_pcvar_num(g_pcvarAlivesHear)

new szDeadsStatus[18], szAlivesStatus[19]

switch( iAlives )
{
case 0:szAlivesStatus = "VM_ALIVES_TEAMATES"
case 1:szAlivesStatus = "VM_ALIVES"
case 2:szAlivesStatus = "VM_ALL"
}

switch( iDeads )
{
case 0:szDeadsStatus = "VM_DEADS_TEAMATES"
case 1:szDeadsStatus = "VM_DEADS"
case 2:szDeadsStatus = "VM_ALL"
}

col_mess(id, id, "%L", id, "VM_ALIVES_STATUS", id, szAlivesStatus)
col_mess(id, id, "%L", id, "VM_DEADS_STATUS", id, szDeadsStatus)
}

/*
public taskAnnounce(id)
{
if( is_user_connected(id) )
{
col_mess(id, id, "%L", id, "VM_ANNOUCE")
}
}
*/

public ClientCommand_fullupdate(id)
{
g_bPlayerNonSpawnEvent[id] = true
static const szFwFmClientCommandPost[] = "fwFmClientCommandPost"
g_iFwFmClientCommandPost = register_forward(FM_ClientCommand, szFwFmClientCommandPost, 1)
return PLUGIN_CONTINUE
}

public fwFmClientCommandPost(iPlayerId) {
unregister_forward(FM_ClientCommand, g_iFwFmClientCommandPost, 1)
g_bPlayerNonSpawnEvent[iPlayerId] = false
return FMRES_HANDLED
}

public Event_TextMsg_Restart()
{
for(new id=1; id <= g_iMaxPlayers; ++id)
{
if(g_bAlive[id])
{
g_bPlayerNonSpawnEvent[id] = true
}
}
}

public Event_ResetHUD(id)
{
if( !is_user_alive(id) )
{
return
}

if(g_bPlayerNonSpawnEvent[id])
{
g_bPlayerNonSpawnEvent[id] = false
return
}
g_bAlive[id] = true
}

public client_authorized(id)
{
g_bAdmin[id] = bool:(get_user_flags(id) & ADMIN_VOICE)
}

public client_putinserver(id)
{
g_bAlive[id] = false
g_bAdminListen[id] = false
g_bInterAdminVoice[id] = false

if(is_user_bot(id) || is_user_hltv(id))
return

static szIp[22]
get_user_ip(id, szIp, 21)
g_szClientsIp[id] = szIp

static szTempIp[22], iArraySize
iArraySize = ArraySize(g_aMutedPlayersIps)
for(new i; i<iArraySize; i++)
{
ArrayGetString(g_aMutedPlayersIps, i, szTempIp, 21)
if( equal(szIp, szTempIp) )
{
ArrayDeleteItem(g_aMutedPlayersIps, i)
g_bMuted[id] = true
break
}
}

// set_task(ANNOUNCE_TASK_DELAY, "taskAnnounce", id)
}

public client_disconnect(id)
{
if(g_iAdminVoice == id)
{
g_iAdminVoice = 0
}
if(g_bMuted[id])
{
ArrayPushString(g_aMutedPlayersIps, g_szClientsIp[id])
g_bMuted[id] = false
}
}

public Event_DeathMsg()
{
g_bAlive[read_data(2)] = false
}

public Event_VoiceMask(id)
{
g_iClientSettings[id][0] = read_data(1)
g_iClientSettings[id][1] = read_data(2)
}

public Forward_SetClientListening(iReceiver, iSender, bool:bListen)
{
#if defined SUPER_ADMIN_PRIORITY
if(g_iAdminVoice)
{
if(g_iAdminVoice == iSender)
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false)
forward_return(FMV_CELL, false)
return FMRES_SUPERCEDE
}

if( !g_iClientSettings[iReceiver][0] || g_iClientSettings[iReceiver][1] & (1<<(iSender-1)) )
{
return FMRES_IGNORED
}
#else
if( !g_iClientSettings[iReceiver][0] || g_iClientSettings[iReceiver][1] & (1<<(iSender-1)) )
{
return FMRES_IGNORED
}

if(g_iAdminVoice)
{
if(g_iAdminVoice == iSender)
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false)
forward_return(FMV_CELL, false)
return FMRES_SUPERCEDE
}
#endif
if(g_bMuted[iSender])
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false)
forward_return(FMV_CELL, false)
return FMRES_SUPERCEDE
}

if(g_bInterAdminVoice[iSender])
{
if(g_bAdmin[iReceiver])
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
engfunc(EngFunc_SetClientListening, iReceiver, iSender, false)
forward_return(FMV_CELL, false)
return FMRES_SUPERCEDE
}

if(g_bAdminListen[iReceiver])
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}

if(g_bAlive[iReceiver])
{
switch(get_pcvar_num(g_pcvarAlivesHear))
{
case 0:
{
if( g_bAlive[iSender] && get_pdata_int(iReceiver, OFFSET_TEAM) == get_pdata_int(iSender, OFFSET_TEAM) )
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
}
case 1:
{
if( g_bAlive[iSender] )
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
}
case 2:
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
}
}
else
{
switch(get_pcvar_num(g_pcvarDeadsHear))
{
case 0:
{
if( !g_bAlive[iSender] && get_pdata_int(iReceiver, OFFSET_TEAM) == get_pdata_int(iSender, OFFSET_TEAM) )
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
}
case 1:
{
if( !g_bAlive[iSender] )
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
}
case 2:
{
engfunc(EngFunc_SetClientListening, iReceiver, iSender, true)
forward_return(FMV_CELL, true)
return FMRES_SUPERCEDE
}
}
}

engfunc(EngFunc_SetClientListening, iReceiver, iSender, false)
forward_return(FMV_CELL, false)
return FMRES_SUPERCEDE
}

public AdminCommand_ListenOn(id)
{
if( !g_bAdmin[id] )
return PLUGIN_HANDLED

g_bAdminListen[id] = true

return PLUGIN_HANDLED
}

public AdminCommand_ListenOff(id)
{
if( g_bAdminListen[id] )
{
g_bAdminListen[id] = false
}

return PLUGIN_HANDLED
}

public AdminCommand_ListenToggle(id)
{
if( !g_bAdmin[id] )
{
return PLUGIN_HANDLED
}

g_bAdminListen[id] = !g_bAdminListen[id]

col_mess(id, id, "%L", id, "VM_LISTEN_STATUS", g_bAdminListen[id] ? "ON" : "OFF")

return PLUGIN_HANDLED
}

public AdminCommand_VoiceOn(id)
{
if(!g_bAdmin[id])
{
return PLUGIN_HANDLED
}

if(g_iAdminVoice)
{
col_mess(id, id, "%L", id, "VM_ALREADY_INUSE")
return PLUGIN_HANDLED
}

g_iAdminVoice = id

new name[32]
pev(id, pev_netname, name, 31)

for(new player = 1; player <= g_iMaxPlayers; player++)
{
if( is_user_connected(player) && !is_user_hltv(player) && !is_user_bot(player) )
{
col_mess(player, id, "%L", player, "VM_ADMIN_TALK", name)
}
}

client_cmd(id, "+voicerecord")

return PLUGIN_HANDLED
}

public AdminCommand_VoiceOff(id)
{
if( !g_bAdmin[id] )
{
return PLUGIN_HANDLED
}

if(g_iAdminVoice != id)
{
client_cmd(id, "-voicerecord")
return PLUGIN_HANDLED
}

client_cmd(id, "-voicerecord")
g_iAdminVoice = 0
return PLUGIN_HANDLED
}

public AdminCommand_InterAdminOn(id)
{
if( !g_bAdmin[id] )
{
return PLUGIN_HANDLED
}

g_bInterAdminVoice[id] = true
client_cmd(id, "+voicerecord")

new name[32]
get_user_name(id, name, 31)
for(new i=1; i<=g_iMaxPlayers; i++)
{
if( !g_bAdmin[i] || !is_user_connected(i) )
{
continue
}
col_mess(i, id, "%L", i, "VM_INTER_START", name)
}

return PLUGIN_HANDLED
}

public AdminCommand_InterAdminOff(id)
{
if(!g_bInterAdminVoice[id])
return PLUGIN_HANDLED

g_bInterAdminVoice[id] = false
client_cmd(id, "-voicerecord")

new name[32]
get_user_name(id, name, 31)
for(new i=1; i<=g_iMaxPlayers; i++)
{
if( !g_bAdmin[i] || !is_user_connected(i) )
{
continue
}
col_mess(i, id, "%L", i, "VM_INTER_STOP", name)
}

return PLUGIN_HANDLED
}

/*
public AdminCommand_Mute(id, level, cid)
{
if( !cmd_access(id, level, cid, 2, true) )
{
return PLUGIN_HANDLED
}

new szPlayer[32]
read_argv(1, szPlayer, 31)
new iPlayer = cmd_target(id, szPlayer, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS)

if( !iPlayer )
{
return PLUGIN_HANDLED
}

if( g_bAdmin[iPlayer] )
{
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_MUTE_ADMIN")
return PLUGIN_HANDLED
}

if( g_bMuted[iPlayer] )
{
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_AR_MUTED")
return PLUGIN_HANDLED
}

g_bMuted[iPlayer] = true
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_MUTED")

if(g_amx_show_activity)
{
new name[32], name2[32]
get_user_name(id, name, 31)
get_user_name(iPlayer, name2, 31)
show_activity_col(id, name, name2, "VM_MUTE_ACTIVITY")
}
return PLUGIN_HANDLED
}

public AdminCommand_UnMute(id, level, cid)
{
if( !cmd_access(id, level, cid, 2, true) )
{
return PLUGIN_HANDLED
}

new szPlayer[32], iPlayer
read_argv(1, szPlayer, 31)
iPlayer = cmd_target(id, szPlayer, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_NO_BOTS)

if( !iPlayer )
{
return PLUGIN_HANDLED
}

if( !g_bMuted[iPlayer] )
{
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_NOT_MUTED")
return PLUGIN_HANDLED
}

g_bMuted[iPlayer] = false
client_print(id, print_console, "%L", id ? id : LANG_SERVER, "VM_UNMUTED")

if(g_amx_show_activity)
{
new name[32], name2[32]
get_user_name(id, name, 31)
get_user_name(iPlayer, name2, 31)

show_activity_col(id, name, name2, "VM_UNMUTE_ACTIVITY")
}

return PLUGIN_HANDLED
}
*/

col_mess(id, sender, string[], any:...)
{
static szMessage[128]
szMessage[0] = 0x01
vformat(szMessage[1], 127, string, 4)

replace_all(szMessage, 127, "!n", "^x01")
replace_all(szMessage, 127, "!t", "^x03")
replace_all(szMessage, 127, "!g", "^x04")

message_begin(MSG_ONE_UNRELIABLE, g_msgidSayText, _, id)
write_byte(sender)
write_string(szMessage)
message_end()
}

/*
show_activity_col(id, name[], name2[], ML_KEY[])
{
switch(get_pcvar_num(g_amx_show_activity))
{
case 5: // hide name only to admins, show nothing to normal users
{
for (new i=1; i<=g_iMaxPlayers; i++)
{
if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i))
{
if (is_user_admin(i))
{
col_mess(i, id, " ** !g[VM] !n%L: %L", i, "ADMIN", i, ML_KEY, name2)
}
}
}
}
case 4: // show name only to admins, show nothing to normal users
{
for (new i=1; i<=g_iMaxPlayers; i++)
{
if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i))
{
if (is_user_admin(i))
{
col_mess(i, id, " ** !g[VM] !n%L !t%s!n: %L", i, "ADMIN", name, i, ML_KEY, name2)
}
}
}
}
case 3: // show name only to admins, hide name from normal users
{
for (new i=1; i<=g_iMaxPlayers; i++)
{
if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i))
{
if (is_user_admin(i))
{
col_mess(i, id, " ** !g[VM] !n%L !t%s!n: %L", i, "ADMIN", name, i, ML_KEY, name2)
}
else
{
col_mess(i, id, " ** !g[VM] !n%L: %L", i, "ADMIN", i, ML_KEY, name2)
}
}
}
}
case 2: // show name to all
{
for (new i=1; i<=g_iMaxPlayers; i++)
{
if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i))
{
col_mess(i, id, " ** !g[VM] !n%L !t%s!n: %L", i, "ADMIN", name, i, ML_KEY, name2)
}
}
}
case 1: // hide name to all
{
for (new i=1; i<=g_iMaxPlayers; i++)
{
if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i))
{
col_mess(i, id, " ** !g[VM] !n%L: %L", i, "ADMIN", i, ML_KEY, name2)
}
}
}
}
}
*/


Отредактировал: Profan, - 9.1.2016, 19:17
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 9.1.2016, 19:20
Сообщение #59


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

Стаж: 12 лет

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

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

попробуй в исходнике поменять

g_pcvarAlivesHear = register_cvar("vm_alives", "1") // 0:alive teamates , 1:alives , 2:all
g_pcvarDeadsHear = register_cvar("vm_deads", "2") // 0:dead teamates , 1:deads , 2:all
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя iphone532776
сообщение 9.1.2016, 19:29
Сообщение #60


Стаж: 11 лет

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

живые игроки слышат свою команду и противоположную. может кто-то сделать что бы живые игроки слышали только свою команду? тоесть ct слышат только ct и tt слышат только tt.
Буду очень благодарен smile.gif

voice_manager
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#define PLUGIN "Voice Manager"
#define VERSION "1.3 final"
#define AUTHOR "Stimul"

#define get_bit(%1,%2) (%1 & (1 << (%2 & 31)))
#define set_bit(%1,%2) (%1 |= (1 << (%2 & 31)))
#define reset_bit(%1,%2) (%1 &= ~(1 << (%2 & 31)))

new g_bIsConnected;
new g_bIsAlive;

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

RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", true);
RegisterHam(Ham_Killed, "player", "fw_PlayerKilled_Post", true);

register_forward(FM_Voice_SetClientListening, "fw_Voice_SetClientListening");
}

public fw_PlayerSpawn_Post(id)
if(is_user_alive(id))
set_bit(g_bIsAlive, id);

public fw_PlayerKilled_Post(id)
set_task(5.0, "DelaySetDeath", id);

public DelaySetDeath(id)
{
if(!is_user_alive(id))
{
reset_bit(g_bIsAlive, id);
ChatColor(id, "^3[VM] ^4Время для инфы истекло.");
}
}

public client_putinserver(id)
set_bit(g_bIsConnected, id);

public client_disconnect(id)
{
reset_bit(g_bIsConnected, id);
reset_bit(g_bIsAlive, id);
}

public fw_Voice_SetClientListening(receiver, sender, listen)
{
if(get_bit(g_bIsConnected, receiver) && get_bit(g_bIsConnected, sender) && receiver != sender)
{
if((get_bit(g_bIsAlive, receiver) && !get_bit(g_bIsAlive, sender)) || (!get_bit(g_bIsAlive, receiver) && get_bit(g_bIsAlive, sender)))
{
engfunc(EngFunc_SetClientListening, receiver, sender, false);
return FMRES_SUPERCEDE;
}
}

return FMRES_IGNORED;
}

stock ChatColor(const id, const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)

replace_all(msg, 190, "!g", "^4")
replace_all(msg, 190, "!y", "^1")
replace_all(msg, 190, "!t", "^3")

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();
}
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
4 страниц V  « 2 3 4
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: