|
Amigo SE
Registrado em: Jan 2009
Localização: SecretWarez
Posts: 164
Agradecido 1,434 Vezes em 120 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
|
[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.
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
#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 (naked) void LoadMap (char*mapname, DWORD mapnr)
{
_asm
{
PUSH EBP
MOV EBP, ESP
SUB ESP, 4
MOV ECX, mapnr
IMUL ECX, ECX, 0x4DB68
ADD ECX, 0x6354C78
MOV EDX, 0x402225
CALL EDX
MOV EAX, mapname
PUSH EAX
MOV ECX, mapnr
IMUL ECX, ECX, 0x4DB68
ADD ECX, 0x6354C78
MOV EDX, 0x401FC3
CALL EDX
MOV ESP, EBP
POP EBP
RETN
}
}
mapas.h
#include <stdio.h>
#include <windows.h>
void LoadMaps();
void LoadMap (char * mapname, DWORD 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)
|