gamedata/sdktools.games.txt
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--
added amb416 - SlapPlayer()
     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 	}
    23 
    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 		}
    38 
    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 		}
    63 
    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 	}
    74 	
    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 		}
    90 		
    91 		"Offsets"
    92 		{
    93 			/* Offset into CreateGameRulesObject */
    94 			"g_pGameRules"
    95 			{
    96 				"windows"	"2"
    97 			}
    98 		}
    99 		
   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 	}
   122 
   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 		}
   133 
   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 	}
   178 
   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 	}
   226 	
   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 	}
   274 	
   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 			}
   321 			
   322 			/* Temp Entities */
   323 			"TE_GetServerClass"
   324 			{
   325 				"windows"	"0"
   326 				"linux"		"0"
   327 			}
   328 		}
   329 	}
   330 	
   331 	/* Dsytopia */
   332 	"!Dystopia"
   333 	{
   334 
   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 			}
   378 
   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 		}
   389 
   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 			}
   400 
   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 	}
   414 
   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 			}
   441 
   442 			/* Temp Entities */
   443 			"s_pTempEntities"
   444 			{
   445 				"linux"		"28"
   446 			}
   447 		}
   448 	}
   449 	
   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 			}
   496 			
   497 			/* Temp Entities */
   498 			"s_pTempEntities"
   499 			{
   500 				"linux"		"29"
   501 			}
   502 		}
   503 	}
   504 
   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 			}
   546 
   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 }