Remove unused plugins

This commit is contained in:
BotoX 2017-02-26 01:20:01 +01:00
parent 7801285f4b
commit 6a6fb216f0
6 changed files with 0 additions and 649 deletions

View File

@ -1,136 +0,0 @@
#include <sourcemod>
#include <sdkhooks>
#include <sdktools>
#include <CSSFixes>
#pragma semicolon 1
#pragma newdecls required
Handle g_hCBaseEntity_Touch;
bool g_bIgnoreHook = false;
#define TOUCHED_MAX (MAXPLAYERS + 1)
int g_aTouched[TOUCHED_MAX];
int g_aaTouchedList[TOUCHED_MAX][MAXPLAYERS + 1];
int g_aTouchedListSize[TOUCHED_MAX];
public Plugin myinfo =
{
name = "Randomize Trigger Touch",
author = "BotoX",
description = "Randomize Touches on trigger_multiple",
version = "1.0"
}
public void OnPluginStart()
{
Handle hGameConf = LoadGameConfigFile("sdkhooks.games");
if(hGameConf == INVALID_HANDLE)
{
SetFailState("Couldn't load sdkhooks.games game config!");
return;
}
if(GameConfGetOffset(hGameConf, "Touch") == -1)
{
CloseHandle(hGameConf);
SetFailState("Couldn't get Touch offset from game config!");
return;
}
// void CBaseEntity::Touch( CBaseEntity *pOther )
StartPrepSDKCall(SDKCall_Entity);
if(!PrepSDKCall_SetFromConf(hGameConf, SDKConf_Virtual, "Touch"))
{
CloseHandle(hGameConf);
SetFailState("PrepSDKCall_SetFromConf(hGameConf, SDKConf_Virtual, \"Touch\" failed!");
return;
}
PrepSDKCall_AddParameter(SDKType_CBaseEntity, SDKPass_Pointer);
g_hCBaseEntity_Touch = EndPrepSDKCall();
// Late load
int entity = INVALID_ENT_REFERENCE;
while((entity = FindEntityByClassname(entity, "trigger_multiple")) != INVALID_ENT_REFERENCE)
{
SDKHook(entity, SDKHook_Touch, OnTouch);
}
}
public void OnRunThinkFunctionsPost(bool simulating)
{
g_bIgnoreHook = true;
for(int i = 0; i < sizeof(g_aTouched); i++)
{
if(!g_aTouched[i])
break;
if(!IsValidEntity(g_aTouched[i]))
continue;
// Fisher-Yates Shuffle
for(int j = g_aTouchedListSize[i] - 1; j >= 1; j--)
{
int k = GetRandomInt(0, j);
int t = g_aaTouchedList[i][j];
g_aaTouchedList[i][j] = g_aaTouchedList[i][k];
g_aaTouchedList[i][k] = t;
}
for(int j = 0; j < g_aTouchedListSize[i]; j++)
{
if(IsValidEntity(g_aaTouchedList[i][j]))
SDKCall(g_hCBaseEntity_Touch, g_aTouched[i], g_aaTouchedList[i][j]);
}
g_aTouched[i] = 0;
g_aTouchedListSize[i] = 0;
}
g_bIgnoreHook = false;
}
public void OnEntityCreated(int entity, const char[] classname)
{
if(StrEqual(classname, "trigger_multiple"))
{
SDKHook(entity, SDKHook_Touch, OnTouch);
}
}
public Action OnTouch(int touched, int toucher)
{
if(toucher > MAXPLAYERS || g_bIgnoreHook)
return Plugin_Continue;
int i;
for(i = 0; i < sizeof(g_aTouched); i++)
{
if(!g_aTouched[i] || g_aTouched[i] == touched)
break;
}
if(i == sizeof(g_aTouched))
return Plugin_Continue;
g_aTouched[i] = touched;
for(int j = 0; j < g_aTouchedListSize[i]; j++)
{
if(g_aaTouchedList[i][j] == toucher)
return Plugin_Handled;
}
g_aaTouchedList[i][g_aTouchedListSize[i]++] = toucher;
return Plugin_Handled;
}
stock int GetHighestClientIndex()
{
for(int i = MaxClients; i >= 1; i--)
{
if(IsValidEntity(i))
return i;
}
return 0;
}

