<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?action=history&amp;feed=atom</id>
	<title>NPC Placement and Alignment/es - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?action=history"/>
	<updated>2026-10-25T14:34:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?diff=39886&amp;oldid=prev</id>
		<title>Shokkoh: Translation sync from dragonminez-wiki repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?diff=39886&amp;oldid=prev"/>
		<updated>2026-10-22T01:24:52Z</updated>

		<summary type="html">&lt;p&gt;Translation sync from dragonminez-wiki repository&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:24, 22 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l195&quot;&gt;Line 195:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 195:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;hostile_above&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero para un alineamiento por encima de este valor.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;hostile_above&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero para un alineamiento por encima de este valor.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.min_alignment&amp;lt;/code&amp;gt; || Entero || &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span class=&quot;mw-translate-fuzzy&quot;&amp;gt;El jugador necesita al menos &lt;/del&gt;este alineamiento &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;para hablar con &lt;/del&gt;el NPC&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. Aunque &lt;/del&gt;el &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;NPC no sea hostil&lt;/del&gt;, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;un &lt;/del&gt;alineamiento &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;lo bastante bajo sigue bloqueando la interacción&lt;/del&gt;. También se puede escribir directamente en la regla, sin el contenedor &amp;lt;code&amp;gt;interaction&amp;lt;/code&amp;gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/span&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.min_alignment&amp;lt;/code&amp;gt; || Entero || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Por debajo de &lt;/ins&gt;este alineamiento el NPC &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sigue hablando con &lt;/ins&gt;el &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jugador, pero lo saluda con frialdad, y sus misiones secundarias aparecen bloqueadas (las misiones de saga&lt;/ins&gt;, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;las que tienen su propia condición de &lt;/ins&gt;alineamiento &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;y las que ya están en curso siguen disponibles)&lt;/ins&gt;. También se puede escribir directamente en la regla, sin el contenedor &amp;lt;code&amp;gt;interaction&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.max_alignment&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero como límite superior.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.max_alignment&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero como límite superior.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;mw-translate-fuzzy&quot;&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Los cuatro campos de umbral son opcionales: omite los que no apliquen. Tomando como ejemplo la entrada &amp;lt;code&amp;gt;goku&amp;lt;/code&amp;gt; de arriba: con menos de 25 de alineamiento, Goku es hostil; de 25 a 60 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sigue hablando contigo, &lt;/ins&gt;pero &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;con frialdad, y sus misiones secundarias siguen bloqueadas &lt;/ins&gt;(el alineamiento está por debajo del &amp;lt;code&amp;gt;min_alignment&amp;lt;/code&amp;gt; de 61); con 61 o más es amistoso y &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;todo queda disponible&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Los cuatro campos de umbral son opcionales: omite los que no apliquen. Tomando como ejemplo la entrada &amp;lt;code&amp;gt;goku&amp;lt;/code&amp;gt; de arriba: con menos de 25 de alineamiento, Goku es hostil; de 25 a 60 &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;está presente &lt;/del&gt;pero &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;no habla &lt;/del&gt;(el alineamiento está por debajo del &amp;lt;code&amp;gt;min_alignment&amp;lt;/code&amp;gt; de 61); con 61 o más es amistoso y &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;se puede hablar con él&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;NpcDispositionService.getRelation()&amp;lt;/code&amp;gt; comprueba la relación en este orden:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;NpcDispositionService.getRelation()&amp;lt;/code&amp;gt; comprueba la relación en este orden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Shokkoh</name></author>
	</entry>
	<entry>
		<id>https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?diff=38523&amp;oldid=prev</id>
		<title>FuzzyBot: Updating to match new version of source page</title>
		<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?diff=38523&amp;oldid=prev"/>
		<updated>2026-10-22T01:08:29Z</updated>

		<summary type="html">&lt;p&gt;Updating to match new version of source page&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 01:08, 22 October 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l195&quot;&gt;Line 195:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 195:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;hostile_above&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero para un alineamiento por encima de este valor.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;hostile_above&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero para un alineamiento por encima de este valor.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.min_alignment&amp;lt;/code&amp;gt; || Entero || El jugador necesita al menos este alineamiento para hablar con el NPC. Aunque el NPC no sea hostil, un alineamiento lo bastante bajo sigue bloqueando la interacción. También se puede escribir directamente en la regla, sin el contenedor &amp;lt;code&amp;gt;interaction&amp;lt;/code&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.min_alignment&amp;lt;/code&amp;gt; || Entero || &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;span class=&quot;mw-translate-fuzzy&quot;&amp;gt;&lt;/ins&gt;El jugador necesita al menos este alineamiento para hablar con el NPC. Aunque el NPC no sea hostil, un alineamiento lo bastante bajo sigue bloqueando la interacción. También se puede escribir directamente en la regla, sin el contenedor &amp;lt;code&amp;gt;interaction&amp;lt;/code&amp;gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/span&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.max_alignment&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero como límite superior.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| &amp;lt;code&amp;gt;interaction.max_alignment&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero como límite superior.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;div class=&quot;mw-translate-fuzzy&quot;&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Los cuatro campos de umbral son opcionales: omite los que no apliquen. Tomando como ejemplo la entrada &amp;lt;code&amp;gt;goku&amp;lt;/code&amp;gt; de arriba: con menos de 25 de alineamiento, Goku es hostil; de 25 a 60 está presente pero no habla (el alineamiento está por debajo del &amp;lt;code&amp;gt;min_alignment&amp;lt;/code&amp;gt; de 61); con 61 o más es amistoso y se puede hablar con él.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Los cuatro campos de umbral son opcionales: omite los que no apliquen. Tomando como ejemplo la entrada &amp;lt;code&amp;gt;goku&amp;lt;/code&amp;gt; de arriba: con menos de 25 de alineamiento, Goku es hostil; de 25 a 60 está presente pero no habla (el alineamiento está por debajo del &amp;lt;code&amp;gt;min_alignment&amp;lt;/code&amp;gt; de 61); con 61 o más es amistoso y se puede hablar con él.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/div&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;NpcDispositionService.getRelation()&amp;lt;/code&amp;gt; comprueba la relación en este orden:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;code&amp;gt;NpcDispositionService.getRelation()&amp;lt;/code&amp;gt; comprueba la relación en este orden:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key dmzwiki:diff:1.41:old-37161:rev-38523:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>FuzzyBot</name></author>
	</entry>
	<entry>
		<id>https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?diff=37161&amp;oldid=prev</id>
		<title>Shokkoh: Translation sync from dragonminez-wiki repository</title>
		<link rel="alternate" type="text/html" href="https://wiki.dragonminez.com/es/wiki/NPC_Placement_and_Alignment?diff=37161&amp;oldid=prev"/>
		<updated>2026-10-14T08:51:29Z</updated>

		<summary type="html">&lt;p&gt;Translation sync from dragonminez-wiki repository&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Ubicación y alineamiento de NPCs&amp;#039;&amp;#039;&amp;#039; trata de los archivos que deciden dónde están los NPCs maestros y entrenadores y cómo el alineamiento de un jugador cambia la forma en que cada NPC lo trata. De esto se encargan dos archivos JSON relacionados de cada mundo, ambos en &amp;lt;code&amp;gt;&amp;lt;world save&amp;gt;/dragonminez/npcs/&amp;lt;/code&amp;gt;, más un formato de datapack para los NPCs que viven dentro de estructuras.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Archivo !! Qué controla&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;placements.json&amp;lt;/code&amp;gt; || Dónde aparecen los NPCs maestros y entrenadores (posición, dimensión, alineamiento o relación inicial).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;alignment_rules.json&amp;lt;/code&amp;gt; || Cómo el alineamiento del &amp;#039;&amp;#039;&amp;#039;jugador&amp;#039;&amp;#039;&amp;#039; afecta la hostilidad, la amabilidad y la disponibilidad para interactuar de cada NPC.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Ambos archivos se cargan al iniciar el servidor y se recargan con &amp;lt;code&amp;gt;/dmzreload config&amp;lt;/code&amp;gt; (o &amp;lt;code&amp;gt;/dmzreload all&amp;lt;/code&amp;gt;); consulta [[Special:MyLanguage/Reloading and Updating Changes|Recargar y actualizar cambios]]. Una recarga también vuelve a aplicar las ubicaciones en todas las dimensiones cargadas.&lt;br /&gt;
