|
skamonkey@3767
|
1 |
/** |
|
skamonkey@3767
|
2 |
* vim: set ts=4 : |
|
skamonkey@3767
|
3 |
* ============================================================================= |
|
skamonkey@3767
|
4 |
* SourceMod (C)2009-2013 AlliedModders LLC. All rights reserved. |
|
skamonkey@3767
|
5 |
* ============================================================================= |
|
skamonkey@3767
|
6 |
* |
|
skamonkey@3767
|
7 |
* This file is part of the SourceMod/SourcePawn SDK. |
|
skamonkey@3767
|
8 |
* |
|
skamonkey@3767
|
9 |
* This program is free software; you can redistribute it and/or modify it under |
|
skamonkey@3767
|
10 |
* the terms of the GNU General Public License, version 3.0, as published by the |
|
skamonkey@3767
|
11 |
* Free Software Foundation. |
|
skamonkey@3767
|
12 |
* |
|
skamonkey@3767
|
13 |
* This program is distributed in the hope that it will be useful, but WITHOUT |
|
skamonkey@3767
|
14 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
|
skamonkey@3767
|
15 |
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
|
skamonkey@3767
|
16 |
* details. |
|
skamonkey@3767
|
17 |
* |
|
skamonkey@3767
|
18 |
* You should have received a copy of the GNU General Public License along with |
|
skamonkey@3767
|
19 |
* this program. If not, see <http://www.gnu.org/licenses/>. |
|
skamonkey@3767
|
20 |
* |
|
skamonkey@3767
|
21 |
* As a special exception, AlliedModders LLC gives you permission to link the |
|
skamonkey@3767
|
22 |
* code of this program (as well as its derivative works) to "Half-Life 2," the |
|
skamonkey@3767
|
23 |
* "Source Engine," the "SourcePawn JIT," and any Game MODs that run on software |
|
skamonkey@3767
|
24 |
* by the Valve Corporation. You must obey the GNU General Public License in |
|
skamonkey@3767
|
25 |
* all respects for all other code used. Additionally, AlliedModders LLC grants |
|
skamonkey@3767
|
26 |
* this exception to all derivative works. AlliedModders LLC defines further |
|
skamonkey@3767
|
27 |
* exceptions, found in LICENSE.txt (as of this writing, version JULY-31-2007), |
|
skamonkey@3767
|
28 |
* or <http://www.sourcemod.net/license.php>. |
|
skamonkey@3767
|
29 |
*/ |
|
skamonkey@3767
|
30 |
|
|
skamonkey@3767
|
31 |
#if defined _sdkhooks_included |
|
skamonkey@3767
|
32 |
#endinput |
|
skamonkey@3767
|
33 |
#endif |
|
skamonkey@3767
|
34 |
#define _sdkhooks_included |
|
skamonkey@3767
|
35 |
|
|
skamonkey@3767
|
36 |
// this is obviously _not_ a robust check, but it will solve most conflict and is clean |
|
skamonkey@3767
|
37 |
#if !defined DMG_GENERIC |
|
skamonkey@3767
|
38 |
#define DMG_GENERIC 0 // generic damage was done |
|
skamonkey@3767
|
39 |
#define DMG_CRUSH (1 << 0) // crushed by falling or moving object. |
|
skamonkey@3767
|
40 |
// NOTE: It's assumed crush damage is occurring as a result of physics collision, so no extra physics force is generated by crush damage. |
|
skamonkey@3767
|
41 |
// DON'T use DMG_CRUSH when damaging entities unless it's the result of a physics collision. You probably want DMG_CLUB instead. |
|
skamonkey@3767
|
42 |
#define DMG_BULLET (1 << 1) // shot |
|
skamonkey@3767
|
43 |
#define DMG_SLASH (1 << 2) // cut, clawed, stabbed |
|
skamonkey@3767
|
44 |
#define DMG_BURN (1 << 3) // heat burned |
|
skamonkey@3767
|
45 |
#define DMG_VEHICLE (1 << 4) // hit by a vehicle |
|
skamonkey@3767
|
46 |
#define DMG_FALL (1 << 5) // fell too far |
|
skamonkey@3767
|
47 |
#define DMG_BLAST (1 << 6) // explosive blast damage |
|
skamonkey@3767
|
48 |
#define DMG_CLUB (1 << 7) // crowbar, punch, headbutt |
|
skamonkey@3767
|
49 |
#define DMG_SHOCK (1 << 8) // electric shock |
|
skamonkey@3767
|
50 |
#define DMG_SONIC (1 << 9) // sound pulse shockwave |
|
skamonkey@3767
|
51 |
#define DMG_ENERGYBEAM (1 << 10) // laser or other high energy beam |
|
skamonkey@3767
|
52 |
#define DMG_PREVENT_PHYSICS_FORCE (1 << 11) // Prevent a physics force |
|
skamonkey@3767
|
53 |
#define DMG_NEVERGIB (1 << 12) // with this bit OR'd in, no damage type will be able to gib victims upon death |
|
skamonkey@3767
|
54 |
#define DMG_ALWAYSGIB (1 << 13) // with this bit OR'd in, any damage type can be made to gib victims upon death. |
|
skamonkey@3767
|
55 |
#define DMG_DROWN (1 << 14) // Drowning |
|
skamonkey@3767
|
56 |
#define DMG_PARALYZE (1 << 15) // slows affected creature down |
|
skamonkey@3767
|
57 |
#define DMG_NERVEGAS (1 << 16) // nerve toxins, very bad |
|
skamonkey@3767
|
58 |
#define DMG_POISON (1 << 17) // blood poisoning - heals over time like drowning damage |
|
skamonkey@3767
|
59 |
#define DMG_RADIATION (1 << 18) // radiation exposure |
|
skamonkey@3767
|
60 |
#define DMG_DROWNRECOVER (1 << 19) // drowning recovery |
|
skamonkey@3767
|
61 |
#define DMG_ACID (1 << 20) // toxic chemicals or acid burns |
|
skamonkey@3767
|
62 |
#define DMG_SLOWBURN (1 << 21) // in an oven |
|
skamonkey@3767
|
63 |
#define DMG_REMOVENORAGDOLL (1 << 22) // with this bit OR'd in, no ragdoll will be created, and the target will be quietly removed. |
|
skamonkey@3767
|
64 |
// use this to kill an entity that you've already got a server-side ragdoll for |
|
skamonkey@3767
|
65 |
#define DMG_PHYSGUN (1 << 23) // Hit by manipulator. Usually doesn't do any damage. |
|
skamonkey@3767
|
66 |
#define DMG_PLASMA (1 << 24) // Shot by Cremator |
|
skamonkey@3767
|
67 |
#define DMG_AIRBOAT (1 << 25) // Hit by the airboat's gun |
|
skamonkey@3767
|
68 |
#define DMG_DISSOLVE (1 << 26) // Dissolving! |
|
skamonkey@3767
|
69 |
#define DMG_BLAST_SURFACE (1 << 27) // A blast on the surface of water that cannot harm things underwater |
|
skamonkey@3767
|
70 |
#define DMG_DIRECT (1 << 28) |
|
skamonkey@3767
|
71 |
#define DMG_BUCKSHOT (1 << 29) // not quite a bullet. Little, rounder, different. |
|
skamonkey@3767
|
72 |
#endif |
|
skamonkey@3767
|
73 |
|
|
skamonkey@3767
|
74 |
#if !defined DMG_CRIT |
|
skamonkey@3767
|
75 |
// TF2 crits and minicrits |
|
skamonkey@3767
|
76 |
#define DMG_CRIT DMG_ACID |
|
skamonkey@3767
|
77 |
#endif |
|
skamonkey@3767
|
78 |
|
|
skamonkey@3767
|
79 |
enum SDKHookType |
|
skamonkey@3767
|
80 |
{ |
|
skamonkey@3767
|
81 |
SDKHook_EndTouch, |
|
skamonkey@3767
|
82 |
SDKHook_FireBulletsPost, |
|
skamonkey@3767
|
83 |
SDKHook_OnTakeDamage, |
|
skamonkey@3767
|
84 |
SDKHook_OnTakeDamagePost, |
|
skamonkey@3767
|
85 |
SDKHook_PreThink, |
|
skamonkey@3767
|
86 |
SDKHook_PostThink, |
|
skamonkey@3767
|
87 |
SDKHook_SetTransmit, |
|
skamonkey@3767
|
88 |
SDKHook_Spawn, |
|
skamonkey@3767
|
89 |
SDKHook_StartTouch, |
|
skamonkey@3767
|
90 |
SDKHook_Think, |
|
skamonkey@3767
|
91 |
SDKHook_Touch, |
|
skamonkey@3767
|
92 |
SDKHook_TraceAttack, |
|
skamonkey@3767
|
93 |
SDKHook_TraceAttackPost, |
|
skamonkey@3767
|
94 |
SDKHook_WeaponCanSwitchTo, |
|
skamonkey@3767
|
95 |
SDKHook_WeaponCanUse, |
|
skamonkey@3767
|
96 |
SDKHook_WeaponDrop, |
|
skamonkey@3767
|
97 |
SDKHook_WeaponEquip, |
|
skamonkey@3767
|
98 |
SDKHook_WeaponSwitch, |
|
skamonkey@3767
|
99 |
SDKHook_ShouldCollide, |
|
skamonkey@3767
|
100 |
SDKHook_PreThinkPost, |
|
skamonkey@3767
|
101 |
SDKHook_PostThinkPost, |
|
skamonkey@3767
|
102 |
SDKHook_ThinkPost, |
|
skamonkey@3767
|
103 |
SDKHook_EndTouchPost, |
|
skamonkey@3767
|
104 |
SDKHook_GroundEntChangedPost, |
|
skamonkey@3767
|
105 |
SDKHook_SpawnPost, |
|
skamonkey@3767
|
106 |
SDKHook_StartTouchPost, |
|
skamonkey@3767
|
107 |
SDKHook_TouchPost, |
|
skamonkey@3767
|
108 |
SDKHook_VPhysicsUpdate, |
|
skamonkey@3767
|
109 |
SDKHook_VPhysicsUpdatePost, |
|
skamonkey@3767
|
110 |
SDKHook_WeaponCanSwitchToPost, |
|
skamonkey@3767
|
111 |
SDKHook_WeaponCanUsePost, |
|
skamonkey@3767
|
112 |
SDKHook_WeaponDropPost, |
|
skamonkey@3767
|
113 |
SDKHook_WeaponEquipPost, |
|
skamonkey@3767
|
114 |
SDKHook_WeaponSwitchPost, |
|
skamonkey@3767
|
115 |
SDKHook_Use, |
|
skamonkey@3767
|
116 |
SDKHook_UsePost, |
|
skamonkey@3767
|
117 |
SDKHook_Reload, |
|
skamonkey@3767
|
118 |
SDKHook_ReloadPost, |
|
skamonkey@3767
|
119 |
SDKHook_GetMaxHealth, // ep2v and later |
|
skamonkey@3767
|
120 |
}; |
|
skamonkey@3767
|
121 |
|
|
skamonkey@3767
|
122 |
/* |
|
skamonkey@3767
|
123 |
Alphabetized for easy readability |
|
skamonkey@3767
|
124 |
|
|
skamonkey@3767
|
125 |
SDKHook_EndTouch, |
|
skamonkey@3767
|
126 |
SDKHook_EndTouchPost, |
|
skamonkey@3767
|
127 |
|
|
skamonkey@3767
|
128 |
SDKHook_FireBulletsPost, |
|
skamonkey@3767
|
129 |
|
|
skamonkey@3767
|
130 |
SDKHook_GetMaxHealth, (ep2v and later) |
|
skamonkey@3767
|
131 |
|
|
skamonkey@3767
|
132 |
SDKHook_GroundEntChangedPost, |
|
skamonkey@3767
|
133 |
|
|
skamonkey@3767
|
134 |
SDKHook_OnTakeDamage, |
|
skamonkey@3767
|
135 |
SDKHook_OnTakeDamagePost, |
|
skamonkey@3767
|
136 |
|
|
skamonkey@3767
|
137 |
SDKHook_PreThink, |
|
skamonkey@3767
|
138 |
SDKHook_PreThinkPost, |
|
skamonkey@3767
|
139 |
|
|
skamonkey@3767
|
140 |
SDKHook_PostThink, |
|
skamonkey@3767
|
141 |
SDKHook_PostThinkPost, |
|
skamonkey@3767
|
142 |
|
|
skamonkey@3767
|
143 |
SDKHook_Reload, |
|
skamonkey@3767
|
144 |
SDKHook_ReloadPost, |
|
skamonkey@3767
|
145 |
|
|
skamonkey@3767
|
146 |
SDKHook_SetTransmit, |
|
skamonkey@3767
|
147 |
|
|
skamonkey@3767
|
148 |
SDKHook_ShouldCollide, |
|
skamonkey@3767
|
149 |
|
|
skamonkey@3767
|
150 |
SDKHook_Spawn, |
|
skamonkey@3767
|
151 |
SDKHook_SpawnPost, |
|
skamonkey@3767
|
152 |
|
|
skamonkey@3767
|
153 |
SDKHook_StartTouch, |
|
skamonkey@3767
|
154 |
SDKHook_StartTouchPost, |
|
skamonkey@3767
|
155 |
|
|
skamonkey@3767
|
156 |
SDKHook_Think, |
|
skamonkey@3767
|
157 |
SDKHook_ThinkPost, |
|
skamonkey@3767
|
158 |
|
|
skamonkey@3767
|
159 |
SDKHook_Touch, |
|
skamonkey@3767
|
160 |
SDKHook_TouchPost, |
|
skamonkey@3767
|
161 |
|
|
skamonkey@3767
|
162 |
SDKHook_TraceAttack, |
|
skamonkey@3767
|
163 |
SDKHook_TraceAttackPost, |
|
skamonkey@3767
|
164 |
|
|
skamonkey@3767
|
165 |
SDKHook_Use, |
|
skamonkey@3767
|
166 |
SDKHook_UsePost, |
|
skamonkey@3767
|
167 |
|
|
skamonkey@3767
|
168 |
SDKHook_VPhysicsUpdate, |
|
skamonkey@3767
|
169 |
SDKHook_VPhysicsUpdatePost, |
|
skamonkey@3767
|
170 |
|
|
skamonkey@3767
|
171 |
SDKHook_WeaponCanSwitchTo, |
|
skamonkey@3767
|
172 |
SDKHook_WeaponCanSwitchToPost, |
|
skamonkey@3767
|
173 |
|
|
skamonkey@3767
|
174 |
SDKHook_WeaponCanUse, |
|
skamonkey@3767
|
175 |
SDKHook_WeaponCanUsePost, |
|
skamonkey@3767
|
176 |
|
|
skamonkey@3767
|
177 |
SDKHook_WeaponDrop, |
|
skamonkey@3767
|
178 |
SDKHook_WeaponDropPost, |
|
skamonkey@3767
|
179 |
|
|
skamonkey@3767
|
180 |
SDKHook_WeaponEquip, |
|
skamonkey@3767
|
181 |
SDKHook_WeaponEquipPost, |
|
skamonkey@3767
|
182 |
|
|
skamonkey@3767
|
183 |
SDKHook_WeaponSwitch, |
|
skamonkey@3767
|
184 |
SDKHook_WeaponSwitchPost |
|
skamonkey@3767
|
185 |
*/ |
|
skamonkey@3767
|
186 |
|
|
skamonkey@3767
|
187 |
enum UseType |
|
skamonkey@3767
|
188 |
{ |
|
skamonkey@3767
|
189 |
Use_Off, |
|
skamonkey@3767
|
190 |
Use_On, |
|
skamonkey@3767
|
191 |
Use_Set, |
|
skamonkey@3767
|
192 |
Use_Toggle |
|
skamonkey@3767
|
193 |
}; |
|
skamonkey@3767
|
194 |
|
|
skamonkey@3767
|
195 |
funcenum SDKHookCB |
|
skamonkey@3767
|
196 |
{ |
|
skamonkey@3767
|
197 |
// PreThink/Post |
|
skamonkey@3767
|
198 |
// PostThink/Post |
|
skamonkey@3767
|
199 |
public(client), |
|
skamonkey@3767
|
200 |
|
|
skamonkey@3767
|
201 |
// Spawn |
|
skamonkey@3767
|
202 |
Action:public(entity), |
|
skamonkey@3767
|
203 |
|
|
skamonkey@3767
|
204 |
// GroundEntChanged |
|
skamonkey@3767
|
205 |
// SpawnPost |
|
skamonkey@3767
|
206 |
// Think/Post |
|
skamonkey@3767
|
207 |
// VPhysicsUpdate/Post |
|
skamonkey@3767
|
208 |
public(entity), |
|
skamonkey@3767
|
209 |
|
|
skamonkey@3767
|
210 |
// EndTouch |
|
skamonkey@3767
|
211 |
// StartTouch |
|
skamonkey@3767
|
212 |
// Touch |
|
skamonkey@3767
|
213 |
Action:public(entity, other), |
|
skamonkey@3767
|
214 |
|
|
skamonkey@3767
|
215 |
// EndTouchPost |
|
skamonkey@3767
|
216 |
// StartTouchPost |
|
skamonkey@3767
|
217 |
// TouchPost |
|
skamonkey@3767
|
218 |
public(entity, other), |
|
skamonkey@3767
|
219 |
|
|
skamonkey@3767
|
220 |
// SetTransmit |
|
skamonkey@3767
|
221 |
Action:public(entity, client), |
|
skamonkey@3767
|
222 |
|
|
skamonkey@3767
|
223 |
// WeaponCanSwitchTo |
|
skamonkey@3767
|
224 |
// WeaponCanUse |
|
skamonkey@3767
|
225 |
// WeaponDrop |
|
skamonkey@3767
|
226 |
// WeaponEquip |
|
skamonkey@3767
|
227 |
// WeaponSwitch |
|
skamonkey@3767
|
228 |
Action:public(client, weapon), |
|
skamonkey@3767
|
229 |
|
|
skamonkey@3767
|
230 |
// WeaponCanSwitchToPost |
|
skamonkey@3767
|
231 |
// WeaponCanUsePost |
|
skamonkey@3767
|
232 |
// WeaponDropPost |
|
skamonkey@3767
|
233 |
// WeaponEquipPost |
|
skamonkey@3767
|
234 |
// WeaponSwitchPost |
|
skamonkey@3767
|
235 |
public(client, weapon), |
|
skamonkey@3767
|
236 |
|
|
skamonkey@3767
|
237 |
// GetMaxHealth (ep2v and later) |
|
skamonkey@3767
|
238 |
Action:public(entity, &maxhealth), |
|
skamonkey@3767
|
239 |
|
|
skamonkey@3767
|
240 |
// OnTakeDamage |
|
skamonkey@3767
|
241 |
// Note: The weapon parameter is not used by all games and damage sources. |
|
skamonkey@3767
|
242 |
// Note: Force application is dependent on game and damage type(s) |
|
skamonkey@3767
|
243 |
// SDKHooks 1.0+ |
|
skamonkey@3767
|
244 |
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype), |
|
skamonkey@3767
|
245 |
// SDKHooks 2.0+ |
|
skamonkey@3767
|
246 |
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, Float:damageForce[3], Float:damagePosition[3]), |
|
skamonkey@3767
|
247 |
// SDKHooks 2.1+ (can check for support at runtime using GetFeatureStatus on SDKHook_DmgCustomInOTD capability. |
|
skamonkey@3767
|
248 |
// DON'T attempt to access 'damagecustom' var if feature status != available |
|
skamonkey@3767
|
249 |
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &weapon, |
|
skamonkey@3767
|
250 |
Float:damageForce[3], Float:damagePosition[3], damagecustom), |
|
skamonkey@3767
|
251 |
|
|
skamonkey@3767
|
252 |
// OnTakeDamagePost |
|
skamonkey@3767
|
253 |
public(victim, attacker, inflictor, Float:damage, damagetype), |
|
skamonkey@3767
|
254 |
public(victim, attacker, inflictor, Float:damage, damagetype, weapon, const Float:damageForce[3], const Float:damagePosition[3]), |
|
skamonkey@3767
|
255 |
|
|
skamonkey@3767
|
256 |
// FireBulletsPost |
|
skamonkey@3767
|
257 |
public(client, shots, const String:weaponname[]), |
|
skamonkey@3767
|
258 |
|
|
skamonkey@3767
|
259 |
// TraceAttack |
|
skamonkey@3767
|
260 |
Action:public(victim, &attacker, &inflictor, &Float:damage, &damagetype, &ammotype, hitbox, hitgroup), |
|
skamonkey@3767
|
261 |
|
|
skamonkey@3767
|
262 |
// TraceAttackPost |
|
skamonkey@3767
|
263 |
public(victim, attacker, inflictor, Float:damage, damagetype, ammotype, hitbox, hitgroup), |
|
skamonkey@3767
|
264 |
|
|
skamonkey@3767
|
265 |
// ShouldCollide |
|
skamonkey@3767
|
266 |
bool:public(entity, collisiongroup, contentsmask, bool:originalResult), |
|
skamonkey@3767
|
267 |
|
|
skamonkey@3767
|
268 |
// Use |
|
skamonkey@3767
|
269 |
Action:public(entity, activator, caller, UseType:type, Float:value), |
|
skamonkey@3767
|
270 |
|
|
skamonkey@3767
|
271 |
// UsePost |
|
skamonkey@3767
|
272 |
public(entity, activator, caller, UseType:type, Float:value), |
|
skamonkey@3767
|
273 |
|
|
skamonkey@3767
|
274 |
// Reload |
|
skamonkey@3767
|
275 |
Action:public(weapon), |
|
skamonkey@3767
|
276 |
|
|
skamonkey@3767
|
277 |
// Reload post |
|
skamonkey@3767
|
278 |
public(weapon, bool:bSuccessful) |
|
skamonkey@3767
|
279 |
}; |
|
skamonkey@3767
|
280 |
|
|
skamonkey@3767
|
281 |
|
|
skamonkey@3767
|
282 |
/** |
|
skamonkey@3767
|
283 |
* @brief When an entity is created |
|
skamonkey@3767
|
284 |
* |
|
skamonkey@3767
|
285 |
* @param entity Entity index |
|
skamonkey@3767
|
286 |
* @param classname Class name |
|
skamonkey@3767
|
287 |
* @noreturn |
|
skamonkey@3767
|
288 |
*/ |
|
skamonkey@3767
|
289 |
forward OnEntityCreated(entity, const String:classname[]); |
|
skamonkey@3767
|
290 |
|
|
skamonkey@3767
|
291 |
/** |
|
skamonkey@3767
|
292 |
* @brief When an entity is destroyed |
|
skamonkey@3767
|
293 |
* |
|
skamonkey@3767
|
294 |
* @param entity Entity index |
|
skamonkey@3767
|
295 |
* @noreturn |
|
skamonkey@3767
|
296 |
*/ |
|
skamonkey@3767
|
297 |
forward OnEntityDestroyed(entity); |
|
skamonkey@3767
|
298 |
|
|
skamonkey@3767
|
299 |
/** |
|
skamonkey@3767
|
300 |
* @brief When the game description is retrieved |
|
skamonkey@3767
|
301 |
* |
|
skamonkey@3767
|
302 |
* @note Not supported on ep2v. |
|
skamonkey@3767
|
303 |
* |
|
skamonkey@3767
|
304 |
* @param gameDesc Game description |
|
skamonkey@3767
|
305 |
* @noreturn |
|
skamonkey@3767
|
306 |
*/ |
|
skamonkey@3767
|
307 |
forward Action:OnGetGameDescription(String:gameDesc[64]); |
|
skamonkey@3767
|
308 |
|
|
skamonkey@3767
|
309 |
/** |
|
skamonkey@3767
|
310 |
* @brief When the level is initialized |
|
skamonkey@3767
|
311 |
* |
|
skamonkey@3767
|
312 |
* @param mapName Name of the map |
|
skamonkey@3767
|
313 |
* @param mapEntities Entities of the map |
|
skamonkey@3767
|
314 |
* @noreturn |
|
skamonkey@3767
|
315 |
*/ |
|
skamonkey@3767
|
316 |
forward Action:OnLevelInit(const String:mapName[], String:mapEntities[2097152]); |
|
skamonkey@3767
|
317 |
|
|
skamonkey@3767
|
318 |
/** |
|
skamonkey@3767
|
319 |
* @brief Hooks an entity |
|
skamonkey@3767
|
320 |
* |
|
skamonkey@3767
|
321 |
* @param entity Entity index |
|
skamonkey@3767
|
322 |
* @param type Type of function to hook |
|
skamonkey@3767
|
323 |
* @param callback Function to call when hook is called |
|
skamonkey@3767
|
324 |
* @noreturn |
|
skamonkey@3767
|
325 |
*/ |
|
skamonkey@3767
|
326 |
native SDKHook(entity, SDKHookType:type, SDKHookCB:callback); |
|
skamonkey@3767
|
327 |
|
|
skamonkey@3767
|
328 |
/** |
|
skamonkey@3767
|
329 |
* @brief Hooks an entity |
|
skamonkey@3767
|
330 |
* |
|
skamonkey@3767
|
331 |
* @param entity Entity index |
|
skamonkey@3767
|
332 |
* @param type Type of function to hook |
|
skamonkey@3767
|
333 |
* @param callback Function to call when hook is called |
|
skamonkey@3767
|
334 |
* @return bool Hook Successful |
|
skamonkey@3767
|
335 |
*/ |
|
skamonkey@3767
|
336 |
native bool:SDKHookEx(entity, SDKHookType:type, SDKHookCB:callback); |
|
skamonkey@3767
|
337 |
|
|
skamonkey@3767
|
338 |
/** |
|
skamonkey@3767
|
339 |
* @brief Unhooks an entity |
|
skamonkey@3767
|
340 |
* |
|
skamonkey@3767
|
341 |
* @param entity Entity index |
|
skamonkey@3767
|
342 |
* @param type Type of function to unhook |
|
skamonkey@3767
|
343 |
* @param callback Callback function to unhook |
|
skamonkey@3767
|
344 |
* @noreturn |
|
skamonkey@3767
|
345 |
*/ |
|
skamonkey@3767
|
346 |
native SDKUnhook(entity, SDKHookType:type, SDKHookCB:callback); |
|
skamonkey@3767
|
347 |
|
|
skamonkey@3767
|
348 |
/** |
|
skamonkey@3767
|
349 |
* @brief Applies damage to an entity |
|
skamonkey@3767
|
350 |
* |
|
skamonkey@3767
|
351 |
* @note Force application is dependent on game and damage type(s) |
|
skamonkey@3767
|
352 |
* |
|
skamonkey@3767
|
353 |
* @param entity Entity index taking damage |
|
skamonkey@3767
|
354 |
* @param inflictor Inflictor entity index |
|
skamonkey@3767
|
355 |
* @param attacker Attacker entity index |
|
skamonkey@3767
|
356 |
* @param damage Amount of damage |
|
skamonkey@3767
|
357 |
* @param damageType Bitfield of damage types |
|
skamonkey@3767
|
358 |
* @param weapon Weapon index (orangebox and later) or -1 for unspecified |
|
skamonkey@3767
|
359 |
* @param damageForce Velocity of damage force |
|
skamonkey@3767
|
360 |
* @param damagePosition Origin of damage |
|
skamonkey@3767
|
361 |
* @noreturn |
|
skamonkey@3767
|
362 |
*/ |
|
skamonkey@3767
|
363 |
native SDKHooks_TakeDamage(entity, inflictor, attacker, Float:damage, damageType=DMG_GENERIC, weapon=-1, const Float:damageForce[3]=NULL_VECTOR, const Float:damagePosition[3]=NULL_VECTOR); |
|
skamonkey@3767
|
364 |
|
|
skamonkey@3767
|
365 |
/** |
|
skamonkey@3767
|
366 |
* @brief Forces a client to drop the specified weapon |
|
skamonkey@3767
|
367 |
* |
|
skamonkey@3767
|
368 |
* @param client Client index. |
|
skamonkey@3767
|
369 |
* @param weapon Weapon entity index. |
|
skamonkey@3767
|
370 |
* @param vecTarget Location to toss weapon to, or NULL_VECTOR for default. |
|
skamonkey@3767
|
371 |
* @param vecVelocity Velocity at which to toss weapon, or NULL_VECTOR for default. |
|
skamonkey@3767
|
372 |
* @noreturn |
|
skamonkey@3767
|
373 |
* @error Invalid client or weapon entity, weapon not owned by client. |
|
skamonkey@3767
|
374 |
*/ |
|
skamonkey@3767
|
375 |
native SDKHooks_DropWeapon(client, weapon, const Float:vecTarget[3]=NULL_VECTOR, const Float:vecVelocity[3]=NULL_VECTOR); |
|
skamonkey@3767
|
376 |
|
|
skamonkey@3767
|
377 |
/** |
|
skamonkey@3767
|
378 |
* Do not edit below this line! |
|
skamonkey@3767
|
379 |
*/ |
|
skamonkey@3767
|
380 |
public Extension:__ext_sdkhooks = |
|
skamonkey@3767
|
381 |
{ |
|
skamonkey@3767
|
382 |
name = "SDKHooks", |
|
skamonkey@3767
|
383 |
file = "sdkhooks.ext", |
|
skamonkey@3767
|
384 |
#if defined AUTOLOAD_EXTENSIONS |
|
skamonkey@3767
|
385 |
autoload = 1, |
|
skamonkey@3767
|
386 |
#else |
|
skamonkey@3767
|
387 |
autoload = 0, |
|
skamonkey@3767
|
388 |
#endif |
|
skamonkey@3767
|
389 |
#if defined REQUIRE_EXTENSIONS |
|
skamonkey@3767
|
390 |
required = 1, |
|
skamonkey@3767
|
391 |
#else |
|
skamonkey@3767
|
392 |
required = 0, |
|
skamonkey@3767
|
393 |
#endif |
|
skamonkey@3767
|
394 |
}; |