| author | David Anderson <dvander@alliedmods.net> |
| Wed Jul 25 01:18:11 2007 +0000 (2007-07-25) | |
| changeset 1163 | 0bb03cb6277b |
| parent 1151 | 71424ad456bc |
| child 1169 | 47a8892d2c81 |
| 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 "CommitSuicide"
138 {
139 "windows" "357"
140 "linux" "358"
141 }
142 }
143 }
145 /* Day of Defeat */
146 "dod"
147 {
148 "Offsets"
149 {
150 "GiveNamedItem"
151 {
152 "windows" "328"
153 "linux" "330"
154 }
155 "RemovePlayerItem"
156 {
157 "windows" "226"
158 "linux" "227"
159 }
160 "Weapon_GetSlot"
161 {
162 "windows" "224"
163 "linux" "225"
164 }
165 "Ignite"
166 {
167 "windows" "188"
168 "linux" "189"
169 }
170 "Extinguish"
171 {
172 "windows" "189"
173 "linux" "190"
174 }
175 "Teleport"
176 {
177 "windows" "98"
178 "linux" "99"
179 }
180 "CommitSuicide"
181 {
182 "windows" "356"
183 "linux" "357"
184 }
185 }
186 }
188 /* Half-Life 2: Deathmatch */
189 "hl2mp"
190 {
191 "Offsets"
192 {
193 "GiveNamedItem"
194 {
195 "windows" "327"
196 "linux" "328"
197 }
198 "RemovePlayerItem"
199 {
200 "windows" "225"
201 "linux" "226"
202 }
203 "Weapon_GetSlot"
204 {
205 "windows" "223"
206 "linux" "224"
207 }
208 "Ignite"
209 {
210 "windows" "187"
211 "linux" "188"
212 }
213 "Extinguish"
214 {
215 "windows" "188"
216 "linux" "189"
217 }
218 "Teleport"
219 {
220 "windows" "97"
221 "linux" "98"
222 }
223 "CommitSuicide"
224 {
225 "windows" "356"
226 "linux" "357"
227 }
228 }
229 }
231 /* The Ship */
232 "ship"
233 {
234 "Offsets"
235 {
236 /* CBasePlayer */
237 "GiveNamedItem"
238 {
239 "windows" "316"
240 "linux" "317"
241 }
242 "RemovePlayerItem"
243 {
244 "windows" "220"
245 "linux" "221"
246 }
247 "Weapon_GetSlot"
248 {
249 "windows" "218"
250 "linux" "219"
251 }
252 "Ignite"
253 {
254 "windows" "180"
255 "linux" "181"
256 }
257 "Extinguish"
258 {
259 "windows" "181"
260 "linux" "182"
261 }
262 "Teleport"
263 {
264 "windows" "100"
265 "linux" "101"
266 }
267 "CommitSuicide"
268 {
269 "windows" "343"
270 "linux" "344"
271 }
273 /* Temp Entities */
274 "TE_GetServerClass"
275 {
276 "windows" "0"
277 "linux" "0"
278 }
279 }
280 }
282 /* Dsytopia */
283 "!Dystopia"
284 {
286 "Offsets"
287 {
288 /* CBasePlayer */
289 "GiveNamedItem"
290 {
291 "windows" "331"
292 "linux" "332"
293 }
294 "RemovePlayerItem"
295 {
296 "windows" "229"
297 "linux" "230"
298 }
299 "Weapon_GetSlot"
300 {
301 "windows" "227"
302 "linux" "228"
303 }
304 "Ignite"
305 {
306 "windows" "191"
307 "linux" "192"
308 }
309 "Extinguish"
310 {
311 "windows" "192"
312 "linux" "193"
313 }
314 "Teleport"
315 {
316 "windows" "100"
317 "linux" "101"
318 }
319 "CommitSuicide"
320 {
321 "windows" "360"
322 "linux" "361"
323 }
325 /* Offset into CBaseTempEntity constructor.
326 * On Windows Dsytopia is heavily inlined; we use the function
327 * surrounding "aCouldnTFindTem" in IDA instead.
328 */
329 "s_pTempEntities"
330 {
331 "windows" "70"
332 "linux" "29"
333 }
334 }
336 "Signatures"
337 {
338 /* On Windows Dsytopia is heavily inlined; we use the function
339 * surrounding "aCouldnTFindTem" in IDA instead.
340 */
341 "CBaseTempEntity"
342 {
343 "library" "server"
344 "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"
345 }
347 /* Dystopia always has to be different, doesn't it
348 *
349 * This is very similar to the general signature, except that
350 * it does "mov edx, [eax+2Ch]" before making a call rather than
351 * doing "call dword ptr [eax+2Ch]"
352 */
353 "CreateGameRulesObject"
354 {
355 "library" "server"
356 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
357 }
358 }
359 }
361 /* Insurgency */
362 "!Insurgency"
363 {
364 "Offsets"
365 {
366 /* CBasePlayer */
367 "Ignite"
368 {
369 "windows" "174"
370 "linux" "175"
371 }
372 "Extinguish"
373 {
374 "windows" "175"
375 "linux" "176"
376 }
377 "Teleport"
378 {
379 "windows" "90"
380 "linux" "91"
381 }
383 /* Temp Entities */
384 "s_pTempEntities"
385 {
386 "linux" "28"
387 }
388 }
389 }
391 /* Pirates, Vikings and Knights II */
392 "!Pirates, Vikings and Knights II"
393 {
394 "Offsets"
395 {
396 /* CBasePlayer */
397 "GiveNamedItem"
398 {
399 "windows" "328"
400 "linux" "329"
401 }
402 "RemovePlayerItem"
403 {
404 "windows" "226"
405 "linux" "227"
406 }
407 "Weapon_GetSlot"
408 {
409 "windows" "224"
410 "linux" "225"
411 }
412 "Ignite"
413 {
414 "windows" "188"
415 "linux" "189"
416 }
417 "Extinguish"
418 {
419 "windows" "189"
420 "linux" "190"
421 }
422 "Teleport"
423 {
424 "windows" "98"
425 "linux" "99"
426 }
427 "CommitSuicide"
428 {
429 "windows" "356"
430 "linux" "357"
431 }
433 /* Temp Entities */
434 "s_pTempEntities"
435 {
436 "linux" "29"
437 }
438 }
439 }
441 /* SourceForts 1.9.2 */
442 "!SourceForts v1.9.2"
443 {
444 "Offsets"
445 {
446 /* CBasePlayer */
447 "GiveNamedItem"
448 {
449 "windows" "294"
450 "linux" "295"
451 }
452 "RemovePlayerItem"
453 {
454 "windows" "207"
455 "linux" "208"
456 }
457 "Weapon_GetSlot"
458 {
459 "windows" "205"
460 "linux" "206"
461 }
462 "Ignite"
463 {
464 "windows" "170"
465 "linux" "171"
466 }
467 "Extinguish"
468 {
469 "windows" "171"
470 "linux" "172"
471 }
472 "Teleport"
473 {
474 "windows" "90"
475 "linux" "91"
476 }
478 /* Temp Entities */
479 "s_pTempEntities"
480 {
481 "linux" "29"
482 }
483 "TE_GetServerClass"
484 {
485 "windows" "0"
486 "linux" "0"
487 }
488 }
489 }
490 }