View File

@ -1 +0,0 @@
../../../includes/CSSFixes.inc

View File

@ -1,201 +0,0 @@
"Games"
{
"#default"
{
"#supported"
{
"engine" "orangebox_valve"
"engine" "css"
"engine" "csgo"
}
"Addresses"
{
"CBaseServer"
{
"windows"
{
"signature" "CVEngineServer::CreateFakeClient"
"read" "8"
}
"linux"
{
"signature" "sv"
}
"mac"
{
"signature" "sv"
}
}
}
"Signatures"
{
"CVEngineServer::CreateFakeClient"
{
"library" "engine"
"windows" "\x55\x8B\xEC\xFF\x75\x08\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x85\xC0\x75\x04"
}
"sv"
{
"library" "engine"
"linux" "@sv"
"mac" "@sv"
}
}
}
"#default"
{
"#supported"
{
"engine" "orangebox"
"engine" "left4dead"
"engine" "left4dead2"
}
"Addresses"
{
"CBaseServer"
{
"windows"
{
"signature" "CVEngineServer::CreateFakeClient"
"read" "6"
}
"linux"
{
"signature" "sv"
}
"mac"
{
"signature" "sv"
}
}
}
"Signatures"
{
"CVEngineServer::CreateFakeClient"
{
"library" "engine"
"windows" "\x8B\x44\x24\x04\x50\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\x85\xC0"
}
"sv"
{
"library" "engine"
"linux" "@sv"
"mac" "@sv"
}
}
}
"#default"
{
"#supported"
{
"engine" "orangebox"
"engine" "orangebox_valve"
"engine" "css"
}
"Offsets"
{
"CBaseServer::GetClient"
{
"windows" "6"
"linux" "7"
"mac" "7"
}
"CBaseClient::GetPlayerSlot"
{
"windows" "14"
"linux" "15"
"mac" "15"
}
"CGameClient::ProcessVoiceData"
{
"windows" "7"
"linux" "8"
"mac" "8"
}
}
}
"#default"
{
"#supported"
{
"engine" "left4dead"
"engine" "left4dead2"
"engine" "csgo"
}
"Offsets"
{
"CBaseServer::GetClient"
{
"windows" "6"
"linux" "7"
"mac" "7"
}
"CBaseClient::GetPlayerSlot"
{
"windows" "14"
"linux" "15"
"mac" "15"
}
"CGameClient::ProcessVoiceData"
{
"windows" "8"
"linux" "9"
"mac" "9"
}
}
}
"csgo"
{
"Offsets"
{
"OnVoiceTransmit"
{
"windows" "513"
"linux" "514"
"mac" "514"
}
}
}
"left4dead"
{
"Offsets"
{
"OnVoiceTransmit"
{
"windows" "461"
"linux" "462"
"mac" "462"
}
}
}
"left4dead2"
{
"Offsets"
{
"OnVoiceTransmit"
{
"windows" "485"
"linux" "486"
"mac" "486"
}
}
}
}

View File

@ -1 +0,0 @@
../../../includes/dhooks.inc

View File

@ -1,57 +0,0 @@
#if defined _voiceannounceex_included_
#endinput
#endif
#define _voiceannounceex_included_
public SharedPlugin:__pl_voiceannounceex =
{
name = "voiceannounce_ex",
file = "voiceannounce_ex.smx",
#if defined REQUIRE_PLUGIN
required = 1,
#else
required = 0,
#endif
};
public __pl_voiceannounceex_SetNTVOptional()
{
MarkNativeAsOptional("IsClientSpeaking");
}
/**
*
* Checks whether a client is speaking or not.
*
* @param client The client index to check against.
*
* @error Client is not valid, ingame, or client is a bot.
*
* @return True if client is speaking, false otherwise.
*
*/
native bool:IsClientSpeaking(client);
/**
*
* Called when a client is speaking.
*
* @param client The index of the client that is speaking.
*
* @return True to allow the client to talk, false otherwise.
*
*/
forward bool:OnClientSpeakingEx(client);
/**
*
* Called when a client end of speaking.
*
* @param client The index of the client.
*
* @noreturn
*
*/
forward OnClientSpeakingEnd(client);

