initial release to log anything happening to givenamedItem
This commit is contained in:
parent
c5a201ab8a
commit
6b6753ec1b
14
track_give_named_item/gamedata/track_give_named_item.css.txt
Normal file
14
track_give_named_item/gamedata/track_give_named_item.css.txt
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
"Games"
|
||||||
|
{
|
||||||
|
"cstrike"
|
||||||
|
{
|
||||||
|
"Signatures"
|
||||||
|
{
|
||||||
|
"CCSPlayer::GiveNamedItem"
|
||||||
|
{
|
||||||
|
"library" "server"
|
||||||
|
"linux" "@_ZN9CCSPlayer13GiveNamedItemEPKci"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
64
track_give_named_item/scripting/track_give_named_item.sp
Normal file
64
track_give_named_item/scripting/track_give_named_item.sp
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
#pragma semicolon 1
|
||||||
|
#define PLUGIN_AUTHOR "jenz"
|
||||||
|
#define PLUGIN_VERSION "1.0"
|
||||||
|
#include <sourcemod>
|
||||||
|
#include <sdktools>
|
||||||
|
#include <dhooks>
|
||||||
|
|
||||||
|
Handle hGiveNamedItem;
|
||||||
|
|
||||||
|
//the trololo guy is actively checking all plugins running. he should not be aware that we got somehwere.
|
||||||
|
|
||||||
|
public Plugin myinfo =
|
||||||
|
{
|
||||||
|
name = "it does what it does",
|
||||||
|
author = PLUGIN_AUTHOR,
|
||||||
|
description = "yeah",
|
||||||
|
version = PLUGIN_VERSION,
|
||||||
|
url = "www.unloze.com"
|
||||||
|
};
|
||||||
|
|
||||||
|
public void OnPluginStart()
|
||||||
|
{
|
||||||
|
Handle conf = LoadGameConfigFile("track_give_named_item.css");
|
||||||
|
if (conf == INVALID_HANDLE)
|
||||||
|
SetFailState("Failed to load gamedata track_give_named_item.css");
|
||||||
|
|
||||||
|
hGiveNamedItem = DHookCreateDetour(Address_Null, CallConv_THISCALL, ReturnType_CBaseEntity, ThisPointer_CBaseEntity);
|
||||||
|
if (!hGiveNamedItem)
|
||||||
|
SetFailState("Failed to setup detour for CCSPlayer::GiveNamedItem");
|
||||||
|
|
||||||
|
if (!DHookSetFromConf(hGiveNamedItem, conf, SDKConf_Signature, "CCSPlayer::GiveNamedItem"))
|
||||||
|
SetFailState("Failed to load CCSPlayer::GiveNamedItem signature from gamedata");
|
||||||
|
|
||||||
|
//function CCSPlayer::GiveNamedItem has two params.
|
||||||
|
DHookAddParam(hGiveNamedItem, HookParamType_CharPtr);
|
||||||
|
DHookAddParam(hGiveNamedItem, HookParamType_Int);
|
||||||
|
|
||||||
|
if (!DHookEnableDetour(hGiveNamedItem, false, track_give_named_item))
|
||||||
|
SetFailState("Failed to detour CCSPlayer::GiveNamedItem");
|
||||||
|
|
||||||
|
delete conf;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MRESReturn track_give_named_item(int pThis, Handle hReturn, Handle hParams)
|
||||||
|
{
|
||||||
|
char pszName[512];
|
||||||
|
DHookGetParamString(hParams, 1, pszName, sizeof(pszName));
|
||||||
|
|
||||||
|
int iSubType = DHookGetParam(hParams, 2);
|
||||||
|
|
||||||
|
LogToFile("addons/sourcemod/logs/GiveNamedItemDebug.txt", "pszName: %s iSubType: %i", pszName, iSubType);
|
||||||
|
if (IsValidClient(pThis))
|
||||||
|
{
|
||||||
|
LogToFile("addons/sourcemod/logs/GiveNamedItemDebug.txt", "Client: %L\n\n", pThis);
|
||||||
|
}
|
||||||
|
return MRES_Ignored;
|
||||||
|
}
|
||||||
|
|
||||||
|
stock bool IsValidClient(int client)
|
||||||
|
{
|
||||||
|
if (client > 0 && client <= MaxClients && IsClientConnected(client) && IsClientInGame(client))
|
||||||
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user