&lt;br /&gt;
{{Note|type=warning|title=Los mundos antiguos conservan sus archivos antiguos|text=Ambos archivos solo se escriben con los valores por defecto de DragonMineZ cuando &amp;#039;&amp;#039;&amp;#039;no existen&amp;#039;&amp;#039;&amp;#039;. Un mundo creado con una versión anterior de DragonMineZ conserva sus archivos antiguos, así que no recibe las nuevas entradas por defecto (por ejemplo, los NPCs del Otro Mundo de la v2.2 y sus nuevas coordenadas). Para obtener los valores por defecto actuales, borra el archivo (respáldalo antes si lo editaste) y ejecuta &amp;lt;code&amp;gt;/dmzreload config&amp;lt;/code&amp;gt;.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;NPC_placement&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Ubicación de NPCs ==&lt;br /&gt;
&amp;lt;code&amp;gt;placements.json&amp;lt;/code&amp;gt; lista todos los NPCs que coloca DragonMineZ y dónde.&lt;br /&gt;
&lt;br /&gt;
Código fuente: &amp;lt;code&amp;gt;src/main/java/com/dragonminez/server/world/npc/NPCPlacementManager.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;schema&amp;quot;: 1,&lt;br /&gt;
  &amp;quot;placements&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;master_roshi&amp;quot;,&lt;br /&gt;
      &amp;quot;entity&amp;quot;: &amp;quot;dragonminez:master_roshi&amp;quot;,&lt;br /&gt;
      &amp;quot;dimension&amp;quot;: &amp;quot;minecraft:overworld&amp;quot;,&lt;br /&gt;
      &amp;quot;structure&amp;quot;: &amp;quot;roshi_house&amp;quot;,&lt;br /&gt;
      &amp;quot;x&amp;quot;: 0.0,&lt;br /&gt;
      &amp;quot;y&amp;quot;: 0.0,&lt;br /&gt;
      &amp;quot;z&amp;quot;: 0.0,&lt;br /&gt;
      &amp;quot;yaw&amp;quot;: 225.0,&lt;br /&gt;
      &amp;quot;pitch&amp;quot;: 0.0,&lt;br /&gt;
      &amp;quot;surface&amp;quot;: true,&lt;br /&gt;
      &amp;quot;relative_to_spawn&amp;quot;: false,&lt;br /&gt;
      &amp;quot;enabled&amp;quot;: true,&lt;br /&gt;
      &amp;quot;override&amp;quot;: false&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Campo !! Tipo !! Qué hace&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; || Texto || Id único de la ubicación. Se etiqueta en la entidad generada para que DragonMineZ pueda encontrarla y actualizarla después. Si dos ubicaciones comparten id, gana la última del archivo (se registra una advertencia).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; || Texto || Id de registro del tipo de entidad.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;dimension&amp;lt;/code&amp;gt; || Texto || Por defecto &amp;lt;code&amp;gt;minecraft:overworld&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;npc_id&amp;lt;/code&amp;gt; || Texto || Solo tiene sentido para entidades &amp;lt;code&amp;gt;dragonminez:quest_npc&amp;lt;/code&amp;gt;: enlaza con el id de NPC del sistema de misiones.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;texture&amp;lt;/code&amp;gt; || Texto || Solo se usa para entidades &amp;lt;code&amp;gt;quest_npc&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;structure&amp;lt;/code&amp;gt; || Texto || Si se define, &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; pasan a ser un &amp;#039;&amp;#039;&amp;#039;desplazamiento&amp;#039;&amp;#039;&amp;#039; desde el origen de esa estructura en lugar de coordenadas del mundo. Valores válidos: &amp;lt;code&amp;gt;roshi_house&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;goku_house&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;elder_guru&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;timechamber&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kamilookout&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gero_lab&amp;lt;/code&amp;gt;. Un valor no reconocido hace que &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; se traten como coordenadas del mundo sin más (con una advertencia en el log).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; || Número || Coordenadas del mundo, o el desplazamiento desde la estructura (ver arriba). Por defecto: &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;64.0&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;0.5&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;yaw&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pitch&amp;lt;/code&amp;gt; || Número || Dirección a la que mira, en grados.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;surface&amp;lt;/code&amp;gt; || Booleano || Si es &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, ajusta la Y a la superficie del terreno al cargar en lugar de usar la Y indicada.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;relative_to_spawn&amp;lt;/code&amp;gt; || Booleano || Si es &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, suma el punto de aparición del mundo a &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;z&amp;lt;/code&amp;gt; (se aplica después de cualquier desplazamiento de estructura).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;enabled&amp;lt;/code&amp;gt; || Booleano || Si es &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;, esta ubicación se omite por completo.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;override&amp;lt;/code&amp;gt; || Booleano || Si es &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;, la entidad siempre se vuelve a generar, aunque ya exista una para este &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;. Si no, la entidad existente solo se actualiza en su lugar.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;alignment&amp;lt;/code&amp;gt; || Entero (0–100) || Alineamiento opcional para este NPC concreto: por encima de 60 es amistoso, de 41 a 60 neutral, y con 40 o menos hostil (salvo que una regla de alineamiento lo vuelva hostil antes, ver abajo).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;relation&amp;lt;/code&amp;gt; || Texto || Reemplazo opcional para esta instancia (&amp;lt;code&amp;gt;HOSTILE&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;NEUTRAL&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;FRIENDLY&amp;lt;/code&amp;gt;), guardado en la propia entidad en lugar de buscarse en las reglas de alineamiento.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Las claves desconocidas se reportan en el informe de carga del JSON.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Default_placements&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Ubicaciones por defecto ===&lt;br /&gt;
El archivo por defecto genera de forma activa estos NPCs:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Id de ubicación !! Entidad !! Dónde&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_roshi&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_roshi&amp;lt;/code&amp;gt; || Kame House&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_goku&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_goku&amp;lt;/code&amp;gt; || Casa de Goku&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_karin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_dende&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_popo&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_karin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_dende&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_popo&amp;lt;/code&amp;gt; || La Atalaya de Kami&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_gero&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_gero&amp;lt;/code&amp;gt; || Laboratorio del Dr. Gero&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_guru&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_guru&amp;lt;/code&amp;gt; || Casa del Gran Anciano (Namek)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_kaiosama&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_kaiosama&amp;lt;/code&amp;gt; || Otro Mundo, &amp;lt;code&amp;gt;54.5 299 1031.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_toribot&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_toribot&amp;lt;/code&amp;gt; || Otro Mundo, &amp;lt;code&amp;gt;50.5 298 1030.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_enma&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_enma&amp;lt;/code&amp;gt; || Otro Mundo, &amp;lt;code&amp;gt;0.5 150 17.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_baba&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_uranai&amp;lt;/code&amp;gt; || Otro Mundo, &amp;lt;code&amp;gt;9.5 150 3.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_grandkai&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_grandkai&amp;lt;/code&amp;gt; || Otro Mundo, &amp;lt;code&amp;gt;-30.5 150 12.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;npc_hell_ogre&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:quest_npc&amp;lt;/code&amp;gt; (&amp;lt;code&amp;gt;npc_id&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;hell_ogre&amp;lt;/code&amp;gt;) || Otro Mundo, &amp;lt;code&amp;gt;9.5 150 16.5&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;master_otherworld_announcer&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;dragonminez:master_otherworld_announcer&amp;lt;/code&amp;gt; || Recinto del [[Special:MyLanguage/Otherworld Tournament|Torneo del Otro Mundo]], &amp;lt;code&amp;gt;-25.5 352 -1164.5&amp;lt;/code&amp;gt; (solo se coloca una vez construido el recinto del torneo)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Quest_NPCs_and_master_NPCs&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== NPCs de misiones y NPCs maestros ===&lt;br /&gt;
Los NPCs de misiones (Bulma, Krilin, Yamcha, Ten Shin Han, Piccolo, Gohan, Vegeta, Trunks, Chi-Chi, Videl, Shin y el Anciano Namekiano) también aparecen en el archivo por defecto, pero con &amp;lt;code&amp;gt;&amp;quot;enabled&amp;quot;: false&amp;lt;/code&amp;gt;: este sistema ya no los genera durante la partida. Están incluidos directamente en el NBT de la estructura, así que viven en lugares fijos colocados a mano en lugar de amontonarse en el punto de aparición del mundo. Sus entradas aquí son solo de referencia. Los NPCs añadidos a una estructura después de crear su NBT vienen, en cambio, de los [[Special:MyLanguage/NPC Placement and Alignment#Structure NPCs|archivos de NPCs de estructuras]] (Chi-Chi en la Casa de Goku es uno de ellos).&lt;br /&gt;
&lt;br /&gt;
Los NPCs del Otro Mundo (&amp;lt;code&amp;gt;master_kaiosama&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_enma&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_baba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_toribot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_grandkai&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;master_otherworld_announcer&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;npc_hell_ogre&amp;lt;/code&amp;gt;) siempre fuerzan &amp;lt;code&amp;gt;override: true&amp;lt;/code&amp;gt; internamente, diga lo que diga el archivo, ya que necesitan existir de forma fiable en una dimensión generada. Consulta [[Special:MyLanguage/Otherworld|Otro Mundo]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Structure_NPCs&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== NPCs de estructuras ==&lt;br /&gt;
Los archivos de NPCs de estructuras colocan NPCs &amp;#039;&amp;#039;&amp;#039;dentro&amp;#039;&amp;#039;&amp;#039; de una estructura de DragonMineZ sin editar su archivo &amp;lt;code&amp;gt;.nbt&amp;lt;/code&amp;gt;. A diferencia de los archivos anteriores, estos son archivos de &amp;#039;&amp;#039;&amp;#039;datapack&amp;#039;&amp;#039;&amp;#039;: &amp;lt;code&amp;gt;data/&amp;lt;namespace&amp;gt;/structure_npcs/*.json&amp;lt;/code&amp;gt;, uno por estructura, cargados con los datapacks (y con &amp;lt;code&amp;gt;/reload&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;structure&amp;quot;: &amp;quot;dragonminez:goku_house&amp;quot;,&lt;br /&gt;
  &amp;quot;npcs&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;id&amp;quot;: &amp;quot;npc_chi_chi&amp;quot;,&lt;br /&gt;
      &amp;quot;entity&amp;quot;: &amp;quot;dragonminez:quest_npc&amp;quot;,&lt;br /&gt;
      &amp;quot;npc_id&amp;quot;: &amp;quot;chi_chi&amp;quot;,&lt;br /&gt;
      &amp;quot;model&amp;quot;: &amp;quot;saga_videl&amp;quot;,&lt;br /&gt;
      &amp;quot;texture&amp;quot;: &amp;quot;saga_chichi&amp;quot;,&lt;br /&gt;
      &amp;quot;pos&amp;quot;: [67.5, 5.0, 50.5],&lt;br /&gt;
      &amp;quot;yaw&amp;quot;: 90.0&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Campo !! Obligatorio !! Qué hace&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;structure&amp;lt;/code&amp;gt; || Sí || Id de la estructura a la que pertenecen los NPCs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt; || Sí || Id único de este NPC dentro de la estructura. También es la clave de seguimiento, así que no le cambies el nombre una vez que los mundos lo usen.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;entity&amp;lt;/code&amp;gt; || Sí || Tipo de entidad que se genera (por ejemplo &amp;lt;code&amp;gt;dragonminez:quest_npc&amp;lt;/code&amp;gt; o el id de entidad de un maestro).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;npc_id&amp;lt;/code&amp;gt; || No || Id del NPC de misiones, para &amp;lt;code&amp;gt;dragonminez:quest_npc&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;model&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;texture&amp;lt;/code&amp;gt; || No || Nombres de modelo y textura para los NPCs de misiones.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt; || No || La plantilla de la estructura respecto a la que se mide la posición, para estructuras formadas por varias piezas.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pos&amp;lt;/code&amp;gt; || Sí || Posición &amp;#039;&amp;#039;&amp;#039;relativa a la plantilla de la estructura&amp;#039;&amp;#039;&amp;#039;, así que queda bien sea cual sea la rotación con la que apareció la estructura.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;yaw&amp;lt;/code&amp;gt; || No || Orientación, también relativa a la plantilla (por defecto &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;alignment&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;relation&amp;lt;/code&amp;gt; || No || Alineamiento y relación iniciales, como en &amp;lt;code&amp;gt;placements.json&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cada NPC aparece &amp;#039;&amp;#039;&amp;#039;una vez&amp;#039;&amp;#039;&amp;#039; por estructura generada cuando se carga su chunk, incluidas las estructuras que se generaron antes de que existiera el archivo, y la aparición se recuerda: un NPC que muere no vuelve.&lt;br /&gt;
&lt;br /&gt;
Para obtener las coordenadas, ponte donde debería estar el NPC y ejecuta &amp;lt;code&amp;gt;/dmzstructure here&amp;lt;/code&amp;gt;: muestra la estructura, su plantilla y tu posición y yaw relativos a la plantilla, con un botón &amp;#039;&amp;#039;&amp;#039;Copy NPC JSON&amp;#039;&amp;#039;&amp;#039; que copia una entrada lista para usar. &amp;lt;code&amp;gt;/dmzstructure npcs&amp;lt;/code&amp;gt; lista los NPCs de la estructura en la que estás y si cada uno ya apareció. Ambos comandos requieren el permiso &amp;lt;code&amp;gt;dragonminez.dmzstructure&amp;lt;/code&amp;gt; (consulta [[Special:MyLanguage/Permissions|Permisos]]).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;NPC_alignment_rules&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Reglas de alineamiento de NPCs ==&lt;br /&gt;
{{See also|Alignment|Masters}}&lt;br /&gt;
&amp;lt;code&amp;gt;alignment_rules.json&amp;lt;/code&amp;gt; decide cómo reacciona cada NPC al alineamiento del jugador.&lt;br /&gt;
&lt;br /&gt;
Código fuente: &amp;lt;code&amp;gt;src/main/java/com/dragonminez/common/alignment/NpcAlignmentRules.java&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;npcs&amp;quot;: {&lt;br /&gt;
    &amp;quot;goku&amp;quot;: {&lt;br /&gt;
      &amp;quot;default_relation&amp;quot;: &amp;quot;FRIENDLY&amp;quot;,&lt;br /&gt;
      &amp;quot;interaction&amp;quot;: { &amp;quot;min_alignment&amp;quot;: 61 },&lt;br /&gt;
      &amp;quot;hostile_below&amp;quot;: 25&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;gero&amp;quot;: {&lt;br /&gt;
      &amp;quot;default_relation&amp;quot;: &amp;quot;NEUTRAL&amp;quot;,&lt;br /&gt;
      &amp;quot;interaction&amp;quot;: { &amp;quot;max_alignment&amp;quot;: 60 }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Las claves de &amp;lt;code&amp;gt;npcs&amp;lt;/code&amp;gt; son ids de NPC &amp;#039;&amp;#039;&amp;#039;sin ningún namespace&amp;#039;&amp;#039;&amp;#039; (&amp;lt;code&amp;gt;dragonminez:roshi&amp;lt;/code&amp;gt; pasa a ser la clave &amp;lt;code&amp;gt;roshi&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Campo !! Tipo !! Qué hace&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;default_relation&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;HOSTILE&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;NEUTRAL&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;FRIENDLY&amp;lt;/code&amp;gt; || Relación base cuando ninguno de los umbrales de abajo la reemplaza. Por defecto &amp;lt;code&amp;gt;NEUTRAL&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hostile_below&amp;lt;/code&amp;gt; || Entero || Si el alineamiento del jugador está por debajo de este valor, el NPC se vuelve hostil sin importar &amp;lt;code&amp;gt;default_relation&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hostile_above&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero para un alineamiento por encima de este valor.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;interaction.min_alignment&amp;lt;/code&amp;gt; || Entero || El jugador necesita al menos este alineamiento para hablar con el NPC. Aunque el NPC no sea hostil, un alineamiento lo bastante bajo sigue bloqueando la interacción. También se puede escribir directamente en la regla, sin el contenedor &amp;lt;code&amp;gt;interaction&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;interaction.max_alignment&amp;lt;/code&amp;gt; || Entero || Lo mismo, pero como límite superior.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Los cuatro campos de umbral son opcionales: omite los que no apliquen. Tomando como ejemplo la entrada &amp;lt;code&amp;gt;goku&amp;lt;/code&amp;gt; de arriba: con menos de 25 de alineamiento, Goku es hostil; de 25 a 60 está presente pero no habla (el alineamiento está por debajo del &amp;lt;code&amp;gt;min_alignment&amp;lt;/code&amp;gt; de 61); con 61 o más es amistoso y se puede hablar con él.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;NpcDispositionService.getRelation()&amp;lt;/code&amp;gt; comprueba la relación en este orden:&lt;br /&gt;
# Gana una &amp;lt;code&amp;gt;relation&amp;lt;/code&amp;gt; definida en la ubicación (&amp;lt;code&amp;gt;placements.json&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Los umbrales &amp;lt;code&amp;gt;hostile_below&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;hostile_above&amp;lt;/code&amp;gt; de la regla.&lt;br /&gt;
# Un &amp;lt;code&amp;gt;alignment&amp;lt;/code&amp;gt; definido en la ubicación.&lt;br /&gt;
# El &amp;lt;code&amp;gt;default_relation&amp;lt;/code&amp;gt; de la regla.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Master_NPCs&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== NPCs maestros ===&lt;br /&gt;
Para los &amp;#039;&amp;#039;&amp;#039;NPCs maestros y entrenadores&amp;#039;&amp;#039;&amp;#039; el archivo de reglas decide la hostilidad, pero su filtro de alineamiento es una regla fija en lugar de &amp;lt;code&amp;gt;interaction&amp;lt;/code&amp;gt;: siempre se puede hablar con los maestros, pero [[Special:MyLanguage/Goku|Goku]], [[Special:MyLanguage/Gohan|Gohan]], [[Special:MyLanguage/King Kai|Kaiosama]], [[Special:MyLanguage/Old Kai|Kaioshin Anciano]], [[Special:MyLanguage/Master Roshi|Roshi]] y [[Special:MyLanguage/Krillin|Krilin]] solo desbloquean sus &amp;#039;&amp;#039;&amp;#039;Habilidades&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Entrenar&amp;#039;&amp;#039;&amp;#039; y las misiones nuevas con un alineamiento de al menos &amp;#039;&amp;#039;&amp;#039;61&amp;#039;&amp;#039;&amp;#039;, y [[Special:MyLanguage/Cell|Cell]] y [[Special:MyLanguage/Frieza|Freezer]] con &amp;#039;&amp;#039;&amp;#039;40 o menos&amp;#039;&amp;#039;&amp;#039;. Ningún otro maestro tiene filtro de alineamiento. Consulta [[Special:MyLanguage/Masters|Maestros]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;NPC_ids_covered_by_default&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Ids de NPC incluidos por defecto ===&lt;br /&gt;
El archivo por defecto incluye &amp;lt;code&amp;gt;goku&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;roshi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;karin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;guru&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;dende&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;popo&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kingkai&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gero&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;enma&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;baba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;toribot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;grandkai&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;otherworld_announcer&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;bulma&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;krillin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;yamcha&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tien&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chiaotzu&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;gohan&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;trunks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;chi_chi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;videl&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;namek_elder&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;shin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;piccolo&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;vegeta&amp;lt;/code&amp;gt;.&lt;br /&gt;
* La mayoría usa por defecto &amp;lt;code&amp;gt;FRIENDLY&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;min_alignment: 41&amp;lt;/code&amp;gt; (o &amp;lt;code&amp;gt;61&amp;lt;/code&amp;gt; para Goku, Gurú, Dendé, Kaiosama y el Anciano Namekiano) y &amp;lt;code&amp;gt;hostile_below: 25&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;gero&amp;lt;/code&amp;gt; usa por defecto &amp;lt;code&amp;gt;NEUTRAL&amp;lt;/code&amp;gt; con &amp;lt;code&amp;gt;max_alignment: 60&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;enma&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;baba&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;toribot&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;grandkai&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;otherworld_announcer&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;vegeta&amp;lt;/code&amp;gt; usan por defecto &amp;lt;code&amp;gt;NEUTRAL&amp;lt;/code&amp;gt; sin umbrales.&lt;br /&gt;
* &amp;lt;code&amp;gt;piccolo&amp;lt;/code&amp;gt; usa por defecto &amp;lt;code&amp;gt;NEUTRAL&amp;lt;/code&amp;gt; con sus propios umbrales (&amp;lt;code&amp;gt;min_alignment: 41&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;hostile_below: 20&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;Reload_and_validate&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Recarga y validación ==&lt;br /&gt;
# Edita los archivos en &amp;lt;code&amp;gt;&amp;lt;world save&amp;gt;/dragonminez/npcs/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Valida la sintaxis JSON (consulta [[Special:MyLanguage/How to JSON|Cómo usar JSON]]).&lt;br /&gt;
# Ejecuta &amp;lt;code&amp;gt;/dmzreload config&amp;lt;/code&amp;gt; (o &amp;lt;code&amp;gt;/dmzreload all&amp;lt;/code&amp;gt;); consulta [[Special:MyLanguage/Reloading and Updating Changes|Recargar y actualizar cambios]].&lt;br /&gt;
# Comprueba que el NPC apareció o se movió como esperabas, y que la hostilidad y la interacción según el alineamiento se comportan como configuraste (prueba con un par de valores de alineamiento si puedes).&lt;br /&gt;
&lt;br /&gt;
{{Navbox Modding}}&lt;/div&gt;</summary>
		<author><name>Shokkoh</name></author>
	</entry>
</feed>