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

Alpha Servers
Resultados 1 a 10 de 15

Visão do Encadeamento

  1. #1

    Avatar de Mr.TwoHam
    Data de Ingresso
    Sep 2009
    Localização
    Microsoft ®
    Idade
    30
    Posts
    628
    Agradecido
    36
    Agradeceu
    21
    Peso da Avaliação
    22

    Padrão Adcionar GLOW Nos Itens

    Ola Pessoal , Esse tutorial é uma Mão na roda .. Tava Fuçando a NET aqui sem Nada para Fazer e vi que Aqui na IMP nao Tem Esse tutorial sendo que ele E Magnifico .. O Objetivo deste tutorial é dar Brilho nas Armas de +7 à +13.Vou Treinar Mais um Pouco e Quando eu tiver Crack em dar Glow posto uma Video Aula .Então Vamos Deixar de Enrolar e Vamos Ao Que Interessa :

    Tutorial :

    1 -Vamos começar a partir da teoria :

    Existe uma função no main.exe que calcula cor e brilho para a maioria dos itens +7 à +13, e alguns mobs. Por exemplo, de asas, dinorants, darkhorses e para alguns outros itens esta função não é chamada,porém foi achado um jeito de alterar as cores e o brilho destes itens que não têm este atributo .!

    O Protótipo dessa Função em C++ :

    Código:
    void __cdecl Glow(DWORD dwItemId, DWORD uk1, DWORD uk2, FRGB& cl, BYTE bUkn);
    dwItemId - objectId ou index, Cada objeto é colocado em uma grande array, e cada item tem seu ID unico

    cl - Estrutura das cores RGB

    struct FRGB
    {
    float r, g, b; // range of each color [0, 1]
    };
    Nesta variável a função brilho retorna o resultado de cor, existem 30 padrão de cores do brilho (mas apenas 2 azuis)

    uk1 e uk2 - Na realidade estes dois são flutuadores, e eles são utilizados para calcular as cores do brilho, mas não iremos utilizá-los .!

    bUkn - Temos 2 tipo de balrogs, prata e vermelho. Esta variável é usada apenas para determinar o seu brilho. prata(cromado) ou vermelho (em Chamas).

    Agora Faremos um Hook à esta função e voltar a cor que queremos :

    Mas vai perguntar como faremos para descobrir o verdadeiro ID do item, porque, em função temos objeto da Id. É simples, todos os itens são deslocadas no array de objetos em algum valor. Itens Ids permanecem o mesmo valor que no item.bmd e em item.txt:
    itemId = ItemType * MaxItemsInType + ItemIndex

    Portanto, se tivermos ObjectId e Offset dos itens no array de objetos, podemos simplesmente calcular o ID do Item:
    ItemId = ObjectId - Offset

    Por Exemplo, vamos procurar o ObjectId=0x293 e Offset=0x285, com 512 items sertado como maximo:

    ItemId = ObjectId - Offset = 0x293 - 0x285 = 0x0E(14)
    ItemType = ItemId / MaxItems = 14 / 512 = 0 (divisão de Inteiro)
    ItemIndex = ItemId % MaxItems = 14 % 512 = 14 (Remanescente da Divisão do Inteiro)

    Se você dê uma olhada em items.txt, Você vai encontrar esse item com Tipo = 0 e Index = 14 que é a Lightning Sword.

    Logo mais será dito como encontrar o "offset"

    Com estes conhecimentos você pode fazer suas próprias DLL e alterar o brilho como quiser, mas a DLL que postei para download é para os noobs e leechers que tem preiguiça de criar uma própria. (Assim Como Eu ^^)


    2 -A DLL :

    Aqui Será Descrito a Dll :

    Esta dll suporta 32 e 512 MaxItems.
    Portanto, a melhor maneira para um dll, que será compatível para todos, é alocação de memória para todos os itens ( isso é importante pra não dar nada de errado quando colocar futuramente um item novo)

    struct ITEM
    {
    BYTE bChng; // Explicado mais la em baixo
    float r, g, b;
    };
    sizeof(ITEM) = 3*4 + 1 = 13 bytes
    maxtypes = 16

    memory = sizeof(ITEM)*maxtypes*maxitemindex = 208*maxitemindex
    se o maxitemindex = 32, então a memória = 208*32 = 6 656 bytes ~ 6,5 kb
    se o maxitemindex = 512, então a memória = 208*512 = 106 496 bytes = 104 kb

    Para maxitemindex = 512, utiliza mais memória, mas este método permite a utilização mais compacta, por isso ele é mais rápido, em seguida, se tivéssemos de encontrar o item na lista de itens pelo seu id será mais facil.


    bChng - Se item for alterado ele vai printar nosso brilho, se não vai chamar função de brilho padrão


    Aqui está o nosso novo Glow Proc:

    Código:
    void Glow(DWORD dwItemId, DWORD uk1, DWORD uk2, FRGB& fClr, BYTE bUkn)
    {
     int id = dwItemId - g_dwOffset; // calcula ID do item 
    // Se o nosso objectivo é um item e este número deverá utilizar o nosso brilho e não é um balrog prateado: 
    // Então voltamos a nossa cor 
    // else(senão) call (chama) o valor padrão de brilho do item 
    if( id >=0 && id < g_MaxItems*16 && Glows[id].bIsChanged && !bUkn)
    fClr = Glows[id].fClr;
    else
    fnOldGlow(dwItemId, uk1, uk2, fClr, bUkn);
    };
    O Glow Cores dll lê de "glow.gld".
    Format dos *.gld files:
    Arquivo Inicio:

    Código:
    struct GLOW
    {
    DWORD signature; // = 0x574F4C47
    BYTE bType; // representa max items, 0 - 32, else - 512
    };
    Final:

    Código:
    struct ITEM
    {
    USHORT usItemId; // item id
    FRGB fClr; // glow color
    };
    Nós agora podemos forçar o main.exe para exibir as cores.


    3 -O Glow Editor Tool :

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

    Glow Editor permite que você:
    - Edita brilho e cor dos itens desejados,
    Uma vez que ele usa Microsoft Jet (. MDB) database você poderá adicionar ou remover itens, é simples como MS Access.
    - Carga e Salvar *. gld arquivos para 32 e 512 maxitems e versões do main.exe
    - Patch DLL para seu main.exe, para o caso da função e itens offset serem diferentes
    - DLL 's memória compartilhada, utilizando File Mapping, faz o on the fly + Glow Editor permite alterar as cores diretamente em jogo.



    4 -A DLL Patch :

    Chamada da função Glow e itens offset são diferentes em diferentes casos e versões de main, por isso, temos de alterar estes valores.
    Eu vou dizer-lhe como encontrá-los usando ollydbg, mas com 1 condição o main.exe deve ser Unpacked

    ~~> Abra o main.exe no ollydbg.

    ~~> Botão Direrito-> Search for -> all referenced text strings.

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


    ~~> Na janela que abriu Botão direito novamente-> search for text

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


    ~~> Digite "sword"; desmarque "Case sensitive" e marque "Entire scope"

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


    ~~> Procure "Sword" igual na figura usuando CTR+L(procurar proximo)

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


    ~~> Quando vc encontrar, 2 cliques ou aperte ENTER nele, E na janela principal você verá como na foto, o srtring abaixo "Sword" deve ser "Dados \ item" ou pode ser apenas" Número".

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


    ~~> Acima da primeira chamada da função push command pushes in stack. Itens começar tipos de Swords (Tipo = 0),
    Assim quando main.exe cargas modelos ou texturas de espadas que acrescenta ao item da id Offset o início da espada do tipo de seção, e se espada do tipo é o primeiro tipo de itens,
    Este é o offset Offset de itens no array de objetos

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


    ~~> Vamos procurar a função que chama o glow. Botão direito ->search for -> all constants

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


    ~~> Aqui vamos procurar o ObjectID da Lightning Sword(ObjectId = Offset(Valor que vc encontrou) + ItemdId(0*512+14 = 14(0x0E))
    for Offset = 0x285, ObjectId = 0x293


    ~~> Na janela foi encontrado resultados

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


    ~~> 2 cliques ou enter no primeiro resultado, and e vc será redirecionado para isso

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


    ~~> Este é o glow proc, role um pouco para cima para encontrar o inicio disso

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


    ~~> Selecione o primeiro comando, com botão direito -> Go to, e vc verá duas chamadas para a função glow

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


    ~~> Se vc não achou "CALL from X", Botão direito denovo -> Analyse-> Analyse code, e repita o passo Anterior

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

    Agora com o offset e as duas chamadas da função vc pode criar a dll;

    Glow teste


    Glow padrão



    Default Glows [id - R, G, B preview]:

    00 - 1.00, 0.50, 0.00 [Somente usuários registrados podem vem os links. ]
    01 - 1.00, 0.20, 0.00 [Somente usuários registrados podem vem os links. ]
    02 - 0.00, 0.50, 1.00 [Somente usuários registrados podem vem os links. ]
    03 - 0.00, 0.50, 1.00 [Somente usuários registrados podem vem os links. ]
    04 - 0.00, 0.80, 0.40 [Somente usuários registrados podem vem os links. ]
    05 - 1.00, 1.00, 1.00 [Somente usuários registrados podem vem os links. ]
    06 - 0.60, 0.20, 0.40 [Somente usuários registrados podem vem os links. ]
    07 - 0.90, 0.80, 1.00 [Somente usuários registrados podem vem os links. ]
    08 - 0.80, 0.80, 1.00 [Somente usuários registrados podem vem os links. ]
    09 - 0.50, 0.50, 0.80 [Somente usuários registrados podem vem os links. ]
    10 - 0.75, 0.65, 0.50 [Somente usuários registrados podem vem os links. ]
    11 - 0.35, 0.35, 0.60 [Somente usuários registrados podem vem os links. ]
    12 - 0.47, 0.67, 0.30 [Somente usuários registrados podem vem os links. ]
    13 - 0.00, 0.30, 0.60 [Somente usuários registrados podem vem os links. ]
    14 - 0.65, 0.65, 0.55 [Somente usuários registrados podem vem os links. ]
    15 - 0.20, 0.30, 0.60 [Somente usuários registrados podem vem os links. ]
    16 - 0.80, 0.46, 0.25 [Somente usuários registrados podem vem os links. ]
    17 - 0.65, 0.45, 0.30 [Somente usuários registrados podem vem os links. ]
    18 - 0.50, 0.40, 0.30 [Somente usuários registrados podem vem os links. ]
    19 - 0.37, 0.37, 1.00 [Somente usuários registrados podem vem os links. ]
    20 - 0.30, 0.70, 0.30 [Somente usuários registrados podem vem os links. ]
    21 - 0.50, 0.40, 1.00 [Somente usuários registrados podem vem os links. ]
    22 - 0.45, 0.45, 0.23 [Somente usuários registrados podem vem os links. ]
    23 - 0.30, 0.30, 0.45 [Somente usuários registrados podem vem os links. ]
    24 - 0.60, 0.50, 0.20 [Somente usuários registrados podem vem os links. ]
    25 - 0.60, 0.60, 0.60 [Somente usuários registrados podem vem os links. ]
    26 - 0.30, 0.70, 0.30 [Somente usuários registrados podem vem os links. ]
    27 - 0.50, 0.60, 0.70 [Somente usuários registrados podem vem os links. ]
    28 - 0.45, 0.45, 0.23 [Somente usuários registrados podem vem os links. ]
    29 - 0.45, 0.45, 0.45 Sem SS Porque esqueceram de apertar PrtScreen ^^


    Downloads :

    Glow Editor: ------ Glow.dll:

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



    Não se esqueça de dar HOOK da DLL no main.exe

    Para criar glow.gld, apenas abra o editor File->Save ele criará o . gld pra você.

    Não Foi Testado em versões max 32 items, mais funciona na teoria


    Créditos:

    Código:
    Gembrid - Tutorial
    Root - Tradução
    Lucaas ! - Adaptção Para Melhor Entendimento
    Última edição por Mr.TwoHam; 06-02-2010 às 11:42 PM.

  2. O Seguinte Usuário Agradeceu Mr.TwoHam Por este Post Útil:


 

 

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| Procuro Alguem Que Saiba Adcionar Itens
    Por Maicon Cazeloto no fórum Pedidos
    Respostas: 2
    Último Post: 13-06-2012, 11:09 AM
  2. |Dúvida| Erro Ao Adcionar Glow Nos Itens
    Por Maicon Cazeloto no fórum Dúvidas
    Respostas: 3
    Último Post: 18-04-2012, 06:11 PM
  3. |Resolvido| Glow de Itens
    Por vinigfx no fórum Tópicos resolvidos
    Respostas: 1
    Último Post: 15-02-2010, 04:06 PM
  4. |Resolvido| Tutorial de Como Adcionar Glow e Hookar Glow.gdl no Main (Para Chris05)
    Por Mr.TwoHam no fórum Tópicos resolvidos
    Respostas: 2
    Último Post: 26-11-2009, 09:46 AM

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
  •