Guía de creación de mods

Contenidos

mods

Es posible cambiar las reglas y el aspecto del juego utilizando mods.

Un mod es una carpeta que puede contener los ficheros rules.txt, ai.txt, ui (y sus versiones locales). La estructura de árbol es la misma que la de la carpeta "res".

Los mods se guardan en la carpeta "mods" dentro de la carpeta principal del juego o dentro de la carpeta del usuario. Para activar un mod es necesario incluir una referencia al mismo en el parámetro "mods =" en el fichero SoundRTS.ini. Por ejemplo: mods = soundpack,mimod,my_otro_mod

El fichero rules.txt del mod modificará parte del contenido del fichero por defecto. Por ejemplo, un fichero rules.txt que contenga estas dos líneas:
"def peasant" y
"decay 20"
provocará que todos los peones desaparezcan tras 20 segundos.

clear

Para sustituir por completo los ficheros rules.txt o style.txt en lugar de modificar parte de los mismos, utilice el comando "clear" al principio del fichero. Esto no funciona en ai.txt, aunque tampoco es necesario, porque en AI.tx el comando def reescribe la definición de la AI (inteligencia artificial).

is_a

Mientras que en style.txt "is_a" es una forma de heredar todas las propiedades de otra definición, en rules.txt, "is_a" también se utiliza para asegurarse de que una fortaleza o un castillo permiten hacer lo que se podía hacer con un ayuntamiento.

Nota: Los árboles de herencia de style.txt y de rules.txt no es necesario que sean iguales.

Las reglas

Desde SoundRTS 1.1, las reglas del juego se almacenan en un fichero llamado rules.txt.

Propiedades de las unidades

Nota: una unidad también puede ser un edificio.

storage_bonus

storage_bonus <bonus para el recurso 0> <bonus para el recurso 1> ...

por ejemplo, "storage_bonus 0 1" provocará un bonus de +1 para la madera (el segundo tipo de recurso).

El bonus va a parar al propietario de la unidad. El bonus no se acumula: sólo se aplicará el bonus más alto para cada tipo de recurso.

Propiedades de habilidad

effect

effect <Tipo de efecto> [parámetros]

Valor por defecto: (ninguno)

Un efecto (effect) es una propiedad de una habilidad. Cuando una unidad emplea una de sus habilidades, se desencadena el efecto correspondiente, salvo en el caso de que no se haya especificado ningún efecto para esa habilidad.

Algunas propiedades adicionales pueden modificar un efecto: effect_target y effect_range.

apply_bonus

effect apply_bonus <nombre de la propiedad>

Incrementa la propiedad de las unidades afectadas. El valor a incrementar se especifica en las unidades, en una propiedad con el nombre "<Nombre de propiedad>_bonus". Por ejemplo, "effect apply_bonus damage" buscará una propiedad llamada "damage_bonus" en la definición de cada una de las unidades afectadas. De esta manera, diferentes unidades que se benefician de una misma mejora, pueden tener bonus distintos.

bonus

effect bonus <nombre de propiedad> <valor>

Incrementa en el balor especificado la propiedad de las unidades afectadas.

Al menos las siguientes propiedades deberían funcionar: damage (daño), armor (armadura), range (alcance), heal_level (nivel de curación), speed (velocidad), hp_max (puntos de golpe máximos) (aunque Las unidades antiguas no tendrán sus puntos de golpe HP actualizados a hp_max).
food_cost (coste de las raciones)y food_provided (raciones suministradas) probablemente no funcionan de manera correcta.

conversion

effect conversion (sin parámetros)

Cambia a la unidad objetivo al bando del lanzador de la conversión.

Si el objetivo de la conversión no es un enemigo del lanzador, no ocurre nada.

Valores permitidos para las propiedades relacionadas:

  • effect_target: ask (preguntar)
  • effect_range: square (casilla), nearby(cercanas), anywhere(en cualquier lugar)

