Chams ínyencek

Chams az ínyencek.

Üdvözöljük csaló és chitmeykery. Ebben a témában, meg akarom mutatni, hogyan lehet Chams, de a csúcspontja az egész nem, hogyan lehet létrehozni, és hogyan lehet, hogy a „nem standard”. + A kódot adok az lesz, hogy összegyűjtse a tudás létrehozása és triggerbota D3D aimbot, és ha nem hiányzik a képzelet, és ez valami más.







Természetesen feltételezem, hogy már egy egyszerű vallhak + Chams. A kihívás abban áll, hogy elfogják a funkció DrawIndexedPrimitive d3dx9.dll könyvtár és meghatározzuk az adatokat a kívánt modell, ezzel minden, amit tudni, hogy úgy leírni az egész folyamat nem.

Az, hogy mi lesz a szokatlan Chams? És az, hogy a segítségével d3dx lehetőségeket, akkor hívják fel a modellek nem csak átfestették credit default szín, hanem némi hatása.

Pontosabban, a példa a Chams vvide alakot. Ehhez meg kell használni a shader, ha nem tudjuk, mi az, információt találni az interneten. Aztán némi alapja, adok egy kódot, akkor lehet, hogy a tűz Chams, izzó, fény, annyit jött a fejünket, a változó csak a kódot a shader, az előny, hogy meg vannak írva HLSL nyelv nagyon hasonlít a kedvenc B + +. Azonban az a shader hozok Delphi, de ne aggódj, lehet újraírni C ++, az egész dolog lesz nagyon könnyű, mivel én csak használni direktiks könyvtár és C ++ minden olyan funkciókat is bemutat.

Most írják az algoritmust.
1) létrehozása a szükséges tárgyakat mi d3dx: shader, textúrák, vertex pufferek. Texture meg kell tenni, hogy csak meg kell hálókat. Egy konkrét példában, akkor teszi a játékos modellek. Vertex puffer, meg kell őt terheljék a textúra, és megjeleníti az eredményt. Texture is kell valamit, hogy üljön. És két shader, az első szabvány, amely egyszerűen ömlik színű modell, a második a hatása a sziluettet.
2) A DrawIndexedPrimitive, a szükséges modell render a textúra (modell meghatározza a maga módján, ez egy klasszikus - numvertices és primcount (a csúcsok száma, a szám a primitívek)).

3) A EndScene alkalmazza a shader a textúra, ami lehetetlenné tette a modellek. Shader fog tenni a munkáját, és csökkenteni fogja a közepén a szemek.

4) A húzás után teksuru át a képernyőn. Megrajzolása után a textúra meg kell tisztítani, különben a képernyőn lesz ismeretlen nonszensz.

Hozza létre a szükséges objektumokat.

d3ddev. GetDeviceCaps (CAPS);
VERSPX1: = (inttostr (D3DSHADER_VERSION_MAJOR (sapkák PixelShaderVersion)).);
VERSPX2: = (inttostr (D3DSHADER_VERSION_MINOR (CAPS PixelShaderVersion)).);
STRASM: = 'ps_' + VERSPX1 + '_' + VERSPX2 + # 13 + 'mov oC0, c0' + # 13; // ezt a kódot az első shader, hogy töltse szemek színét, ha sokkolta ezek a jelek nem kell aggódni, a második shader írunk HLSL
pixelshader: = nil;
ha D3DXASSEMBLESHADER (PCHAR (STRASM), hosszúság (strasm), nulla. nulla. 0, @ pshader. nil) = d3d_ok Ezután kezdődik
d3ddev. CreatePixelShader (. Pshader GetBufferPointer pixelshader.);
végén;
pshader: = nil;
d3ddev. GetRenderTarget (0. backbuffer);
ha backbuffer <> nulla, akkor backbuffer. GetDesc (desc);
D3DDEV. CreateTexture (. DESC szélesség DESC Magasság 1. D3DUSAGE_RENDERTARGET D3DFMT_A8R8G8B8 D3DPOOL_DEFAULT sil_texture NIL .......);
sil_texture. GetSurfaceLevel (0. rendersurface);

// shader alakot, a kód egy fájlban t.fx
ha D3DXCompileShaderFromFile (pchar (str + '\ t.fx'), nulla. nulla. 'fő'. pchar ( 'ps_' + VERSpx1 + '_' + VERSpx2), 0, @ pshader. nulla. nil) = d3d_ok majd
d3ddev. CreatePixelShader (pshader GetBufferPointer sil_ps ..);

d3ddev. CreateVertexBuffer (sizeof (TVertex2) * 4. 0. fvf2 D3DPOOL_MANAGED sil_vertex nulla ...);

