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

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

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

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

Блок сообщений о режиме спектра и упавшей бомбе

, Не HudTextArgs сообщения
Статус пользователя Yaroslav
сообщение 16.8.2013, 0:10
Сообщение #1


Стаж: 12 лет

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

Для блокировки отсылки клиенту на стороне сервера большинства раздражающих HudTextArgs хинт-сообщений я нашел решение в виде данного плагина:
Скрытый текст

Есть еще два вида хинт-сообщений:
1. "Spec_Duck" "Нажмите ПРИСЕСТЬ для меню наблюдателя"
2. you have the bomb (У вас бомба, найдите плант ляляля)

Можно ли их заблокировать server-side?

Заранее благодарен за ответ.

Скрипт блока HudTextArgs хинтов прилагаю:

Скрытый текст
Код:

#include <amxmodx>
#include <fakemeta>

#define PLUGIN "HudTextArgs Blocker"
#define AUTHOR "joaquimandrade"
#define VERSION "1.1"

const NextHudTextArgsOffset = 198 // ConnorMcLeod

const HintMaxLen = 38

new Hints[][HintMaxLen] =
{
"hint_win_round_by_killing_enemy",
"hint_press_buy_to_purchase",
"hint_spotted_an_enemy",
"hint_use_nightvision",
"hint_lost_money",
"hint_removed_for_next_hostage_killed",
"hint_careful_around_hostages",
"hint_careful_around_teammates",
"hint_reward_for_killing_vip",
"hint_win_round_by_killing_enemy",
"hint_try_not_to_injure_teammates",
"hint_you_are_in_targetzone",
"hint_hostage_rescue_zone",
"hint_terrorist_escape_zone",
"hint_ct_vip_zone",
"hint_terrorist_vip_zone",
"hint_cannot_play_because_tk",
"hint_use_hostage_to_stop_him",
"hint_lead_hostage_to_rescue_point",
"hint_you_have_the_bomb",
"hint_you_are_the_vip",
"hint_out_of_ammo",
"hint_spotted_a_friend",
"hint_spotted_an_enemy",
"hint_prevent_hostage_rescue",
"hint_rescue_the_hostages",
"hint_press_use_so_hostage_will_follow"
}

new HintsDefaultStatus[sizeof Hints] =
{
1,1,1,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0
}

new Trie:HintsStatus

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_message(get_user_msgid("HudTextArgs"),"hudTextArgs")
}

public plugin_cfg()
{
HintsStatus = TrieCreate()

for(new i=0, statusString[2]; i<sizeof Hints; i++)
{
statusString[0] = HintsDefaultStatus[i] + 48

if(get_pcvar_num(register_cvar(Hints[i],statusString)))
TrieSetCell(HintsStatus,Hints[i][5],true)
}
}

public hudTextArgs(msgid, msgDest, msgEnt)
{
static hint[HintMaxLen + 1]
get_msg_arg_string(1,hint,charsmax(hint))

if(TrieKeyExists(HintsStatus,hint[6]))
{
set_pdata_float(msgEnt,NextHudTextArgsOffset,0.0)
return PLUGIN_HANDLED
}

return PLUGIN_CONTINUE
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Yaroslav
сообщение 16.8.2013, 17:26
Сообщение #2


Стаж: 12 лет

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

Я знаю, что вы знаете :) Какой это тип сообщений и как объявлены эти хинты подскажите пожалуйста :)

i
Уведомление:
Запрещается поднимать тему. А именно создание сообщение не несущее в себе смысловой нагрузки, например: "ап!" или "помогите".


Проинформирую

Отредактировал: insamez, - 16.8.2013, 17:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 16.8.2013, 17:49
Сообщение #3


Стаж: 14 лет

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

Они лежат в cstrike\resource\cstrike_english.txt

"Cstrike_TitlesTXT_Spec_Duck" "Press DUCK for Spectator Menu"

То, что он блочит, выглядит так "Cstrike_TitlesTXT_Hint_use_nightvision"
Попробовал в плагин добавить Spec_Duck, но не заладилось.

Отредактировал: gudaus, - 16.8.2013, 17:52
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
cs-portal
сообщение 16.8.2013, 17:50
Сообщение #4
Стаж: 16 лет

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

гм открыл америку. по крайней мере 3 года валяется у меня на диске.
в дллке сервера надо блокануть. разве что без плагинов.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 16.8.2013, 17:53
Сообщение #5
Стаж: 14 лет
Город: Moscow

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

Выясните сами, можно ли блокировать)
Поставьте Message Logging, настройте захват командой amx_msglog start HudTextArgs, зайдите на сервер, получите hint, проанализируйте лог. Если ничего не всплывёт - можно пологгировать все месседжи - amx_msglog start. Метод тыка xD
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Yaroslav
сообщение 16.8.2013, 18:01
Сообщение #6


Стаж: 12 лет

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

Цитата(Safety1st @ 16.8.2013, 19:53) *
Выясните сами, можно ли блокировать)
Поставьте Message Logging, настройте захват командой amx_msglog start HudTextArgs, зайдите на сервер, получите hint, проанализируйте лог. Если ничего не всплывёт - можно пологгировать все месседжи - amx_msglog start. Метод тыка xD

Проблема только в том, что это не HudTextArgs сообщение, как ответили на оленях и в поиске его объявления как HudTextArgs нет смысла, поэтому у gudaus'а и не получилось его блокануть средствами плагина :)
Оно видимо блочится на уровне библиотеки, вот и спрашивал, как эти сообщения объявляются, чтоб их блокануть костылем орфея)
Цитата
Originally Posted by joaquimandrade:
That one is not blocked because is not an "hint".


P.S. insamez sry about it, впредь буду внимательнее :)

Отредактировал: Yaroslav, - 16.8.2013, 18:11
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 16.8.2013, 18:13
Сообщение #7
Стаж: 14 лет
Город: Moscow

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

Вполне возможно, что это client-side. joaquimandrade не хочет сообщить, что же это? ;)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя gudaus
сообщение 16.8.2013, 20:10
Сообщение #8


Стаж: 14 лет

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

В инете нашёл, что это client-side. Но за достоверность не ручаюсь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Yaroslav
сообщение 16.8.2013, 21:41
Сообщение #9


Стаж: 12 лет

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

Цитата(gudaus @ 16.8.2013, 22:10) *
В инете нашёл, что это client-side. Но за достоверность не ручаюсь.

Я так про сообщение о покупке думал, этого рода мусорные хинты тоже, как-будто клиентские.
Сейчас обновление для сервера доделаю и поковыряю, а с ним, чувствую, не только этот мусор придется блокировать.

Цитата(Safety1st @ 16.8.2013, 20:13) *
joaquimandrade не хочет сообщить, что же это? ;)

Мне кажется, он уже на оленях года 3 ничего не хочет - последние сообщения от 2010 г. :))

Ковырял-ковырял и наковырял. Плагин в 1 посте блокирует конкретные хинты.
Данный плагин блочит все HudTextArgs сообщения на сервере. (альтернативный вариант):
Скрытый текст
Код:

#include <amxmodx>

public plugin_init()
{
register_plugin("Block", "Hud", "TextArgs")
set_msg_block(get_user_msgid("HudTextArgs"), BLOCK_SET)
}


На счет хинта "you have the bomb (У вас бомба, найдите плант ляляля)" я ошибся, он блокируется.
Вопрос блокировки остается открытым только для "мусорного" хинта:

"Spec_Duck" "Нажмите ПРИСЕСТЬ для меню наблюдателя"

Если найдется человек, способный помочь решить данную проблему, уделив её решению 15 минут своего времени, я полагаю, коммьюнити будет ему признательно.

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