Скрытие радара

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
673
Реакции
242
Помог
11 раз(а)
Все же не вскроет, но обновляется местоположение не будет
Код:
const MsgId_RadarMsg = 112;

register_message(MsgId_RadarMsg, "message_radar");

public message_radar() return PLUGIN_HANDLED;
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
Limbooc, это тут не уместно.

P.S. Наиболее адекватное решение применительно всяких модовых серверов я описал тут. Лезть дальше - можно получить проблем больше.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
По примеру Xelson вот работает. Для адекватного отображения таба, нужно ловить TAB и возвращать адекватный флаг.
Код:
#include <amxmodx>

public plugin_init() {
    register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib");
}

public MessageScoreAttrib() {
    const PLAYER_DEAD = 1 << 0;
    set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2) | PLAYER_DEAD);
}
 
Сообщения
134
Реакции
463
Помог
2 раз(а)
Один из способов словить таб
Код:
#include <amxmodx>
#include <fakemeta>

public plugin_init()
{
    register_forward(FM_CmdStart, "CmdStart");
}

public CmdStart(id, uc_handle)
{
    if (get_uc(uc_handle, UC_Buttons) & IN_SCORE && ~pev(id, pev_oldbuttons) & IN_SCORE)
        client_print(0, print_chat, "TAB OPEN, 1 TICK");
}
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Тут можно попробовать подменить m_iPlayerNum
это просчёт серверного id игрока на клиенте. Это точно сломает еще больше. А pfnGetPlayerInfo так вообще клиентская функция, не понятно как это дело подменять.
Nordic Warrior, ну в общем вот, я оказался прав :)
d3m37r4, проблема слоухакинга, при котором невозможно откатить изменения в некоторых случаях, на много значительнее, чем фейковая надпись в табе. Я лучше один раз не пойму что такое в таблице счёта, чем буду вечно drawradar писать в консоль
 
Сообщения
271
Реакции
348
Помог
15 раз(а)
В табе обновление происходит не так часто, поэтому всё равно DEAD будет мелькать.

Да и если я не ошибаюсь, в некоторых античитах подменяют это также.
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
fantom, таким образом у всех висит Dead. Надо:
Код:
    if(get_msg_arg_int(1) == msg_ent)
        set_msg_arg_int(iFlag, ARG_BYTE, get_msg_arg_int(iFlag) | PLAYER_DEAD);
9 Апр 2020
В общем, для себя остановился на таком способе:
Код:
#include <amxmodx>
#include <ButtonsManager>
#include <msgstocks>

new const PLUGIN_VERSION[] = "0.1.0";

enum _:ScoreAttribFlags
{
    SCORE_ATTRIB_NONE   = 0,
    SCORE_ATTRIB_DEAD   = (1<<0),
    SCORE_ATTRIB_BOMB   = (1<<1),
    SCORE_ATTRIB_VIP    = (1<<2)
};

#define IN_SCORE    (1<<15)

new g_iMsgScoreAttrib;

public plugin_init()
{
    register_plugin("Hide Radar", PLUGIN_VERSION, "Nordic Warrior");

    g_iMsgScoreAttrib = get_user_msgid("ScoreAttrib");

    register_message(g_iMsgScoreAttrib, "MessageScoreAttrib");

    RegisterKeyPressed(IN_SCORE, "OnPressingScoreKey");
}

public MessageScoreAttrib(iMsgpPlayer, iMsgDest, iMsgEntity)
{
    enum { pPlayer = 1, iFlag };

    if(get_msg_arg_int(pPlayer) == iMsgEntity)
    {
        set_msg_arg_int(iFlag, ARG_BYTE, get_msg_arg_int(iFlag) | SCORE_ATTRIB_DEAD);
    }
}

public OnPressingScoreKey(const pPlayer, const iFwdId, const bool:bPressed)
{
    if(bPressed)
    {
        set_score_attrib(pPlayer, SCORE_ATTRIB_NONE);
        hide_hud_elements(pPlayer, HideElement_Radar_Health_Armor);
    }
    else
    {
        set_score_attrib(pPlayer, SCORE_ATTRIB_DEAD);
        hide_hud_elements(pPlayer, HideElement_None);
    }
}

stock set_score_attrib(const pPlayer, const iFlag)
{
    message_begin(MSG_ONE, g_iMsgScoreAttrib, .player = pPlayer);
    write_byte(pPlayer);
    write_byte(iFlag);
    message_end();
}
Используется: Buttons Manager, [INC] Message Stocks

Костыльно конечно, но это наилучший вариант на мой взгляд. Очень редко кто будет смотреть на хп во время открытия таблицы счёта.