fl: = 0;
// olyan mintáját
ha check_model1 (numvertices promcount.), majd fl: = 1
ha check_model2 (numvertices promcount.), majd FL: = 2

if (fl> 0), akkor kezdődik
d3ddev. CreateStateBlock (D3DSBT_ALL pStateBlock.); // aktuális beállítások mentéséhez renderstate. és még azután is, a kapcsoló kimenet teszi, hogy egy másik helyre, akkor előfordul, csak értelmetlen.


ha fl = 1, akkor kezdődik
R: = 1; g: = 1; b: = 0;
végén;
ha fl = 2, akkor kezdődik
R: = 0; g: = 1; b: = 1;
végén;

d3ddev. getrenderstate (d3drs_zenable old_zenable.);
d3ddev. SetRenderTarget (0. rendersurface); // állítsa a vakolatot textúra
d3ddev. setrenderstate (d3drs_zenable ifalse.); //

pixelvalue # 91; 0 # 93 ;: = R; pixelvalue # 91; 1 # 93 ;: = g; pixelvalue # 91; 2 # 93 ;: = b; pixelvalue # 91; 3 # 93 ;: = 1;
d3ddev. SetPixelShader (pixelshader);
d3ddev. SetPixelShaderConstantF (0, @ pixelvalue 1.); // használja az első shader, a kitöltés színét. Mi lesz tárolva a textúra árnyékos modellek és a képernyő normális, hogy ez a módszer is használható színes aimbot nélkül Chams.
Eredmény: = or_drawindexedprimitive (self _Type BasevertexIndex Minvertexindex Numvertices Startindex Primcount ......);

/////
ha fl = 1, akkor kezdődik
R: = 1; g: = 0; b: = 0;
végén;
ha fl = 2, akkor kezdődik
R: = 0; g: = 1; b: = 0;
végén;
d3ddev. setrenderstate (d3drs_zenable old_zenable.);
pixelvalue # 91; 0 # 93 ;: = R; pixelvalue # 91; 1 # 93 ;: = g; pixelvalue # 91; 2 # 93 ;: = b; pixelvalue # 91; 3 # 93 ;: = 1;
d3ddev. SetPixelShader (pixelshader);
d3ddev. SetPixelShaderConstantF (0, @ pixelvalue 1.);
Eredmény: = or_drawindexedprimitive (self _Type BasevertexIndex Minvertexindex Numvertices Startindex Primcount ......);


d3ddev. SetRenderTarget (0. oldrendersurface); // visszaállítani a régi vakolat
d3ddev. SetPixelShader (oldpixelshader);
d3ddev. SetPixelShaderConstantF (0, @ oldpixelvalue 1.);

pStateBlock. kell alkalmazni; // render beállítások be vannak állítva.
pStateBlock: = nil;
végén;
Eredmény: = or_drawindexedprimitive (self _Type BasevertexIndex Minvertexindex Numvertices Startindex Primcount ......);

Írásbeli ilyen protsedurku kimeneti textúra shader.

eljárás draw_texture (. x1 y1 x2 y2 egyetlen, ... textúra idirect3dtexture9 ;. ps idirect3dpixelshader9.);






var
Csúcsot. sor # 91; 0..3 # 93; A TVertex2;
pVertices. Pointer;
kezdődik
// vertex struktúra
// fvf2 = D3DFVF_XYZRHW vagy D3DFVF_TEX1;
// TVertex2 = rekord
// x, y, z, RHW: egységes;
// tu, tv: egységes;
// vége;


ha d3ddev = nil majd kilép;
ha sil_vertex = nil majd kilép;
// set koordinátáit és vertex textúra koordinátákat
csúcspontok # 91; 0 # 93;. X: = x1; csúcspontok # 91; 0 # 93;. y: = y1; csúcspontok # 91; 0 # 93;. z: = 0; csúcspontok # 91; 0 # 93;. RHW: = 1;
csúcspontok # 91; 0 # 93;. tu: = 0; csúcspontok # 91; 0 # 93;. tv: = 0;

csúcspontok # 91; 1 # 93;. X: = x2; csúcspontok # 91; 1 # 93;. y: = y1; csúcspontok # 91; 1 # 93;. z: = 0; csúcspontok # 91; 1 # 93;. RHW: = 1;
csúcspontok # 91; 1 # 93;. tu: = 1; csúcspontok # 91; 1 # 93;. tv: = 0;

csúcspontok # 91; 2 # 93;. X: = x1; csúcspontok # 91; 2 # 93;. y: = y2; csúcspontok # 91; 2 # 93;. z: = 0; csúcspontok # 91; 2 # 93;. RHW: = 1;
csúcspontok # 91; 2 # 93;. tu: = 0; csúcspontok # 91; 2 # 93;. tv: = 1;

