Ir para conteúdo

Remere's Map Editor - Criando e Modificando Extensões


Nolis

Posts Recomendados

Remere's Map Editor - Criando e Modificando Extensões


Olá, fiz este tutorial a um tempo atrás e agora o reformulei, espero que encontrem o que procuram e entendam o conteúdo, estarei atualizando para deixá-lo mais completo conforme o tempo, quaisquer dúvidas estarei atendendo no tópico.
O tópico atenderá a quem precisar modificar alguma extensão de auto-border ou organização no Remere's Map Editor, este, seguira a ordem proposta no sumário:
  • Borders.xml
  • Grounds.xml
  • Walls.xml

INTRODUÇÃO

Auto-border é uma ferramenta do RME utilizada para adicionar itens de um modo que formem seu padrão ou ligação, em outras palavras, o auto-border faz algumas partes do mapa para você (em outros pontos de vista, o mapa todo); você pode utilizar esta ferramenta de duas maneiras:

  • Apenas usando-a: Seu mapa ficará quadrado/simples/desorganizado;
  • Usando como Base: Esta é uma ação de muitos mappers que, mesmo não gostando do auto-border, utilizam para achar o pack do item selecionado, ao invés de procurar este manualmente. Outros, produzem bases ou marcações no mapa para depois completar utilizando suas habilidades.

INICIANDO

Antes de tudo, faça um backup do seu map editor, caso você não saiba, basta copiar a pasta que você vai modificar. Durante este tutorial, estarei utilizando a versão 8.60.



6zt24qJ.png

Começarei com borders.xml por ser fácil de entender, porém trabalhoso. Borders.xml é o arquivo que fará a ferramenta Auto-Border adicionar, automaticamente, bordas no ground que você utilizar através desta ferramenta. É importante ressaltar, que as configurações contidas neste arquivo possuirão um ID que fará uma ligação com o arquivo grounds.xml; dessa forma, nunca esqueça de configurar corretamente o ID que você terá que adicionar em grounds.xml.


  • Estrutura e Funções
Borders.xml possui uma estrutura simples de entender, inicia com:
<materials>
E finaliza com:
</materials>
Entre essas duas linhas, que são a primeira e a útilma, as configurações de cada borda são organizadas como:
<border id="A"> -- B --
<borderitem edge="C"   item="D"/>
</border>
Além destas, o arquivo pode conter outras funções que são fundamentais para a organização base do RME, entretanto, está contido a estrutura base para uma funcionalidade simples; abaixo você pode similar as referências e entender esta estrutura:
A - Esta função registra a borda fazendo uma ligação com um ground (em grounds.xml), este id você cria, mas deve garantir que não esteja repetido, pois se houver duas bordas com o mesmo ID ou dois grounds com o mesmo id, a ferramenta entrará em colapso e este item não funcionará como auto-border. Você saberá se cometeu um erro na hora de abrir o editor ou utilizar o item;
B - Aqui você pode adicionar um nome à borda, para poder localizá-la mais facilmente, isto é opcional e você deve tomar cuidado para que o texto esteja neste padrão: -- Nome --
C - A parte mais complicada e importante é a posição dos itens que comportaram o funcionamento deste específico auto-border, em C, você deve especificar a posição da borda conforme o padrão abaixo, sempre siga esta ordem, mantendo um padrão nas suas extensões, que ficará mais fácil de criar/modificar:



mvJOjUt.png


C - Em C, você adiciona o id das bordas conforme a configuração de posição mostrada acima;
Ao adicionar as bordas de grass (os ids) conforme a posição da "Rosa dos Ventos", o script fica assim:

		<borderitem edge="n"   item="4542"/>
		<borderitem edge="e"   item="4543"/>
		<borderitem edge="s"   item="4544"/>
		<borderitem edge="w"   item="4545"/>
		<borderitem edge="cnw" item="4546"/>
		<borderitem edge="cne" item="4547"/>
		<borderitem edge="csw" item="4548"/>
		<borderitem edge="cse" item="4549"/>
		<borderitem edge="dnw" item="4550"/>
		<borderitem edge="dne" item="4551"/>
		<borderitem edge="dsw" item="4552"/>
		<borderitem edge="dse" item="4553"/>
Um script de uma borda completo deve estar como o modelo abaixo (apenas a estrutura, os ids e nome podem ser diferentes):
<materials>
</border>...

