Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 14:09

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Source-Code] Chams

Discussion on [Source-Code] Chams within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
Wolfhelper's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 196
Received Thanks: 35
[Source-Code] Chams

Das ist doch ein möglicher Source code Für einen Chams Hack oder ?
Also ich frage das jetzt nur weil ich wissen möchte wie ein Chams Hack funktioniert
PHP Code:
#include "IVModelRender.h"

IMaterialg_pTextureRed;
IMaterialg_pTextureYellow
IMaterialg_pTextureBlue;
IMaterialg_pTextureGreen;
IMaterialg_pTextureWhite;
IMaterialg_pTextureWhite2;

CVMTHook gDrawModelExHook;
int    __stdcall new_DrawModelExModelRenderInfo_t &pInfo )
{
    if(
g_pTextureRed == NULL)
        
g_pTextureRed gCheat.m_pMaterialSystem->FindMaterial("models\\textures\\Red"TEXTURE_GROUP_MODEL);
    if(
g_pTextureYellow == NULL)
        
g_pTextureYellow gCheat.m_pMaterialSystem->FindMaterial("models\\textures\\Yellow"TEXTURE_GROUP_MODEL);
    else
    {
        if(
g_pTextureYellow->GetMaterialVarFlag(MATERIAL_VAR_IGNOREZ) == FALSE)
            
g_pTextureYellow->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZTRUE);
    }
    if(
g_pTextureBlue == NULL)
        
g_pTextureBlue gCheat.m_pMaterialSystem->FindMaterial("models\\textures\\Blue"TEXTURE_GROUP_MODEL);
    if(
g_pTextureGreen == NULL)
        
g_pTextureGreen gCheat.m_pMaterialSystem->FindMaterial("models\\textures\\Green"TEXTURE_GROUP_MODEL);
    else
    {
        if(
g_pTextureGreen->GetMaterialVarFlag(MATERIAL_VAR_IGNOREZ) == FALSE)
            
g_pTextureGreen->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZTRUE);
    }
    if(
g_pTextureWhite == NULL)
        
g_pTextureWhite gCheat.m_pMaterialSystem->FindMaterial("models\\textures\\White"TEXTURE_GROUP_MODEL);
    if(
g_pTextureWhite2 == NULL)
        
g_pTextureWhite2 g_pTextureWhite;
    else
    {
        if(
g_pTextureWhite2->GetMaterialVarFlag(MATERIAL_VAR_IGNOREZ) == FALSE)
            
g_pTextureWhite2->SetMaterialVarFlag(MATERIAL_VAR_IGNOREZTRUE);
    }

    
gDrawModelExHook.UnHook();
    if( 
pInfo.pModel )
    {
        const 
charpszModelName gCheat.m_pModelinfo->GetModelName(pInfo.pModel);

        if(
strstr(pszModelName"models/player"))
        {
            
IMaterialpTexture g_pTextureWhite;
            
IMaterialpWallHackTexture g_pTextureWhite2;

            
CBaseEntitypModelEntity = (CBaseEntity*)gCheat.m_pEntList->GetClientEntity(pInfo.entity_index);
            if(
pModelEntity)
            {
                
player_info_t pinfo;
                
int iLifestate = *(int*)((DWORD)pModelEntity 0x87);

                if( 
iLifestate == LIFE_ALIVE
                
&&  gCheat.m_pEngine->GetPlayerInfo(pInfo.entity_index, &pinfo))
                {
                    
int iTeam = *(int*)((DWORD)pModelEntity 0x90);

                    if(
iTeam == 2)
                    {
                        
pTexture g_pTextureRed;
                        
pWallHackTexture g_pTextureYellow;
                    }
                    else if(
iTeam == 3)
                    {
                        
pTexture g_pTextureBlue;
                        
pWallHackTexture g_pTextureGreen;
                    }
                }
                else
                {
                    
pTexture g_pTextureWhite;
                    
pWallHackTexture g_pTextureWhite2;
                }
            }
            else
            {
                if(
strstr(pszModelName"models/player/t_"))
                {
                    
pTexture g_pTextureRed;
                    
pWallHackTexture g_pTextureYellow;
                }
                if(
strstr(pszModelName"models/player/ct_"))
                {
                    
pTexture g_pTextureBlue;
                    
pWallHackTexture g_pTextureGreen;
                }
            }
            
gCheat.m_pModelRender->ForcedMaterialOverride(pWallHackTexture);
            
gCheat.m_pModelRender->DrawModelEx(pInfo);
            
gCheat.m_pModelRender->ForcedMaterialOverride(pTexture);
        }
        else
        {
            
gCheat.m_pModelRender->ForcedMaterialOverride(NULL);
        }
    }
    
int iRet gCheat.m_pModelRender->DrawModelEx(pInfo);
    
gCheat.m_pModelRender->ForcedMaterialOverride(NULL);
    
gDrawModelExHook.ReHook();

    return 
iRet
Wolfhelper is offline  
Old 07/11/2011, 21:28   #2
 
elite*gold: 0
Join Date: Nov 2009
Posts: 343
Received Thanks: 45
Jetz stell dir mal vor es ist keiner...Keiner kann dir das sagen mit dem Ausschnitt. Google einfach mal nach D3D-Hook und du wirst was finden.

