| author | David Anderson <dvander@alliedmods.net> |
| Wed Jul 25 20:23:34 2007 +0000 (2007-07-25) | |
| changeset 1169 | 47a8892d2c81 |
| parent 1151 | 71424ad456bc |
| child 1173 | a57a659d6974 |
| permissions | -rw-r--r-- |
1 "Games"
2 {
3 /* Sounds */
4 "#default"
5 {
6 "Keys"
7 {
8 "SlapSoundCount" "3"
9 "SlapSound1" "player/pl_fallpain1.wav"
10 "SlapSound2" "player/pl_fallpain3.wav"
11 "SlapSound3" "player/pl_pain5.wav"
12 "m_iFrags" "m_iFrags"
13 }
14 "Offsets"
15 {
16 "m_iHealth"
17 {
18 "class" "CBasePlayer"
19 "prop" "m_iHealth"
20 }
21 }
22 }
24 /* General Temp Entities */
25 "#default"
26 {
27 "#supported"
28 {
29 "game" "cstrike"
30 "game" "dod"
31 "game" "hl2mp"
32 "game" "ship"
33 "game" "!Dystopia"
34 "game" "!Insurgency"
35 "game" "!Pirates, Vikings and Knights II"
36 "game" "!SourceForts v1.9.2"
37 }
39 "Offsets"
40 {
41 /* Offset into CBaseTempEntity constructor */
42 "s_pTempEntities"
43 {
44 "windows" "17"
45 "linux" "27"
46 }
47 "GetTEName"
48 {
49 "windows" "4"
50 "linux" "4"
51 }
52 "GetTENext"
53 {
54 "windows" "8"
55 "linux" "8"
56 }
57 "TE_GetServerClass"
58 {
59 "windows" "1"
60 "linux" "1"
61 }
62 }
64 "Signatures"
65 {
66 "CBaseTempEntity"
67 {
68 "library" "server"
69 "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"
70 "linux" "@_ZN15CBaseTempEntityC2EPKc"
71 }
72 }
73 }
75 /* General GameRules */
76 "#default"
77 {
78 "#supported"
79 {
80 "game" "cstrike"
81 "game" "dod"
82 "game" "garrysmod"
83 "game" "hl2mp"
84 "game" "ship"
85 "game" "!Dystopia"
86 "game" "!Insurgency"
87 "game" "!Pirates, Vikings and Knights II"
88 "game" "!SourceForts v1.9.2"
89 }
91 "Offsets"
92 {
93 /* Offset into CreateGameRulesObject */
94 "g_pGameRules"
95 {
96 "windows" "2"
97 }
98 }
100 "Signatures"
101 {
102 /* This signature sometimes has multiple matches, but this
103 * does not matter as g_pGameRules is involved in all of them.
104 * The same g_pGameRules offset applies to each match.
105 *
106 * Sometimes this block of bytes is at the beginning of the static
107 * CreateGameRulesObject function and sometimes it is in the middle
108 * of an entirely different function. This depends on the game.
109 */
110 "CreateGameRulesObject"
111 {
112 "library" "server"
113 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50"
114 }
115 "g_pGameRules"
116 {
117 "library" "server"
118 "linux" "@g_pGameRules"
119 }
120 }
121 }
123 /* Counter-Strike: Source */
124 "cstrike"
125 {
126 "Keys"
127 {
128 "SlapSoundCount" "3"
129 "SlapSound1" "player/damage1.wav"
130 "SlapSound2" "player/damage2.wav"
131 "SlapSound3" "player/damage3.wav"
132 }
134 "Offsets"
135 {
136 "GiveNamedItem"
137 {
138 "windows" "329"
139 "linux" "330"
140 }
141 "RemovePlayerItem"
142 {
143 "windows" "226"
144 "linux" "227"
145 }
146 "Weapon_GetSlot"
147 {
148 "windows" "224"
149 "linux" "225"
150 }
151 "Ignite"
152 {
153 "windows" "188"
154 "linux" "189"
155 }
156 "Extinguish"
157 {
158 "windows" "189"
159 "linux" "190"
160 }
161 "Teleport"
162 {
163 "windows" "98"
164 "linux" "99"
165 }
166 "CommitSuicide"
167 {
168 "windows" "357"
169 "linux" "358"
170 }
171 "GetVelocity"
172 {
173 "windows" "126"
174 "linux" "127"
175 }
176 }
177 }
179 /* Day of Defeat */
180 "dod"
181 {
182 "Offsets"
183 {
184 "GiveNamedItem"
185 {
186 "windows" "328"
187 "linux" "330"
188 }
189 "RemovePlayerItem"
190 {
191 "windows" "226"
192 "linux" "227"
193 }
194 "Weapon_GetSlot"
195 {
196 "windows" "224"
197 "linux" "225"
198 }
199 "Ignite"
200 {
201 "windows" "188"
202 "linux" "189"
203 }
204 "Extinguish"
205 {
206 "windows" "189"
207 "linux" "190"
208 }
209 "Teleport"
210 {
211 "windows" "98"
212 "linux" "99"
213 }
214 "CommitSuicide"
215 {
216 "windows" "356"
217 "linux" "357"
218 }
219 "GetVelocity"
220 {
221 "windows" "126"
222 "linux" "127"
223 }
224 }
225 }
227 /* Half-Life 2: Deathmatch */
228 "hl2mp"
229 {
230 "Offsets"
231 {
232 "GiveNamedItem"
233 {
234 "windows" "327"
235 "linux" "328"
236 }
237 "RemovePlayerItem"
238 {
239 "windows" "225"
240 "linux" "226"
241 }
242 "Weapon_GetSlot"
243 {
244 "windows" "223"
245 "linux" "224"
246 }
247 "Ignite"
248 {
249 "windows" "187"
250 "linux" "188"
251 }
252 "Extinguish"
253 {
254 "windows" "188"
255 "linux" "189"
256 }
257 "Teleport"
258 {
259 "windows" "97"
260 "linux" "98"
261 }
262 "CommitSuicide"
263 {
264 "windows" "356"
265 "linux" "357"
266 }
267 "GetVelocity"
268 {
269 "windows" "126"
270 "linux" "127"
271 }
272 }
273 }
275 /* The Ship */
276 "ship"
277 {
278 "Offsets"
279 {
280 /* CBasePlayer */
281 "GiveNamedItem"
282 {
283 "windows" "316"
284 "linux" "317"
285 }
286 "RemovePlayerItem"
287 {
288 "windows" "220"
289 "linux" "221"
290 }
291 "Weapon_GetSlot"
292 {
293 "windows" "218"
294 "linux" "219"
295 }
296 "Ignite"
297 {
298 "windows" "180"
299 "linux" "181"
300 }
301 "Extinguish"
302 {
303 "windows" "181"
304 "linux" "182"
305 }
306 "Teleport"
307 {
308 "windows" "100"
309 "linux" "101"
310 }
311 "CommitSuicide"
312 {
313 "windows" "343"
314 "linux" "344"
315 }
316 "GetVelocity"
317 {
318 "windows" "124"
319 "linux" "125"
320 }
322 /* Temp Entities */
323 "TE_GetServerClass"
324 {
325 "windows" "0"
326 "linux" "0"
327 }
328 }
329 }
331 /* Dsytopia */
332 "!Dystopia"
333 {
335 "Offsets"
336 {
337 /* CBasePlayer */
338 "GiveNamedItem"
339 {
340 "windows" "331"
341 "linux" "332"
342 }
343 "RemovePlayerItem"
344 {
345 "windows" "229"
346 "linux" "230"
347 }
348 "Weapon_GetSlot"
349 {
350 "windows" "227"
351 "linux" "228"
352 }
353 "Ignite"
354 {
355 "windows" "191"
356 "linux" "192"
357 }
358 "Extinguish"
359 {
360 "windows" "192"
361 "linux" "193"
362 }
363 "Teleport"
364 {
365 "windows" "100"
366 "linux" "101"
367 }
368 "CommitSuicide"
369 {
370 "windows" "360"
371 "linux" "361"
372 }
373 "GetVelocity"
374 {
375 "windows" "128"
376 "linux" "129"
377 }
379 /* Offset into CBaseTempEntity constructor.
380 * On Windows Dsytopia is heavily inlined; we use the function
381 * surrounding "aCouldnTFindTem" in IDA instead.
382 */
383 "s_pTempEntities"
384 {
385 "windows" "70"
386 "linux" "29"
387 }
388 }
390 "Signatures"
391 {
392 /* On Windows Dsytopia is heavily inlined; we use the function
393 * surrounding "aCouldnTFindTem" in IDA instead.
394 */
395 "CBaseTempEntity"
396 {
397 "library" "server"
398 "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"
399 }
401 /* Dystopia always has to be different, doesn't it
402 *
403 * This is very similar to the general signature, except that
404 * it does "mov edx, [eax+2Ch]" before making a call rather than
405 * doing "call dword ptr [eax+2Ch]"
406 */
407 "CreateGameRulesObject"
408 {
409 "library" "server"
410 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
411 }
412 }
413 }
415 /* Insurgency */
416 "!Insurgency"
417 {
418 "Offsets"
419 {
420 /* CBasePlayer */
421 "Ignite"
422 {
423 "windows" "174"
424 "linux" "175"
425 }
426 "Extinguish"
427 {
428 "windows" "175"
429 "linux" "176"
430 }
431 "Teleport"
432 {
433 "windows" "90"
434 "linux" "91"
435 }
436 "GetVelocity"
437 {
438 "windows" "115"
439 "linux" "116"
440 }
442 /* Temp Entities */
443 "s_pTempEntities"
444 {
445 "linux" "28"
446 }
447 }
448 }
450 /* Pirates, Vikings and Knights II */
451 "!Pirates, Vikings and Knights II"
452 {
453 "Offsets"
454 {
455 /* CBasePlayer */
456 "GiveNamedItem"
457 {
458 "windows" "328"
459 "linux" "329"
460 }
461 "RemovePlayerItem"
462 {
463 "windows" "226"
464 "linux" "227"
465 }
466 "Weapon_GetSlot"
467 {
468 "windows" "224"
469 "linux" "225"
470 }
471 "Ignite"
472 {
473 "windows" "188"
474 "linux" "189"
475 }
476 "Extinguish"
477 {
478 "windows" "189"
479 "linux" "190"
480 }
481 "Teleport"
482 {
483 "windows" "98"
484 "linux" "99"
485 }
486 "CommitSuicide"
487 {
488 "windows" "356"
489 "linux" "357"
490 }
491 "GetVelocity"
492 {
493 "windows" "126"
494 "linux" "127"
495 }
497 /* Temp Entities */
498 "s_pTempEntities"
499 {
500 "linux" "29"
501 }
502 }
503 }
505 /* SourceForts 1.9.2 */
506 "!SourceForts v1.9.2"
507 {
508 "Offsets"
509 {
510 /* CBasePlayer */
511 "GiveNamedItem"
512 {
513 "windows" "294"
514 "linux" "295"
515 }
516 "RemovePlayerItem"
517 {
518 "windows" "207"
519 "linux" "208"
520 }
521 "Weapon_GetSlot"
522 {
523 "windows" "205"
524 "linux" "206"
525 }
526 "Ignite"
527 {
528 "windows" "170"
529 "linux" "171"
530 }
531 "Extinguish"
532 {
533 "windows" "171"
534 "linux" "172"
535 }
536 "Teleport"
537 {
538 "windows" "90"
539 "linux" "91"
540 }
541 "GetVelocity"
542 {
543 "windows" "114"
544 "linux" "115"
545 }
547 /* Temp Entities */
548 "s_pTempEntities"
549 {
550 "linux" "29"
551 }
552 "TE_GetServerClass"
553 {
554 "windows" "0"
555 "linux" "0"
556 }
557 }
558 }
559 }