Как хукнуть LogMessage?

Danyas

Участник
Сообщения
2,173
Реакции
1,072
Что только не делал - не могу словить.
Помогите пожалуйста, исходника к плагину нету
PHP:
public Action:GameLogHook(const String:message[])
{
	PrintToServer("HOOKED: %s", message);
	return Plugin_Continue;
}

public Action:OnLogAction(Handle:source,	Identity:ident, client, target, const String:message[])
{
	PrintToServer("HOOKEDx: %s", message);
	return Plugin_Continue;
}

public OnPluginStart()
{
 AddGameLogHook(hoook);
}

public Action:hoook(const String:message[]) 
{
 PrintToServer("HOOKEDe: %s", message);
 return Plugin_Continue;
}
 

Danyas

Участник
Сообщения
2,173
Реакции
1,072

Не ловит.
PHP:
public Action:func_15(id, args)
{
	new var1;
	if (args < 1 || !GetConVarInt(hw07) || __@183[id])
	{
		return Action:0;
	}
	if (__@180[id])
	{
		return Action:0;
	}
	decl String:lb1[32];
	GetCmdArg(1, lb1, 32);
	if (strlen(lb1) != 8)
	{
		if (!(GetConVarInt(hw50)))
		{
			func_16(id);
		}
		__@308[id] = 1;
		return Action:0;
	}
	if (__@181[id])
	{
		decl String:lb4[36];
		decl String:lb5[36];
		decl String:lb6[8];
		Format(lb4, 34, "%s%s", __@184[id], __@14);
		lb4[4] = MissingTAG:0;
		md5(lb4, lb5, 34);
		lb5[2] = MissingTAG:0;
		if (StrEqual(lb5, lb1, false))
		{
			GetCmdArg(2, __@244[id], 5);
			if (strlen(__@244[id]) == 4)
			{
				__@181[id] = 0;
				__@265[id] = GetRandomInt(100000, 999999999);
				ClientCommand(id, "ucp_%s 2%d", __@184[id], __@265[id]);
			}
			else
			{
				strcopy(__@244[id], 5, "xxxx");
			}
		}
		else
		{
			strcopy(__@244[id], 5, "xxxx");
		}
		GetCmdArg(3, __@279[id], 16);
		GetCmdArg(4, lb6, 8);
		if (GetConVarInt(hw49) == 1)
		{
			if (!StrEqual(lb6, "8.4", true))
			{
				KickClient(id, "%t", "UCP_UPDATEMSG");
			}
		}
		GetClientName(id, lb4, 34);
		GetClientIP(id, lb5, 34, true);
		GetClientAuthString(id, lb1, 32);
		if (GetConVarInt(hw21))
		{
			LogMessage("Login: %s | %s | %s-%s | %s | %s | %s | %s", lb4, lb5, __@185[id][2], __@184[id], lb1, __@244[id], lb6, __@279[id]);
		}
		if (GetConVarInt(hw48) == 1)
		{
			if (func_36(__@184[id], id) == -1)
			{
				KickClient(id, "%t", "UCP_IDMSG");
			}
		}
		return Action:0;
	}
	if (StrEqual(lb1, __@184[id], true))
	{
		decl String:lb2[32];
		GetCmdArg(2, lb2, 32);
		new lb3 = StringToInt(lb2, 10);
		if (__@265[id] / 3 % 20 * __@265[id] % 1613 == lb3)
		{
			__@182[id] = 0;
		}
	}
	return Action:0;
}
Интересует только одна строчка:
PHP:
    LogMessage("Login: %s | %s | %s-%s | %s | %s | %s | %s", lb4, lb5, __@185[id][2], __@184[id], lb1, __@244[id], lb6, __@279[id]);
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Danyas, думаю и не будет ловить. Был бы через это LogAction, тогда бы поймал.
Не легче в самом этом плагине сделать логи какие тебе нужны?
 

Саша Шеин

Кому костылей?
Сообщения
1,697
Реакции
621
Что только не делал - не могу словить.
Помогите пожалуйста, исходника к плагину нету
PHP:
public Action:GameLogHook(const String:message[])
{
	PrintToServer("HOOKED: %s", message);
	return Plugin_Continue;
}

public Action:OnLogAction(Handle:source,	Identity:ident, client, target, const String:message[])
{
	PrintToServer("HOOKEDx: %s", message);
	return Plugin_Continue;
}

public OnPluginStart()
{
 AddGameLogHook(hoook);
}

public Action:hoook(const String:message[]) 
{
 PrintToServer("HOOKEDe: %s", message);
 return Plugin_Continue;
}

Оффтоп
Какого эффекта хочешь достичь?)
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #7
@Tolyan, через детоуры делается, экстеншн писать надо.

P.S.: Не надо трупы пинать...
 

Vit_ amin

Добрая душа
Сообщения
1,525
Реакции
688
Попробуй
PHP:
HookEvent("server_message", ...);
Так как вроде данное событие что-то ловит из консоли
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #10
@Vit_ amin, конкретно логи самого SM оно не хукает, т.к. SM этот эвент не вызывает.
 
T

Tolyan

#include <sourcemod>
#include <sdktools>

PHP:
public OnPluginStart()
{
    HookEvent("server_message", Event_server_message);
}

public Action:Event_server_message(Handle:event, const String:name[], bool:dontBroadcast) 
{

    new String:msg[256];

    GetEventString(event, "text", msg, 256);
    PrintToChatAll("HOOKEDe: %s", msg);
    return Plugin_Continue;
}

0 результата вообще ниче не спамит
--- Добавлено позже ---
Покажи что именно у тебя не получилось ?
выше)
 
Сверху Снизу