MfG

BTW: Lass den Hook scheiß wenn du noch nicht mal die Basics kannst.
yihaaa is offline  
Old 07/12/2011, 10:11   #3
 
elite*gold: 20
Join Date: Sep 2006
Posts: 1,100
Received Thanks: 184
Was du hier gepostet hast ist ein Fetzen eines EngineHook für die Source Engine und gehört wohl zu einem Wallhack das die Spieler je nach Team Rot bzw Blau einfärbt (es sind auch noch andere Texturfarben involviert).
Du kannst was du dort siehst nur auf Source Engine spiele übertragen, allerdings bezweifele ich dass Du das kannst.

Nun zu deiner Grundsätzlichen Frage, für einen Cham Cheat benötigt man eine Methode um für das jeweilige Spiel die Position (D3D/OpenGL Koordinaten) der Spieler und deren Team festzustellen sowie einen D3D Hook, bzw OpenGL Hook um dann die Chams zeichnen zu können. Mit der Position der Spieler werden dann die Koordinaten der Eckpunkte für die Chams berechnet, am besten werden diese an die jeweiligen Modells angepasst, mittels des D3D bzw OpenGL Hooks zeichnet man dann einfach die Linien für die Chams, in OpenGL erledigt man das meistens mit einer GL_LINE_LOOP, für Direct3D9 wird gerne die DrawIndexedPrimitive/DrawPrimitive Methode verwendet, oder man benützt einen EngineHook um seine Chams zu zeichnen, wie dass dann im einzelnen Funktioniert hängt vom Spiel ab.

Ohne rudimentäre Kenntnisse des jeweiligen Grafiksystems wirst du also nicht weit kommen, dazu benötigst du Reverseengineering Erfahrung und natürlich Programmierkenntnisse und Erfahrung mit Funktionsumleitungen(Hooks/Detours).
Bot_interesierter is offline  
Old 07/12/2011, 20:44   #4
 
Wolfhelper's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 196
Received Thanks: 35
Ja okay Danke das ihr mir geholfen habt
...
Ich lerne und werde mir in den nächsten Jahren C++ und reverseengiering ind den Kopf Pressen
ich benutze das Buch (C++ Von A bis Z)
und die LENA-Tut´s

ich glaube damit kommt man ganz gut weit
Wolfhelper is offline  
Old 07/13/2011, 14:53   #5
 
elite*gold: 0
Join Date: Nov 2009
Posts: 343
Received Thanks: 45
Dann wünsche ich dir noch viel Spaß! Oder weißte was c&p doch einfach, dass geht schneller und du brauchst nichts zu lernen, weil das in den Kopf pressen eh nichts wird.

MfG
yihaaa is offline  
Old 07/13/2011, 17:26   #6
 
Wolfhelper's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 196
Received Thanks: 35
in den kopf pressen wird was ich muss ja nur Französisch löschen
Wolfhelper is offline  
Thanks
2 Users
Old 07/13/2011, 17:37   #7
 
elite*gold: 0
Join Date: Nov 2009
Posts: 343
Received Thanks: 45
Made my day!
yihaaa is offline  
Thanks
1 User
Old 07/13/2011, 22:03   #8


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,909
Received Thanks: 25,409
Quote:
Originally Posted by Wolfhelper View Post
Ja okay Danke das ihr mir geholfen habt
...
Ich lerne und werde mir in den nächsten Jahren C++ und reverseengiering ind den Kopf Pressen
ich benutze das Buch (C++ Von A bis Z)
und die LENA-Tut´s

ich glaube damit kommt man ganz gut weit
vergiss es gleich wieder.
MrSm!th is offline  
Old 07/14/2011, 10:57   #9
 
Wolfhelper's Avatar
 
elite*gold: 0
Join Date: Jun 2011
Posts: 196
Received Thanks: 35
Quote:
Originally Posted by MrSm!th View Post
vergiss es gleich wieder.
Warum ? Ich möchte es ja lernen
Wolfhelper is offline  
Old 07/15/2011, 14:39   #10
 
~kau~'s Avatar
 
elite*gold: 0
Join Date: May 2009
Posts: 634
Received Thanks: 794
Naja ... Ein Buch (Das sagt schon fast alles)
@Topic wenn du schon Chams machen willst, solltest du dich mit D3D beschäftigen und kein c&p machen!!! Du must ja kein menu oder so etwas zaubern.. Nur probieren über DIP oder einer anderen art die Func zu hooken. Wenn du das geschaft hast, würde ich dir
M_Stride / SetTexture oder SetRenderState empfehlen udn nicht wie oben irgendwelche Moduels zu calln.
mfg Kau
~kau~ is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[RELEASE] [OPEN SOURCE] CE 5.5 Pointer to AutoIt Source-Code
02/13/2011 - AutoIt - 6 Replies
Habe heute erst gemerkt, dass es hier eine AutoIt Sektion gibt xD also poste ich mal mein Programm mit rein. Funktionsweise: 1. in CE Rechtsklick auf den Pointer und auf "Copy" klicken 2. in meinem Programm auf "Code generieren" klicken 3. In euer Scite gehen und einfügen Hier ist der Source Code vom Programm:



All times are GMT +1. The time now is 14:10.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.