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)