Всем кто принимал участие спасибо, особенно fantom, Xelson за способ скрытия радара и Shel за удобный модуль.
 

Вложения

Сообщения
443
Реакции
319
Помог
13 раз(а)
Как выше уже сказал d3m37r4 затея плохая, так что...
Во вторых у тебя ошибка.
В третьих кому нужно будет - смогут включить радар.
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
@d3m37r4, проблема слоухакинга, при котором невозможно откатить изменения в некоторых случаях, на много значительнее, чем фейковая надпись в табе. Я лучше один раз не пойму что такое в таблице счёта, чем буду вечно drawradar писать в консоль
А я не говорил про слоухакинг. Скрыть Худ хп/ах вроде как не слоухакинг (если что способ, который я описывал) А способ с отправкой мессаги, как уже опять же многократно было сказано выше, приведет к еще большим багам.
Видимо, вам всё равно) Главное, чтобы была "красивость", особенно, если нужно будет впарить приват.
9 Апр 2020
P.S. тот момент, когда идиотская хотелка преобладает над здравым смыслом.
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
d3m37r4, не понятно, как ты оцениваешь что больше совместимо со здравым смыслом: закостылить скрытые пачкой худы серверными мессагами, либо всё красиво обыграть как Nordic Warrior комбинацией ScoreAttrib и HideWeapon мессагами. Я анализировал исходники и не нашел никаких значительных проблем с ScoreAttrib способом, за исключением этого ложного статуса DEAD, который тоже исправляется. Очень много проблем доставляет Crosshair + CurWeapon, но это совершенно другой способ.

Видимо, вам всё равно) Главное, чтобы была "красивость", особенно, если нужно будет впарить приват.
В чём сила сказанного, брат?
9 Апр 2020
Nordic Warrior, если где-то происходит управление мессагой HideWeapon, то плагин может конфликтовать
 

d3m37r4

111111
Сообщения
1,454
Реакции
1,194
Помог
10 раз(а)
Сообщения
212
Реакции
334
Помог
3 раз(а)
Подумай на досуге.

Xelson, оцениваю исходя из того, что это наиболее безопасный вариант.

Сурсы клиента ксаш?
Декомпилирование client.dll 6153 билда + сопоставление с утечкой исходников Valve 2003 года
9 Апр 2020
Подумай на досуге.
вот это вот "подумай на досуге" все сильнее смахивает на ваши преваты и все подобные речевые обороты. Мы здесь проблему разбираем, умалчивать что-либо неуместно
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
@Nordic Warrior, если где-то происходит управление мессагой HideWeapon, то плагин может конфликтовать
А, понятно. Не, у меня больше ничто её не использует, так что всё норм.
Подумай на досуге.
Ничего не придумал. Сейчас всё работает так, как мне надо было.

P.s. причем тут приват вообще? Был бы тут приват, я бы не выкладывал сюда.
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
set_score_attrib(pPlayer, SCORE_ATTRIB_NONE);
Отправлять стоит актуальные флагы (вип, бомба ...)
9 Апр 2020
Декомпилирование client.dll 6153 билда + сопоставление с утечкой исходников Valve 2003 года
Я вот не могу найти единого момента обработки радара. В тех частях что есть в паблике код отличается от репозитория к репозиторию. Поэтому я не стал бы быть так уверенным в том, что это не повлияет ни на что больше.

В целом я поддерживаю слова Shel и Xelson одновременно. Если возможные конфликты не так важны, то вполне годный способ. Если же все таки нужна уверенная стабильность, то использовать не стоит. Это лично мое мнение.
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Я вот не могу найти единого момента обработки радара. В тех частях что есть в паблике код отличается от репозитория к репозиторию. Поэтому я не стал бы быть так уверенным в том, что это не повлияет ни на что больше.
Именно поэтому я сверюсь с декомпилами одного из билдов игры. Благо DWARF позволяет
 
Сообщения
141
Реакции
329
Столкнулся с проблемой, что IN_SCORE более не прокидывается в buttons, только в oldbuttons, так что не понятно как отслеживать IN_SCORE теперь.
 
Сообщения
3,593
Реакции
1,576
Помог
141 раз(а)
Hedgehog Fog, а "теперь" - это с каких пор? Я конечно, не ставил ещё последние версии regame, reapi, но у меня всё работает.
 
Сообщения
141
Реакции
329
Nordic Warrior, Ну возможно после каких-то апдейтов клиента, а может и самого regame.
Буду изучать, отпишу, если получится разобраться.
17 Янв 2021
Потестил с разными версиями ReGamedll, есть предположение, что проблема все же в самом клиенте игры.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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