Por Hacer: añadir un <límite> de manera que se seleccionen las unidades de la casilla fijada como objetivo (en lugar de tener que fijar como objetivo una unidad)

raise_dead

effect raise_dead <Tiempo de vida(en segundos)> <tipo y número de unidades>

Crea las unidades requeridas en la casilla objetivo a partir de los cadáveres que haya en la misma casilla, en el orden de la lista de unidades. Si no hay suficientes cadáveres,no se crearán las unidades del final de la lista. Las unidades desaparecerán tras <tiempo de vida> segundos, a no ser que <tiempo de vida> se establezca a 0.

Si no hay ningún cadáver en la casilla objetivo, no se ejecutará la orden.

Valores permitidos para las propiedades relacionadas:

  • effect_target: self (la misma), ask (preguntar), random (aleatoria)
  • effect_range: square (casilla), nearby (cercanas), anywhere (cualquier lugar)

recall

effect recall (sin parámetros)

Similar a teletransporte, teletransporta las unidades del jugador desde la casilla fijada como objetivo hasta la casilla del lanzador de la orden. Los edificios no son afectados. Las unidades aliadas tampoco se ven afectadas.

Si no hay unidades en la casilla objetivo, no se ejecutará la orden.

Valores permitidos para las propiedades relacionadas:

  • effect_target: ask (preguntar), random (aleatorio)
  • effect_range: nearby (cercanas), anywhere (en cualquier lugar)

resurrection

effect resurrection <límite>

Resucita los cadáveres del ejército del lanzador de la orden que estén caídos en la casilla fijada como objetivo, hasta un máximo de <límite> unidades resucitadas. Los cadáveres más antiguos se resucitan primero. Los puntos de vida recuperados serán un tercio del máximo.

Si en la casilla objetivo no hay ningún cadáver del ejército del lanzador, no se ejecutará la orden.

Valores permitidos para las propiedades relacionadas:

  • effect_target: self (la misma), ask (preguntar), random (aleatoria)
  • effect_range: square (casilla), nearby (cercanas), anywhere (cualquier lugar)

summon

effect summon <tiempo de vida (en segundos)> <tipo y número de unidades>

Crea las unidades requeridas en la casilla objetivo, y las añade al ejército del lanzador. Las unidades invocadas desaparecerán tras <tiempo de vida> segundos, a no ser que <tiempo de vida> se establezca a 0.

Valores permitidos para las propiedades relacionadas:

  • effect_target: self (la misma), ask (preguntar), random (aleatoria)
  • effect_range: square (casilla), nearby (cercanas), anywhere (en cualquier lugar)

teleportation

effect teleportation (sin parámetros)

Mueve las unidades del jugador que estén en la casilla del lanzador de la orden hasta la casilla fijada como objetivo. Los edificios no son afectados. Las unidades aliadas tampoco se ven afectadas.

Si el destino es el mismo que la casilla donde está el lanzador de la orden, no se hará nada.

Valores permitidos para las propiedades relacionadas:

  • effect_target: ask (preguntar), random (aleatorio)
  • effect_range: nearby (cercanas), anywhere (en cualquier lugar)

effect_target

effect_target <método de selección>

Determina cómo se seleccionará el objetivo del efecto.

Valor por defecto: self (misma)

Valores posibles:

  • self (misma): El objetivo será el lanzador (o la casilla donde está el lanzador si el objetivo debe ser un lugar)
  • ask (preguntar): El interfaz de usuario preguntará por el objetivo.
  • random (aleatorio): El juego elegirá una casilla aleatoria como objetivo

effect_range

effect_range <distancia>

Determina la distancia entre el lanzador y el objetivo.

Valor por defecto: square (casilla)

Valores posibles:

  • square (casilla): deben estar en la misma casilla
  • nearby (cercanas): deben estar en una casilla adyacente o en la misma casilla
  • anywhere (en cualquier lugar): se permite cualquier distancia

Si la distancia actual es mayor de la requerida, el lanzador intentará moverse a un lugar más cercano y usar la habilidad desde ahí.