wurzil
17th November 2007, 13:13
Team and Class ModelRec Using numVertices & primCount
This model rec should work on most game settings, pc's
and xp/vista unlike CRC's.
Directx9.0c for D3D hooks.
Its up to you how you store the data and use it,
this example is supposed to be simple enough for
a beginner coder to use. There are no model heads just
bodies, you will have to add model heads on your own.
Likewise if there are any models opened beyond sniper class
opening, you will have to add those also.
ModelRec Picture
http://i5.photobucket.com/albums/y155/wurz1l/cod4Modelrec.jpg
Compiled Cheat and source code available for download
http://www.mpcforum.com/showthread.php?t=213213
////////////////////////////////////////////////////////////
// Team and Class ModelRec Using numVertices & primCount
////////////////////////////////////////////////////////////
const int MAX_SIZE=4;
// *** OPFOR ***
// numVertices
const int opf_AssaultNV[MAX_SIZE]={ 3124, 1970, 1252, 470 };
const int opf_SpecOpsNV[MAX_SIZE]={ 3531, 2188, 1325, 499 };
const int opf_HvyGunrNV[MAX_SIZE]={ 2715, 1620, 943, 441 };
const int op_DemolNV[MAX_SIZE] = { 2816, 1733, 1150, 435 };
const int op_SniperNV[MAX_SIZE] = { 2818, 1715, 1101, 481 };
// primCount
const int opf_AssaultPC[MAX_SIZE]={ 4132, 2186, 1160, 352 };
const int opf_SpecOpsPC[MAX_SIZE]={ 4526, 2386, 1194, 352 };
const int opf_HvyGunrPC[MAX_SIZE]={ 3588, 1886, 908, 308 };
const int op_DemolPC[MAX_SIZE] = { 3642, 2022, 1086, 320 };
const int op_SniperPC[MAX_SIZE] = { 3672, 1950, 1066, 350 };
// *** SPETSNAZ ***
const int spe_AssaultNV[MAX_SIZE]={ 4358, 3278, 1633, 840 };
const int spe_SpecOpsNV[MAX_SIZE]={ 4242, 2391, 1689, 969 };
const int spe_HvyGunrNV[MAX_SIZE]={ 4270, 2755, 1317, 809 };
const int spet_DemolNV[MAX_SIZE] ={ 3891, 2510, 1398, 994 };
const int spet_SniperNV[MAX_SIZE]={ 3326, 2140, 1315, 726 };
// primCount
const int spe_AssaultPC[MAX_SIZE]={ 4864, 3188, 1322, 618 };
const int spe_SpecOpsPC[MAX_SIZE]={ 5028, 2488, 1422, 708 };
const int spe_HvyGunrPC[MAX_SIZE]={ 4804, 2494, 1054, 590 };
const int spet_DemolPC[MAX_SIZE] ={ 4598, 2470, 1176, 714 };
const int spet_SniperPC[MAX_SIZE]={ 4336, 2310, 1170, 556 };
// *** MARINES & S.A.S. ***
// numVertices
const int mar_AssaultNV[MAX_SIZE]={ 2613, 1842, 1034, 447 };
const int mar_SpecOpsNV[MAX_SIZE]={ 3790, 2784, 1572, 634 };
const int mar_HvyGunrNV[MAX_SIZE]={ 3597, 2301, 1341, 580 };
const int mar_DemolNV[MAX_SIZE] = { 4050, 2540, 1488, 592 };
const int mar_SniperNV[MAX_SIZE] ={ 2516, 1726, 1020, 587 };
// primCount
const int mar_AssaultPC[MAX_SIZE]={ 3248, 1978, 904, 312 };
const int mar_SpecOpsPC[MAX_SIZE]={ 4078, 2384, 1166, 372 };
const int mar_HvyGunrPC[MAX_SIZE]={ 4280, 2364, 1132, 380 };
const int mar_DemolPC[MAX_SIZE] = { 4486, 2444, 1114, 374 };
const int mar_SniperPC[MAX_SIZE] ={ 2940, 1760, 872, 370 };
// *** S.A.S. ***
// numVertices
const int sas_AssaultNV[MAX_SIZE]={ 3935, 2640, 1373, 585 };
const int sas_SpecOpsNV[MAX_SIZE]={ 3585, 2525, 1498, 695 };
const int sas_HvyGunrNV[MAX_SIZE]={ 3716, 2578, 1412, 568 };
const int sas_DemolNV[MAX_SIZE] = { 3562, 2509, 1402, 628 };
const int sas_SniperNV[MAX_SIZE]= { 3667, 2460, 1479, 552 };
const int sas_Sniper2[MAX_SIZE] = { 2578, 2328, 2286, 349 };
// primCount
const int sas_AssaultPC[MAX_SIZE]={ 5226, 3070, 1256, 440 };
const int sas_SpecOpsPC[MAX_SIZE]={ 4858, 3022, 1304, 478 };
const int sas_HvyGunrPC[MAX_SIZE]={ 5064, 2994, 1330, 470 };
const int sas_DemolPC[MAX_SIZE] = { 4784, 2954, 1164, 450 };
const int sas_SniperPC[MAX_SIZE]= { 4952, 2882, 1402, 452 };
const int sas_Sniper2PC[MAX_SIZE]={ 2192, 1992, 1184, 254 };
Example Usage In DrawIndexPrimitive -
// Marines
if(m_Stride==32 && startIndex != 0)
{
for(int mar_val = 0; mar_val <= MAX_SIZE-1; mar_val++)
{
if( NumVertices == mar_AssaultNV[mar_val] && primCount == mar_AssaultPC[mar_val])
{
//Do Model Hack Here !!!
}
}
}
have phun :)
This model rec should work on most game settings, pc's
and xp/vista unlike CRC's.
Directx9.0c for D3D hooks.
Its up to you how you store the data and use it,
this example is supposed to be simple enough for
a beginner coder to use. There are no model heads just
bodies, you will have to add model heads on your own.
Likewise if there are any models opened beyond sniper class
opening, you will have to add those also.
ModelRec Picture
http://i5.photobucket.com/albums/y155/wurz1l/cod4Modelrec.jpg
Compiled Cheat and source code available for download
http://www.mpcforum.com/showthread.php?t=213213
////////////////////////////////////////////////////////////
// Team and Class ModelRec Using numVertices & primCount
////////////////////////////////////////////////////////////
const int MAX_SIZE=4;
// *** OPFOR ***
// numVertices
const int opf_AssaultNV[MAX_SIZE]={ 3124, 1970, 1252, 470 };
const int opf_SpecOpsNV[MAX_SIZE]={ 3531, 2188, 1325, 499 };
const int opf_HvyGunrNV[MAX_SIZE]={ 2715, 1620, 943, 441 };
const int op_DemolNV[MAX_SIZE] = { 2816, 1733, 1150, 435 };
const int op_SniperNV[MAX_SIZE] = { 2818, 1715, 1101, 481 };
// primCount
const int opf_AssaultPC[MAX_SIZE]={ 4132, 2186, 1160, 352 };
const int opf_SpecOpsPC[MAX_SIZE]={ 4526, 2386, 1194, 352 };
const int opf_HvyGunrPC[MAX_SIZE]={ 3588, 1886, 908, 308 };
const int op_DemolPC[MAX_SIZE] = { 3642, 2022, 1086, 320 };
const int op_SniperPC[MAX_SIZE] = { 3672, 1950, 1066, 350 };
// *** SPETSNAZ ***
const int spe_AssaultNV[MAX_SIZE]={ 4358, 3278, 1633, 840 };
const int spe_SpecOpsNV[MAX_SIZE]={ 4242, 2391, 1689, 969 };
const int spe_HvyGunrNV[MAX_SIZE]={ 4270, 2755, 1317, 809 };
const int spet_DemolNV[MAX_SIZE] ={ 3891, 2510, 1398, 994 };
const int spet_SniperNV[MAX_SIZE]={ 3326, 2140, 1315, 726 };
// primCount
const int spe_AssaultPC[MAX_SIZE]={ 4864, 3188, 1322, 618 };
const int spe_SpecOpsPC[MAX_SIZE]={ 5028, 2488, 1422, 708 };
const int spe_HvyGunrPC[MAX_SIZE]={ 4804, 2494, 1054, 590 };
const int spet_DemolPC[MAX_SIZE] ={ 4598, 2470, 1176, 714 };
const int spet_SniperPC[MAX_SIZE]={ 4336, 2310, 1170, 556 };
// *** MARINES & S.A.S. ***
// numVertices
const int mar_AssaultNV[MAX_SIZE]={ 2613, 1842, 1034, 447 };
const int mar_SpecOpsNV[MAX_SIZE]={ 3790, 2784, 1572, 634 };
const int mar_HvyGunrNV[MAX_SIZE]={ 3597, 2301, 1341, 580 };
const int mar_DemolNV[MAX_SIZE] = { 4050, 2540, 1488, 592 };
const int mar_SniperNV[MAX_SIZE] ={ 2516, 1726, 1020, 587 };
// primCount
const int mar_AssaultPC[MAX_SIZE]={ 3248, 1978, 904, 312 };
const int mar_SpecOpsPC[MAX_SIZE]={ 4078, 2384, 1166, 372 };
const int mar_HvyGunrPC[MAX_SIZE]={ 4280, 2364, 1132, 380 };
const int mar_DemolPC[MAX_SIZE] = { 4486, 2444, 1114, 374 };
const int mar_SniperPC[MAX_SIZE] ={ 2940, 1760, 872, 370 };
// *** S.A.S. ***
// numVertices
const int sas_AssaultNV[MAX_SIZE]={ 3935, 2640, 1373, 585 };
const int sas_SpecOpsNV[MAX_SIZE]={ 3585, 2525, 1498, 695 };
const int sas_HvyGunrNV[MAX_SIZE]={ 3716, 2578, 1412, 568 };
const int sas_DemolNV[MAX_SIZE] = { 3562, 2509, 1402, 628 };
const int sas_SniperNV[MAX_SIZE]= { 3667, 2460, 1479, 552 };
const int sas_Sniper2[MAX_SIZE] = { 2578, 2328, 2286, 349 };
// primCount
const int sas_AssaultPC[MAX_SIZE]={ 5226, 3070, 1256, 440 };
const int sas_SpecOpsPC[MAX_SIZE]={ 4858, 3022, 1304, 478 };
const int sas_HvyGunrPC[MAX_SIZE]={ 5064, 2994, 1330, 470 };
const int sas_DemolPC[MAX_SIZE] = { 4784, 2954, 1164, 450 };
const int sas_SniperPC[MAX_SIZE]= { 4952, 2882, 1402, 452 };
const int sas_Sniper2PC[MAX_SIZE]={ 2192, 1992, 1184, 254 };
Example Usage In DrawIndexPrimitive -
// Marines
if(m_Stride==32 && startIndex != 0)
{
for(int mar_val = 0; mar_val <= MAX_SIZE-1; mar_val++)
{
if( NumVertices == mar_AssaultNV[mar_val] && primCount == mar_AssaultPC[mar_val])
{
//Do Model Hack Here !!!
}
}
}
have phun :)