<border id="2" group="1"> -- grass border --
    <borderitem edge="n"   item="4542"/>
    <borderitem edge="e"   item="4543"/>
    <borderitem edge="s"   item="4544"/>
    <borderitem edge="w"   item="4545"/>
    <borderitem edge="cnw" item="4546"/>
    <borderitem edge="cne" item="4547"/>
    <borderitem edge="csw" item="4548"/>
    <borderitem edge="cse" item="4549"/>
    <borderitem edge="dnw" item="4550"/>
    <borderitem edge="dne" item="4551"/>
    <borderitem edge="dsw" item="4552"/>
    <borderitem edge="dse" item="4553"/>
</border>

<border id="3"...
</materials>


qMhN6iH.png

Grounds.xml é o arquivo responsável pelos tiles que são adicionados com bordas automáticas no RME, neste, você adicionará funções que determinam os tiles e suas respectivas repetições/variações, assim como o id da borda criada. É uma parte fácil de lidar, porém há funções que você deve decorar para saber como esta ferramenta funcionará no RME.


  • Estrutura e Funções
Veja abaixo a estrutura principal de grounds.xml:
<materials>
<materials>
 <brush name="A" type="ground" server_lookid="B" z-order="C">
   <item id="D" chance="E"/>
      <border align="outer" id="F"/>
      <border align="inner" to="none" id="G"/>
 </brush>
</materials>
Para entender a estrutura, siga em ordem as referências e associe com o que já foi dito anteriormente:
A - Aqui você deve escrever, em minúsculo, o nome do seu ground; este nome será colocado em tilesets.xml para que o editor saiba que a ferramenta existe e onde colocá-la;
B - Em B, deve ser posto o id do tile, este, aparecerá na paleta para identificar a ferramenta;
C - Z-order é a função que diz se o as bordas do seu tile ficarão por cima/por baixo de outros tiles, se a dúvida for: Por que esta função se encontra em ground.xml e não em borders.xml, leia:
Ao colocar um ground em cima do outro, este que já estava será removido; o script do ground adicionado deve identificar o que acontecerá com suas bordas, veja as imagens para entender:

Eb2fkv1.png
Perceba que o ground de terra fica abaixo do ground Lawn, que é a grama escura; respectivamente, o ground de grass fica acima do ground Lawn. Isso acontece por que ambos os três possuem um z-order diferente, conforme as imagens:

pLohqFH.png z-order="2800">
HxlhMHT.png z-order="1000">
j2gJbeA.png z-order="5100">

D - Nesta parte, você coloca o id do seu ground, pode colocar vários grounds, um em baixo do outro (repetindo a função) que a ferramenta fará eles saírem de ordem aleatória no mapa, conforme a prioridade decidida, confira:

<item id="4526" chance="2500"/>
<item id="4527" chance="10"/>
<item id="4528" chance="25"/>
<item id="4529" chance="25"/>
<item id="4530" chance="25"/>
<item id="4531" chance="25"/>
<item id="4532" chance="25"/>
<item id="4533" chance="25"/>
<item id="4534" chance="15"/>
<item id="4535" chance="25"/>
<item id="4536" chance="25"/>
<item id="4537" chance="25"/>
<item id="4538" chance="20"/>
<item id="4539" chance="20"/>
<item id="4540" chance="20"/>
<item id="4541" chance="20"/>
E - Como o próprio nome já diz, esta é a função que determina a prioridade do ground, no script acima, perceba que cada ground tem um chance id igual ou diferente, o objetivo disso é fazer os grounds saírem com a mesma proporção, ou um ground aparecer mais vezes que outros grounds.
F - Outer, que em português significa Exterior, é a borda que contornará um ground por fora, basta adicionar o id da borda que você quer que faça parte do ground, ele ficará assim:
39FCuJD.png
G - Inner, que em português significa Interior, é a borda que contornará um ground por dentro, esta função é muito utilizada para grounds adicionados em montanhas, pois geralmente a borda faz ligação com a parte de baixo que é a montanha:
9BX6eBp.png

Após finalizar estas funções, se fez certo, você já terá o seu ground funcionando corretamente, abaixo darei um exemplo desse script completo:

	<brush name="grass" type="ground" server_lookid="4526" z-order="3500">
		<item id="4526" chance="2500"/>
		<item id="4527" chance="10"/>
		<item id="4528" chance="25"/>
		<item id="4529" chance="25"/>
		<item id="4530" chance="25"/>
		<item id="4531" chance="25"/>
		<item id="4532" chance="25"/>
		<item id="4533" chance="25"/>
		<item id="4534" chance="15"/>
		<item id="4535" chance="25"/>
		<item id="4536" chance="25"/>
		<item id="4537" chance="25"/>
		<item id="4538" chance="20"/>
		<item id="4539" chance="20"/>
		<item id="4540" chance="20"/>
		<item id="4541" chance="20"/>
		<item id="470" chance="0"/>
		
		<border align="outer" id="2"/>
		<border align="inner" to="none" id="1"/>
	</brush>


4uWAD90.png

Walls.xml é o arquivo que cria suas ferramentas de walls, não é complicado, assim como o grounds.xml, você deve entender as funções; depois que criar, só precisa adicionar o nome em tileset.xml e usar.

  • Estrutura e Funções
A estrutura de Walls.xml é composta por:
<materials>
	<brush name="A" type="wall" server_lookid="B">
		<wall type="C">
		</wall>
		<wall type="D">
		</wall>
		<wall type="E">
		</wall>
		<wall type="F">
		</wall>
	</brush>
Eu separei o script acima para entender melhor sua estrutura, veja os passos abaixo depois as funções completas:
A - Como nos outros scripts, aqui vai o nome, em minúsculo, que identificará o script em tilesets.xml;
B - Em B, deve ser posto o id do tile, este, aparecerá na paleta para identificar a ferramenta;
C - Wall type se refere aos diferentes tipos da walls, existem 4 no padrão tibiano, a primeira da ordem é a <wall type="horizontal">, como mostra a figura:
c8Rvyqo.png
D - Aqui encontra-se o segundo tipo de wall, a <wall type="vertical">, como mostra a figura:
VNgIUMB.png
E - A terceira wall é a <wall type="corner">, como mostra a figura:
w8w82X5.png
F- A quarta e última é a <wall type="pole">, como mostra a figura:
AfANmls.png
		<wall type="horizontal">
			<item id="A" chance="500"/>
			<door id="B" type="normal" open="false"/>
			<door id="B" type="normal" open="true"/>
			<door id="B" type="locked" open="false"/>
			<door id="B" type="locked" open="true"/>
			<door id="B" type="quest" open="false"/>
			<door id="B" type="quest" open="true"/>
			<door id="B" type="magic" open="false"/>
			<door id="B" type="magic" open="true"/>
			<door id="B" type="hatch_window" open="false"/>
			<door id="B" type="hatch_window" open="true"/>
			<door id="B" type="window"/>
		</wall>
		<wall type="vertical">
			<item id="A" chance="500"/>
			<door id="B" type="normal" open="false"/>
			<door id="B" type="normal" open="true"/>
			<door id="B" type="locked" open="false"/>
			<door id="B" type="locked" open="true"/>
			<door id="B" type="quest" open="false"/>
			<door id="B" type="quest" open="true"/>
			<door id="B" type="magic" open="false"/>
			<door id="B" type="magic" open="true"/>
			<door id="B" type="hatch_window" open="false"/>
			<door id="B" type="hatch_window" open="true"/>
			<door id="B" type="window"/>
		</wall>
		<wall type="corner">
			<item id="A" chance="1000"/>
		</wall>
		<wall type="pole">
			<item id="A" chance="1000"/>
		</wall>
A - Em A, vai o id da wall conforme a configuração "Horizontal, Vertical, Corner ou Pole". São respectivamente:
eDTF1qV.png
B - Em B, é configurado o id da wall para as configurações mostradas a baixo, lembre-se que a mesma configuração vale para os tipos de walls "Horizontal, Vertical, Corner ou Pole", siga os exemplos:

uIpCdZi.png

Normal:

            <door id="B" type="normal" open="false"/>
            <door id="B" type="normal" open="true"/>
False: A função com false vai o ID da porta normal fechada.
UWw16ho.png
True: A função com true vai o ID da porta normal Aberta.
fNFDzUJ.png

Locked:

            <door id="B" type="locked" open="false"/>
            <door id="B" type="locked" open="true"/>
False: A função com false vai o ID da porta trancada fechada.
7X6GmTS.png
True: A função com true vai o ID da porta trancada Aberta.
OEBfZrn.png

Magic:

            <door id="B" type="magic" open="false"/>
            <door id="B" type="magic" open="true"/>
False: A função com false vai o ID da porta mágica fechada.
6ViM4Pm.png
True: A função com true vai o ID da porta magica Aberta.
8FNxnfG.png

Quest:

            <door id="B" type="quest" open="false"/>
            <door id="B" type="quest" open="true"/>
False: A função com false vai o ID da porta de quest fechada.
kmSk0bn.png
True: A função com true vai o ID da porta de quest Aberta.
AQEpMXF.png

Janelas

            <door id="B" type="hatch_window" open="false"/>
hspcNhZ.png

            <door id="B" type="hatch_window" open="true"/>
zCP4pJG.png

            <door id="B" type="window"/>
NAUFYqZ.png

Quaisquer dúvidas, estou a disposição!



Link para o comentário
Compartilhar em outros sites

  • 5 years later...
×
×
  • Criar Novo...