Ir para conteúdo
Faça parte da equipe! (2024) ×

function [Tutorial]Volatile Completo & Explicado


~Supremacy'
 Compartilhar

Posts Recomendados

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:

tutorialj.jpg

 

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:

Codigo:

 

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!

 

Download da tmsrv ja editada por mim com as funções volatile e a de sumir o item(by Fabionsam),nyerds +9(by freitas123) e montaria não morrer(by Ptr0x), basta vcs arrumarem a gshook , versao dessa tmsrv é 7.54:

http://www.multiupload.com/RLRC3EZABA

 

Creditos:

Akatsuki~(posto o sistema de volatile)

fabionsam(fez o tutorial ageitou o bug das volatiles)

GuGaRMP(deu base para soluçao dos bugs

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.