Ham Sandwich: различия между версиями
Nikita (обсуждение | вклад) |
Nikita (обсуждение | вклад) (→GetHamReturnStatus) |
||
Строка 104: | Строка 104: | ||
=== GetHamReturnStatus === | === GetHamReturnStatus === | ||
− | + | Проверяет статус определенного события. Полезно в случаях когда на сервере установлено два плагина, работающих с одним событием. | |
native GetHamReturnStatus(); | native GetHamReturnStatus(); | ||
− | + | '''Пример:''' | |
+ | |||
+ | Пример отправляет в чат нанесенный урон. | ||
+ | <pre> | ||
+ | public plugin_init() { | ||
+ | register_plugin(PLUGIN, VERSION, AUTHOR) | ||
+ | RegisterHam(Ham_TakeDamage,"player","damager",0); | ||
+ | } | ||
+ | |||
+ | public damager(victim, inflicator, attacker, Float:damage){ | ||
+ | |||
+ | if(GetHamReturnStatus() != HAM_SUPERCEDE){ | ||
+ | client_print(0,print_chat,"Damage: %.1f health:%d",damage,get_user_health(victim)); | ||
+ | { | ||
+ | } | ||
+ | </pre> | ||
=== GetHamReturnInteger === | === GetHamReturnInteger === |
Версия 16:19, 14 июня 2013
Содержание
- 1 hamsandwich.inc
- 1.1 RegisterHam
- 1.2 RegisterHamFromEntity
- 1.3 DisableHamForward
- 1.4 EnableHamForward
- 1.5 ExecuteHam
- 1.6 ExecuteHamB
- 1.7 GetHamReturnStatus
- 1.8 GetHamReturnInteger
- 1.9 GetHamReturnFloat
- 1.10 GetHamReturnVector
- 1.11 GetHamReturnEntity
- 1.12 GetHamReturnString
- 1.13 GetOrigHamReturnInteger
- 1.14 GetOrigHamReturnFloat
- 1.15 GetOrigHamReturnVector
- 1.16 GetOrigHamReturnEntity
- 1.17 GetOrigHamReturnString
- 1.18 SetHamReturnInteger
- 1.19 SetHamReturnFloat
- 1.20 SetHamReturnVector
- 1.21 SetHamReturnEntity
- 1.22 SetHamReturnString
- 1.23 SetHamParamInteger
- 1.24 SetHamParamFloat
- 1.25 SetHamParamVector
- 1.26 SetHamParamEntity
- 1.27 SetHamParamString
- 1.28 SetHamParamTraceResult
- 1.29 IsHamValid
- 1.30 get_pdata_cbase
- 1.31 set_pdata_cbase
- 1.32 get_pdata_cbase_safe
hamsandwich.inc
RegisterHam
Hooks the virtual table for the specified entity class. Look at the Ham enum for parameter lists.
native HamHook:RegisterHam(Ham:function, const EntityClass[], const Callback[], Post=0);
function | The function to hook |
EntityClass | The entity classname to hook |
callback | The forward to call |
post | Whether or not to forward this in post |
Returns a handle to the forward. Use EnableHamForward/DisableHamForward to toggle the forward on or
Пример:
RegisterHam(Ham_TakeDamage, "player", "player_hurt");
RegisterHamFromEntity
Hooks the virtual table for the specified entity's class.
native HamHook:RegisterHamFromEntity(Ham:function, EntityId, const Callback[], Post=0);
function | The function to hook |
EntityId | The entity classname to hook |
callback | The forward to call |
post | Whether or not to forward this in post |
Returns a handle to the forward. Use EnableHamForward/DisableHamForward to toggle the forward on or off.
Пример:
RegisterHam(Ham_TakeDamage, id, "player_hurt");
DisableHamForward
Stops a ham forward from triggering. Use the return value from RegisterHam as the parameter here!
native DisableHamForward(HamHook:fwd);
fwd | The forward to stop |
EnableHamForward
Starts a ham forward back up. Use the return value from RegisterHam as the parameter here!
native EnableHamForward(HamHook:fwd);
fwd | The forward to re-enable |
ExecuteHam
Executes the virtual function on the entity. Look at the Ham enum for parameter lists.
native ExecuteHam(Ham:function, this, any:...);
function | The function to call. |
id | The id of the entity to execute it on. |
ExecuteHamB
Executes the virtual function on the entity, this will trigger all hooks on that function. Be very careful about recursion! Look at the Ham enum for parameter lists.
native ExecuteHamB(Ham:function, this, any:...);
function | The function to call |
id | The id of the entity to execute it on |
GetHamReturnStatus
Проверяет статус определенного события. Полезно в случаях когда на сервере установлено два плагина, работающих с одним событием.
native GetHamReturnStatus();
Пример:
Пример отправляет в чат нанесенный урон.
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) RegisterHam(Ham_TakeDamage,"player","damager",0); } public damager(victim, inflicator, attacker, Float:damage){ if(GetHamReturnStatus() != HAM_SUPERCEDE){ client_print(0,print_chat,"Damage: %.1f health:%d",damage,get_user_health(victim)); { }
GetHamReturnInteger
Gets the return value of a hook for hooks that return integers or booleans.
native GetHamReturnInteger(&output);
output | The variable to store the value in. |
GetHamReturnFloat
Gets the return value of a hook for hooks that return float.
native GetHamReturnFloat(&Float:output);
output | The variable to store the value in. |
GetHamReturnVector
Gets the return value of a hook for hooks that return Vectors.
native GetHamReturnVector(Float:output[3]);
output | The variable to store the value in. |
GetHamReturnEntity
Gets the return value of a hook for hooks that return entities.
native GetHamReturnEntity(&output);
output | The variable to store the value in. Will be -1 on null. |
GetHamReturnString
Gets the return value of a hook for hooks that return strings.
native GetHamReturnString(output[], size);
output | The buffer to store the string in. |
size | The string size of the buffer. |
GetOrigHamReturnInteger
Gets the original return value of a hook for hooks that return integers or booleans.
native GetOrigHamReturnInteger(&output);
output | The variable to store the value in. |
GetOrigHamReturnFloat
Gets the original return value of a hook for hooks that return floats.
native GetOrigHamReturnFloat(&Float:output);
output | The variable to store the value in. |
GetOrigHamReturnVector
Gets the original return value of a hook for hooks that return Vectors.
native GetOrigHamReturnVector(Float:output[3]);
output | The variable to store the value in. |
GetOrigHamReturnEntity
Gets the original return value of a hook for hooks that return entities.
native GetOrigHamReturnEntity(&output);
output | The variable to store the value in. -1 on null. |
GetOrigHamReturnString
Gets the original return value of a hook for hooks that return strings.
native GetOrigHamReturnString(output[], size);
output | The buffer to store the string in. |
size | The size of the buffer. |
SetHamReturnInteger
Sets the return value of a hook that returns an integer or boolean. This needs to be used in conjunction with HAM_OVERRIDE or HAM_SUPERCEDE.
native SetHamReturnInteger(value);
value | The value to set the return to. |
SetHamReturnFloat
Sets the return value of a hook that returns a float. This needs to be used in conjunction with HAM_OVERRIDE or HAM_SUPERCEDE.
native SetHamReturnFloat(Float:value);
value | The value to set the return to. |
SetHamReturnVector
Sets the return value of a hook that returns a Vector. This needs to be used in conjunction with HAM_OVERRIDE or HAM_SUPERCEDE.
native SetHamReturnVector(const Float:value[3]);
value | The value to set the return to. |
SetHamReturnEntity
Sets the return value of a hook that returns an entity. Set to -1 for null. This needs to be used in conjunction with HAM_OVERRIDE or HAM_SUPERCEDE.
native SetHamReturnEntity(value);
value | The value to set the return to. |
SetHamReturnString
Sets the return value of a hook that returns a string.This needs to be used in conjunction with HAM_OVERRIDE or HAM_SUPERCEDE.
native SetHamReturnString(const value[]);
value | The value to set the return to. |
SetHamParamInteger
Sets a parameter on the fly of the current hook. This has no effect in post hooks. Use this on parameters that are integers.
native SetHamParamInteger(which, value);
which | Which parameter to change. Starts at 1, and works up from the left to right. 1 is always "this". |
value | The value to change it to. |
SetHamParamFloat
Sets a parameter on the fly of the current hook. This has no effect in post hooks. Use this on parameters that are floats.
native SetHamParamFloat(which, Float:value);
which | Which parameter to change. Starts at 1, and works up from the left to right. 1 is always "this". |
value | The value to change it to. |
SetHamParamVector
Sets a parameter on the fly of the current hook. This has no effect in post hooks. Use this on parameters that are Vectors.
native SetHamParamVector(which, const Float:value[3]);
which | Which parameter to change. Starts at 1, and works up from the left to right. 1 is always "this". |
value | The value to change it to. |
SetHamParamEntity
Sets a parameter on the fly of the current hook. This has no effect in post hooks. Use this on parameters that are entities.
native SetHamParamEntity(which, value);
which | Which parameter to change. Starts at 1, and works up from the left to right. 1 is always "this". |
value | The value to change it to. |
SetHamParamString
Sets a parameter on the fly of the current hook. This has no effect in post hooks.Use this on parameters that are strings.
native SetHamParamString(which, const output[]);
which | Which parameter to change. Starts at 1, and works up from the left to right. 1 is always "this". |
value | The value to change it to. |
SetHamParamTraceResult
Sets a parameter on the fly of the current hook. This has no effect in post hooks. Use this on parameters that are trace result handles.
native SetHamParamTraceResult(which, tr_handle);
which | Which parameter to change. Starts at 1, and works up from the left to right. 1 is always "this". |
value | The value to change it to. |
IsHamValid
Returns whether or not the function for the specified Ham is valid.Things that would make it invalid would be bounds (an older module version may not have all of the functions), and the function not being found in the mod's hamdata.ini file.
native bool:IsHamValid(Ham:function);
function |
Return true if the function is valid, false otherwise.
get_pdata_cbase
This is used to compliment fakemeta's {get,set}_pdata_{int,float,string}.This requires the mod to have the pev and base fields set in hamdata.ini. Note this dereferences memory! Improper use of this will crash the server. This will return an index of the corresponding cbase field in private data. Returns -1 on a null entry.
native get_pdata_cbase(id, offset, linuxdiff=5);
id | The entity to examine the private data. |
offset | The windows offset of the data. |
linuxdiff | The linux difference of the data. |
Return the index of the corresponding pdata field. -1 for none set.
set_pdata_cbase
This is used to compliment fakemeta's {get,set}_pdata_{int,float,string}. This requires the mod to have the pev and base fields set in hamdata.ini. This will set the corresponding cbase field in private data with the index. Pass -1 to null the entry.
native set_pdata_cbase(id, offset, value, linuxdiff=5);
id | The entity to examine the private data. |
offset | The windows offset of the data. |
linuxdiff | The linux difference of the data. |
get_pdata_cbase_safe
This is similar to the get_pdata_cbase, however it does not dereference memory. This is many times slower than get_pdata_cbase, and this should only be used for testing and finding of offsets, not actual release quality plugins. This will return an index of the corresponding cbase field in private data. Returns -1 on a null entry. -2 on an invalid entry.
native get_pdata_cbase_safe(id, offset, linuxdiff=5);
id | The entity to examine the private data. |
offset | The windows offset of the data. |
linuxdiff | The linux difference of the data. |
Return the index of the corresponding pdata field, -1 for null, -2 for invalid.