Иконка микрофона над головой

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
264
Реакции
80
Помог
1 раз(а)
Как можно скрыть иконку микрофона, над головой?
Например вот так, скрывает у ботов. (скрывает полностью радио)
Код:
set_msg_block(get_user_msgid("BotVoice"), BLOCK_SET)

Пробовал вот так (у игроков не скрывает)
Код:
set_msg_block(get_user_msgid("VoiceMask"), BLOCK_SET)

Еще вариант (не работает)
Код:
#include <amxmodx>
#include <amxmisc>

new g_msg_bot_voice
new g_maxplayers

public plugin_init()
{
register_message(get_user_msgid("VoiceMask"), "message_voice_mask")

g_msg_bot_voice = get_user_msgid("BotVoice")
g_maxplayers = get_maxplayers()
}
public message_voice_mask(msgid, dest, id) // Не уверен для кого вызывается...
{
static team; team = get_user_team(id)
static bitsumm; bitsumm = get_msg_arg_int(1)
static i; i = 0

while(++i <= g_maxplayers)
{
if(!(bitsumm & i)) continue
if(get_user_team(i) != team) continue

message_begin(MSG_ONE, g_msg_bot_voice, _, i)
write_byte(0)
write_byte(id)
message_end()
}
}
 
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)
скрыть иконку микрофона, над головой?
есть код, который скрывает спрайт radio.spr над готовой (фикс бага) на AM. и, ам жёстко прописано, что он ловит этот спрайт. думаю, вы сможете отловить и voice.spr

Primm так же заинтересован в этом вопросе. И, почему-то пишет в тему ReGameDLL. Не надо так.
Не вижу смысла вносить в GameDLL код блокировки этого спрайта. А, как плагин-дополнение - пожалуйста.

Это код на блокировку немного другого спрайта, который тоже над головой появляется.
Код:

#include <amxmodx>

#pragma semicolon 1

new PLUGIN[] = "Remove Radio Sprite";
new AUTHOR[] = "KliPPy";
new VERSION[] = "1.0.0";

new g_iModelIndexRadio;

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

register_message(SVC_TEMPENTITY, "Msg_SVC_TempEntity");
}

public plugin_precache() {
// This won't precache the model(sprite) twice, it will return
// the ID of an already precached model
g_iModelIndexRadio = precache_model("sprites/radio.spr");
}

public Msg_SVC_TempEntity(iMsgId, iDest, id) {
if(get_msg_arg_int(1) == TE_PLAYERATTACHMENT) {
if(get_msg_arg_int(4) == g_iModelIndexRadio) {
return PLUGIN_HANDLED;
}
}

return PLUGIN_CONTINUE;
}


А, дальше сами пробуйте найти решение :derisive:
 
Сообщения
47
Реакции
12
Помог
1 раз(а)
Неее, программирование не моё,я нуб. Лучше деньгами!)))
 
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)
Primm, ты лучше помоги REVO , тестами, или поиском чего либо. Объединяйтесь, во имя достижения цели.
 
  • Нравится
Реакции: REVO
Сообщения
56
Реакции
46
Помог
1 раз(а)
Один из самых нужных фиксов будет. В игре часто палят тебя, по иконке, когда в микрофон инфу даешь.
 
  • Нравится
Реакции: REVO
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
kaldun89, как вариант, можно поставить общение через микро только для своих. В ReGameDLL есть квар для настройки. Таким образом противники не запалят спрайт микро.
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Можно попробовать модулем Ultimate Unprecacher заблокировать спрайт иконки микрофона.
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
voiceicon.spr valve\sprites Теперь разобраться как его заблокировать, и возможно ли это!
 
Сообщения
1,032
Реакции
828
Помог
10 раз(а)
REVO, вам же код дали выше, кажется, замените название спрайта в нем.
 
Сообщения
264
Реакции
80
Помог
1 раз(а)
Javekson, Я проверял, не работает!
Код:
g_iModelIndexRadio = precache_model("sprites/voiceicon.spr");
 
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)
REVO, посмотри лог, возможно единственным верным решением для иконки голоса будет вариант от ALIK

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

public plugin_natives() {
register_forward(FM_PrecacheSound, "fw_precache_Sound");
register_forward(FM_PrecacheModel, "fw_precache_Model");
register_forward(FM_PrecacheGeneric, "fw_precache_Generic");
register_forward(FM_PrecacheEvent, "fw_precache_Event");
}

public fw_precache_Sound(const szFile[]) log_amx("SOUND:'%s'" ,szFile);
public fw_precache_Model(const szFile[]) log_amx("MODEL:'%s'" ,szFile);
public fw_precache_Generic(const szFile[]) log_amx("GENERIC:'%s'" ,szFile);
public fw_precache_Event(const szFile[]) log_amx("EVENT:'%s'" ,szFile);



new g_iModelIndex_Radio, g_iModelIndex_VoiceIcon;

public plugin_init() {
register_message(SVC_TEMPENTITY, "Msg_SVC_TempEntity");

log_amx("Index_Radio='%i'", g_iModelIndex_Radio);
log_amx("Index_VoiceIcon='%i'", g_iModelIndex_VoiceIcon);
}

public plugin_precache() {
// This won't precache the model(sprite) twice, it will return
// the ID of an already precached model
g_iModelIndex_Radio = precache_model("sprites/radio.spr");
g_iModelIndex_VoiceIcon = precache_model("sprites/voiceicon.spr");
}

public Msg_SVC_TempEntity(iMsgId, iDest, id) {
if(get_msg_arg_int(1) == TE_PLAYERATTACHMENT) {
if(get_msg_arg_int(4) == g_iModelIndex_Radio || get_msg_arg_int(4) == g_iModelIndex_VoiceIcon) {

log_amx("===========BLOCKED. MsgId='%i', EntityId='%i'", get_msg_arg_int(1), get_msg_arg_int(4));
return PLUGIN_HANDLED;
}
}

return PLUGIN_CONTINUE;
}

17 Ноя 2017
ясно...
1) https://github.com/s1lentq/ReGameDL...1/regamedll/game_shared/voice_gamemgr.cpp#L52

2) https://github.com/s1lentq/ReGameDL...1656e5b118874/regamedll/dlls/weapons.cpp#L360
 
  • Нравится
Реакции: REVO
Сообщения
2,751
Реакции
3,017
Помог
61 раз(а)
Javekson, клиент похоже рисует эту иконку, по наличию голоса.
 
Сообщения
2,143
Реакции
1,225
Помог
44 раз(а)
wopox1337, блокировка с сервера ничего не даст. Как ты уже написал, это на клиенте рисуется.
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
Мб можно как-то сымитировать на сервере отключенный микрофон у игрока? аля, защитная отправка:D
 
Сообщения
216
Реакции
1,304
Помог
5 раз(а)
d3m37r4, сделать это можно токо на клиенте.
 
Сообщения
28
Реакции
18
Прошу прощения, что если не блокировать сообщение, а заменить на прозрачный спрайт? Есть примеры данного способа?
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу