Jump to content

D3D Coding[S]


zone23

Recommended Posts

Im just going to point out stuff you should want to know.

 

D3D, believe it or not you can color anything in, you want to make a fun little project?

 

Color the Wallz in Yellow , Red , Green Whatever!

 

How you say?

Code:

Globals:

 

int colored walls;

Code:

If(colored walls)//your bool statement in globals

 

texnum = (nNumVertices*100000)+nPrimitiveCount;//having it in texnums never hurts, unless its just a stride

 

if(m_Stride == model_rec)//Model Recognition, this recognizes what you want to color in, so we would have to get a Model Recognition logger, go in game and find the Stride for the wall/floor

{

 

{

pDevice->SetTexture( 0, Red ); //we colored it red. How'd we get to color it check out the next shizznet under this, chams..

}

return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

}

Theres our colored, whatever :p

 

Chams however work differently, you have point out whether the person is behind the wall or not, and when in front, and then give it colors... when behind something.

 

Here, this is how i color in my chams.

 

SO it would be:

 

Code:

//==================================Defines============================================

#define ForceRecon (nNumVertices == 83 && nPrimitiveCount == 137 || nNumVertices == 79 && nPrimitiveCount == 105 || nNumVertices == 142 && nPrimitiveCount == 174 || nNumVertices == 278 && nPrimitiveCount == 462 || nNumVertices == 263 && nPrimitiveCount == 290 || nNumVertices == 316 && nPrimitiveCount == 556)

#define ForceReconAddons (nNumVertices == 432 && nPrimitiveCount == 354 || nNumVertices == 144 && nPrimitiveCount == 136 || nNumVertices == 299 && nPrimitiveCount == 311 || nNumVertices == 167 && nPrimitiveCount == 252 || nNumVertices == 298 && nPrimitiveCount == 506 || nNumVertices == 168 && nPrimitiveCount == 254 || nNumVertices == 860 && nNumVertices == 778 || nNumVertices == 648 && nPrimitiveCount == 710 || nNumVertices == 113 && nPrimitiveCount == 189 || nNumVertices == 142 && nPrimitiveCount == 172 || nNumVertices == 87 && nPrimitiveCount == 90 || nNumVertices == 79 && nPrimitiveCount == 105 || nNumVertices == 84 && nPrimitiveCount == 110 || nNumVertices == 70 && nPrimitiveCount == 70 || nNumVertices == 860 && nPrimitiveCount == 778 || nNumVertices == 85 && nPrimitiveCount == 137)

#define Mulan (nNumVertices == 118 && nPrimitiveCount == 126|| nNumVertices == 121 && nPrimitiveCount == 180|| nNumVertices == 124 && nPrimitiveCount == 126|| nNumVertices == 295 && nPrimitiveCount == 482|| nNumVertices == 299 && nPrimitiveCount == 452|| nNumVertices == 474 && nPrimitiveCount == 728)

#define MulanAddons (nNumVertices == 162 && nPrimitiveCount == 200|| nNumVertices == 120 && nPrimitiveCount == 188|| nNumVertices == 167 && nPrimitiveCount == 276|| nNumVertices == 108 && nPrimitiveCount == 198|| nNumVertices == 512 && nPrimitiveCount == 728|| nNumVertices == 790 && nPrimitiveCount == 881|| nNumVertices == 619 && nPrimitiveCount == 800|| nNumVertices == 399 && nPrimitiveCount == 532|| nNumVertices == 402 && nPrimitiveCount == 580|| nNumVertices == 102 && nPrimitiveCount == 170|| nNumVertices == 125 && nPrimitiveCount == 98|| nNumVertices == 116 && nPrimitiveCount == 128|| nNumVertices == 160 && nPrimitiveCount == 174)

//========================================================

This goes in our defines, new character model recognitions, useful.

 

Globals: We have to declare something , so the codes know what we're talking about

 

:

 

Code:

int m_Stride;

int texnum;

int nNumVertices;

int nPrimitiveCount;

LPDIRECT3DTEXTURE8 Red;

LPDIRECT3DTEXTURE8 Yellow;

LPDIRECT3DTEXTURE8 Green;

LPDIRECT3DTEXTURE8 Blue;

LPDIRECT3DTEXTURE8 Purple;

LPDIRECT3DTEXTURE8 Orange;

LPDIRECT3DTEXTURE8 Pink;

LPDIRECT3DTEXTURE8 White;

LPDIRECT3DTEXTURE8 Black;

bool chams = false;

bool Color = true;

Now, i should've said this before, but when we color in anything we have to declare the colors too.... But whats going to generate these colors??? I mean just because we say it, doesnt mean we have it right?

 

So to demonstrate how to generate these colors we would use this function:

 

Code:

//======================================================================================================================================================================================================================================================================================================================//

HRESULT GenerateTexture(IDirect3DDevice8 *pD3Ddev, IDirect3DTexture8 **ppD3Dtex, DWORD colour32)

{

if( FAILED(pD3Ddev->CreateTexture(8, 8, 1, 0, D3DFMT_A4R4G4B4, D3DPOOL_MANAGED, ppD3Dtex)) )

return E_FAIL;

 

WORD colour16 = ((WORD)((colour32>>28)&0xF)<<12)

|(WORD)(((colour32>>20)&0xF)<<8)

|(WORD)(((colour32>>12)&0xF)<<4)

|(WORD)(((colour32>>4)&0xF)<<0);

 

D3DLOCKED_RECT d3dlr;

(*ppD3Dtex)->LockRect(0, &d3dlr, 0, 0);

WORD *pDst16 = (WORD*)d3dlr.pBits;

 

for(int xy=0; xy < 8*8; xy++)

*pDst16++ = colour16;

 

(*ppD3Dtex)->UnlockRect(0);

 

return S_OK;

}

//==============================================================================================================

But wait theres more(R.I.P Billy Mayes), you generate the colors but we still dont have it..

 

this is where 

 

Code:

bool Color = true;

In Endscene, which is another D3D function we must define these colors :p

 

Code:

typedef HRESULT ( WINAPI* oEndScene ) ( LPDIRECT3DDEVICE8 pDevice );

oEndScene pEndScene;

 

HRESULT WINAPI myEndScene(LPDIRECT3DDEVICE8 pDevice)

{

if(Color)

{

GenerateTexture(pDevice, &Red, D3DCOLOR_ARGB (255 , 255 , 0 , 0 ));

GenerateTexture(pDevice, &Yellow, D3DCOLOR_ARGB (255 , 255 , 255 , 0 ));

GenerateTexture(pDevice, &Green, D3DCOLOR_ARGB (255 , 0 , 255 , 0 ));

GenerateTexture(pDevice, &Blue, D3DCOLOR_ARGB (255 , 0 , 0 , 255 ));

GenerateTexture(pDevice, &Purple, D3DCOLOR_ARGB (255 , 102 , 0 , 153 ));

GenerateTexture(pDevice, &Pink, D3DCOLOR_ARGB (255 , 255 , 20 , 147 ));

GenerateTexture(pDevice, &Orange, D3DCOLOR_ARGB (255 , 255 , 165 , 0 ));

GenerateTexture(pDevice, &Black, D3DCOLOR_ARGB (255 , 0 , 0 , 0 ));

GenerateTexture(pDevice, &White, D3DCOLOR_ARGB (255 , 255 , 255 , 255 ));

Color=false;

}

 

return pEndScene(pDevice);

}

see how we used GenerateTexture, now you have all your colors(could addd more if you find them(Google))

Btw we will be adding more to endscene.

 

 

Now where do we draw this? I might have not pointed this out before, but we would color **** in a D3D Function, known as DrawIndexedPrimitive. All the drawing takes place, like our Colored floors and walls... :p

 

Cham Code :

 

Code:

typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );

oDrawIndexedPrimitive pDrawIndexedPrimitive;

 

HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)

{

 

if(chams)

{

texnum = (nNumVertices*100000)+nPrimitiveCount;

if(m_Stride==40 &&

(texnum==34900580)|| // Delta Force Head

(texnum==36100604)|| // Spetsnaz Head

(texnum==38000658)|| // Spetsnaz Legs

(texnum==18300268)|| // Spetsnaz Body

(texnum==36200604)|| // GIGN Head

(texnum==21200306)|| // GIGN Body

(texnum==35500568)|| // GSG9 Head

(texnum==2200024)|| // GSG9 Bangs

(texnum==8800105)|| // GSG9 Feet

(texnum==36900650)|| // GSG9 Legs

(texnum==19600314)|| // GSG9 Body

(texnum==36700612)|| // SAS Head

(texnum==8500105)|| // SAS Feet

(texnum==37000650)|| // SAS Legs

(texnum==18000274)|| // SAS Body

(texnum==35300556)|| // KSF Head

(texnum==7500121)|| // KSF Arms

(texnum==9200115)|| // KSF Feet

(texnum==12400168)|| // KSF Hands

(texnum==30100522)|| // KSF Legs

(texnum==18700288)|| // KSF Body

(texnum==40900594)|| // ARTC Head

(texnum==11700190)|| // ARTC Arms

(texnum==9100118)|| // ARTC Feet

(texnum==12500170)|| // ARTC Hands

(texnum==37000634)|| // ARTC Legs

(texnum==41700516)|| // ARTC Body

(texnum==19400260)|| // ROKMC Body

(texnum==37900592)|| // ROKMC Head

(texnum==36500642)|| // ROKMC Legs

(texnum==44800776)|| // SRG Head

(texnum==15900200)|| // SRG Left Arm

(texnum==10500168)|| // SRG Right Arm

(texnum==80401016)|| // SRG Body

(texnum==10000121)|| // SRG Feet

(texnum==13200180)|| // SRG Hands

(ForceRecon)|| // ForceRecon

(Mulan)||

(texnum==33800534)) // SRG Leg

 

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Yellow);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Red);

}

 

if (nNumVertices == 213 && nPrimitiveCount == 174) // M67 Grenade =============== //

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Red);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Green);

}

if (nNumVertices == 158 && nPrimitiveCount == 131) // Flashbang =============== //

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Red);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Green);

}

if (nNumVertices == 171 && nPrimitiveCount == 143) // Smoke Grenade =============== //

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Red);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Blue);

}

if (nNumVertices == 271 && nPrimitiveCount == 257) // VX Grenade =============== //

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Red);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Blue);

}

if (nNumVertices == 338 && nPrimitiveCount == 339) // RGD-5 Grenade =============== //

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Red);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Yellow);

}

 

 

 

if (m_Stride==40 && // Equipment =============== //

(texnum==13200212)|| // Delta Force Helmet

(texnum==13200212)|| // Delta Force Helmet 2

(texnum==34700538)|| // Delta Force Gas Mask

(texnum==19500352)|| // Delta Force Balaclava

(texnum==84900778)|| // Delta Force Clan BDU

(texnum==27500442)|| // Delta Force Body Armor

(texnum==42800576)|| // Delta Force Body Armor 2

(texnum==52100658)|| // Delta Force Tactical Vest

(texnum==12200196)|| // Spetsnaz Helmet

(texnum==27100464)|| // Spetsnaz Gas Mask

(texnum==33600552)|| // Spetsnaz Body Armor

(texnum==44100646)|| // Spetsnaz Tactical Vest

(texnum==17800292)|| // GIGN Red Bandana

(texnum==21300290)|| // GIGN Helmet

(texnum==2800036)|| // GIGN Helmet Lens

(texnum==35700558)|| // GIGN Gas Mask

(texnum==22100396)|| // GIGN Balaclava

(texnum==29700492)|| // GIGN Body Armor

(texnum==11200188)|| // ROKMC Beret

(texnum==12000194)|| // ROKMC Helmet

(texnum==29800450)|| // ROKMC Gas Mask

(texnum==27100394)|| // ROKMC Body Armor

(texnum==28700374)|| // ROKMC X Harness

(texnum==34700470)|| // ROKMC X Harness

(texnum==5100056)|| // ROKMC Pouch

(texnum==9900163)|| // ROKMC Left Arm

(texnum==18300163)|| // ROKMC Right Arm

(texnum==16400266)|| // GSG9 Red Bandana

(texnum==16200243)|| // GSG9 Helmet

(texnum==31900466)|| // GSG9 Gas Mask

(texnum==19300342)|| // GSG9 Balaclava

(texnum==83600752)|| // GSG9 Clan BDU

(texnum==33400477)|| // GSG9 Body Armor

(texnum==10500163)|| // GSG9 Rolled Up Sleeves

(texnum==38100666)|| // GSG9 Tactical Knee Pads

(texnum==9600172)|| // SAS Boonie Hat

(texnum==14200236)|| // SAS Helmet

(texnum==37800552)|| // SAS Gas Mask

(texnum==28100486)|| // SAS Balaclava

(texnum==62400752)|| // SAS Clan BDU

(texnum==27900456)|| // SAS Body Armor

(texnum==45700654)|| // SAS Tactical Vest

(texnum==39800532)|| // SAS Tactical Vest 2

(texnum==9200100)|| // SAS Holster

(texnum==4800040)|| // SAS Magazine Pouch

(texnum==4000044)|| // SAS Pouch

(texnum==6500110) || // KSF Boonie Hat

(texnum==12900208)|| // KSF Helmet

(texnum==29600448)|| // KSF Gas Mask

(texnum==31100398)|| // KSF Sunglasses

(texnum==84700776)|| // KSF Clan BDU

(texnum==600004)|| // KSF Clan BDU Logo

(texnum==36500606)|| // KSF Body Armor

(texnum==63100646)|| // KSF Tactical Vest

(texnum==19800163)|| // KSF Rolled Up Sleeves

(texnum==7000066)|| // KSF Holster

(texnum==10400190)|| // SRG Beret

(texnum==23800294)|| // SRG Deer Head

(texnum==11600180)|| // SRG NIJ IIIA Helmet

(texnum==17100278)|| // SRG Red Bandana

(texnum==14600198)|| // SRG Battle Cap

(texnum==18200266)|| // SRG Helmet

(texnum==19100106)|| // SRG Gas Mask

(texnum==54300350)|| // SRG Sunglasses

(texnum==30800380)|| // SRG Mid Class Sunglasses

(texnum==79300995)|| // SRG Clan BDU 1

(texnum==13300138)|| // SRG Clan BDU 2

(texnum==300001)|| // SRG Clan BDU 3

(texnum==1200012)|| // SRG Clan BDU Logo

(texnum==10900110)|| // SRG Bulletproof Vest

(texnum==6200064)|| // SRG Holster

(ForceReconAddons)||

(MulanAddons)||

(texnum==22700250)) // SRG Pouch

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Green);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Blue);

}

if (m_Stride==40 && // Guns =============== //

(texnum==187200968)|| // GALIL

(texnum==187200968)|| // GALIL 2

(texnum==149701124)|| // UZI

(texnum==193701304)|| // M249

(texnum==232501431)|| // SIG551

(texnum==161500751)|| // FA-MAS

(texnum==107400724)|| // FR-F2

(texnum==141600900)|| // AN94

(texnum==145900805)|| // G36C

(texnum==42200339)|| // K1

(texnum==23400116)|| // K1 2

(texnum==17500073)|| // K1 3

(texnum==3200012)|| // K1 4

(texnum==2300012)|| // K1 5

(texnum==71900459)|| // MP5

(texnum==1800008)|| // MP5 2

(texnum==20300084)|| // MP5 3

(texnum==16700083)|| // MP5 4

(texnum==79100469)|| // M4A1

(texnum==12000044)|| // M4A1 2

(texnum==16800062)|| // M4A1 3

(texnum==2400008)|| // M4A1 4

(texnum==600002)|| // M4A1 5

(texnum==12800050)|| // M4A1 6

(texnum==2600010)|| // M4A1 7

(texnum==4200014)|| // M4A1 8

(texnum==1400008)|| // M4A1 9

(texnum==80600442)|| // M16A2

(texnum==13400052)|| // M16A2 2

(texnum==17600066)|| // M16A2 3

(texnum==5400018)|| // M16A2 4

(texnum==46200348)|| // STEYR_AUG

(texnum==27000133)|| // STEYR_AUG 2

(texnum==4100025)|| // STEYR_AUG 3

(texnum==1200006)|| // STEYR_AUG 4

(texnum==400002)|| // STEYR_AUG 5

(texnum==46800367)|| // PSG-1

(texnum==9600042)|| // PSG-1 2

(texnum==18800092)|| // PSG-1 3

(texnum==16900071)|| // PSG-1 4

(texnum==3400012)|| // PSG-1 5

(texnum==800004)|| // PSG-1 6

(texnum==40500383)|| // K2

(texnum==15800089)|| // K2 2

(texnum==2200012)|| // K2 3

(texnum==7000034)|| // K2 4

(texnum==60700349)|| // P90

(texnum==5500033)|| // P90 2

(texnum==47700227)|| // P90 3

(texnum==10300047)|| // P90 4

(texnum==3800014)|| // P90 5

(texnum==50300349)|| // AK-74

(texnum==14700071)|| // AK-74 2

(texnum==13100061)|| // AK-74 3

(texnum==194501145)|| // MG36

(texnum==116000670)|| // DESERT EAGLE

(texnum==182101089)|| // MR73

(texnum==62500454)|| // REMINGTON M870

(texnum==95200571)|| // BENELLI M1

(texnum==40700334)|| // GLOCK 23

(texnum==71500449)|| // BERETTA M92F

(texnum==11000044)|| // BERETTA M92F 2

(texnum==16500075)|| // BERETTA M92F 3

(texnum==4400020)|| // BERETTA M92F 4

(texnum==2800014)|| // BERETTA M92F 5

(texnum==92000543)|| // COLT 45

(texnum==239001276)) // DRAGONUV

{

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Blue);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Green);

}

}

return pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

}

Now ill be explaining a lot... :p

 

Remember these:

 

Code:

int m_Stride;

int texnum;

int nNumVertices;

int nPrimitiveCount;

bool chams = false;

The first 4 are different types of model recognitions... Every model, like a player body has a stride, or a Numvertices or Primcount. In Soldierfront case, the Stride is 40, when the Stride is 40, everything would be chammed... but we use numvertices and primcount to point out the things we want colored in. and in all of that, we simplify it to texnums :). Most games dont have a stride which recognizes everything like soldierfront and you wont need numverts and primcounts... like crossfire, the player modelrecognition is Stride == 40.

 

So texnum is

 

Code:

texnum = (nNumVertices*100000)+nPrimitiveCount;

only use this function when you are useing nNumvertices and primcout.

 

Now we recognize everything with our texnums and ****... :d and in globals we mention chams so it knew what we are talking about...:p

 

Then you get to this...

 

Code:

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_NEVER);

pDevice->SetTexture(0,Yellow);

pDrawIndexedPrimitive(pDevice, pType, nMinIndex, nNumVertices, nStartIndex, nPrimitiveCount);

pDevice->SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE);

pDevice->SetRenderState(D3DRS_ZFUNC,D3DCMP_LESSEQUAL);

pDevice->SetTexture(0,Red);

This is the wallhack code, all you guys need to know is that we enable buffers and switch them enable to see people behind walls.. and 

 

you see 

Code:

pDevice->SetTexture(0,Yellow);

Code:

pDevice->SetTexture(0,Red);

This is how we color our texnums(Model Recognition in)

 

The first one is behind walls color, the second one, is in front of walls color.. You can change it to any colors we've mentioned in our globals.. since we generated it and declared it. 

 

The Colors(Just in case you forgot):

 

Code:

LPDIRECT3DTEXTURE8 Red;

LPDIRECT3DTEXTURE8 Yellow;

LPDIRECT3DTEXTURE8 Green;

LPDIRECT3DTEXTURE8 Blue;

LPDIRECT3DTEXTURE8 Purple;

LPDIRECT3DTEXTURE8 Orange;

LPDIRECT3DTEXTURE8 Pink;

LPDIRECT3DTEXTURE8 White;

LPDIRECT3DTEXTURE8 Black;

Now thats our chams, oh and the guns, you can just modify there colors on the wallhack code right under it.. :p

 

SO what i'm trying to say is you can color anything in as long as you have its model recognition.

 

Moving on!

 

//================================================== ================================================== ================================================== ================================================== ================================================== ================================================== =========//

 

Now we have our chams... and anything really.... that we want to color in.. but our recognition comes from a different place SetStreamSource :p another d3d Function

 

Code:

typedef HRESULT ( WINAPI* oSetStreamSource ) ( LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride );

oSetStreamSource pSetStreamSource;

 

HRESULT WINAPI mySetStreamSource(LPDIRECT3DDEVICE8 pDevice, UINT nStreamNumber, LPDIRECT3DVERTEXBUFFER8 pStreamData, UINT nStride)

{

if(nStreamNumber==0)

m_Stride = nStride;

 

return pSetStreamSource(pDevice, nStreamNumber, pStreamData, nStride);

}

see, the code that says m_Stride = nStride?

 

Well nStride is apart of a modelrecognition, and we used m_Stride, by saying that they equal each other.. m_Stride in our chams code = nStride.. now you say, why dontwe just use nStride instead? Well we have to use this function to identify or use the model recognition system :p

 

Now we're almost done, we have to assign it a hotkey.. :p

 

Back to endscene... Now why is Endscene so important? Because it renders every frame per second :p

 

To add a hotkey. we would do it like this..

 

Code:

if (GetAsyncKeyState(VK_F1)&1) // if we click f1

{ chams = !chams; } // chams = on

Now the hotkeys name has to be exactly like it is.. remember we also use if(colored walls) before?

 

Code:

if (GetAsyncKeyState(VK_F2)&1) // if we click f2

{ colored walls = !colored walls; } // colored walls = on

The hotkeys name has to be the same as the if function and as it is in the globals, thats why we define **** like 

 

bool chams = false;

 

so we can add a hotkey to chams and recognize it :p

 

 

phew that was alot :d

 

 

But theres more(Dam billy mayes)

 

Want no fog, xray , fullbright?

 

declare them first like chams.. :p

 

Code:

int nofog;

int xray;

int fullbright;

Now where we could put this, in DIP, or another D3D function SetRenderState... so you have two options.. put it in dip or SRS :p.. DIP is detected on most games so i'd put it in SetRenderstate, it will help you get used to other functions..

 

Code:

typedef HRESULT ( WINAPI* oSetRenderState ) ( LPDIRECT3DDEVICE8 pDevice, D3DRENDERSTATETYPE State, DWORD Value);

oSetRenderState pSetRenderState;

HRESULT WINAPI mySetRenderState(LPDIRECT3DDEVICE8 pDevice, D3DRENDERSTATETYPE State, DWORD Value)

{

if(fullbright)

{

pDevice->SetRenderState(D3DRS_LIGHTING, false); //d3d lighting off

pDevice->SetRenderState(D3DRS_AMBIENT,D3DCOLOR_ARGB(255,255,255,255)); // use all colors to glow up the lighting ingame

}

 

 

if(nofog) // if nofog on

{ // then

pDevice->SetRenderState(D3DRS_FOGENABLE, false); // Disable the Fog

} // end of then

if(xray)

{

if(m_Stride == Modelrecognition) //you can define the stride like this to

{

m_pD3Ddev->SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE);

}

}

 

return pSetRenderState(pDevice,State, Value);

}

Now we have three different cheats in SRS(SetRenderState)!

 

Like before we just have to set a hotkey for it... IN ENDSCENE!

 

Code:

if (GetAsyncKeyState(VK_F3)&1) // if we click f3

{ //then

nofog = !nofog; //nofog = on

} //end of then

and the same applys to xray and fullbright :d

 

phew a lot of cheats..

 

What we've nailed down..

 

-Wallhack

-Chams

-NoFog

-Xray

-FullBright

 

whats left?

 

Crosshair :p

 

in globals we put:

 

Code:

float ScreenCenterX = 0.0f;

float ScreenCenterY = 0.0f;

bool xhair = false;

D3DCOLOR redt = D3DCOLOR_XRGB( 255, 0, 0 );

Centering and declaring the xhair.. also giving it the color of red(You also just use the regular red,or whatever color)

 

SO here we are back to endscene again :d...

 

Code:

if(xhair)

{

D3DRECT rec2 = {ScreenCenterX-20, ScreenCenterY, ScreenCenterX+ 20, ScreenCenterY+2};

D3DRECT rec3 = {ScreenCenterX, ScreenCenterY-20, ScreenCenterX+ 2,ScreenCenterY+20};

pDevice->Clear(1, &rec2, D3DCLEAR_TARGET,redt, 0, 0);

pDevice->Clear(1, &rec3, D3DCLEAR_TARGET,redt, 0, 0);

}

we're drawing this in endscene... :d where it says redt, you can change to any of the colors we declared.

 

But to adding a crosshair we need screenpositioning... we use the d3d function SetViewPort

 

Code:

typedef HRESULT (WINAPI* oSetViewport)(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport);

oSetViewport pSetViewport;

 

HRESULT WINAPI mySetViewport(LPDIRECT3DDEVICE8 pDevice,CONST D3DVIEWPORT8* pViewport)

{

ScreenCenterX = ( float )pViewport->Width / 2;

ScreenCenterY = ( float )pViewport->Height / 2;

 

return pSetViewport(pDevice,pViewport);

}

it just positions it.. and you know whats next.. back to Endscene...

 

add the hotkey

 

Code:

if (GetAsyncKeyState(VK_F8)&1) // if we click f8

{ xhair = !xhair; } // xhair = on

Now we have

 

-WallHack

-Chams

-Nofog

-Xray

-Fullbright

-Crosshair

 

whats left how about wire frame?

Code:

typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );

oDrawIndexedPrimitive pDrawIndexedPrimitive, OriginalDrawIndexedPrimitive;

HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)

{

 

if(WireFame)

 

if(m_Stride == modelrecog)

{ // then

pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);

} // end of then

This can go either in DIP or SetRenderState.. does it matter.. maybe if dip gets detected.

 

You will need a model recognition to choose what you want to wireframe like what you want to color..

 

remember in globals

 

Code:

int WireFrame;

and add the hotkey

 

Code:

if (GetAsyncKeyState(VK_F3)&1) // if we click f3

{ //then

wireframe = !wireframe; //wireframe = on

} // end of then

Now you know whats cool about wire frame.. we can create nosmoke and flash with this...

 

But you will need the modelrecognition of the smoke and flash...

 

Remember how i said Stride == 40 Renders everything in soldierfront? If we do

 

if(m_Stride == 40)

{ // then

pDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME);

} // end of then


 

then everything will be wiredframe..

 

Time for uber sexy AsusWallhack

 

Globals

 

Code:

int AsusWallhack;

Code in either SetRenderstate or DIP:

 

Example in DIP

Code:

 

typedef HRESULT ( WINAPI* oDrawIndexedPrimitive ) ( LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount );

oDrawIndexedPrimitive pDrawIndexedPrimitive, OriginalDrawIndexedPrimitive;

HRESULT WINAPI myDrawIndexedPrimitive(LPDIRECT3DDEVICE8 pDevice, D3DPRIMITIVETYPE pType, UINT nMinIndex, UINT nNumVertices, UINT nStartIndex, UINT nPrimitiveCount)

{

 

if(AsusWallhack)

 

if(Model_rec//for walls)

{

pDevice->SetRenderState( D3DRS_SRCBLEND, 3 );

pDevice->SetRenderState( D3DRS_DESTBLEND, 4 );

pDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, true );

}

}

then add hotkey

 

so now we have

 

-WallHack

-Chams

-NoFog

-FullBright

-Xray

-NoSmoke(wireFrame)

-NoFlash(Wireframe)

-WireFrame(Whole screen)

-Crosshair

-Asus Wallhack

 

Whats left?

 

-NoRecoil

-NoSpread

-Shoot with nades

-ESP(Coming soon)

-ColorAimbot(Easier now that we have chams)

-SuperJump

 

 

Coming Soon:

-Debugging boxes(Sexy)

-PixelShaderChams(Sexy)

-Esp(Meh)

-NoSky(another easy one)

 

UPDATE: NoSKy,NOFlash,NoSmoke,NoWater -> D3D Style.

 

NoSky:

 

Start off with

 

Code:

int nosky;

we need our globals.

 

Now in DIP:

 

 

 

Code:

if(nosky)

{

if(modelrec)

{

return D3D_OK

}

}

NoFlash:

 

Code:

int noflash;

In DIP

 

Code:

if(noflash)

{

if(ModelRec)

{

return D3D_OK;

}

}

NoSmoke

 

int nosmoke;

 

in DIP

 

Code:

if(nosmoke)

{

if(ModelRec)

{

return D3D_OK;

}

}

NoWater:

 

Code:

int nowater;

 

if(nowater)

{

if(ModelRec)

{

return D3D_OK;

}

}

Now for the explanations of each.

 

they all fall under the same concept. Now for the Model Recognition you have to find it with a Model Rec Logger. You have to find the skys Stride/Numvert/Primcount, the waters stride/numvert/primcount, and the flash(OnScreen) and smoke(visible) stride/numvert/primcount. 

 

So logging them will be tough but it will be worth it. when you logg the smoke and flash bangs, im not talking about them when they are in there canteen, im talking about when your whole screen is flashed, or when smoke has appeared on the screen.

 

Code:

return D3D_OK;

what this does is 

 

Code:

return 0;

returning 0, means we are removing it, getting rid of it,ect.

 

So GLASSWALLS would be:

 

Code:

int GlassWalls;

in DIP

 

Code:

if(GlassWalls)

{

if(ModelRec)

{

return D3D_OK;

}

}

the model rec, is the model rec of the walls which is probally easier to find. Returning 0 will only make it invisible TOO YOU. just like how you can only see chams. I dont want people to start getting the idea that you can return D3D_OK on the player rec and become invisible. 

 

See how much paysites make off bullshit?

 

Btw.. going over some detection.. On Windows XP, Soldierfront Scans DrawIndexedPrimitive so its detected..So chams and Wallhack will have to wait.. for now render all the stuff you can in setrenderstate... Full Screen WireFrame will still help.

 

Now for hooking you will need to use detours..

 

Detours: Add this to your source..

 

Code:

//==========================================FindPatt======================================================================//

bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask)

{

for(;*szMask;++szMask,++pData,++bMask)

if(*szMask=='x' && *pData!=*bMask) return 0;

return (*szMask) == NULL;

}

//=======================================================================

DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask)

{

for(DWORD i=0; i<dwLen; i++)

if (bCompare((BYTE*)(dwAddress+i),bMask,szMask)) return (DWORD)(dwAddress+i);

return 0;

}

//=======================================================================

void *DetourFunc(BYTE *src, const BYTE *dst, const int len)

{

BYTE *jmp = (BYTE*)malloc(len+5);

DWORD dwBack;

VirtualProtect(src, len, PAGE_READWRITE, &dwBack);

memcpy(jmp, src, len);

jmp += len;

jmp[0] = 0xE9;

*(DWORD*)(jmp+1) = (DWORD)(src+len - jmp) - 5;

src[0] = 0x90; //50

src[1] = 0x90; // 58

src[2] = 0xE9;

*(DWORD*)(&src[3]) = (DWORD)(dst - src) - 7;

for (int i=7; i<len; i++) src = 0x90;

VirtualProtect(src, len, dwBack, &dwBack);

return (jmp-len);

}

now how do we use this? Remember we need to define these too!

 

Code:

bool bCompare(const BYTE* pData, const BYTE* bMask, const char* szMask);

DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask);

void *DetourFunc(BYTE *src, const BYTE *dst, const int len);

int D3D8BASE (void);

int sleepthread2 (void);

int sleepthread (void);

After that, heres the hook!

 

Code:

//=======================================Vtable Hook====================================================================//

int D3D8BASE (void)

{

HMODULE D3D8BASE = NULL;

for (;D3D8BASE == NULL;Sleep(100))

D3D8BASE = LoadLibrary("d3d8.dll");

DWORD* VTableHook = 0;

DWORD hD3D8 = (DWORD)GetModuleHandle("d3d8.dll");

DWORD VIRTUALTABLE = FindPattern(hD3D8, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");

memcpy(&VTableHook, (void*)(VIRTUALTABLE+2), 4);

 

DWORD dwEndScene = VTableHook[35];

DWORD dwDrawIndexedPrimitive = VTableHook[71];

DWORD dwSetStreamSource = VTableHook[83];

DWORD dwSetViewport = VTableHook[40];

DWORD dwSetRenderState = VTableHook[50];

 

 

pDrawIndexedPrimitive = (oDrawIndexedPrimitive)DetourFunc((PBYTE)dwDrawIndexedPrimitive, (PBYTE)myDrawIndexedPrimitive, 7);

pSetStreamSource = (oSetStreamSource)DetourFunc((PBYTE)dwSetStreamSource, (PBYTE)mySetStreamSource, 7);

pEndScene = (oEndScene)DetourFunc((PBYTE)dwEndScene, (PBYTE)myEndScene, 7);

pSetViewport = (oSetViewport)DetourFunc((PBYTE)dwSetViewport, (PBYTE)mySetViewport, 7);

pSetRenderState = (oSetRenderState)DetourFunc((PBYTE)dwSetRenderState, (PBYTE)mySetRenderState, 7);

 

return 0;

}

 

BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )

{

DisableThreadLibraryCalls(hDll);

 

if ( dwReason == DLL_PROCESS_ATTACH )

{

CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)D3D8BASE, NULL, NULL, NULL);

 

}

return TRUE;

}

You have everything now.! Heres a source for you to add this into!

 

HERES THE SOURCE:

 


 

View IT

 

Credits: Azorbix,Hans,Gordon,Roverturbo,quicktime

 

remember to hit thanks and rep + took me an hour to make it noob proof

 

Sticky Plox

 

SoreBack added 9 Minutes and 15 Seconds later...< --- Please use the edit button in the future--- >

 

 

 

On to the reasons for this, many people keep asking questions on help for hooking and i thought id contribue something...So here it is.. by using this you automatically agree not to use this as a payhack..

 

Time to compare :

 

-WallHack

-Chams

-NoFog

-FullBright

-Xray

-NoSmoke(wireFrame)

-NoFlash(Wireframe)

-WireFrame(Whole screen)

-Crosshair

-Asus Wallhack

-GlassWalls

-NoFlash

-NoSmoke

-NoWater

-NoSky

 

----------SoreBack Style VS.----------------

 

Payhacksites:

* Wallhack

* Chams

* No Fog

* See-Through Sniper Scope 

* Crosshair

* Unlimited Ammo

* No Recoil

* Shoot through Walls - Full range.

* Shoot with RGD-5

* Shoot with M67

* Shoot with VXPoison

* No Delay Shoot

* Superjump

* Speed-Cheat

* No Sky

* No Smoke

* No Smoke

* No Flash

Smartz

 

and 

 

# Player Chams (Blue \ Red) 

# Grenade Chams << Same thing as chams

# Player Wireframe << one more line of code

# Asus Wallhack

# Full Bright

# XRay

# Crosshairs

# No Fog

# No Spread

# No Recoil

# No delay

# Unlimited Ammo

# Shoot Through Walls

# Shoot With RGD-5

# Shoot With M67

# Shoot With FB

# Shoot With VX

# 5 NEW CROSSHAIRS !!! << the ***?

 

# No Sky << D3D :d

 

# Esp (Compatible to the Max resolution ONLY) <<SprintF/SetTransform

# Super Jump

see we just found out alot of cheats, for free... and it is not worth it to pay for cheats.

 

Could you change the thread name to D3D Coding: Wallhacks,Chams,Nofog,FullBright,WireFrame :p 
  • Love 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
  • XorEax locked this topic
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.

 

AdBlock Extension Detected!

depositphotos_220325684-stock-illustration-hand-holding-mobile-with-ad.jpg

 

Our website is made possible by displaying online Advertisements to our members.

Please disable AdBlock browser Extension first, to be able to use our Community.

You won't be able to access this page.

I've Disabled AdBlock