SDK Hooks 1.3
И вот мы снова хаки, Хукера и DukeHacks становятся немного устарела, и мне не нравится, как они были написаны, так что я написал это расширение объединить три из них, и добавить еще несколько свойств. В настоящее время она поддерживает CS: S, DOD: S, HL2DM, INS, L4D и TF2. Поддержка более моды могут быть легко добавлены через файл gamedata, не редактирование требуемый номер. Благодаря CrimsonGT за помощь CTakeDamageInfo взломать, и PRED * для общих C + + вопросы
Хук типы:
PHP Code:
enum SDKHookType
{
SDKHook_EndTouch,
SDKHook_FireBulletsPost,
SDKHook_OnTakeDamage,
SDKHook_OnTakeDamagePost,
SDKHook_PreThink,
SDKHook_PostThink,
SDKHook_SetTransmit,
SDKHook_Spawn,
SDKHook_StartTouch,
SDKHook_Think,
SDKHook_Touch,
SDKHook_TraceAttack,
SDKHook_TraceAttackPost,
SDKHook_WeaponCanSwitchTo,
SDKHook_WeaponCanUse,
SDKHook_WeaponDrop,
SDKHook_WeaponEquip,
SDKHook_WeaponSwitch
}
Хук вызовов:
funcenum SDKHookCB
{
// PreThink
// PostThink
public(client),
// Spawn
// Think
public(entity),
// EndTouch
// StartTouch
// Touch
public(entity, other),
// SetTransmit
Action:public(entity, client),
// WeaponCanSwitchTo
// WeaponCanUse
// WeaponDrop
// WeaponEquip
// WeaponSwitch
Action:public(client, weapon),
// OnTakeDamage
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype),
// OnTakeDamagePost
public(victim, attacker, inflictor, Float:damage, damagetype),
// FireBullets
public(client, shots, String:weaponname[]),
// TraceAttack
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup),
// TraceAttackPost
public(victim, attacker, inflictor, Float:damage, damagetype, ammotype, hitbox, hitgroup)
}
Нападающие:
/**
* @brief When an entity is created
*
* @param entity Entity index
* @param classname Class name
* @noreturn
*/
forward OnEntityCreated(entity, const String:classname[]);
/**
* @brief When an entity is destroyed
*
* @param entity Entity index
* @noreturn
*/
forward OnEntityDestroyed(entity);
/**
* @brief When the game description is retrieved
*
* @param gameDesc Game description
* @noreturn
*/
forward Action:OnGetGameDescription(String:gameDesc[64]);
/**
* @brief When the level is initialized
*
* @param mapName Name of the map
* @param mapEntities Entities of the map
* @noreturn
*/
forward Action:OnLevelInit(const String:mapName[], String:mapEntities[2097152]);
Уроженцы:
PHP Code:
/**
* @brief Hooks an entity
*
* @param entity Entity index
* @param type Type of function to hook
* @param callback Function to call when hook is called
* @noreturn
*/
native SDKHook(entity, SDKHookType:type, SDKHookCB:callback);
/**
* @brief Unhooks an entity
*
* @param entity Entity index
* @param type Type of function to unhook
* @param callback Callback function to unhook
* @noreturn
*/
native SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback);
[spoiler=Изменения]1.3 (кредиты psychonic)
* Добавлены 4 новых просила hooktypes (PreThinkPost, PostThinkPost, ThinkPost и ShouldCollide).
* Исправлена проблема с SDK функций, подключили несколько раз, когда несколько крючков одного и того же типа сделал (спасибо Сэмми Rock!, Что для ловли).
* SDK Крючки больше не будет загружать и без подписи EntityFactoryDictionary и UpdateOnRemove смещение в настоящее sdkhooks.games.txt.
* SDKHook родной теперь ошибки при использовании hooktype не поддерживается (не в gamedata) для текущего мод.
* Добавлена новая родной SDKHookEx это не ошибка неудачной крючок, но возвращает Ьоо успеха.
* Исправлена ошибка, WeaponCanSwitchTo вызовом WeaponCanUse вперед (спасибо Фигуры для ловли этого).
* Добавлена отладки сервера команду "sdkhooks_listhooks" чтобы получить список всех текущих бухгалтерских книг.
* Обновленный gamedata добавить ShouldCollide для всех поддерживаемых игр.
* Обновленный gamedata удалить OnTakeDamage для L4D (2), поскольку она не работает должным образом.
1.2 (кредиты psychonic)
* Добавлены два новых типа крючком:
- SDKHook_WeaponCanSwitchTo
- SDKHook_WeaponCanUse
* Добавлены некоторые проверки ошибок лица значения индекса прошло с плагинами.
* Исправлена ошибка, клиенты не освобождена при отключении.
* Исправлена ошибка, крючки из плагина не удалены, когда плагин выгружается.
* Исправлен указатель нуль передается в некоторых случаях на SDKHook_FireBulletsPost.
* Исправлены некоторые незначительные несоответствия между включать и расширения.
* Исправлена ошибка, Makefile вызывает Linux версии требовать GLIBC 2,4 (rhelgeby).
1,1 (кредиты psychonic)
* Добавлена OnGetGameDescription вперед
* Добавлена FireBullets, OnTakeDamagePost, TraceAttack TraceAttackPost и крючки
* Добавлена поддержка империй Mod, Fortress Forever, скрытых: Source, "Звездные врата: Последняя битва, Zombie Zombie Мастер и паника: Источник
1,0
* Первоначальный релизх[/spoiler]
Powered by PROMT
[spoiler=На английском]So here we are again Hacks, Hooker and DukeHacks are getting a bit outdated, and I didn't like how they were written, so I wrote this extension to combine the three of them, and to add some more goodies. Currently it supports CS:S, DOD:S, HL2DM, INS, L4D & TF2. Support for more mods can easily be added through the gamedata file, no editing of the extension required. Thanks to CrimsonGT for helping out with the CTakeDamageInfo hack, and pRED* for general C++ questions
Hook Types:
PHP Code:
enum SDKHookType
{
SDKHook_EndTouch,
SDKHook_FireBulletsPost,
SDKHook_OnTakeDamage,
SDKHook_OnTakeDamagePost,
SDKHook_PreThink,
SDKHook_PostThink,
SDKHook_SetTransmit,
SDKHook_Spawn,
SDKHook_StartTouch,
SDKHook_Think,
SDKHook_Touch,
SDKHook_TraceAttack,
SDKHook_TraceAttackPost,
SDKHook_WeaponCanSwitchTo,
SDKHook_WeaponCanUse,
SDKHook_WeaponDrop,
SDKHook_WeaponEquip,
SDKHook_WeaponSwitch
}
Hook Callbacks:
PHP Code:
funcenum SDKHookCB
{
// PreThink
// PostThink
public(client),
// Spawn
// Think
public(entity),
// EndTouch
// StartTouch
// Touch
public(entity, other),
// SetTransmit
Action:public(entity, client),
// WeaponCanSwitchTo
// WeaponCanUse
// WeaponDrop
// WeaponEquip
// WeaponSwitch
Action:public(client, weapon),
// OnTakeDamage
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype),
// OnTakeDamagePost
public(victim, attacker, inflictor, Float:damage, damagetype),
// FireBullets
public(client, shots, String:weaponname[]),
// TraceAttack
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup),
// TraceAttackPost
public(victim, attacker, inflictor, Float:damage, damagetype, ammotype, hitbox, hitgroup)
}
Forwards:
PHP Code:
/**
* @brief When an entity is created
*
* @param entity Entity index
* @param classname Class name
* @noreturn
*/
forward OnEntityCreated(entity, const String:classname[]);
/**
* @brief When an entity is destroyed
*
* @param entity Entity index
* @noreturn
*/
forward OnEntityDestroyed(entity);
/**
* @brief When the game description is retrieved
*
* @param gameDesc Game description
* @noreturn
*/
forward Action:OnGetGameDescription(String:gameDesc[64]);
/**
* @brief When the level is initialized
*
* @param mapName Name of the map
* @param mapEntities Entities of the map
* @noreturn
*/
forward Action:OnLevelInit(const String:mapName[], String:mapEntities[2097152]
Natives:
PHP Code:
/**
* @brief Hooks an entity
*
* @param entity Entity index
* @param type Type of function to hook
* @param callback Function to call when hook is called
* @noreturn
*/
native SDKHook(entity, SDKHookType:type, SDKHookCB:callback);
/**
* @brief Unhooks an entity
*
* @param entity Entity index
* @param type Type of function to unhook
* @param callback Callback function to unhook
* @noreturn
*/
native SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback);
Changelog
* 1.3 (credits to psychonic)
o Added four new requested hooktypes (PreThinkPost, PostThinkPost, ThinkPost, and ShouldCollide).
o Fixed issue with sdk functions being hooked multiple times when multiple hooks of the same type are made (thanks to Sammy Rock! for catching that).
o SDK Hooks will no longer load without having both the EntityFactoryDictionary signature and UpdateOnRemove offset present in sdkhooks.games.txt.
o SDKHook native now errors when using a hooktype not supported (not in gamedata) for current mod.
o Added new SDKHookEx native that does not error on unsuccessful hook but returns a success bool.
o Fixed WeaponCanSwitchTo calling the WeaponCanUse forward (thanks to Greyscale for catching that).
o Added debug server command "sdkhooks_listhooks" to list all current hooks.
o Updated gamedata to add ShouldCollide for all supported games.
o Updated gamedata to remove OnTakeDamage for L4D(2) as it does not function properly.
* 1.2 (credits to psychonic)
o Added two new hook types:
- SDKHook_WeaponCanSwitchTo
- SDKHook_WeaponCanUse
o Added some error checking on entity index values passed from plugins.
o Fixed clients not being unhooked when disconnecting.
o Fixed hooks from a plugin not being removed when plugin unloads.
o Fixed null pointer being passed in some cases on SDKHook_FireBulletsPost.
o Fixed some minor inconsistencies between include and extension.
o Fixed Makefile causing linux version to require GLIBC 2.4 (rhelgeby).
* 1.1 (credits to psychonic)
o Added OnGetGameDescription forward
o Added FireBullets, OnTakeDamagePost, TraceAttack & TraceAttackPost hooks
o Added support for Empires Mod, Fortress Forever, The Hidden: Source, Stargate: The Last Stand, Zombie Master & Zombie Panic: Source
* 1.0
o Initial release
[/spoiler]
SDKHooks 1.3 (EP1 [CS:S, HL2DM, INS, etc.],Для SM 1.3.x)
SDKHooks 1.3 (EP1 [CS:S, HL2DM, INS, etc.], Для SM 1.2.x)