csúcspontok # 91; 3 # 93;. X: = x2; csúcspontok # 91; 3 # 93;. y: = y2; csúcspontok # 91; 3 # 93;. z: = 0; csúcspontok # 91; 3 # 93;. RHW: = 1;
csúcspontok # 91; 3 # 93;. tu: = 1; csúcspontok # 91; 3 # 93;. tv: = 1;


Eredmény: = sil_vertex. Lock (0. sizeof (TVertex2) * 4. pVertices 0.);
ha nem sikerült (Eredmény), majd a Kilépés;
Move (csúcspontok # 91; 0 # 93;, pVertices ^, sizeof (TVertex2) * 4);
sil_vertex. kinyit;


d3ddev. CreateStateBlock (D3DSBT_ALL pStateBlock.);
d3ddev. SetPixelShader (nulla);

d3ddev. SetPixelShader (ps); // farag a téglalap textúra és használata shader
d3ddev. SetTexture (0. textúra);
d3ddev. SetStreamSource (0. sil_vertex 0. sizeof (TVertex2).);
d3ddev. SetFVF (FVF2);

d3ddev. DrawPrimitive (D3DPT_trianglestrip 0. 2).

pStateBlock. kell alkalmazni;
pStateBlock: = nil;

// felhívni a tér, akkor meg kell tisztítani textúra

eljárás DrawRect (. x1 y1 X2 Y2 egész szám; ... r g b byte ...);
var BarRect. D3DRECT; Cor. D3DCOLOR;
kezdődik
cor: = ((b) + ((g) SHL 8) + ((R) SHL 16));
BarRect. x1: = x1; BarRect. y1: = Y1; BarRect. x2: = x2; BarRect. y2: = y2;
ha d3ddev <> nulla, akkor d3ddev. Tiszta (1. @ BarRect D3DCLEAR_TARGET vagy D3DCLEAR_ZBUFFER Cor 0. 0 ...);
végén;

draw_texture (0. 0. desc szélesség desc Magasság sil_texture sil_ps .....); // felhívni a textúra

Eredmény: = or_endscene (ön);
// Mi tiszta teksturku
ha d3ddev <> Ezután kezdődik a nulla
d3ddev. GetRenderTarget (0. oldrendersurface);
d3ddev. SetRenderTarget (0. rendersurface);
drawrect (0. 0. desc Szélesség desc Magasság 0. 0. 0 ....);
d3ddev. SetRenderTarget (0. oldrendersurface);
végén;

Itt Shader alakot kódot pishitsya a szokásos notebook, ebben a példában a fájlnév t.fx

// shader sziluettként Baunti
sampler TextureSampler;

struct PixelInput
<
float2 TexCoord. TEXCOORD0;
>;


float összeg (float4 a)
visszatérés (a # 91; 0 # 93; + a # 91; 1 # 93; + a # 91; 2 # 93; + a # 91; 3 # 93;);
>;

float4 fő (PixelInput input). COLOR0

float xx = 0,003; // szélessége a sziluett
float4 colorout;
float4 color = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y) ...);
float4 color1 = tex2D (. TextureSampler float2 (bemeneti TexCoord x + xx bemeneti TexCoord y) .....);
float4 COLOR2 = tex2D (... TextureSampler float2 (input TexCoord x - xx bemeneti TexCoord y) ...);
float4 color3 = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y + xx) ...);
float4 color4 = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y - xx) ...);
colorout = szín;

if ((sum (color1)> 0) (sum (szín) == 0))
colorout = color1;
>;

if ((sum (COLOR2)> 0) (sum (szín) == 0))
colorout = COLOR2;
>;

if ((sum (color3)> 0) (sum (szín) == 0))
colorout = color3;
>;

if ((sum (color4)> 0) (sum (szín) == 0))
colorout = color4;
>;

Ha valaki elsajátította mindazt, amit írt, azt javaslom, ebben a sorrendben terjedését shader és screenshotok, én mindig ezzel a mini shader „üveg” hatást, hogy valaki lesz érdekelt tudok dobni.

Re: Chams az ínyencek.

Itt egy árnyékoló, amely hívom az üveg, van egy alakot, és ő modelc színes átláthatóságot. Hogy világos lesz, megadva a shader kódot. Mindez sokáig írtam 5 hónappal ezelőtt, még szerzett shaders'll vissza, és létrehoz valami sokkal érdekesebb és bonyolultabb.

// shader által Baunti
sampler TextureSampler;

struct PixelInput
<
float2 TexCoord. TEXCOORD0;
>;