View File

@ -1,253 +0,0 @@
#pragma semicolon 1
#include <sourcemod>
#include <sdktools>
#include <dhooks>
#include <voiceannounce_ex>
#define PLUGIN_VERSION "2.0.0"
new Handle:g_hProcessVoice = INVALID_HANDLE;
new Handle:g_hOnClientTalking = INVALID_HANDLE;
new Handle:g_hOnClientTalkingEnd = INVALID_HANDLE;
new bool:g_bLateLoad = false;
new g_iHookID[MAXPLAYERS+1] = { -1, ... };
new Handle:g_hClientMicTimers[MAXPLAYERS + 1] = {INVALID_HANDLE, ...};
new bool:g_bIsCSGO;
new Handle:g_hCSGOVoice;
public Plugin:myinfo =
{
name = "VoiceAnnounceEx",
author = "Franc1sco franug, Mini and GoD-Tony",
description = "Feature for developers to check/control client mic usage.",
version = PLUGIN_VERSION,
url = "https://forums.alliedmods.net"
}
public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
{
if(GetEngineVersion() == Engine_CSGO)
g_bIsCSGO = true;
else
g_bIsCSGO = false;
CreateNative("IsClientSpeaking", Native_IsClientTalking);
RegPluginLibrary("voiceannounce_ex");
g_bLateLoad = late;
return APLRes_Success;
}
public Native_IsClientTalking(Handle:plugin, numParams)
{
new client = GetNativeCell(1);
if (client > MaxClients || client <= 0)
{
ThrowNativeError(SP_ERROR_NATIVE, "Client is not valid.");
return false;
}
if (!IsClientInGame(client))
{
ThrowNativeError(SP_ERROR_NATIVE, "Client is not in-game.");
return false;
}
if (IsFakeClient(client))
{
ThrowNativeError(SP_ERROR_NATIVE, "Cannot do mic checks on fake clients.");
return false;
}
return (g_hClientMicTimers[client] == INVALID_HANDLE) ? false : true;
}
public OnPluginStart()
{
//CreateConVar("voiceannounce_ex_version", PLUGIN_VERSION, "plugin", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
new Offset;
if(g_bIsCSGO)
{
Offset = GameConfGetOffset(GetConfig(), "OnVoiceTransmit");
if(Offset == -1)
SetFailState("Failed to get offset");
g_hCSGOVoice = DHookCreate(Offset, HookType_Entity, ReturnType_Int, ThisPointer_CBaseEntity, CSGOVoicePost);
}
else
{
Offset = GameConfGetOffset(GetConfig(), "CGameClient::ProcessVoiceData");
g_hProcessVoice = DHookCreate(Offset, HookType_Raw, ReturnType_Void, ThisPointer_Address, Hook_ProcessVoiceData);
DHookAddParam(g_hProcessVoice, HookParamType_ObjectPtr);
}
g_hOnClientTalking = CreateGlobalForward("OnClientSpeakingEx", ET_Single, Param_Cell);
g_hOnClientTalkingEnd = CreateGlobalForward("OnClientSpeakingEnd", ET_Ignore, Param_Cell);
if(g_bLateLoad)
{
for(new i = 1; i <= MaxClients; i++)
{
if(IsClientInGame(i) && !IsFakeClient(i))
OnClientPutInServer(i);
}
}
}
public OnClientPutInServer(client)
{
if (!IsFakeClient(client))
{
if(g_bIsCSGO)
DHookEntity(g_hCSGOVoice, true, client);
else
g_iHookID[client] = DHookRaw(g_hProcessVoice, true, GetIMsgHandler(client));
if(g_hClientMicTimers[client] != INVALID_HANDLE)
KillTimer(g_hClientMicTimers[client]);
g_hClientMicTimers[client] = INVALID_HANDLE;
}
}
public OnClientDisconnect(client)
{
if(g_bIsCSGO)
{
if(g_iHookID[client] != -1)
{
DHookRemoveHookID(g_iHookID[client]);
g_iHookID[client] = -1;
}
}
if(g_hClientMicTimers[client] != INVALID_HANDLE)
KillTimer(g_hClientMicTimers[client]);
g_hClientMicTimers[client] = INVALID_HANDLE;
}
public MRESReturn:Hook_ProcessVoiceData(Address:pThis, Handle:hParams)
{
new Address:pIClient = pThis - Address:4;
new client = GetPlayerSlot(pIClient) + 1;
if(g_hClientMicTimers[client] != INVALID_HANDLE)
{
KillTimer(g_hClientMicTimers[client]);
g_hClientMicTimers[client] = CreateTimer(0.3, Timer_ClientMicUsage, GetClientUserId(client));
}
if(g_hClientMicTimers[client] == INVALID_HANDLE && IsClientInGame(client))
g_hClientMicTimers[client] = CreateTimer(0.3, Timer_ClientMicUsage, GetClientUserId(client));
new bool:returnBool = true;
Call_StartForward(g_hOnClientTalking);
Call_PushCell(client);
Call_Finish(_:returnBool);
if(!returnBool)
return MRES_Supercede;
return MRES_Ignored;
}
public MRESReturn:CSGOVoicePost(client, Handle:hReturn)
{
if(g_hClientMicTimers[client] != INVALID_HANDLE)
{
KillTimer(g_hClientMicTimers[client]);
g_hClientMicTimers[client] = CreateTimer(0.3, Timer_ClientMicUsage, GetClientUserId(client));
}
if(g_hClientMicTimers[client] == INVALID_HANDLE && IsClientInGame(client))
g_hClientMicTimers[client] = CreateTimer(0.3, Timer_ClientMicUsage, GetClientUserId(client));
new bool:returnBool = true;
Call_StartForward(g_hOnClientTalking);
Call_PushCell(client);
Call_Finish(_:returnBool);
if(!returnBool)
return MRES_Supercede;
return MRES_Ignored;
}
public Action:Timer_ClientMicUsage(Handle:timer, any:userid)
{
new client = GetClientOfUserId(userid);
g_hClientMicTimers[client] = INVALID_HANDLE;
Call_StartForward(g_hOnClientTalkingEnd);
Call_PushCell(client);
Call_Finish();
}
/*
* Internal Functions
* Credits go to GoD-Tony
*/
stock Handle:GetConfig()
{
static Handle:hGameConf = INVALID_HANDLE;
if(hGameConf == INVALID_HANDLE)
hGameConf = LoadGameConfigFile("voiceannounce_ex.games");
return hGameConf;
}
stock Address:GetBaseServer()
{
static Address:pBaseServer = Address_Null;
if(pBaseServer == Address_Null)
pBaseServer = GameConfGetAddress(GetConfig(), "CBaseServer");
return pBaseServer;
}
stock Address:GetIClient(slot)
{
static Handle:hGetClient = INVALID_HANDLE;
if(hGetClient == INVALID_HANDLE)
{
StartPrepSDKCall(SDKCall_Raw);
PrepSDKCall_SetFromConf(GetConfig(), SDKConf_Virtual, "CBaseServer::GetClient");
PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain);
PrepSDKCall_AddParameter(SDKType_PlainOldData, SDKPass_Plain);
hGetClient = EndPrepSDKCall();
}
return Address:SDKCall(hGetClient, GetBaseServer(), slot);
}
stock GetPlayerSlot(Address:pIClient)
{
static Handle:hPlayerSlot = INVALID_HANDLE;
if(hPlayerSlot == INVALID_HANDLE)
{
StartPrepSDKCall(SDKCall_Raw);
PrepSDKCall_SetFromConf(GetConfig(), SDKConf_Virtual, "CBaseClient::GetPlayerSlot");
PrepSDKCall_SetReturnInfo(SDKType_PlainOldData, SDKPass_Plain);
hPlayerSlot = EndPrepSDKCall();
}
return SDKCall(hPlayerSlot, pIClient);
}
stock Address:GetIMsgHandler(client)
{
return GetIClient(client - 1) + Address:4;
}