Olá, Como o Próprio nome já Diz
Estou querendo Adicionar Um Novo Mapa em meu MuServer Porem não tenho á minima ideia de onde começar, alguém pode estar me ajudando
Versão Imprimível
Olá, Como o Próprio nome já Diz
Estou querendo Adicionar Um Novo Mapa em meu MuServer Porem não tenho á minima ideia de onde começar, alguém pode estar me ajudando
Primeiro vc precisa de uma dll para fazer o gs ler os novos terrains.att, se não me engano aqui no forum tem.
Depois conseguir os arquivos do mapa desejado para o client, imagens, texturas etc.. ou seja a pasta WorldX e ObjectX... X= numero do mapa
E tbm conseguir o TerrainX.att que vai no servidor para o gs ler o mapa...
Tem q manjar um pouco de C++ pra fazer a dll e depois dar hook dela no Gs...(da pra fazer direto no gs em asm tbm, mas é mais foda. Eu acho^^)
Depois disso vc basta configurar um Gate em alguma cidade para o mapa desejado, lembrando que no Gate o numero do mapa é sempre 1 a menos do numero q vc colocou
no terrainX.att ...
(a pior parte é a dll^^)
Aqui no Fórum tem algum tutorial Explicando passo a passo ?
Tem a source em código aberto, mas ai vc tem q saber montar a dll... eu não te ajudo pq tbm não sei^^
Só sei oq é necessário pra adc mapa novo, e já disse como é...
Tem um tópico na area vip, mas o arquivo foi apagado do download, então nem adianta;;
Hola gente este es mi primer comentario y ante todo gracias de ante mano, tengo un problema al agregar nuevos mapas a la 97d, si bien los agrego de la source no puedo agregar mobs, ya que me crashean cuando los toco, alguien tiene alguna soluciona esto? gracias
Sistema de mapas 96.40
#include "mapas.h"
CHAR MapBuff[21][15] = {
"Terrain1.att",
"Terrain2.att",
"Terrain3.att",
"Terrain4.att",
"Terrain5.att",
"Terrain6.att",
"Terrain7.att",
"Terrain8.att",
"Terrain9.att",
"Terrain10.att",
"Terrain11.att",
"Terrain12.att",
"Terrain12.att",
"Terrain12.att",
"Terrain12.att",
"Terrain12.att",
"Terrain17.att",
"Terrain18.att",
"Terrain19.att",
"Terrain20.att",
"Terrain22.att",
"Terrain23.att",
"Terrain24.att",
"Terrain25.att",
"Terrain26.att",
"Terrain27.att",
"Terrain28.att",
"Terrain29.att",
"Terrain30.att",
};
void MapLoad()
{
for(int i=0;i<0x15;i++)
{
_asm
{
Mov Ecx, i
Imul Ecx, Ecx, 0x4DB68
Add Ecx, 0x6354C78
Mov Eax, 0x00402225
Call Eax
Mov Eax, i
Push Eax
Mov Ecx, i
Imul Ecx, Ecx, 0FH
Add Ecx, offset MapBuff
Push Ecx
Mov Ecx, 0x0687DE60
Mov Eax, 0x00401A7D
Call Eax
Push Eax
Mov Ecx, i
Imul Ecx, Ecx, 0x4DB68
Add Ecx, 0x6354C78
Mov Eax, 0x00401FC3
Call Eax
}
}
}
--------------------------
#include "StdAfx.h"
bool MapDataInit();
void MapLoad();
-------------------------
Llamada:
//LoadMaps 100%
SetByte(0x00489424,0x15);
SetByte(0x0048948F,0x15);
SetByte(0x0047C7D4,0x15);
SetByte(0x0047334E,0x15);
SetByte(0x0047C499,0x15);
SetByte(0x0047C7D4,0x15);
SetByte(0x0047C7FE,0x15);
SetByte(0x0045D153,0x15);
SetByte(0x00443782,0x14);
SetByte(0x00497B30,0x14);
SetByte(0x00497C00,0x14);
SetByte(0x0045C620,0x14);
SetByte(0x0045C77B,0x14);
SetByte(0x0045BA63,0x14);
*(DWORD*)(0x004D0A00) = (DWORD)&MapLoad;
------------------------------
Funcion:
//SetByte
void SetByte(DWORD dwOffset, BYTE btValue){
*(BYTE*)(dwOffset) = btValue;
}
----------------------------
Me funcionaron perfectamente en esta version, cualquier duda los ayudo, gracias
Agradecimentos > DsTeamDev (Chris/Diguinho)
---------- Post added at 03:52 PM ---------- Previous post was at 03:44 PM ----------
Sistema de mapas 96.40
#include "mapas.h"
CHAR MapBuff[30][15] = {
"Terrain1.att",
"Terrain2.att",
"Terrain3.att",
"Terrain4.att",
"Terrain5.att",
"Terrain6.att",
"Terrain7.att",
"Terrain8.att",
"Terrain9.att",
"Terrain10.att",
"Terrain11.att",
"Terrain12.att",
"Terrain12.att",
"Terrain12.att",
"Terrain12.att",
"Terrain12.att",
"Terrain17.att",
"Terrain18.att",
"Terrain19.att",
"Terrain20.att",
"Terrain22.att",
"Terrain23.att",
"Terrain24.att",
"Terrain25.att",
"Terrain26.att",
"Terrain27.att",
"Terrain28.att",
"Terrain29.att",
"Terrain30.att",
};
void MapLoad()
{
for(int i=0;i<0x15;i++)
{
_asm
{
Mov Ecx, i
Imul Ecx, Ecx, 0x4DB68
Add Ecx, 0x6354C78
Mov Eax, 0x00402225
Call Eax
Mov Eax, i
Push Eax
Mov Ecx, i
Imul Ecx, Ecx, 0FH
Add Ecx, offset MapBuff
Push Ecx
Mov Ecx, 0x0687DE60
Mov Eax, 0x00401A7D
Call Eax
Push Eax
Mov Ecx, i
Imul Ecx, Ecx, 0x4DB68
Add Ecx, 0x6354C78
Mov Eax, 0x00401FC3
Call Eax
}
}
}
--------------------------
#include "StdAfx.h"
bool MapDataInit();
void MapLoad();
-------------------------
Llamada:
//LoadMaps 100%
SetByte(0x00489424,0x15);
SetByte(0x0048948F,0x15);
SetByte(0x0047C7D4,0x15);
SetByte(0x0047334E,0x15);
SetByte(0x0047C499,0x15);
SetByte(0x0047C7D4,0x15);
SetByte(0x0047C7FE,0x15);
SetByte(0x0045D153,0x15);
SetByte(0x00443782,0x14);
SetByte(0x00497B30,0x14);
SetByte(0x00497C00,0x14);
SetByte(0x0045C620,0x14);
SetByte(0x0045C77B,0x14);
SetByte(0x0045BA63,0x14);
*(DWORD*)(0x004D0A00) = (DWORD)&MapLoad;
------------------------------
Funcion:
//SetByte
void SetByte(DWORD dwOffset, BYTE btValue){
*(BYTE*)(dwOffset) = btValue;
}
----------------------------
Me funcionaron perfectamente en esta version, cualquier duda los ayudo, gracias
Agradecimentos > DsTeamDev (Chris/Diguinho)