| author | Scott Ehlert <ds@alliedmods.net> |
| Sun Jul 15 08:00:26 2007 +0000 (2007-07-15) | |
| changeset 1116 | 40cc5e9f0f1b |
| parent 1068 | 3dc3b1fd2796 |
| child 1151 | 71424ad456bc |
| permissions | -rw-r--r-- |
1 "Games"
2 {
3 /* General Temp Entities */
4 "#default"
5 {
6 "#supported"
7 {
8 "game" "cstrike"
9 "game" "dod"
10 "game" "hl2mp"
11 "game" "ship"
12 "game" "!Dystopia"
13 "game" "!Insurgency"
14 "game" "!Pirates, Vikings and Knights II"
15 "game" "!SourceForts v1.9.2"
16 }
18 "Offsets"
19 {
20 /* Offset into CBaseTempEntity constructor */
21 "s_pTempEntities"
22 {
23 "windows" "17"
24 "linux" "27"
25 }
26 "GetTEName"
27 {
28 "windows" "4"
29 "linux" "4"
30 }
31 "GetTENext"
32 {
33 "windows" "8"
34 "linux" "8"
35 }
36 "TE_GetServerClass"
37 {
38 "windows" "1"
39 "linux" "1"
40 }
41 }
43 "Signatures"
44 {
45 "CBaseTempEntity"
46 {
47 "library" "server"
48 "windows" "\x8B\xC1\x8B\x4C\x24\x04\xC7\x00\x2A\x2A\x2A\x2A\x89\x48\x04\x8B\x15\x2A\x2A\x2A\x2A\x89\x50\x08\xA3\x2A\x2A\x2A\x2A\xC2\x04\x00"
49 "linux" "@_ZN15CBaseTempEntityC2EPKc"
50 }
51 }
52 }
54 /* General GameRules */
55 "#default"
56 {
57 "#supported"
58 {
59 "game" "cstrike"
60 "game" "dod"
61 "game" "garrysmod"
62 "game" "hl2mp"
63 "game" "ship"
64 "game" "!Dystopia"
65 "game" "!Insurgency"
66 "game" "!Pirates, Vikings and Knights II"
67 "game" "!SourceForts v1.9.2"
68 }
70 "Offsets"
71 {
72 /* Offset into CreateGameRulesObject */
73 "g_pGameRules"
74 {
75 "windows" "2"
76 }
77 }
79 "Signatures"
80 {
81 /* This signature sometimes has multiple matches, but this
82 * does not matter as g_pGameRules is involved in all of them.
83 * The same g_pGameRules offset applies to each match.
84 *
85 * Sometimes this block of bytes is at the beginning of the static
86 * CreateGameRulesObject function and sometimes it is in the middle
87 * of an entirely different function. This depends on the game.
88 */
89 "CreateGameRulesObject"
90 {
91 "library" "server"
92 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50"
93 }
94 "g_pGameRules"
95 {
96 "library" "server"
97 "linux" "@g_pGameRules"
98 }
99 }
100 }
102 /* Counter-Strike: Source */
103 "cstrike"
104 {
105 "Offsets"
106 {
107 "GiveNamedItem"
108 {
109 "windows" "329"
110 "linux" "330"
111 }
112 "RemovePlayerItem"
113 {
114 "windows" "226"
115 "linux" "227"
116 }
117 "Weapon_GetSlot"
118 {
119 "windows" "224"
120 "linux" "225"
121 }
122 "Ignite"
123 {
124 "windows" "188"
125 "linux" "189"
126 }
127 "Extinguish"
128 {
129 "windows" "189"
130 "linux" "190"
131 }
132 "Teleport"
133 {
134 "windows" "98"
135 "linux" "99"
136 }
137 }
138 }
140 /* Day of Defeat */
141 "dod"
142 {
143 "Offsets"
144 {
145 "GiveNamedItem"
146 {
147 "windows" "328"
148 "linux" "330"
149 }
150 "RemovePlayerItem"
151 {
152 "windows" "226"
153 "linux" "227"
154 }
155 "Weapon_GetSlot"
156 {
157 "windows" "224"
158 "linux" "225"
159 }
160 "Ignite"
161 {
162 "windows" "188"
163 "linux" "189"
164 }
165 "Extinguish"
166 {
167 "windows" "189"
168 "linux" "190"
169 }
170 "Teleport"
171 {
172 "windows" "98"
173 "linux" "99"
174 }
175 }
176 }
178 /* Half-Life 2: Deathmatch */
179 "hl2mp"
180 {
181 "Offsets"
182 {
183 "GiveNamedItem"
184 {
185 "windows" "327"
186 "linux" "328"
187 }
188 "RemovePlayerItem"
189 {
190 "windows" "225"
191 "linux" "226"
192 }
193 "Weapon_GetSlot"
194 {
195 "windows" "223"
196 "linux" "224"
197 }
198 "Ignite"
199 {
200 "windows" "187"
201 "linux" "188"
202 }
203 "Extinguish"
204 {
205 "windows" "188"
206 "linux" "189"
207 }
208 "Teleport"
209 {
210 "windows" "97"
211 "linux" "98"
212 }
213 }
214 }
216 /* The Ship */
217 "ship"
218 {
219 "Offsets"
220 {
221 /* CBasePlayer */
222 "GiveNamedItem"
223 {
224 "windows" "316"
225 "linux" "317"
226 }
227 "RemovePlayerItem"
228 {
229 "windows" "220"
230 "linux" "221"
231 }
232 "Weapon_GetSlot"
233 {
234 "windows" "218"
235 "linux" "219"
236 }
237 "Ignite"
238 {
239 "windows" "180"
240 "linux" "181"
241 }
242 "Extinguish"
243 {
244 "windows" "181"
245 "linux" "182"
246 }
247 "Teleport"
248 {
249 "windows" "100"
250 "linux" "101"
251 }
253 /* Temp Entities */
254 "TE_GetServerClass"
255 {
256 "windows" "0"
257 "linux" "0"
258 }
259 }
260 }
262 /* Dsytopia */
263 "!Dystopia"
264 {
266 "Offsets"
267 {
268 /* CBasePlayer */
269 "GiveNamedItem"
270 {
271 "windows" "331"
272 "linux" "332"
273 }
274 "RemovePlayerItem"
275 {
276 "windows" "229"
277 "linux" "230"
278 }
279 "Weapon_GetSlot"
280 {
281 "windows" "227"
282 "linux" "228"
283 }
284 "Ignite"
285 {
286 "windows" "191"
287 "linux" "192"
288 }
289 "Extinguish"
290 {
291 "windows" "192"
292 "linux" "193"
293 }
294 "Teleport"
295 {
296 "windows" "100"
297 "linux" "101"
298 }
300 /* Offset into CBaseTempEntity constructor.
301 * On Windows Dsytopia is heavily inlined; we use the function
302 * surrounding "aCouldnTFindTem" in IDA instead.
303 */
304 "s_pTempEntities"
305 {
306 "windows" "70"
307 "linux" "29"
308 }
309 }
311 "Signatures"
312 {
313 /* On Windows Dsytopia is heavily inlined; we use the function
314 * surrounding "aCouldnTFindTem" in IDA instead.
315 */
316 "CBaseTempEntity"
317 {
318 "library" "server"
319 "windows" "\x81\xEC\x84\x00\x00\x00\x56\x8B\xF1\x8B\x46\x6C\x57\x8D\x7E\x6C\x8D\x4C\x24\x08\x83\xC8\x20\x51\x89\x44\x24\x0C\xE8\x2A\x2A\x2A"
320 }
322 /* Dystopia always has to be different, doesn't it
323 *
324 * This is very similar to the general signature, except that
325 * it does "mov edx, [eax+2Ch]" before making a call rather than
326 * doing "call dword ptr [eax+2Ch]"
327 */
328 "CreateGameRulesObject"
329 {
330 "library" "server"
331 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
332 }
333 }
334 }
336 /* Insurgency */
337 "!Insurgency"
338 {
339 "Offsets"
340 {
341 /* CBasePlayer */
342 "Ignite"
343 {
344 "windows" "174"
345 "linux" "175"
346 }
347 "Extinguish"
348 {
349 "windows" "175"
350 "linux" "176"
351 }
352 "Teleport"
353 {
354 "windows" "90"
355 "linux" "91"
356 }
358 /* Temp Entities */
359 "s_pTempEntities"
360 {
361 "linux" "28"
362 }
363 }
364 }
366 /* Pirates, Vikings and Knights II */
367 "!Pirates, Vikings and Knights II"
368 {
369 "Offsets"
370 {
371 /* CBasePlayer */
372 "GiveNamedItem"
373 {
374 "windows" "328"
375 "linux" "329"
376 }
377 "RemovePlayerItem"
378 {
379 "windows" "226"
380 "linux" "227"
381 }
382 "Weapon_GetSlot"
383 {
384 "windows" "224"
385 "linux" "225"
386 }
387 "Ignite"
388 {
389 "windows" "188"
390 "linux" "189"
391 }
392 "Extinguish"
393 {
394 "windows" "189"
395 "linux" "190"
396 }
397 "Teleport"
398 {
399 "windows" "98"
400 "linux" "99"
401 }
403 /* Temp Entities */
404 "s_pTempEntities"
405 {
406 "linux" "29"
407 }
408 }
409 }
411 /* SourceForts 1.9.2 */
412 "!SourceForts v1.9.2"
413 {
414 "Offsets"
415 {
416 /* CBasePlayer */
417 "GiveNamedItem"
418 {
419 "windows" "294"
420 "linux" "295"
421 }
422 "RemovePlayerItem"
423 {
424 "windows" "207"
425 "linux" "208"
426 }
427 "Weapon_GetSlot"
428 {
429 "windows" "205"
430 "linux" "206"
431 }
432 "Ignite"
433 {
434 "windows" "170"
435 "linux" "171"
436 }
437 "Extinguish"
438 {
439 "windows" "171"
440 "linux" "172"
441 }
442 "Teleport"
443 {
444 "windows" "90"
445 "linux" "91"
446 }
448 /* Temp Entities */
449 "s_pTempEntities"
450 {
451 "linux" "29"
452 }
453 "TE_GetServerClass"
454 {
455 "windows" "0"
456 "linux" "0"
457 }
458 }
459 }
460 }