Siga-nos em...
Follow us on Twitter Follow us on Facebook Watch us on YouTube
Registro

Alpha Servers
Resultados 1 a 8 de 8
  1. #1

    Avatar de LKTeaM
    Data de Ingresso
    Nov 2011
    Localização
    Jacareí
    Idade
    34
    Posts
    104
    Agradecido
    3
    Agradeceu
    3
    Peso da Avaliação
    16

    Question Como deixar o visual do char com os 2 itens nas costas?

    Opa, mais um tópico pra encher o saco ^^'.

    Bom, gostária de saber como fazer pra que apareça as duas swords ou sword e shield, staff e shield, etc... nas costas do personagem quando o mesmo está na safe zone.

    tipo o season 4. O char ta em lorencia parado e nas costas aparece as duas espadas. Quero deixar assim na 1.02T (não só eu como alguns também).

    como fazer isso??

  2. #2



    Avatar de Prøjë¢T
    Data de Ingresso
    Jul 2010
    Localização
    Sao Jose do Rio Preto
    Posts
    1.134
    Agradecido
    107
    Agradeceu
    42
    Peso da Avaliação
    34

    Padrão

    Ja existe topico com tutorial no forum, favor pesquisar antes de postar uma duvida ou pedido...

    [Somente usuários registrados podem vem os links. ]

    Topico reaberto
    Última edição por Prøjë¢T; 23-11-2011 às 01:58 PM.

  3. #3

    Avatar de LKTeaM
    Data de Ingresso
    Nov 2011
    Localização
    Jacareí
    Idade
    34
    Posts
    104
    Agradecido
    3
    Agradeceu
    3
    Peso da Avaliação
    16

    Padrão

    Alguem pode me ajudar a hookar a WeaponView.dll no main 1.02t '-'..

    tutorialzinho que tem num tá batendo com meu main pq tem varias coisas diferente.. '-'

  4. #4

    Avatar de hidy
    Data de Ingresso
    Apr 2010
    Localização
    Na ninha Casa XD
    Idade
    36
    Posts
    343
    Agradecido
    18
    Agradeceu
    14
    Peso da Avaliação
    22

    Padrão

    Aqui no fórum tem um hook facil que foi postado pelo levlx, se você dar uma olhada na parte de [Somente usuários registrados podem vem os links. ] aqui no fórum você vai achar ele. testa com esse aqui vê se vai dar certo [Somente usuários registrados podem vem os links. ].

  5. #5

    Avatar de levelx
    Data de Ingresso
    Nov 2010
    Localização
    fail Cave
    Idade
    44
    Posts
    559
    Agradecido
    30
    Agradeceu
    24
    Peso da Avaliação
    25

    Padrão

    vc pode usar qualquer hokeador que tem por ai que pega, nao precisa usar o olly para add esta dll.
    porem lembre se que a dll tem que ser para main 102t pois as offets podem ser diferentes e e for diferente a unica coisa que vai acontecer é nada..

    primeiro passo pegue a source e compile ou pegue a dll (se tiver) j compilada para o main 102t.

    segundo pegue um progama de hokear, na esao de utilitarios tem diversos use o que vc achar mais facil de usar.
    recomendo o he engine pela simplicidade ou o stupd_pe dee hook e pronto.

    offsets.h
    Código PHP:
    #pragma once


    #ifdef M_104D

    #define OBJ_OFFS                (0x285)

    const int WeaponViewCheck_Hook = 0x5254C3;
    const 
    int WeaponViewCheck_Ret = 0x52561A;

    #define RightHandFixup 0x2F0
    #define LeftHandFixup 0x310

    #define WeaponViewFlagFixup -0x1A8
    #define HandFlagFixup -0x1B0
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x1BC
    #define SomeVal2Fixup -0x1C0
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x525843;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x5256D3+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x5256E0+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x525852;

    const 
    int SecondWeaponViewFix_Hook = 0x51D071;
    const 
    int SecondWeaponViewFix_Ret = 0x51D076;
    #define SomeVal4 0x695B88C

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x6F4125;
    const 
    int TransFunc = 0x6F43C1;

    #define RotFixup    (-0x2B8)
    #define TransFixup    (-0x2AC)



    #elif M_102K_J


    #define OBJ_OFFS                (0x27B)

    const int WeaponViewCheck_Hook = 0x538EC9;
    const 
    int WeaponViewCheck_Ret = 0x539020;

    #define RightHandFixup 0x2F8
    #define LeftHandFixup 0x318

    #define WeaponViewFlagFixup -0x1A8
    #define HandFlagFixup -0x1B0
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x1BC
    #define SomeVal2Fixup -0x1C0
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x539249;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x5390D9+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x5390E6+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x539258;

    const 
    int SecondWeaponViewFix_Hook = 0x530A5B;
    const 
    int SecondWeaponViewFix_Ret = 0x530A60;
    #define SomeVal4 0x69D9554

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x679035;
    const 
    int TransFunc = 0x6792D1;

    #define RotFixup    (-0x2B8)
    #define TransFixup    (-0x2AC)



    #elif M_102C

    #define OBJ_OFFS                (0x246)

    const int WeaponViewCheck_Hook = 0x52C5A7;
    const 
    int WeaponViewCheck_Ret = 0x52C6FE;

    #define RightHandFixup 0x2F8
    #define LeftHandFixup 0x318

    #define WeaponViewFlagFixup -0x13C
    #define HandFlagFixup -0x144
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x150
    #define SomeVal2Fixup -0x154
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x52C927;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x52C7B7+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x52C7C4+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x52C936;

    const 
    int SecondWeaponViewFix_Hook = 0x525482;
    const 
    int SecondWeaponViewFix_Ret = 0x525487;
    #define SomeVal4 0x69A3384

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x661735;
    const 
    int TransFunc = 0x6619D1;

    #define RotFixup    (-0x2B8)
    #define TransFixup    (-0x2AC)

    #elif M_102K

    #define OBJ_OFFS                (0x285)

    const int WeaponViewCheck_Hook = 0x5254C3;
    const 
    int WeaponViewCheck_Ret = 0x52561A;

    #define RightHandFixup 0x2F0
    #define LeftHandFixup 0x310

    #define WeaponViewFlagFixup -0x1A8
    #define HandFlagFixup -0x1B0
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x1BC
    #define SomeVal2Fixup -0x1C0
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x525843;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x5256D3+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x5256E0+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x525852;

    const 
    int SecondWeaponViewFix_Hook = 0x51D071;
    const 
    int SecondWeaponViewFix_Ret = 0x51D076;
    #define SomeVal4 0x695B88C

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x6F4125;
    const 
    int TransFunc = 0x6F43C1;

    #define RotFixup    (-0x2B8)
    #define TransFixup    (-0x2AC)


    #elif M_104J

    #define OBJ_OFFS                (0x289)


    const int WeaponViewCheck_Hook = 0x525BC1;
    const 
    int WeaponViewCheck_Ret = 0x525D18;

    #define RightHandFixup 0x2F0
    #define LeftHandFixup 0x310

    #define WeaponViewFlagFixup -0x1DC
    #define HandFlagFixup -0x1E4
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x1F0
    #define SomeVal2Fixup -0x1F4
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x525F41;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x525DD1+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x525DDE+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x525F50;

    const 
    int SecondWeaponViewFix_Hook = 0x51D071;
    const 
    int SecondWeaponViewFix_Ret = 0x51D076;
    #define SomeVal4 0x695CA2C

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x6F59F5;
    const 
    int TransFunc = 0x6F5C91;

    #define RotFixup    (-0x2B8)
    #define TransFixup    (-0x2AC)

    #elif M_105H


    #define OBJ_OFFS                (0x325)

    const int WeaponViewCheck_Hook = 0x4EA4FA;
    const 
    int WeaponViewCheck_Ret = 0x4EA598;

    #define RightHandFixup 0x180
    #define LeftHandFixup 0x1A0

    #define WeaponViewFlagFixup -0x244
    #define HandFlagFixup -0x24C
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x258
    #define SomeVal2Fixup -0x25C
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x4EA860;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x4EA64B+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x4EA658+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x4EA86F;

    const 
    int SecondWeaponViewFix_Hook = 0x4DF49B;
    const 
    int SecondWeaponViewFix_Ret = 0x4DF4A0;
    #define SomeVal4 0x6A2D648

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x6A9865;
    const 
    int TransFunc = 0x6A9B01;

    #define RotFixup    (-0xB0)
    #define TransFixup    (-0xA4)


    #elif M_105K

    #define OBJ_OFFS                (0x325)

    const int WeaponViewCheck_Hook = 0x4EA53A;
    const 
    int WeaponViewCheck_Ret = 0x4EA5D8;

    #define RightHandFixup 0x180
    #define LeftHandFixup 0x1A0

    #define WeaponViewFlagFixup -0x244
    #define HandFlagFixup -0x24C
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x258
    #define SomeVal2Fixup -0x25C
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x4EA8A0;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x4EA68B+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x4EA698+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x4EA8AF;

    const 
    int SecondWeaponViewFix_Hook = 0x4DF4DB;
    const 
    int SecondWeaponViewFix_Ret = 0x4DF4E0;
    #define SomeVal4 0x6A2E648

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x6A9AA5;
    const 
    int TransFunc = 0x6A9D41;

    #define RotFixup    (-0xB0)
    #define TransFixup    (-0xA4)


    #elif M_300E

    #define OBJ_OFFS                (0x325)


    const int WeaponViewCheck_Hook = 0x4EA285;
    const 
    int WeaponViewCheck_Ret = 0x4EA323;

    #define RightHandFixup 0x180
    #define LeftHandFixup 0x1A0

    #define WeaponViewFlagFixup -0x244
    #define HandFlagFixup -0x24C
    #define SafeZoneFlagFixup -0x5C


    #define SomeVal1Fixup -0x258
    #define SomeVal2Fixup -0x25C
    #define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x4EA5EB;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x4EA3D6+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x4EA3E3+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x4EA5FA;

    const 
    int SecondWeaponViewFix_Hook = 0x4DF226;
    const 
    int SecondWeaponViewFix_Ret = 0x4DF22B;
    #define SomeVal4 0x6A30C88

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x6A7F45;
    const 
    int TransFunc = 0x6A81E1;

    #define RotFixup    (-0xB0)
    #define TransFixup    (-0xA4)


    #elif M_097D

    #define OBJ_OFFS                (0x190)

    const int WeaponViewCheck_Hook = 0x456E14;
    const 
    int WeaponViewCheck_Ret = 0x456EAA;

    #define RightHandFixup 0x270
    #define LeftHandFixup 0x288

    #define WeaponViewFlagFixup +0x98
    //#define HandFlagFixup -0x1B0
    #define SafeZoneFlagFixup +0x18


    //#define SomeVal1Fixup -0x1BC
    //#define SomeVal2Fixup -0x1C0
    //#define SomeVal3Fixup 8

    const int SecondWeaponViewCheckReplacedCode_Hook = 0x456FA7;


    const 
    int SecondWeaponViewCheck_Hook1 = 0x456F05+1;
    const 
    int SecondWeaponViewCheck_Hook2 = 0x456F0E+1;
    const 
    int SecondWeaponViewCheck_Ret = 0x456FAC;

    const 
    int SecondWeaponViewFix_Hook = 0x454477;
    const 
    int SecondWeaponViewFix_Ret = 0x45447C;
    #define SomeVal4 0x6EFE300

    //const int SecondWeaponViewRotFix_Hook[] = {0x51CF67, 0x51CD87, 0x51CDE4, 0x51CED1, 0x51CF31, 0x51CFA4};
    //const int SecondWeaponViewTransFix_Hook = 0x51D097;


    const int RotateFunc = 0x4F5340;
    const 
    int TransFunc = 0x4F5500;

    #define RotFixup    (+0x20)
    #define TransFixup    (+0x58)



    #define OLD_MAIN

    #define STACK_PTR            ESP
    #define CHAR_REG            EBX
    #define WEAPON_ID_CONTAINER    EBX

    #endif



    #ifdef OLD_MAIN
    #define MAX_ITEM                (32)
    #else
    #define MAX_ITEM                (512)
    #define STACK_PTR                EBP
    #define WEAPON_ID_CONTAINER        DWORD PTR SS:[EBP+0x1C]
    #endif


    #define MAKE_ITEM(type, index)    (type*MAX_ITEM + index) 

    stdafx
    Código PHP:
    // stdafx.h : include file for standard system include files,
    // or project specific include files that are used frequently, but
    // are changed infrequently
    //

    #pragma once

    // Modify the following defines if you have to target a platform prior to the ones specified below.
    // Refer to MSDN for the latest info on corresponding values for different platforms.
    #ifndef WINVER                // Allow use of features specific to Windows XP or later.
    #define WINVER 0x0501        // Change this to the appropriate value to target other versions of Windows.
    #endif

    #ifndef _WIN32_WINNT        // Allow use of features specific to Windows XP or later.                   
    #define _WIN32_WINNT 0x0501    // Change this to the appropriate value to target other versions of Windows.
    #endif                        

    #ifndef _WIN32_WINDOWS        // Allow use of features specific to Windows 98 or later.
    #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
    #endif

    #ifndef _WIN32_IE            // Allow use of features specific to IE 6.0 or later.
    #define _WIN32_IE 0x0600    // Change this to the appropriate value to target other versions of IE.
    #endif

    #define WIN32_LEAN_AND_MEAN        // Exclude rarely-used stuff from Windows headers
    // Windows Header Files:
    #include <windows.h> 
    utils.h
    Código PHP:
    #pragma once

    #include <windows.h>

    //void MsgBox(char *szlog, ...);

    DWORD HookThis(DWORD dwMyFuncOffset, DWORD dwJmpOffset);
    void WriteJmp(DWORD dwWriteOffset, DWORD dwDstJmp);
    void WriteCall(DWORD dwWriteOffset, DWORD dwDstJmp);

    void SetNop(DWORD dwOffset, int Size);
    void SetRangeNop(DWORD dwStart, DWORD dwEnd);
    void SetRetn(DWORD dwOffset);
    void SetByte(DWORD dwOffset, BYTE btValue);
    void SetDword(DWORD dwOffset, DWORD dwValue);
    DWORD GetDword(DWORD dwOffset);

    DWORD UnProtect(DWORD dwAddr, DWORD size);
    void Protect(DWORD dwAddr, DWORD size, DWORD dwProtection);
    BYTE GetByte(DWORD dwOffset); 
    stdafx.cpp
    Código PHP:
    // stdafx.cpp : source file that includes just the standard includes
    // WeaponView.pch will be the pre-compiled header
    // stdafx.obj will contain the pre-compiled type information

    #include "stdafx.h"

    // TODO: reference any additional headers you need in STDAFX.H
    // and not in this file 
    Código PHP:
    #include "stdafx.h"
    #include "utils.h"

    #include <stdio.h>
    #include <stdarg.h>

    //void MsgBox(char *szlog, ...)
    //{
    //    char szBuffer[512]="";
    //    va_list pArguments;
    //    va_start(pArguments, szlog);
    //    vsprintf(szBuffer, szlog, pArguments);
    //    va_end(pArguments);
    //    MessageBoxA(NULL, szBuffer, "error", MB_OK|MB_APPLMODAL);
    //}



    DWORD UnProtect(DWORD dwAddr, DWORD size)
    {
        
    DWORD old = 0;
        
    VirtualProtect((LPVOID)dwAddr, size, PAGE_EXECUTE_READWRITE, &old);
    //        MsgBox("Unable to remove page protection. ERROR: %08X.", GetLastError());
        
    return old;
    }

    void Protect(DWORD dwAddr, DWORD size, DWORD dwProtection)
    {
        
    DWORD old = 0;
        
    VirtualProtect((LPVOID)dwAddr, size, dwProtection, &old);
    }

    DWORD HookThis(DWORD dwMyFuncOffset, DWORD dwJmpOffset)
    {
        
    DWORD old = 0;
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwJmpOffset, 10);

            
    old = *(DWORD*)(dwJmpOffset+1) + dwJmpOffset + 5;
            *(
    DWORD*)(dwJmpOffset+1) = dwMyFuncOffset - (dwJmpOffset+5);

            
    Protect(dwJmpOffset, 10, dwP);
        }
        
    __finally{}

        return 
    old;
    }

    void WriteJmp(DWORD dwWriteOffset, DWORD dwDstJmp)
    {
        if(
    dwWriteOffset)
        {
            
    __try
            
    {
                
    DWORD dwP = UnProtect(dwWriteOffset, 10);
        
                
    SetByte(dwWriteOffset, 0xE9);
                
    HookThis(dwDstJmp, dwWriteOffset);
        
                
    Protect(dwWriteOffset, 10, dwP);
            }
            
    __finally{}
        }

    }

    void WriteCall(DWORD dwWriteOffset, DWORD dwDstJmp)
    {
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwWriteOffset, 10);

            
    SetByte(dwWriteOffset, 0xE8);
            
    HookThis(dwDstJmp, dwWriteOffset);

            
    Protect(dwWriteOffset, 10, dwP);
        }
        
    __finally{}

    }

    void SetNop(DWORD dwOffset, int Size)
    {
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwOffset, Size);

            for(
    int n=0; n < Size; n++)
            {
                *(
    BYTE*)(dwOffset+n) = 0x90;
            }

            
    Protect(dwOffset, Size, dwP);
        }
        
    __finally{}

    }

    void SetRangeNop(DWORD dwStart, DWORD dwEnd)
    {
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwStart, dwEnd - dwStart);

            for(
    int n=dwStart; n < dwEnd; n++)
            {
                *(
    BYTE*)(n) = 0x90;
            }

            
    Protect(dwStart, dwEnd - dwStart, dwP);
        }
        
    __finally{}
    }



    void SetRetn(DWORD dwOffset)
    {
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwOffset, 1);

            *(
    BYTE*)(dwOffset)=0xC3;

            
    Protect(dwOffset, 1, dwP);
        }
        
    __finally{}
    }

    void SetByte(DWORD dwOffset, BYTE btValue)
    {
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwOffset, 1);

            *(
    BYTE*)(dwOffset)=btValue;

            
    Protect(dwOffset, 1, dwP);
        }
        
    __finally{}
    }


    BYTE GetByte(DWORD dwOffset)
    {
        
    BYTE byVal = 0;
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwOffset, 1);

            
    byVal = *(BYTE*)(dwOffset);

            
    Protect(dwOffset, 1, dwP);
        }
        
    __finally{}

        return 
    byVal;
    }



    void SetDword(DWORD dwOffset, DWORD dwValue)
    {    
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwOffset, 4);

            *(
    DWORD*)(dwOffset)=dwValue;

            
    Protect(dwOffset, 4, dwP);
        }
        
    __finally{}
    }


    DWORD GetDword(DWORD dwOffset)
    {
        
    DWORD dwVal = 0;
        
    __try
        
    {
            
    DWORD dwP = UnProtect(dwOffset, 4);

            
    dwVal = *(DWORD*)(dwOffset);

            
    Protect(dwOffset, 4, dwP);
        }
        
    __finally{}

        return 
    dwVal;
    } 



    WeaponView.cpp
    Código PHP:
    // WeaponView.cpp : Defines the entry point for the DLL application.
    //

    #include "stdafx.h"
    #include "utils.h"
    #include "offsets.h"


    #ifdef _MANAGED
    #pragma managed(push, off)
    #endif

    #pragma comment (lib, "kernel32")

    void InitDLL();

    DWORD SecondWeaponFixVal = 0;
    DWORD IsShield = 0;

    BOOL APIENTRY DllMain( HMODULE hModule,
                           
    DWORD  ul_reason_for_call,
                           
    LPVOID lpReserved
                         
    )
    {
        switch(
    ul_reason_for_call)
        {
            case 
    DLL_PROCESS_ATTACH:
                
    InitDLL();
            break;

        }
        return 
    TRUE;
    }

    __declspec(naked) void WeaponViewCheck()
    {
        
    __asm
        
    {

    #ifndef OLD_MAIN
            
    MOV BYTE PTR SS:[EBP+WeaponViewFlagFixup], 0

            CMP DWORD PTR SS
    :[EBP+SafeZoneFlagFixup], 0
            JE WEAPON_CHECK
            MOV BYTE PTR SS
    :[EBP+WeaponViewFlagFixup], 1    

    WEAPON_CHECK
    :

            
    MOV EAX, DWORD PTR SS:[EBP+8]
            
    CMP DWORD PTR SS:[EBP+HandFlagFixup], 0
            JNZ LEFT_HAND
        

            MOVSX ECX
    , WORD PTR DS:[EAX+RightHandFixup]

            
    CMP ECX, MAKE_ITEM(7, 0) + OBJ_OFFS
            JGE NO_DISPLAY

            CMP ECX
    , MAKE_ITEM(4, 15) + OBJ_OFFS
            JE DISPLAY_WEAPON
            JMP END_CHECK

    LEFT_HAND
    :
            
    MOVSX ECX, WORD PTR DS:[EAX+LeftHandFixup]

            
    CMP ECX, MAKE_ITEM(7, 0) + OBJ_OFFS
            JGE NO_DISPLAY

            CMP ECX
    , MAKE_ITEM(4, 7) + OBJ_OFFS
            JE DISPLAY_WEAPON
            JMP END_CHECK


    DISPLAY_WEAPON
    :
            
    MOV BYTE PTR SS:[EBP+WeaponViewFlagFixup], 1
            JMP END_CHECK

    NO_DISPLAY
    :
            
    MOV BYTE PTR SS:[EBP+WeaponViewFlagFixup], 0

    #elif defined OLD_MAIN


            
    MOV BYTE PTR SS:[STACK_PTR+WeaponViewFlagFixup], 0

            CMP DWORD PTR SS
    :[STACK_PTR+SafeZoneFlagFixup], 0
            JE WEAPON_CHECK
            MOV BYTE PTR SS
    :[STACK_PTR+WeaponViewFlagFixup], 1    

    WEAPON_CHECK
    :

            
    CMP EAX, 0
            JNZ LEFT_HAND
        

            CMP WORD PTR DS
    :[CHAR_REG+RightHandFixup], MAKE_ITEM(7, 0) + OBJ_OFFS
            JGE NO_DISPLAY

            CMP WORD PTR DS
    :[CHAR_REG+RightHandFixup], MAKE_ITEM(4, 15) + OBJ_OFFS
            JE DISPLAY_WEAPON
            JMP END_CHECK

    LEFT_HAND
    :


            
    CMP WORD PTR DS:[CHAR_REG+LeftHandFixup], MAKE_ITEM(7, 0) + OBJ_OFFS
            JGE NO_DISPLAY

            CMP WORD PTR DS
    :[CHAR_REG+LeftHandFixup], MAKE_ITEM(4, 7) + OBJ_OFFS
            JE DISPLAY_WEAPON
            JMP END_CHECK


    DISPLAY_WEAPON
    :
            
    MOV BYTE PTR SS:[STACK_PTR+WeaponViewFlagFixup], 1
            JMP END_CHECK

    NO_DISPLAY
    :
            
    MOV BYTE PTR SS:[EBP+WeaponViewFlagFixup], 0


    #else 

            //check for correct preprocessor definitions :D
            
    throw

    #endif

    END_CHECK:
            
            
    jmp WeaponViewCheck_Ret
        
    }
    }

    __declspec(naked) void SecondWeaponViewCheck()
    {
        
    __asm
        
    {
    #ifndef OLD_MAIN

            
    CMP DWORD PTR SS:[EBP+HandFlagFixup], 0
            JNZ END_CHECK

            MOV DWORD PTR SS
    :[EBP+HandFlagFixup], 1
            MOV SecondWeaponFixVal
    , 1

    #elif defined OLD_MAIN

            
    CMP SecondWeaponFixVal, 0
            JNZ END_CHECK

            MOV EAX
    , 1
            MOV SecondWeaponFixVal
    , 1

    #else

            //check for correct preprocessor definitions :D
            
    throw

    #endif


            
    JMP WeaponViewCheck

    END_CHECK
    :
            
    MOV SecondWeaponFixVal, 0
            jmp SecondWeaponViewCheck_Ret
        
    }
    }

    __declspec(naked) void SecondWeaponViewCheckReplacedCode()
    {
        
    __asm
        
    {
    #ifndef OLD_MAIN

            
    MOV EDX, DWORD PTR SS:[EBP+SomeVal1Fixup]
            
    MOV EAX, DWORD PTR SS:[EBP+SomeVal2Fixup]
            
    MOV DWORD PTR DS:[EDX+SomeVal3Fixup], EAX

    #elif defined OLD_MAIN
            
    MOV EDX, 0x3E800000
    #else
            
    throw
    #endif
            
    JMP SecondWeaponViewCheck
        
    }
    }

    DWORD s_eax, s_ecx, s_edx;

    __declspec(naked) void SecondWeaponViewFix()
    {
        
    __asm
        
    {
            
    //MOV EAX, SecondWeaponFixVal
            //XOR DWORD PTR SS:[EBP+RotFixup], EAX
            //XOR DWORD PTR SS:[EBP+TransFixup], EAX

    #ifdef OLD_MAIN
            
    MOV s_eax, EAX
            MOV s_ecx
    , ECX
            MOV s_edx
    , EDX
    #endif

            
    MOV IsShield, 0

            
    // check for shield
            
    CMP WEAPON_ID_CONTAINER, MAKE_ITEM(6, 0) + OBJ_OFFS
            JL FLIP_CHECK
            CMP WEAPON_ID_CONTAINER
    , MAKE_ITEM(7, 0) + OBJ_OFFS
            JGE FLIP_CHECK

            MOV IsShield
    , 1
            
            CMP WEAPON_ID_CONTAINER
    , MAKE_ITEM(6, 16) + OBJ_OFFS
            JNZ CHECK_SHIELD_14_15


            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup], 0x41F00000
            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup+4], 0
            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup+8], 0x42B40000
            LEA EDX
    , DWORD PTR SS:[STACK_PTR+TransFixup]
            
    LEA EAX, DWORD PTR SS:[STACK_PTR+RotFixup]
            
    PUSH EDX
            PUSH EAX
            CALL RotateFunc
            ADD ESP
    , 8
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x0C], 0xC1A00000
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x1C], 0
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x2C], 0xC1A00000

            JMP FLIP_CHECK


    CHECK_SHIELD_14_15
    :

            
    CMP WEAPON_ID_CONTAINER, MAKE_ITEM(6, 15) + OBJ_OFFS
            JE SHIELD_14_15
            CMP WEAPON_ID_CONTAINER
    , MAKE_ITEM(6, 14) + OBJ_OFFS
            JNZ CHECK_SHIELD_6

    SHIELD_14_15
    :

            
    MOV DWORD PTR SS:[STACK_PTR+RotFixup], 0x42480000
            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup+4], 0
            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup+8], 0x42B40000
            LEA EDX
    , DWORD PTR SS:[STACK_PTR+TransFixup]
            
    LEA EAX, DWORD PTR SS:[STACK_PTR+RotFixup]
            
    PUSH EDX
            PUSH EAX
            CALL RotateFunc
            ADD ESP
    , 8
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x0C], 0xC1E00000
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x1C], 0
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x2C], 0xC1C80000

            JMP FLIP_CHECK


    CHECK_SHIELD_6
    :

            
    CMP WEAPON_ID_CONTAINER, MAKE_ITEM(6, 6) + OBJ_OFFS
            JNZ SET_SHIELD

            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup], 0x41F00000
            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup+4], 0
            MOV DWORD PTR SS
    :[STACK_PTR+RotFixup+8], 0x42B40000
            LEA EDX
    , DWORD PTR SS:[STACK_PTR+TransFixup]
            
    LEA EAX, DWORD PTR SS:[STACK_PTR+RotFixup]
            
    PUSH EDX
            PUSH EAX
            CALL RotateFunc
            ADD ESP
    , 8
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x0C], 0xC1700000
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x1C], 0
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x2C], 0xC1C80000

            JMP FLIP_CHECK


    SET_SHIELD
    :


            
    MOV DWORD PTR SS:[STACK_PTR+TransFixup+0x0C], 0xC1200000
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x1C], 0
            MOV DWORD PTR SS
    :[STACK_PTR+TransFixup+0x2C], 0


    FLIP_CHECK
    :
            
            
    CMP IsShield, 1
            JE 
    EXIT
        
            
    CMP SecondWeaponFixVal, 0
            JE 
    EXIT

            
    SUB ESP, 0x3C
    #if STACK_PTR == ESP
        #define fixup    0x3C
    #else
        #define fixup    0
    #endif
            
    MOV DWORD PTR SS:[ESP+0x30], 0x43110000
            MOV DWORD PTR SS
    :[ESP+0x34], 0
            MOV DWORD PTR SS
    :[ESP+0x38], 0x43898000
            LEA EAX
    , DWORD PTR SS:[ESP]
            
    LEA ECX, DWORD PTR SS:[ESP+0x30]
            
    PUSH EAX
            PUSH ECX
            CALL RotateFunc
            ADD ESP
    , 8

            MOV DWORD PTR SS
    :[ESP+0x0C], 0
            MOV DWORD PTR SS
    :[ESP+0x1C], 0x41200000
            MOV DWORD PTR SS
    :[ESP+0x2C], 0xC1F00000
            LEA EDX
    , DWORD PTR SS:[STACK_PTR+TransFixup+fixup]
            
    LEA EAX, DWORD PTR SS:[ESP]
            
    LEA ECX, DWORD PTR SS:[STACK_PTR+TransFixup+fixup]
            
    PUSH EDX
            PUSH EAX
            PUSH ECX
            CALL TransFunc

            ADD ESP
    , 0x48

    EXIT:

    #ifdef OLD_MAIN
            
    MOV EAX, s_eax
            MOV ECX
    , s_ecx
            MOV EDX
    , s_edx
    #endif

            
    PUSH SomeVal4
            JMP SecondWeaponViewFix_Ret
        
    }
    }

    //DWORD SecondWeaponViewRotFix_Old;
    //DWORD SecondWeaponViewTransFix_Old;
    //
    //__declspec(naked) void SecondWeaponViewRotFix()
    //{
    //    __asm
    //    {
    //        MOV EAX, DWORD PTR SS:[ESP+4]
    //        MOV ECX, SecondWeaponFixVal
    //        XOR DWORD PTR DS:[EAX+8], ECX
    //        JMP SecondWeaponViewRotFix_Old
    //    }
    //}
    //
    //__declspec(naked) void SecondWeaponViewTransFix()
    //{
    //    __asm
    //    {
    //        MOV EAX, DWORD PTR SS:[ESP+8]
    //        MOV ECX, SecondWeaponFixVal
    //        XOR DWORD PTR DS:[EAX+0x0C], ECX
    //        JMP SecondWeaponViewTransFix_Old        
    //    }
    //}

    void InitDLL()
    {
        
    WriteJmp(WeaponViewCheck_Hook, (DWORD)WeaponViewCheck);
        
    WriteJmp(SecondWeaponViewCheckReplacedCode_Hook, (DWORD)SecondWeaponViewCheckReplacedCode);
        
        
    HookThis((DWORD)SecondWeaponViewCheck, SecondWeaponViewCheck_Hook1);
        
    HookThis((DWORD)SecondWeaponViewCheck, SecondWeaponViewCheck_Hook2);

        
    WriteJmp(SecondWeaponViewFix_Hook, (DWORD)SecondWeaponViewFix);

        
    //for(int i=0; i < sizeof(SecondWeaponViewRotFix_Hook)/sizeof(*SecondWeaponViewRotFix_Hook); i++)
        //{
        //    SecondWeaponViewRotFix_Old = HookThis((DWORD)SecondWeaponViewRotFix, SecondWeaponViewRotFix_Hook[i]);
        //}

        //SecondWeaponViewTransFix_Old = HookThis((DWORD)SecondWeaponViewTransFix, SecondWeaponViewTransFix_Hook);
    }


    #ifdef _MANAGED
    #pragma managed(pop)
    #endif 

    tem que se basear nessa e fazer a sua dll.
    Última edição por levelx; 24-11-2011 às 01:16 AM.
    Hidden Content
    Tip
    "E sem saber que era impossível, ele foi lá e fez"(Jean Cocteau)
    LUCENA ME DEIXOU DE MEMBRO ETERNO E ME DEIXOU UMA SAUDADE ETERNA TBM................
    Hidden Content

  6. #6

    Avatar de LKTeaM
    Data de Ingresso
    Nov 2011
    Localização
    Jacareí
    Idade
    34
    Posts
    104
    Agradecido
    3
    Agradeceu
    3
    Peso da Avaliação
    16

    Padrão

    eu peguei a weaponview.dll de um tópico que tem aqui... porém nem sei se ela é pra 1.02t.. como saber se é ou não??.. se procura na net será que tem a sourcer dela pra 1.02t?? '-'

  7. #7

    Avatar de levelx
    Data de Ingresso
    Nov 2010
    Localização
    fail Cave
    Idade
    44
    Posts
    559
    Agradecido
    30
    Agradeceu
    24
    Peso da Avaliação
    25

    Padrão

    source ta ai porem axo muito pouco provavel alguem liberar as offsets pra vc...
    vc tem que pegar um main e procurar elas do mesmo geito que estava procurando o limite de itens e texturas.
    Hidden Content
    Tip
    "E sem saber que era impossível, ele foi lá e fez"(Jean Cocteau)
    LUCENA ME DEIXOU DE MEMBRO ETERNO E ME DEIXOU UMA SAUDADE ETERNA TBM................
    Hidden Content

  8. #8


    Avatar de Lipe
    Data de Ingresso
    Jan 2012
    Localização
    Campinas
    Posts
    768
    Agradecido
    3
    Agradeceu
    3
    Peso da Avaliação
    22

    Padrão

    Mensagem de moderação:
    Tópico inativo, fechado para evitar flood.
    Caso a dúvida do autor não tenha sido solucionada, entre em contato via MP para que o tópico seja re-aberto

 

 

Informações de Tópico

Usuários Navegando neste Tópico

Há 1 usuários navegando neste tópico. (0 registrados e 1 visitantes)

Tópicos Similares

  1. |Pedido| Como Deixar em MD5?
    Por Guilherme no fórum Pedidos
    Respostas: 2
    Último Post: 03-11-2013, 07:17 PM
  2. |Tutorial| Como deixar uma Render em (HD)
    Por patrick#524 no fórum Avançados
    Respostas: 3
    Último Post: 05-04-2013, 10:41 AM
  3. |Pedido| Como deixar itens acima de +11 sem ser meio invisivel
    Por Bullet no fórum Arquivos MuOnline
    Respostas: 3
    Último Post: 10-12-2011, 08:56 AM
  4. |Resolvido| Query para resetar os char perder os itens do char!
    Por kelvin no fórum Tópicos resolvidos
    Respostas: 5
    Último Post: 04-02-2010, 01:48 PM
  5. |Resolvido| Quais as melhores combinações de Socket System para deixar char mais forte?
    Por Lucian no fórum Tópicos resolvidos
    Respostas: 2
    Último Post: 29-12-2009, 01:55 PM

Marcadores

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •