| author | Phong Dang <teame06@gmail.com> |
| Wed Aug 01 07:29:40 2007 +0000 (2007-08-01) | |
| changeset 1241 | 2e8046793bc9 |
| parent 1240 | 79eebacc9d02 |
| child 1309 | 98d325463860 |
| 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 "m_lifeState"
22 {
23 "class" "CBasePlayer"
24 "prop" "m_lifeState"
25 }
26 }
27 }
29 /* General Temp Entities */
30 "#default"
31 {
32 "#supported"
33 {
34 "game" "cstrike"
35 "game" "dod"
36 "game" "hl2mp"
37 "game" "ship"
38 "game" "!Dystopia"
39 "game" "!Insurgency"
40 "game" "!Pirates, Vikings and Knights II"
41 "game" "!SourceForts v1.9.2"
42 }
44 "Offsets"
45 {
46 /* Offset into CBaseTempEntity constructor */
47 "s_pTempEntities"
48 {
49 "windows" "17"
50 "linux" "27"
51 }
52 "GetTEName"
53 {
54 "windows" "4"
55 "linux" "4"
56 }
57 "GetTENext"
58 {
59 "windows" "8"
60 "linux" "8"
61 }
62 "TE_GetServerClass"
63 {
64 "windows" "1"
65 "linux" "1"
66 }
67 }
69 "Signatures"
70 {
71 "CBaseTempEntity"
72 {
73 "library" "server"
74 "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"
75 "linux" "@_ZN15CBaseTempEntityC2EPKc"
76 }
77 }
78 }
80 /* General GameRules */
81 "#default"
82 {
83 "#supported"
84 {
85 "game" "cstrike"
86 "game" "dod"
87 "game" "garrysmod"
88 "game" "hl2mp"
89 "game" "ship"
90 "game" "!Dystopia"
91 "game" "!Insurgency"
92 "game" "!Pirates, Vikings and Knights II"
93 "game" "!SourceForts v1.9.2"
94 }
96 "Offsets"
97 {
98 /* Offset into CreateGameRulesObject */
99 "g_pGameRules"
100 {
101 "windows" "2"
102 }
103 }
105 "Signatures"
106 {
107 /* This signature sometimes has multiple matches, but this
108 * does not matter as g_pGameRules is involved in all of them.
109 * The same g_pGameRules offset applies to each match.
110 *
111 * Sometimes this block of bytes is at the beginning of the static
112 * CreateGameRulesObject function and sometimes it is in the middle
113 * of an entirely different function. This depends on the game.
114 */
115 "CreateGameRulesObject"
116 {
117 "library" "server"
118 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x6A\x01\xFF\x50"
119 }
120 "g_pGameRules"
121 {
122 "library" "server"
123 "linux" "@g_pGameRules"
124 }
125 }
126 }
128 /* CGlobalEntityList */
129 "#default"
130 {
131 "#supported"
132 {
133 "game" "cstrike"
134 "game" "dod"
135 "game" "garrysmod"
136 "game" "hl2mp"
137 "game" "ship"
138 "game" "!Insurgency"
139 "game" "!Pirates, Vikings and Knights II"
140 "game" "!SourceForts v1.9.2"
141 }
143 "Offsets"
144 {
145 /* Offset into LevelShutdown */
146 "gEntList"
147 {
148 "windows" "11"
149 }
150 }
152 "Signatures"
153 {
154 "LevelShutdown"
155 {
156 "library" "server"
157 "windows" "\xE8\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xB9\x2A\x2A\x2A\x2A\xE8\x2A\x2A\x2A\x2A\xE8"
158 }
159 "gEntList"
160 {
161 "library" "server"
162 "linux" "@gEntList"
163 }
165 /* Functions in CGlobalEntityList */
166 "FindEntityByClassname"
167 {
168 "library" "server"
169 "windows" "\x53\x55\x56\x8B\xF1\x8B\x4C\x24\x2A\x85\xC9\x57\x74\x2A\x8B\x01\xFF\x50\x2A\x8B\x08\x81\xE1\x2A\x2A\x2A\x2A\x83\xC1\x2A\xC1\xE1\x2A\x8B\x3C\x31\xEB\x2A\x8B\xBE\x2A\x2A\x2A\x2A\x85\xFF\x74\x2A\x8B\x5C\x24\x2A\x8B\x2D\x2A\x2A\x2A\x2A\x8D\x9B\x00\x00\x00\x00\x8B\x37\x85\xF6\x75\x2A\x68\x2A\x2A\x2A\x2A\xFF\x2A\x83\xC4\x2A\xEB\x2A\x39"
170 "linux" "@_ZN17CGlobalEntityList21FindEntityByClassnameEP11CBaseEntityPKc"
171 }
172 }
173 }
175 /* Counter-Strike: Source */
176 "cstrike"
177 {
178 "Keys"
179 {
180 "SlapSoundCount" "3"
181 "SlapSound1" "player/damage1.wav"
182 "SlapSound2" "player/damage2.wav"
183 "SlapSound3" "player/damage3.wav"
184 }
186 "Offsets"
187 {
188 "GiveNamedItem"
189 {
190 "windows" "329"
191 "linux" "330"
192 }
193 "RemovePlayerItem"
194 {
195 "windows" "226"
196 "linux" "227"
197 }
198 "Weapon_GetSlot"
199 {
200 "windows" "224"
201 "linux" "225"
202 }
203 "Ignite"
204 {
205 "windows" "188"
206 "linux" "189"
207 }
208 "Extinguish"
209 {
210 "windows" "189"
211 "linux" "190"
212 }
213 "Teleport"
214 {
215 "windows" "98"
216 "linux" "99"
217 }
218 "CommitSuicide"
219 {
220 "windows" "357"
221 "linux" "358"
222 }
223 "GetVelocity"
224 {
225 "windows" "126"
226 "linux" "127"
227 }
228 "EyeAngles"
229 {
230 "windows" "118"
231 "linux" "119"
232 }
233 }
234 }
236 /* Day of Defeat */
237 "dod"
238 {
239 "Offsets"
240 {
241 "GiveNamedItem"
242 {
243 "windows" "328"
244 "linux" "330"
245 }
246 "RemovePlayerItem"
247 {
248 "windows" "226"
249 "linux" "227"
250 }
251 "Weapon_GetSlot"
252 {
253 "windows" "224"
254 "linux" "225"
255 }
256 "Ignite"
257 {
258 "windows" "188"
259 "linux" "189"
260 }
261 "Extinguish"
262 {
263 "windows" "189"
264 "linux" "190"
265 }
266 "Teleport"
267 {
268 "windows" "98"
269 "linux" "99"
270 }
271 "CommitSuicide"
272 {
273 "windows" "356"
274 "linux" "357"
275 }
276 "GetVelocity"
277 {
278 "windows" "126"
279 "linux" "127"
280 }
281 "EyeAngles"
282 {
283 "windows" "118"
284 "linux" "119"
285 }
286 }
287 }
289 /* Half-Life 2: Deathmatch */
290 "hl2mp"
291 {
292 "Offsets"
293 {
294 "GiveNamedItem"
295 {
296 "windows" "328"
297 "linux" "329"
298 }
299 "RemovePlayerItem"
300 {
301 "windows" "226"
302 "linux" "227"
303 }
304 "Weapon_GetSlot"
305 {
306 "windows" "224"
307 "linux" "225"
308 }
309 "Ignite"
310 {
311 "windows" "188"
312 "linux" "189"
313 }
314 "Extinguish"
315 {
316 "windows" "189"
317 "linux" "190"
318 }
319 "Teleport"
320 {
321 "windows" "98"
322 "linux" "99"
323 }
324 "CommitSuicide"
325 {
326 "windows" "356"
327 "linux" "357"
328 }
329 "GetVelocity"
330 {
331 "windows" "126"
332 "linux" "127"
333 }
334 "EyeAngles"
335 {
336 "windows" "118"
337 "linux" "119"
338 }
339 }
340 }
342 /* The Ship */
343 "ship"
344 {
345 "Offsets"
346 {
347 /* CBasePlayer */
348 "GiveNamedItem"
349 {
350 "windows" "316"
351 "linux" "317"
352 }
353 "RemovePlayerItem"
354 {
355 "windows" "220"
356 "linux" "221"
357 }
358 "Weapon_GetSlot"
359 {
360 "windows" "218"
361 "linux" "219"
362 }
363 "Ignite"
364 {
365 "windows" "180"
366 "linux" "181"
367 }
368 "Extinguish"
369 {
370 "windows" "181"
371 "linux" "182"
372 }
373 "Teleport"
374 {
375 "windows" "100"
376 "linux" "101"
377 }
378 "CommitSuicide"
379 {
380 "windows" "343"
381 "linux" "344"
382 }
383 "GetVelocity"
384 {
385 "windows" "124"
386 "linux" "125"
387 }
388 "EyeAngles"
389 {
390 "windows" "116"
391 "linux" "117"
392 }
394 /* Temp Entities */
395 "TE_GetServerClass"
396 {
397 "windows" "0"
398 "linux" "0"
399 }
400 }
401 }
403 /* Dsytopia */
404 "!Dystopia"
405 {
407 "Offsets"
408 {
409 /* CBasePlayer */
410 "GiveNamedItem"
411 {
412 "windows" "331"
413 "linux" "332"
414 }
415 "RemovePlayerItem"
416 {
417 "windows" "229"
418 "linux" "230"
419 }
420 "Weapon_GetSlot"
421 {
422 "windows" "227"
423 "linux" "228"
424 }
425 "Ignite"
426 {
427 "windows" "191"
428 "linux" "192"
429 }
430 "Extinguish"
431 {
432 "windows" "192"
433 "linux" "193"
434 }
435 "Teleport"
436 {
437 "windows" "100"
438 "linux" "101"
439 }
440 "CommitSuicide"
441 {
442 "windows" "360"
443 "linux" "361"
444 }
445 "GetVelocity"
446 {
447 "windows" "128"
448 "linux" "129"
449 }
450 "EyeAngles"
451 {
452 "windows" "120"
453 "linux" "121"
454 }
456 /* Offset into CBaseTempEntity constructor.
457 * On Windows Dsytopia is heavily inlined; we use the function
458 * surrounding "aCouldnTFindTem" in IDA instead.
459 */
460 "s_pTempEntities"
461 {
462 "windows" "70"
463 "linux" "29"
464 }
465 }
467 "Signatures"
468 {
469 /* On Windows Dsytopia is heavily inlined; we use the function
470 * surrounding "aCouldnTFindTem" in IDA instead.
471 */
472 "CBaseTempEntity"
473 {
474 "library" "server"
475 "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"
476 }
478 /* Dystopia always has to be different, doesn't it
479 *
480 * This is very similar to the general signature, except that
481 * it does "mov edx, [eax+2Ch]" before making a call rather than
482 * doing "call dword ptr [eax+2Ch]"
483 */
484 "CreateGameRulesObject"
485 {
486 "library" "server"
487 "windows" "\x8B\x0D\x2A\x2A\x2A\x2A\x85\xC9\x74\x2A\x8B\x01\x8B\x50\x2A\x6A\x01\xFF\xD2"
488 }
489 }
490 }
492 /* Insurgency */
493 "!Insurgency"
494 {
495 "Offsets"
496 {
497 /* CBasePlayer */
498 "Ignite"
499 {
500 "windows" "174"
501 "linux" "175"
502 }
503 "Extinguish"
504 {
505 "windows" "175"
506 "linux" "176"
507 }
508 "Teleport"
509 {
510 "windows" "90"
511 "linux" "91"
512 }
513 "GetVelocity"
514 {
515 "windows" "115"
516 "linux" "116"
517 }
518 "EyeAngles"
519 {
520 "windows" "107"
521 "linux" "108"
522 }
524 /* Temp Entities */
525 "s_pTempEntities"
526 {
527 "linux" "28"
528 }
529 }
530 }
532 /* Pirates, Vikings and Knights II */
533 "!Pirates, Vikings and Knights II"
534 {
535 "Offsets"
536 {
537 /* CBasePlayer */
538 "GiveNamedItem"
539 {
540 "windows" "328"
541 "linux" "329"
542 }
543 "RemovePlayerItem"
544 {
545 "windows" "226"
546 "linux" "227"
547 }
548 "Weapon_GetSlot"
549 {
550 "windows" "224"
551 "linux" "225"
552 }
553 "Ignite"
554 {
555 "windows" "188"
556 "linux" "189"
557 }
558 "Extinguish"
559 {
560 "windows" "189"
561 "linux" "190"
562 }
563 "Teleport"
564 {
565 "windows" "98"
566 "linux" "99"
567 }
568 "CommitSuicide"
569 {
570 "windows" "356"
571 "linux" "357"
572 }
573 "GetVelocity"
574 {
575 "windows" "126"
576 "linux" "127"
577 }
578 "EyeAngles"
579 {
580 "windows" "118"
581 "linux" "119"
582 }
584 /* Temp Entities */
585 "s_pTempEntities"
586 {
587 "linux" "29"
588 }
589 }
590 }
592 /* SourceForts 1.9.2 */
593 "!SourceForts v1.9.2"
594 {
595 "Offsets"
596 {
597 /* CBasePlayer */
598 "GiveNamedItem"
599 {
600 "windows" "294"
601 "linux" "295"
602 }
603 "RemovePlayerItem"
604 {
605 "windows" "207"
606 "linux" "208"
607 }
608 "Weapon_GetSlot"
609 {
610 "windows" "205"
611 "linux" "206"
612 }
613 "Ignite"
614 {
615 "windows" "170"
616 "linux" "171"
617 }
618 "Extinguish"
619 {
620 "windows" "171"
621 "linux" "172"
622 }
623 "Teleport"
624 {
625 "windows" "90"
626 "linux" "91"
627 }
628 "GetVelocity"
629 {
630 "windows" "114"
631 "linux" "115"
632 }
633 "EyeAngles"
634 {
635 "windows" "106"
636 "linux" "107"
637 }
639 /* Temp Entities */
640 "s_pTempEntities"
641 {
642 "linux" "29"
643 }
644 "TE_GetServerClass"
645 {
646 "windows" "0"
647 "linux" "0"
648 }
649 }
650 }
651 }