Ver um Único Post
Antigo 19-04-2009, 04:04 PM   #1 (permalink)
Motto
Amigo SE
 
Avatar de Motto
 
Registrado em: Jan 2009
Localização: SecretWarez
Posts: 164
Agradeceu: 89
Agradecido 1,434 Vezes em 120 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
Enviar mensagem via ICQ para Motto Enviar mensagem via AIM para Motto Enviar mensagem via Windows Live Messenger para Motto Enviar mensagem via Yahoo para Motto

Inventório de Motto

Talking [Tutorial] Adicionando Novos Mapas na versão 97D

[Ferramentas Necessarias]

[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
GameServer versão 97d (ou semelhantes) unpacked
Compilador

[Tutorial]
1° Abra o OllyDbg, clique no menu, Open > File e selecione o GameServer.

2° Mudando o limite dos mapas:
Procure:
Citação:
00489489 |. 68 711C4000 PUSH GameServ.00401C71 ; Entry address
0048948E |. 6A 11 PUSH 11
00489490 |. 68 68DB0400 PUSH 4DB68
Citação:
0047C7CF |. /7C 06 JL SHORT GameServ.0047C7D7
0047C7D1 |. |837D FC 11 CMP [LOCAL.1],11
0047C7D5 |. |7C 0A JL SHORT GameServ.0047C7E1
Citação:
0047C7F9 |. /7C 06 JL SHORT GameServ.0047C801
0047C7FB |. |837D F8 11 CMP [LOCAL.2],11
0047C7FF |. |7C 0A JL SHORT GameServ.0047C80B
Citação:
00473348 |. 8955 FC |MOV [LOCAL.1],EDX
0047334B |> 837D FC 11 CMP [LOCAL.1],11
0047334F |. 7D 16 |JGE SHORT GameServ.00473367
Troque todos os valores 11, dos codigos citados acima, para 19, e o limite ficara 25, pois no Hex 19 = 25.

3° Mudando o limite dos mapas II:

Citação:
0044377D |. /7C 06 JL SHORT GameServ.00443785
0044377F |. |837D 08 10 CMP [ARG.1],10
00443783 |. |7E 04 JLE SHORT GameServ.00443789
Citação:
0045C61C |. 33C9 XOR ECX,ECX
0045C61E |. 83F8 10 CMP EAX,10
0045C621 |. 0F9EC1 SETLE CL
Citação:
0045BA59 |. C745 FC 00000000 MOV [LOCAL.1],0
0045BA60 |. 837D 0C 10 CMP [ARG.2],10
0045BA64 |. 7E 29 JLE SHORT GameServ.0045BA8F
Troque todos os valores 10, dos codigos citados acima, para 18.

CMP [ARG.1],10 || CMP EAX,10 || CMP [ARG.2],10

4° O mapa não tem drops, por isso agora precisa remover o limite dos drops.

Citação:
00409F86 |. /74 4A JE SHORT GameServ.00409FD2
Citação:
004188EE |. /75 49 JNZ SHORT GameServ.00418939
Citação:
00444ED7 |. 74 53 JE SHORT GameServ.00444F2C
Mude todos para JMP.

Citação:
JE SHORT || JNZ SHORT || JE SHORT
5° Agora vamos adicionar o respawn nos novos mapas, se um monstro morrer ele renasce novamente.

Citação:
00472F7F |. /75 4C |JNZ SHORT GameServ.00472FCD
Mude para JMP.

Citação:
JNZ SHORT
6° No offset 00473371 escreva:

Citação:
00473371 83F8 01 CMP EAX,1
00473374 75 05 JNZ SHORT 0047337B
00473376 ^ E9 06FCFFFF JMP 00472F81
0047337B 83F8 12 CMP EAX,12
0047337E 75 05 JNZ SHORT 00473385
00473380 ^ E9 FCFBFFFF JMP 00472F81
00473385 83F8 13 CMP EAX,13
00473388 ^ 0F85 3FFCFFFF JNZ 00472FCD
0047338E ^ E9 EEFBFFFF JMP 00472F81
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

7° Agora vamos fazer uma dll para ler os novos mapas:

mapas.cpp
Código PHP: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
#include "mapas.h"

void LoadMaps()
{
LoadMap("..\\data\\Terrain19.att",18);
LoadMap("..\\data\\Terrain20.att",19);
LoadMap("..\\data\\Terrain21.att",20);
LoadMap("..\\data\\Terrain22.att",21);
LoadMap("..\\data\\Terrain23.att",22);
LoadMap("..\\data\\Terrain24.att",23);
LoadMap("..\\data\\Terrain25.att",24);
}

__declspec (nakedvoid LoadMap (char*mapnameDWORD mapnr)
{
_asm
{
PUSH EBP
MOV EBP
ESP
SUB ESP
4
MOV ECX
mapnr
IMUL ECX
ECX0x4DB68
ADD ECX
0x6354C78
MOV EDX
0x402225
CALL EDX

MOV EAX
mapname
PUSH EAX
MOV ECX
mapnr
IMUL ECX
ECX0x4DB68
ADD ECX
0x6354C78
MOV EDX
0x401FC3
CALL EDX

MOV ESP
EBP
POP EBP
RETN
}

mapas.h
Código PHP: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
#include <stdio.h>
#include <windows.h>

void LoadMaps();
void LoadMap (char mapnameDWORD mapnr); 
7° Agora e só você colocar o terrain do mapa na pasta data , lembrando que se vc colocou o limite 25 , você não poderá colocar terrains mais q 25 ex: Terrain26 , e etc.

9° Não se esqueça de colocar o arquivo do mapa no patch do seu servidor.

10º Lembrando que quando for adicionar pule 6 terrains do 12 , porque ambos são do BloodCastle =) , então vc pode começar pelo 18 , para garantir eu comecei do 19 ^^

10º Se você adicionou Terrain19 , o número pra colocar spots e no gate será 18 , e o World no client será 19.

[Creditos]
Cahir (Tutorial Original da versão 1.00.18)
Disconnect (Tutorial Inglês na CZF)
Motto(MLMTeam) (Modificações e achar offsets da dll para 97)

Motto está offline  
Os Seguintes 13 Usuários disseram Obrigado(a) para Motto por gostarem deste post :
AlvaroM (31-01-2015), cocozila (11-07-2009), FT.Ozama (25-08-2009), gercyc (19-04-2009), kofita (27-10-2011), LolMaster (19-04-2009), lucasmf2507 (15-11-2009), ManoeL-ADM (21-06-2009), MuTeamArg (05-06-2015), rickmattar (01-08-2010), wolffrox (26-01-2011), Yazlong (17-11-2015)
Links Patrocinados
 

Search Engine Optimization by vBSEO 3.3.0