gamedata/sdktools.games.txt
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--
Added check to make sure player are alive to perform sm_slap, sm_burn, sm_slay.
     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 	}
    28 
    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 		}
    43 
    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 		}
    68 
    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 	}
    79 	
    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 		}
    95 		
    96 		"Offsets"
    97 		{
    98 			/* Offset into CreateGameRulesObject */
    99 			"g_pGameRules"
   100 			{
   101 				"windows"	"2"
   102 			}
   103 		}
   104 		
   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 	}
   127 	
   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 		}
   142 		
   143 		"Offsets"
   144 		{
   145 			/* Offset into LevelShutdown */
   146 			"gEntList"
   147 			{
   148 				"windows"	"11"
   149 			}
   150 		}
   151 		
   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 			}
   164 			
   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 	}
   174 
   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 		}
   185 
   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 	}
   235 
   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 	}
   288 	
   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 	}
   341 	
   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 			}
   393 			
   394 			/* Temp Entities */
   395 			"TE_GetServerClass"
   396 			{
   397 				"windows"	"0"
   398 				"linux"		"0"
   399 			}
   400 		}
   401 	}
   402 	
   403 	/* Dsytopia */
   404 	"!Dystopia"
   405 	{
   406 
   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 			}
   455 
   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 		}
   466 
   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 			}
   477 
   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 	}
   491 
   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 			}
   523 
   524 			/* Temp Entities */
   525 			"s_pTempEntities"
   526 			{
   527 				"linux"		"28"
   528 			}
   529 		}
   530 	}
   531 	
   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 			}
   583 			
   584 			/* Temp Entities */
   585 			"s_pTempEntities"
   586 			{
   587 				"linux"		"29"
   588 			}
   589 		}
   590 	}
   591 
   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 			}
   638 
   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 }