#include <sourcemod>
public OnPluginStart()
{
HookUserMessage( GetUserMessageId( "VGUIMenu" ), OnMsgVGUIMenu );
}
public Action:OnMsgVGUIMenu(UserMsg:msg_id, Handle:pb, const players[], playersNum, bool:reliable, bool:init)
{
decl String:buffer[16];
PbReadString(pb, "name", buffer, sizeof(buffer));
if (strcmp(buffer, "scores", false) == 0)
{
return Plugin_Handled;
}
return Plugin_Continue;
}
Пробуй
#include <sdkhooks>
public OnConfigsExecuted()
{
SDKHookEx(GetPlayerResourceEntity(), SDKHook_ThinkPost, OnResourceThink)
}
public OnResourceThink(entity)
{
static m_bConnected;
if (!m_bConnected)
{
switch (GetEngineVersion())
{
case Engine_DODS:
{
m_bConnected = FindSendPropOffs("CDODPlayerResource", "m_bConnected");
}
case Engine_TF2:
{
m_bConnected = FindSendPropOffs("CTFPlayerResource", "m_bConnected");
}
case Engine_CSGO, Engine_CSS:
{
m_bConnected = FindSendPropOffs("CCSPlayerResource", "m_bConnected");
}
}
}
for (new i = 1; i <= MaxClients; i++)
{
if (IsClientInGame(i))
{
SetEntData(entity, m_bConnected + (i * 4), false, true, true);
}
}
}
#include <sdktools>
#include <sdkhooks>
public OnConfigsExecuted() {
SDKHookEx(GetPlayerResourceEntity(), SDKHook_ThinkPost, OnResourceThink)
}
public OnResourceThink(entity) {
static m_bConnected;
if (!m_bConnected) {
switch (GetEngineVersion()) {
case Engine_DODS: {
m_bConnected = FindSendPropInfo("CDODPlayerResource", "m_bConnected");
}
case Engine_TF2: {
m_bConnected = FindSendPropInfo("CTFPlayerResource", "m_bConnected");
}
case Engine_CSGO, Engine_CSS: {
m_bConnected = FindSendPropInfo("CCSPlayerResource", "m_bConnected");
}
}
}
for (new i = 1; i <= MaxClients; i++) {
if (IsClientInGame(i)) {
SetEntData(entity, m_bConnected + (i * 4), false, true, true);
}
}
}
На быструю фигачил , кто может фиксите :)@avanger.usa, Работает, но очень забавно)
Только ты забыл #include <sdktools> для GetPlayerResourceEntity()
Он блокирует не только таб, но и ники сообщений в чат, и ники при отображении убийства)C-подобный:#include <sdktools> #include <sdkhooks> public OnConfigsExecuted() { SDKHookEx(GetPlayerResourceEntity(), SDKHook_ThinkPost, OnResourceThink) } public OnResourceThink(entity) { static m_bConnected; if (!m_bConnected) { switch (GetEngineVersion()) { case Engine_DODS: { m_bConnected = FindSendPropInfo("CDODPlayerResource", "m_bConnected"); } case Engine_TF2: { m_bConnected = FindSendPropInfo("CTFPlayerResource", "m_bConnected"); } case Engine_CSGO, Engine_CSS: { m_bConnected = FindSendPropInfo("CCSPlayerResource", "m_bConnected"); } } } for (new i = 1; i <= MaxClients; i++) { if (IsClientInGame(i)) { SetEntData(entity, m_bConnected + (i * 4), false, true, true); } } }
#include <sdkhooks>
#include <sdktools>
public OnMapStart()
{
new iEnt = -1;
iEnt = FindEntityByClassname(iEnt, "cs_player_manager");
if (iEnt != INVALID_ENT_REFERENCE) {
SDKHook(iEnt, SDKHook_ThinkPost, Hook_OnThinkPost_Player);
}
}
public Hook_OnThinkPost_Player(iEnt) {
static iAliveOffset = -1;
if (iAliveOffset == -1)
iAliveOffset = FindSendPropInfo("CCSPlayerResource", "m_bAlive");
static iKillOffset = -1;
if (iKillOffset == -1)
iKillOffset = FindSendPropInfo("CCSPlayerResource", "m_iKills");
static iDeathOffset = -1;
if (iDeathOffset == -1)
iDeathOffset = FindSendPropInfo("CCSPlayerResource", "m_iDeaths");
static iAssistsOffset = -1;
if (iAssistsOffset == -1)
iAssistsOffset = FindSendPropInfo("CCSPlayerResource", "m_iAssists");
static iScoreOffset = -1;
if (iScoreOffset == -1)
iScoreOffset = FindSendPropInfo("CCSPlayerResource", "m_iScore");
new iAlive[MAXPLAYERS+1] = {1,...};
new iZeroes[MAXPLAYERS+1] = {0,...};
SetEntDataArray(iEnt, iAliveOffset, iAlive, MaxClients+1);
SetEntDataArray(iEnt, iKillOffset, iZeroes, MaxClients+1);
SetEntDataArray(iEnt, iDeathOffset, iZeroes, MaxClients+1);
SetEntDataArray(iEnt, iAssistsOffset, iZeroes, MaxClients+1);
SetEntDataArray(iEnt, iScoreOffset, iZeroes, MaxClients+1);
}
это не работает, а за первый вариант спасибоНа быструю фигачил , кто может фиксите :)
--- Добавлено позже ---
Вообще можно так попробовать
PHP:#include <sdkhooks> #include <sdktools> public OnMapStart() { new iEnt = -1; iEnt = FindEntityByClassname(iEnt, "cs_player_manager"); if (iEnt != INVALID_ENT_REFERENCE) { SDKHook(iEnt, SDKHook_ThinkPost, Hook_OnThinkPost_Player); } } public Hook_OnThinkPost_Player(iEnt) { static iAliveOffset = -1; if (iAliveOffset == -1) iAliveOffset = FindSendPropInfo("CCSPlayerResource", "m_bAlive"); static iKillOffset = -1; if (iKillOffset == -1) iKillOffset = FindSendPropInfo("CCSPlayerResource", "m_iKills"); static iDeathOffset = -1; if (iDeathOffset == -1) iDeathOffset = FindSendPropInfo("CCSPlayerResource", "m_iDeaths"); static iAssistsOffset = -1; if (iAssistsOffset == -1) iAssistsOffset = FindSendPropInfo("CCSPlayerResource", "m_iAssists"); static iScoreOffset = -1; if (iScoreOffset == -1) iScoreOffset = FindSendPropInfo("CCSPlayerResource", "m_iScore"); new iAlive[MAXPLAYERS+1] = {1,...}; new iZeroes[MAXPLAYERS+1] = {0,...}; SetEntDataArray(iEnt, iAliveOffset, iAlive, MaxClients+1); SetEntDataArray(iEnt, iKillOffset, iZeroes, MaxClients+1); SetEntDataArray(iEnt, iDeathOffset, iZeroes, MaxClients+1); SetEntDataArray(iEnt, iAssistsOffset, iZeroes, MaxClients+1); SetEntDataArray(iEnt, iScoreOffset, iZeroes, MaxClients+1); }