float összeg (float4 a)
<
visszatérés (a # 91; 0 # 93; + a # 91; 1 # 93; + a # 91; 2 # 93; + a # 91; 3 # 93;);
>;

float4 fő (PixelInput input). COLOR0

<
float XX = 0,004;
float4 color = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y) ...);
float4 color1 = tex2D (. TextureSampler float2 (bemeneti TexCoord x + xx bemeneti TexCoord y) .....);
float4 COLOR2 = tex2D (... TextureSampler float2 (input TexCoord x - xx bemeneti TexCoord y) ...);
float4 color3 = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y + xx) ...);
float4 color4 = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y - xx) ...);

float4 colorout = szín;

if ((sum (color1)> 0) (sum (szín) == 0))
<
colorout = color1;
colorout # 91; 3 # 93 = 0,7;
>;

if ((sum (COLOR2)> 0) (sum (szín) == 0))
<
colorout = COLOR2;
colorout # 91; 3 # 93 = 0,7;
>;

if ((sum (color3)> 0) (sum (szín) == 0))
<
colorout = color3;
colorout # 91; 3 # 93 = 0,7;
>;

if ((sum (color4)> 0) (sum (szín) == 0))
<
colorout = color4;
colorout # 91; 3 # 93 = 0,7;
>;

Írta Baunti [Meg kell nyilvántartásba venni és nem blokkolja a felhasználó megtekintheti linkek regisztrálni ezen a linken]

Itt egy árnyékoló, amely hívom az üveg, van egy alakot, és ő modelc színes átláthatóságot. Hogy világos lesz, megadva a shader kódot. Mindez sokáig írtam 5 hónappal ezelőtt, még szerzett shaders'll vissza, és létrehoz valami sokkal érdekesebb és bonyolultabb.

// shader által Baunti
sampler TextureSampler;

struct PixelInput
<
float2 TexCoord. TEXCOORD0;
>;


float összeg (float4 a)
<
visszatérés (a # 91; 0 # 93; + a # 91; 1 # 93; + a # 91; 2 # 93; + a # 91; 3 # 93;);
>;

float4 fő (PixelInput input). COLOR0

<
float XX = 0,004;
float4 color = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y) ...);
float4 color1 = tex2D (. TextureSampler float2 (bemeneti TexCoord x + xx bemeneti TexCoord y) .....);
float4 COLOR2 = tex2D (... TextureSampler float2 (input TexCoord x - xx bemeneti TexCoord y) ...);
float4 color3 = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y + xx) ...);
float4 color4 = tex2D (... TextureSampler float2 (input TexCoord x bemeneti TexCoord y - xx) ...);

float4 colorout = szín;

if ((sum (color1)> 0) (sum (szín) == 0))
<
colorout = color1;
colorout # 91; 3 # 93 = 0,7;
>;

if ((sum (COLOR2)> 0) (sum (szín) == 0))
<
colorout = COLOR2;
colorout # 91; 3 # 93 = 0,7;
>;

if ((sum (color3)> 0) (sum (szín) == 0))
<
colorout = color3;
colorout # 91; 3 # 93 = 0,7;
>;

if ((sum (color4)> 0) (sum (szín) == 0))
<
colorout = color4;
colorout # 91; 3 # 93 = 0,7;
>;

Prompt pzhlst. És milyen eljárást kell nyomni ez egy kód (létrehozásához szükséges)?

és miért a játék összeomlik itt ezen a vonalon Deviceinterface.SetPixelShader kód (pixelshader)?

Miért csak itt az eredmény eljárás :. = DrawIndexedPrimitiveNext (self, _Type mint IDirect3DDevice9 szolgálja az önálló és nem DrawIndexedPrimitiveNext mi lefoglaló (függvény DrawIndexedPrimitiveCallback (Deviceinterface :? IDirect3DDevice9;).


Általában, ha valaki tud, kérjük, olvassa el a teljes kódot a változók listáját és eljárások, és talán tévedtem, hogy segítsen egy kezdő fal hacker kérem ..
Itt van a lista a globális változók, konstansok, típusok:

Írta arxlex [Meg kell nyilvántartásba venni és nem blokkolja a felhasználó megtekintheti linkek regisztrálni ezen a linken]

Miért kell a forráskódot, minden meg van írva részletesen. Csak el kell olvasni. Primerchik nagyon eredeti, de nagyon sok a fékeket. Van egy ötletem vpihat ezt a csodát patakokban?

Írta arxlex [Meg kell nyilvántartásba venni és nem blokkolja a felhasználó megtekintheti linkek regisztrálni ezen a linken]

Először foglalkozik ezzel:

Mit gondolsz én 3d eszköz soha nem látott. És ez a kód már az eredménye ujjal mutatva az égen! Mert már ment végig a változatok a kódot, és ezt a teremtést, és nem működött.