The Answer Forum

[Tutorial]Volatile

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

[Tutorial]Volatile

Mensagem por -RiKMaru- em Sab Jul 02 2011, 20:49

Código:
Bom mt gente queria ajuda e nao sabia como fazer , entao resolvi acabar com isso de uma vez:

Primeiro vcs devem saber a definição de volatile:
Volatile é a função que um item deve executar ao ser utilizado , tantao itens consumíveis(pesadelo,poçoes etc) quanto itens "tacaveis" KK' (gema de coral , replation e etc).

Entao agora eu começo:
abra a tmsrv com o ollydbg aperte ctrl +g e cole isto:
0042EA46
e de enter. agora vc estará nesta linha:
CMP DWORD PTR SS:[EBP-E84],7
agora aperte "barra de espaço" ou clique 2 vezes na linha.
e entao cole isso:
NOP
quando vc fizer isso se abrirá essa nova linha para você:
0042EA47
entao ponha isso nela:
JNZ 0042EBDD
depois de feito isso o olly irá pular as linhas sozinho entao va adicionando isso:
PUSH DWORD PTR SS:[EBP-0E84]
PUSH DWORD PTR SS:[EBP+8]
CALL DWORD PTR SS:[438FC2]
ADD ESP,8

Deverá ficar assim:


Depois de feito salve.
nao sabe salvar?
entao vamos lah:
Clik com o lado direito em qualquer lugar vazio no olly na janela principal(a maior), e procure por "Copy to executable" e depois "All modifications" ai abrira uma janela clik em "copy all" , ai abrira outra janela denovo(dessa vez uma pekena e estara na frente de todas) clike comm o lado direito do mouse denovo numa parte vazia dentro da janela e procure por save file e escolhe uma tm ou poe um nome novo q vai criar uma tm nova.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Feito tudo isso adicione isso aki para que seus itens sumão sozinhos:

Adicione isso após o que foi feito acima:

1ºva ate a offset 0042EA60
e
deixe exatamente assim:

JMP 0042EB54
2ºAperte ctrl+g e digite 0042EB67

Modifique a linha JG SHORT 0042EB7E
para JG SHORT 0042EBAF

3° aperte ctrl+g novamente e digite a offset 0042EBAF

e ponha exatamente isso:

MOV EAX,DWORD PTR SS:[EBP-0E88]
SUB EAX,1
MOV DWORD PTR SS:[EBP-0E88],EAX
MOV ECX,DWORD PTR SS:[EBP-0E88]
PUSH ECX
MOV EDX,DWORD PTR SS:[EBP-0E7C]
PUSH EDX
CALL 00401555
ADD ESP,8
JMP SHORT 0042EBDD
Depois eu posto um print.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Agora mudando para dentro da gshook:

Dentro da gshook va no seu functions.h e mude isso:
Código:

extern __declspec(dllexport) void BoxExp(int clientid);

para isso:
Código:

extern __declspec(dllexport) void BoxExp(int clientid, int Volatile);

OBS: tem q ser do jeito q ta escrito!

e entao va no seu boxexp.c e mude isso la no inicio:
Código:

void BoxExp(int clientid);

para isso:
Código:

void BoxExp(int clientid, int Volatile);

então terá a parte que tem declaraçao das variaveis, pule ela:
Pergunta: q variaveis?
Resposta: aff fio(Brinks!) , akeles negoço int blablabla.

e depois disso ponha isso(desse jeito q esta escrito):
Código:

switch (Volatile)
 ** //chaves abrindo
              case xx:  //case do volatile , no caso na itemlist o ef_volatile, nao pode ser um volatile existente
              **//chaves abrindo
                    //ponha a funçao do iten aki
              **// fecha o case, chaves fechando
             
              case xx: //exemplo de como por outra volatile
              ** //abre chaves
              //comandos
              **//fecha chaves
 ** //fecha o switch,chaves fechando

as ** sao chaves abrindo e chaves fechando.
OBS²:Obedeça as letras maiusculas e minusculas.
OBS³:Utilize cases diferentes , do contrario dará erro.
Ficará + ou - assim:
#include "Functions.h" #include "Define.h" //Bau de Exp void BoxExp(int c - Pastebin.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ainda nao acabou , quem disse q as coisas na vida sao fáceis neh:
O ato final =D
Pondo sua função num item , para q o item funcione no servidor
Faça o seguinte:

Abra seu itemlist.csv na pasta run do seu servidor e procure pelo item , xegando no item por exemplo o pesadelo n/grupo:
3324,Nightmare(Normal/party),2738.0,0.0.0.0.0,0,200,0,0,0,EF_VOLATILE,15 5,EF_GRID,0
Repare que na linha do pesadelo a uma função chamada EF_VOLATILE e nela q declaramos o numero ao qual se refere a funçao do item.
Pergunta: Como?
Resposta:No EF_VOLATILE o numero depois dele , no meu caso 155 (ja havia editado) e o mesmo número da case declarada la em cima:
flashback:
case xx: //case do volatile , no caso na itemlist o ef_volatile, nao pode ser um volatile existente
Entao vc pego o XX(numero q vc colocou) e poe no numero depois da virgula , ou seja:
3324,Nightmare(Normal/party),2738.0,0.0.0.0.0,0,200,0,0,0,EF_VOLATILE,XX ,EF_GRID,0
Agora sim chegamos ao fim!

CREDITOS
EU POR POSTA
fabionsam PELO TUTORIAL

-RiKMaru-
Junior Member
Junior Member

Mensagens Mensagens : 59
Pontos Pontos : 90
Agradecinentos Agradecinentos : 5
Inscrição Inscrição : 17/05/2011

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum