#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);
}
#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");
}
это просчёт серверного id игрока на клиенте. Это точно сломает еще больше. АТут можно попробовать подменить m_iPlayerNum
pfnGetPlayerInfo
так вообще клиентская функция, не понятно как это дело подменять. if(get_msg_arg_int(1) == msg_ent)
set_msg_arg_int(iFlag, ARG_BYTE, get_msg_arg_int(iFlag) | PLAYER_DEAD);
#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();
}
А я не говорил про слоухакинг. Скрыть Худ хп/ах вроде как не слоухакинг (если что способ, который я описывал) А способ с отправкой мессаги, как уже опять же многократно было сказано выше, приведет к еще большим багам.@d3m37r4, проблема слоухакинга, при котором невозможно откатить изменения в некоторых случаях, на много значительнее, чем фейковая надпись в табе. Я лучше один раз не пойму что такое в таблице счёта, чем буду вечно drawradar писать в консоль
В чём сила сказанного, брат?Видимо, вам всё равно) Главное, чтобы была "красивость", особенно, если нужно будет впарить приват.
Декомпилирование client.dll 6153 билда + сопоставление с утечкой исходников Valve 2003 годаПодумай на досуге.
Xelson, оцениваю исходя из того, что это наиболее безопасный вариант.
Сурсы клиента ксаш?
вот это вот "подумай на досуге" все сильнее смахивает на ваши преваты и все подобные речевые обороты. Мы здесь проблему разбираем, умалчивать что-либо неуместноПодумай на досуге.
А, понятно. Не, у меня больше ничто её не использует, так что всё норм.@Nordic Warrior, если где-то происходит управление мессагой HideWeapon, то плагин может конфликтовать
Ничего не придумал. Сейчас всё работает так, как мне надо было.Подумай на досуге.
Отправлять стоит актуальные флагы (вип, бомба ...)set_score_attrib(pPlayer, SCORE_ATTRIB_NONE);
Я вот не могу найти единого момента обработки радара. В тех частях что есть в паблике код отличается от репозитория к репозиторию. Поэтому я не стал бы быть так уверенным в том, что это не повлияет ни на что больше.Декомпилирование client.dll 6153 билда + сопоставление с утечкой исходников Valve 2003 года
Именно поэтому я сверюсь с декомпилами одного из билдов игры. Благо DWARF позволяетЯ вот не могу найти единого момента обработки радара. В тех частях что есть в паблике код отличается от репозитория к репозиторию. Поэтому я не стал бы быть так уверенным в том, что это не повлияет ни на что больше.
А как их получить?Отправлять стоит актуальные флагы