initial commit: change in oryx is only outcommenting KickClient. Change in oryx-scroll is changing the message send to the native
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
#if defined _tas_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _tas_included
|
||||
|
||||
native bool TAS_InEditMode(int client);
|
||||
|
||||
native bool TAS_IsPaused(int client);
|
||||
|
||||
native ArrayList TAS_GetRunHandle(int client);
|
||||
|
||||
native int TAS_GetCurrentFrame(int client);
|
||||
|
||||
forward void OnTASPauseChanged(int client, bool paused);
|
||||
|
||||
forward void OnTASFrameRecorded(int client, int frame);
|
||||
|
||||
public SharedPlugin __pl_tas =
|
||||
{
|
||||
name = "tas",
|
||||
file = "bTimes-tas.smx",
|
||||
#if defined REQUIRE_PLUGIN
|
||||
required = 1,
|
||||
#else
|
||||
required = 0,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#if !defined REQUIRE_PLUGIN
|
||||
public void __pl_tas_SetNTVOptional()
|
||||
{
|
||||
MarkNativeAsOptional("TAS_InEditMode");
|
||||
MarkNativeAsOptional("TAS_IsPaused");
|
||||
MarkNativeAsOptional("TAS_GetRunHandle");
|
||||
MarkNativeAsOptional("TAS_GetCurrentFrame");
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,89 @@
|
||||
#if defined _btimes_timer_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _btimes_timer_included
|
||||
|
||||
enum styleConfig
|
||||
{
|
||||
String:Name[32],
|
||||
String:Name_Short[32],
|
||||
bool:Enabled,
|
||||
bool:TempEnabled,
|
||||
bool:AllowType[2],
|
||||
bool:Freestyle,
|
||||
bool:Freestyle_Unrestrict,
|
||||
bool:Freestyle_EzHop,
|
||||
bool:Freestyle_Auto,
|
||||
bool:Auto,
|
||||
bool:EzHop,
|
||||
Float:Gravity,
|
||||
Float:RunSpeed,
|
||||
Float:MaxVel,
|
||||
Float:MinFps,
|
||||
bool:CalcSync,
|
||||
bool:Prevent_Left,
|
||||
bool:Prevent_Right,
|
||||
bool:Prevent_Back,
|
||||
bool:Prevent_Forward,
|
||||
bool:Require_Left,
|
||||
bool:Require_Right,
|
||||
bool:Require_Back,
|
||||
bool:Require_Forward,
|
||||
bool:Hud_Style,
|
||||
bool:Hud_Strafes,
|
||||
bool:Hud_Jumps,
|
||||
bool:Count_Left_Strafe,
|
||||
bool:Count_Right_Strafe,
|
||||
bool:Count_Back_Strafe,
|
||||
bool:Count_Forward_Strafe,
|
||||
bool:Ghost_Use[2],
|
||||
bool:Ghost_Save[2],
|
||||
Float:PreSpeed,
|
||||
Float:SlowedSpeed,
|
||||
bool:Special,
|
||||
String:Special_Key[32],
|
||||
bool:GunJump,
|
||||
String:GunJump_Weapon[64],
|
||||
bool:UnrealPhys,
|
||||
AirAcceleration,
|
||||
bool:EnableBunnyhopping,
|
||||
StyleConfig
|
||||
};
|
||||
|
||||
/*
|
||||
* Gets a client's style (Normal, Sideways, etc..).
|
||||
*
|
||||
* @param client Client index
|
||||
*
|
||||
* @return The client's style.
|
||||
*/
|
||||
native int GetClientStyle(int client);
|
||||
|
||||
/*
|
||||
* Gets the complete configuration for a specified style.
|
||||
*
|
||||
* @param Style The style to get a configuration for.
|
||||
* @param Properties The buffer to store all the style properties, (properties are listed in the StyleConfig enum)
|
||||
*
|
||||
* @return True if the style exists, false otherwise.
|
||||
*/
|
||||
native bool Style_GetConfig(int Style, any Properties[StyleConfig]);
|
||||
|
||||
public SharedPlugin __pl_btimes_timer =
|
||||
{
|
||||
name = "timer",
|
||||
file = "bTimes-timer.smx",
|
||||
#if defined REQUIRE_PLUGIN
|
||||
required = 1
|
||||
#else
|
||||
required = 0
|
||||
#endif
|
||||
};
|
||||
|
||||
#if !defined REQUIRE_PLUGIN
|
||||
public void __pl_btimes_timer_SetNTVOptional()
|
||||
{
|
||||
MarkNativeAsOptional("GetClientStyle");
|
||||
MarkNativeAsOptional("Style_GetConfig");
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,484 @@
|
||||
// code by Dr!fter https://forums.alliedmods.net/showthread.php?t=180114
|
||||
|
||||
#if defined _dhooks_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _dhooks_included
|
||||
|
||||
enum ObjectValueType
|
||||
{
|
||||
ObjectValueType_Int = 0,
|
||||
ObjectValueType_Bool,
|
||||
ObjectValueType_Ehandle,
|
||||
ObjectValueType_Float,
|
||||
ObjectValueType_CBaseEntityPtr,
|
||||
ObjectValueType_IntPtr,
|
||||
ObjectValueType_BoolPtr,
|
||||
ObjectValueType_EhandlePtr,
|
||||
ObjectValueType_FloatPtr,
|
||||
ObjectValueType_Vector,
|
||||
ObjectValueType_VectorPtr,
|
||||
ObjectValueType_CharPtr,
|
||||
ObjectValueType_String
|
||||
};
|
||||
|
||||
enum ListenType
|
||||
{
|
||||
ListenType_Created,
|
||||
ListenType_Deleted
|
||||
};
|
||||
|
||||
enum ReturnType
|
||||
{
|
||||
ReturnType_Unknown,
|
||||
ReturnType_Void,
|
||||
ReturnType_Int,
|
||||
ReturnType_Bool,
|
||||
ReturnType_Float,
|
||||
ReturnType_String, //Note this is a string_t
|
||||
ReturnType_StringPtr, //Note this is a string_t *
|
||||
ReturnType_CharPtr,
|
||||
ReturnType_Vector,
|
||||
ReturnType_VectorPtr,
|
||||
ReturnType_CBaseEntity,
|
||||
ReturnType_Edict
|
||||
};
|
||||
|
||||
enum HookParamType
|
||||
{
|
||||
HookParamType_Unknown,
|
||||
HookParamType_Int,
|
||||
HookParamType_Bool,
|
||||
HookParamType_Float,
|
||||
HookParamType_String, //Note this is a string_t
|
||||
HookParamType_StringPtr, //Note this is a string_t *
|
||||
HookParamType_CharPtr,
|
||||
HookParamType_VectorPtr,
|
||||
HookParamType_CBaseEntity,
|
||||
HookParamType_ObjectPtr,
|
||||
HookParamType_Edict,
|
||||
HookParamType_Object
|
||||
};
|
||||
|
||||
enum ThisPointerType
|
||||
{
|
||||
ThisPointer_Ignore,
|
||||
ThisPointer_CBaseEntity,
|
||||
ThisPointer_Address
|
||||
};
|
||||
|
||||
enum HookType
|
||||
{
|
||||
HookType_Entity,
|
||||
HookType_GameRules,
|
||||
HookType_Raw
|
||||
};
|
||||
|
||||
enum MRESReturn
|
||||
{
|
||||
MRES_ChangedHandled = -2, // Use changed values and return MRES_Handled
|
||||
MRES_ChangedOverride, // Use changed values and return MRES_Override
|
||||
MRES_Ignored, // plugin didn't take any action
|
||||
MRES_Handled, // plugin did something, but real function should still be called
|
||||
MRES_Override, // call real function, but use my return value
|
||||
MRES_Supercede // skip real function; use my return value
|
||||
};
|
||||
|
||||
enum DHookPassFlag
|
||||
{
|
||||
DHookPass_ByVal = (1<<0),
|
||||
DHookPass_ByRef = (1<<1)
|
||||
};
|
||||
|
||||
typeset ListenCB
|
||||
{
|
||||
//Deleted
|
||||
function void (int entity);
|
||||
|
||||
//Created
|
||||
function void (int entity, const char[] classname);
|
||||
};
|
||||
|
||||
typeset DHookRemovalCB
|
||||
{
|
||||
function void (int hookid);
|
||||
};
|
||||
typeset DHookCallback
|
||||
{
|
||||
//Function Example: void Ham::Test() with this pointer ignore
|
||||
function MRESReturn ();
|
||||
|
||||
//Function Example: void Ham::Test() with this pointer passed
|
||||
function MRESReturn (int pThis);
|
||||
|
||||
//Function Example: void Ham::Test(int cake) with this pointer ignore
|
||||
function MRESReturn (Handle hParams);
|
||||
|
||||
//Function Example: void Ham::Test(int cake) with this pointer passed
|
||||
function MRESReturn (int pThis, Handle hParams);
|
||||
|
||||
//Function Example: int Ham::Test() with this pointer ignore
|
||||
function MRESReturn (Handle hReturn);
|
||||
|
||||
//Function Example: int Ham::Test() with this pointer passed
|
||||
function MRESReturn (int pThis, Handle hReturn);
|
||||
|
||||
//Function Example: int Ham::Test(int cake) with this pointer ignore
|
||||
function MRESReturn (Handle hReturn, Handle hParams);
|
||||
|
||||
//Function Example: int Ham::Test(int cake) with this pointer passed
|
||||
function MRESReturn (int pThis, Handle hReturn, Handle hParams);
|
||||
|
||||
//Address NOW
|
||||
|
||||
//Function Example: void Ham::Test() with this pointer passed
|
||||
function MRESReturn (Address pThis);
|
||||
|
||||
//Function Example: void Ham::Test(int cake) with this pointer passed
|
||||
function MRESReturn (Address pThis, Handle hParams);
|
||||
|
||||
//Function Example: int Ham::Test() with this pointer passed
|
||||
function MRESReturn (Address pThis, Handle hReturn);
|
||||
|
||||
//Function Example: int Ham::Test(int cake) with this pointer passed
|
||||
function MRESReturn (Address pThis, Handle hReturn, Handle hParams);
|
||||
|
||||
};
|
||||
|
||||
/* Adds an entity listener hook
|
||||
*
|
||||
* @param type Type of listener to add
|
||||
* @param callback Callback to use
|
||||
*
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookAddEntityListener(ListenType type, ListenCB callback);
|
||||
|
||||
/* Removes an entity listener hook
|
||||
*
|
||||
* @param type Type of listener to remove
|
||||
* @param callback Callback this listener was using
|
||||
*
|
||||
* @return True if one was removed false otherwise.
|
||||
*/
|
||||
native bool DHookRemoveEntityListener(ListenType type, ListenCB callback);
|
||||
|
||||
/* Creates a hook
|
||||
*
|
||||
* @param offset vtable offset for function to hook
|
||||
* @param hooktype Type of hook
|
||||
* @param returntype Type type of return
|
||||
* @param thistype Type of this pointer or ignore (ignore can be used if not needed)
|
||||
* @param callback Callback function
|
||||
*
|
||||
* @return Returns setup handle for the hook or INVALID_HANDLE.
|
||||
*/
|
||||
native Handle DHookCreate(int offset, HookType hooktype, ReturnType returntype, ThisPointerType thistype, DHookCallback callback);
|
||||
|
||||
/* Adds param to a hook setup
|
||||
*
|
||||
* @param setup Setup handle to add the param to.
|
||||
* @param type Param type
|
||||
* @param size Used for Objects (not Object ptr) to define the size of the object.
|
||||
* @param flag Used to change the pass type.
|
||||
*
|
||||
* @error Invalid setup handle or too many params added (request upping the max in thread)
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookAddParam(Handle setup, HookParamType type, int size=-1, DHookPassFlag flag=DHookPass_ByVal);
|
||||
//native DHookAddParam(Handle:setup, HookParamType:type);
|
||||
|
||||
/* Hook entity
|
||||
*
|
||||
* @param setup Setup handle to use to add the hook.
|
||||
* @param post True to make the hook a post hook. (If you need to change the retunr value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
|
||||
* @param entity Entity index to hook on.
|
||||
* @param removalcb Callback for when the hook is removed (Entity hooks are auto-removed on entity destroyed and will call this callback)
|
||||
*
|
||||
* @error Invalid setup handle, invalid entity or invalid hook type.
|
||||
* @return -1 on fail a hookid on success
|
||||
*/
|
||||
native int DHookEntity(Handle setup, bool post, int entity, DHookRemovalCB removalcb=INVALID_FUNCTION);
|
||||
|
||||
/* Hook gamerules
|
||||
*
|
||||
* @param setup Setup handle to use to add the hook.
|
||||
* @param post True to make the hook a post hook. (If you need to change the retunr value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
|
||||
* @param removalcb Callback for when the hook is removed (Game rules hooks are auto-removed on map end and will call this callback)
|
||||
*
|
||||
* @error Invalid setup handle, failing to get gamerules pointer or invalid hook type.
|
||||
* @return -1 on fail a hookid on success
|
||||
*/
|
||||
native int DHookGamerules(Handle setup, bool post, DHookRemovalCB removalcb=INVALID_FUNCTION);
|
||||
|
||||
/* Hook a raw pointer
|
||||
*
|
||||
* @param setup Setup handle to use to add the hook.
|
||||
* @param post True to make the hook a post hook. (If you need to change the retunr value or need the return value use a post hook! If you need to change params and return use a pre and post hook!)
|
||||
* @param addr This pointer address.
|
||||
* @param removalcb Callback for when the hook is removed (Entity hooks are auto-removed on entity destroyed and will call this callback)
|
||||
*
|
||||
* @error Invalid setup handle, invalid address or invalid hook type.
|
||||
* @return -1 on fail a hookid on success
|
||||
*/
|
||||
native int DHookRaw(Handle setup, bool post, Address addr, DHookRemovalCB removalcb=INVALID_FUNCTION);
|
||||
|
||||
/* Remove hook by hook id
|
||||
*
|
||||
* @param hookid Hook id to remove
|
||||
*
|
||||
* @return true on success false otherwise
|
||||
* @note This will not fire the removal callback!
|
||||
*/
|
||||
native bool DHookRemoveHookID(int hookid);
|
||||
|
||||
/* Get param value (Only use for: int, entity, bool or float param types)
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1. 0 Will return the number of params stored)
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type.
|
||||
* @return value if num greater than 0. If 0 returns paramcount.
|
||||
*/
|
||||
native any DHookGetParam(Handle hParams, int num);
|
||||
|
||||
/* Get vector param value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1.)
|
||||
* @param vec Vector buffer to store result.
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookGetParamVector(Handle hParams, int num, float vec[3]);
|
||||
|
||||
/* Get string param value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to get. (Example if the function has 2 params and you need the value of the first param num would be 1.)
|
||||
* @param buffer String buffer to store result
|
||||
* @param size Buffer size
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookGetParamString(Handle hParams, int num, char[] buffer, int size);
|
||||
|
||||
/* Set param value (Only use for: int, entity, bool or float param types)
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @params num Param number to set (Example if the function has 2 params and you need to set the value of the first param num would be 1.)
|
||||
* @param value Value to set it as (only pass int, bool, float or entity index)
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetParam(Handle hParams, int num, any value);
|
||||
|
||||
/* Set vector param value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @params num Param number to set (Example if the function has 2 params and you need to set the value of the first param num would be 1.)
|
||||
* @param vec Value to set vector as.
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetParamVector(Handle hParams, int num, float vec[3]);
|
||||
|
||||
/* Set string param value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @params num Param number to set (Example if the function has 2 params and you need to set the value of the first param num would be 1.)
|
||||
* @param value Value to set string as.
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetParamString(Handle hParams, int num, char[] value);
|
||||
|
||||
/* Get return value (Only use for: int, entity, bool or float return types)
|
||||
*
|
||||
* @param hReturn Handle to return structure
|
||||
*
|
||||
* @error Invalid Handle, invalid type.
|
||||
* @return Returns default value if prehook returns actual value if post hook.
|
||||
*/
|
||||
native any DHookGetReturn(Handle hReturn);
|
||||
|
||||
/* Get return vector value
|
||||
*
|
||||
* @param hReturn Handle to return structure
|
||||
* @param vec Vector buffer to store result in. (In pre hooks will be default value (0.0,0.0,0.0))
|
||||
*
|
||||
* @error Invalid Handle, invalid type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookGetReturnVector(Handle hReturn, float vec[3]);
|
||||
|
||||
/* Get return string value
|
||||
*
|
||||
* @param hReturn Handle to return structure
|
||||
* @param buffer String buffer to store result in. (In pre hooks will be default value "")
|
||||
* @param size String buffer size
|
||||
*
|
||||
* @error Invalid Handle, invalid type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookGetReturnString(Handle hReturn, char[] buffer, int size);
|
||||
|
||||
/* Set return value (Only use for: int, entity, bool or float return types)
|
||||
*
|
||||
* @param hReturn Handle to return structure
|
||||
* @param value Value to set return as
|
||||
*
|
||||
* @error Invalid Handle, invalid type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetReturn(Handle hReturn, any value);
|
||||
|
||||
/* Set return vector value
|
||||
*
|
||||
* @param hReturn Handle to return structure
|
||||
* @param vec Value to set return vector as
|
||||
*
|
||||
* @error Invalid Handle, invalid type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetReturnVector(Handle hReturn, float vec[3]);
|
||||
|
||||
/* Set return string value
|
||||
*
|
||||
* @param hReturn Handle to return structure
|
||||
* @param value Value to set return string as
|
||||
*
|
||||
* @error Invalid Handle, invalid type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetReturnString(Handle hReturn, char[] value);
|
||||
|
||||
//WE SHOULD WRAP THESE AROUND STOCKS FOR NON PTR AS WE SUPPORT BOTH WITH THESE NATIVE'S
|
||||
|
||||
/* Gets an objects variable value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to get.
|
||||
* @param offset Offset within the object to the var to get.
|
||||
* @param type Type of var it is
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
|
||||
* @return Value of the objects var. If EHANDLE type or entity returns entity index.
|
||||
*/
|
||||
native any DHookGetParamObjectPtrVar(Handle hParams, int num, int offset, ObjectValueType type);
|
||||
|
||||
/* Sets an objects variable value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to set.
|
||||
* @param offset Offset within the object to the var to set.
|
||||
* @param type Type of var it is
|
||||
* @param value The value to set the var to.
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetParamObjectPtrVar(Handle hParams, int num, int offset, ObjectValueType type, any value);
|
||||
|
||||
/* Gets an objects vector variable value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to get.
|
||||
* @param offset Offset within the object to the var to get.
|
||||
* @param type Type of var it is
|
||||
* @param buffer Buffer to store the result vector
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookGetParamObjectPtrVarVector(Handle hParams, int num, int offset, ObjectValueType type, float buffer[3]);
|
||||
|
||||
/* Sets an objects vector variable value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to set.
|
||||
* @param offset Offset within the object to the var to set.
|
||||
* @param type Type of var it is
|
||||
* @param value The value to set the vector var to.
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookSetParamObjectPtrVarVector(Handle hParams, int num, int offset, ObjectValueType type, float value[3]);
|
||||
|
||||
/* Gets an objects string variable value
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to get.
|
||||
* @param offset Offset within the object to the var to get.
|
||||
* @param type Type of var it is
|
||||
* @param buffer Buffer to store the result vector
|
||||
* @param size Size of the buffer
|
||||
*
|
||||
* @error Invalid handle. Invalid param number. Invalid param type. Invalid Object type.
|
||||
* @noreturn
|
||||
*/
|
||||
native void DHookGetParamObjectPtrString(Handle hParams, int num, int offset, ObjectValueType type, char[] buffer, int size);
|
||||
|
||||
/* Checks if a pointer param is null
|
||||
*
|
||||
* @param hParams Handle to params structure
|
||||
* @param num Param number to check.
|
||||
*
|
||||
* @error Non pointer param
|
||||
* @return True if null false otherwise.
|
||||
*/
|
||||
native bool DHookIsNullParam(Handle hParams, int num);
|
||||
|
||||
public Extension __ext_dhooks =
|
||||
{
|
||||
name = "dhooks",
|
||||
file = "dhooks.ext",
|
||||
#if defined AUTOLOAD_EXTENSIONS
|
||||
autoload = 1,
|
||||
#else
|
||||
autoload = 0,
|
||||
#endif
|
||||
#if defined REQUIRE_EXTENSIONS
|
||||
required = 1,
|
||||
#else
|
||||
required = 0,
|
||||
#endif
|
||||
};
|
||||
|
||||
#if !defined REQUIRE_EXTENSIONS
|
||||
public void __ext_dhooks_SetNTVOptional()
|
||||
{
|
||||
MarkNativeAsOptional("DHookAddEntityListener");
|
||||
MarkNativeAsOptional("DHookRemoveEntityListener");
|
||||
MarkNativeAsOptional("DHookCreate");
|
||||
MarkNativeAsOptional("DHookAddParam");
|
||||
MarkNativeAsOptional("DHookEntity");
|
||||
MarkNativeAsOptional("DHookGamerules");
|
||||
MarkNativeAsOptional("DHookRaw");
|
||||
MarkNativeAsOptional("DHookRemoveHookID");
|
||||
MarkNativeAsOptional("DHookGetParam");
|
||||
MarkNativeAsOptional("DHookGetParamVector");
|
||||
MarkNativeAsOptional("DHookGetParamString");
|
||||
MarkNativeAsOptional("DHookSetParam");
|
||||
MarkNativeAsOptional("DHookSetParamVector");
|
||||
MarkNativeAsOptional("DHookSetParamString");
|
||||
MarkNativeAsOptional("DHookGetReturn");
|
||||
MarkNativeAsOptional("DHookGetReturnVector");
|
||||
MarkNativeAsOptional("DHookGetReturnString");
|
||||
MarkNativeAsOptional("DHookSetReturn");
|
||||
MarkNativeAsOptional("DHookSetReturnVector");
|
||||
MarkNativeAsOptional("DHookSetReturnString");
|
||||
MarkNativeAsOptional("DHookGetParamObjectPtrVar");
|
||||
MarkNativeAsOptional("DHookSetParamObjectPtrVar");
|
||||
MarkNativeAsOptional("DHookGetParamObjectPtrVarVector");
|
||||
MarkNativeAsOptional("DHookSetParamObjectPtrVarVector");
|
||||
MarkNativeAsOptional("DHookIsNullParam");
|
||||
MarkNativeAsOptional("DHookGetParamObjectPtrString");
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,156 @@
|
||||
/* Oryx AC: collects and analyzes statistics to find some cheaters in CS:S, CS:GO, and TF2 bunnyhop.
|
||||
* Copyright (C) 2018 Nolan O.
|
||||
* Copyright (C) 2018 shavit.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#if defined _oryx_included
|
||||
#endinput
|
||||
#endif
|
||||
#define _oryx_included
|
||||
|
||||
#define ORYX_VERSION "1.3.1"
|
||||
|
||||
/**
|
||||
* List of current detection descriptions:
|
||||
*
|
||||
* "Acute TR formatter"
|
||||
* "+left/right bypasser"
|
||||
* "Prestrafe tool"
|
||||
* "Average strafe too close to 0"
|
||||
* "Too many perfect strafes"
|
||||
* "Movement config"
|
||||
* "Unsynchronised movement"
|
||||
* "Invalid wish velocity"
|
||||
* "Script on scroll"
|
||||
* "Hyperscroll"
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
TRIGGER_LOW, // Reachable by skilled players occasionally. Not always necessary before a med detect.
|
||||
TRIGGER_MEDIUM, // Reachable by skilled players by unlikely chance.
|
||||
TRIGGER_HIGH, // Only theoretically reachable by the aligning of stars by the gods.
|
||||
TRIGGER_HIGH_NOKICK, // This should really only be used for a follow up definitive detection.
|
||||
TRIGGER_DEFINITIVE, // Non-skill-based detection type. 100% sure detection.
|
||||
TRIGGER_TEST // Allows you to develop new detections on live servers with minimal side effects.
|
||||
};
|
||||
|
||||
/**
|
||||
* Called when Oryx gets triggered on a client.
|
||||
*
|
||||
* @param client Client entity index.
|
||||
* @param level Level of detection as defined in the above enum.
|
||||
* @param cheat Short description or name of the cheat being detected. 32 cells char array.
|
||||
* @return Plugin_Continue to do nothing. Plugin_Changed to modify values. Plugin_Handled to abort kicks. Plugin_Stop to completely ignore the trigger.
|
||||
*/
|
||||
forward Action Oryx_OnTrigger(int client, int &level, char[] cheat);
|
||||
|
||||
/**
|
||||
* Call to activate Oryx's trigger procedure (logging, kicking, admin notifications, etc..).
|
||||
*
|
||||
* @param client Client entity index.
|
||||
* @param level Level of detection as defined in the above enum.
|
||||
* @param cheat Short description or name of the cheat being detected.
|
||||
* @return Return value of the Oryx_OnTrigger forward.
|
||||
*/
|
||||
native Action Oryx_Trigger(int client, int level, const char[] cheat);
|
||||
|
||||
/**
|
||||
* Prints a message to admins' chat.
|
||||
*
|
||||
* @param format Formatting rules.
|
||||
* @param any Variable number of format parameters.
|
||||
* @noreturn
|
||||
*/
|
||||
native void Oryx_PrintToAdmins(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Prints a message to admins' console.
|
||||
*
|
||||
* @param format Formatting rules.
|
||||
* @param any Variable number of format parameters.
|
||||
* @noreturn
|
||||
*/
|
||||
native void Oryx_PrintToAdminsConsole(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Logs an entry to Oryx's log file.
|
||||
*
|
||||
* @param format Formatting rules.
|
||||
* @param any Variable number of format parameters.
|
||||
* @noreturn
|
||||
*/
|
||||
native void Oryx_LogMessage(const char[] format, any ...);
|
||||
|
||||
/**
|
||||
* Checks if f1 is inbetween a specified threshold of f12.
|
||||
*
|
||||
* @param f1 First value.
|
||||
* @param f2 Second value.
|
||||
* @param frac Used as a threshold of f2 for f1 to be within.
|
||||
* @return True if the test passed.
|
||||
*/
|
||||
native bool Oryx_WithinThreshold(float f1, float f2, float threshold);
|
||||
|
||||
/**
|
||||
* Checks if the player has permissions to bypass Oryx.
|
||||
* Will return false if `oryx_allow_bypass` is set to 0.
|
||||
* With bhoptimer or bTimes v1.8.3, will return true for styles with the `oryx_bypass` special flag.
|
||||
* For bTimes2, will return true if the player is in edit mode (rewind/fastforward etc).
|
||||
*
|
||||
* @param client Client index.
|
||||
* @return True if the player can bypass the anticheat.
|
||||
*/
|
||||
native bool Oryx_CanBypass(int client);
|
||||
|
||||
/**
|
||||
* A tiny function to veify if the player fits gameplay.
|
||||
*
|
||||
* @param client Client entity index.
|
||||
* @param watrer Check for water level?
|
||||
* @return True if the test passed.
|
||||
*/
|
||||
stock bool IsLegalMoveType(int client, bool water = true)
|
||||
{
|
||||
MoveType iMoveType = GetEntityMoveType(client);
|
||||
|
||||
return (!water || GetEntProp(client, Prop_Data, "m_nWaterLevel") < 2) &&
|
||||
(GetEntityFlags(client) & FL_ATCONTROLS) == 0 &&
|
||||
(iMoveType == MOVETYPE_WALK || iMoveType == MOVETYPE_ISOMETRIC || iMoveType == MOVETYPE_LADDER);
|
||||
}
|
||||
|
||||
public SharedPlugin __pl_oryx =
|
||||
{
|
||||
name = "oryx",
|
||||
file = "oryx.smx",
|
||||
#if defined REQUIRE_PLUGIN
|
||||
required = 1
|
||||
#else
|
||||
required = 0
|
||||
#endif
|
||||
};
|
||||
|
||||
#if !defined REQUIRE_PLUGIN
|
||||
public void __pl_oryx_SetNTVOptional()
|
||||
{
|
||||
MarkNativeAsOptional("Oryx_CanBypass");
|
||||
MarkNativeAsOptional("Oryx_LogMessage");
|
||||
MarkNativeAsOptional("Oryx_PrintToAdmins");
|
||||
MarkNativeAsOptional("Oryx_PrintToAdminsConsole");
|
||||
MarkNativeAsOptional("Oryx_Trigger");
|
||||
MarkNativeAsOptional("Oryx_WithinThreshold");
|
||||
}
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user