101Level - Foro

[FAQ] Edición del refinamiento de equipo

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Leeg

  • *
  • *
  • 3.322
  • 59
  • Actividad:
    0%
  • Sexo: Masculino
[FAQ] Edición del refinamiento de equipo
« en: 14 de Julio de 2012, 20:03 »
[FAQ] Edición del refinamiento de equipo
Realizada por: Leeg

Descripción: Con esta guía aprenderemos a modificar algunas características básicas del refinamiento vía NPC, como por ejemplo la probabilidad de éxito, o el límite máximo de refinamiento por equipo.


::Herramientas necesarias::


::FAQ::

A.- Estructura y organización

Para realizar las ediciones que a continuación se van a explicar, trabajaremos con los siguientes archivos:

src\map\status.h

'status.h' Contiene, entre otras cosas, el límite máximo de refinamiento posible en nuestro servidor.

Dado que se trata de un archivo perteneciente al código fuente del emulador tendremos que recompilar el emulador al finalizar nuestras ediciones.

Y este otro archivo:

db\pre-re|re\refine_db.txt

Este archivo funciona como base de datos para la información y características que se van a utilizar a la hora de refinar una pieza de equipo. Contiene datos como los bonos que recibe un arma o armadura al ser refinados, o la probabilidad que tienen de romperse.

B.- Editar nivel máximo de refinamiento

Para editar el nivel máximo al que podemos refinar una pieza de equipo debemos abrir el archivo 'status.h' y buscar la siguiente línea:

Código: C
  1. #ifdef RENEWAL
  2. #       define MAX_REFINE 20
  3. #else
  4. #       define MAX_REFINE 10
  5. #endif

Aquí encontraremos dos 'MAX_REFINE'. El primero hace referencia a RENEWAL, si tenemos el servidor configurado en modo RENEWAL debemos editar la cifra que aparece a continuación, en este caso '20'. Por otro lado, si nuestro servidor está configurado en modo PRE-RENEWAL, debemos fijarnos en el segundo 'MAX_REFINE' y modificar su cifra, en el ejemplo es '10'.

Una vez hayamos editado ese primer archivo, nos dirigimos a 'refine_db.txt'.

En este archivo encontraremos lo siguiente en la parte inferior:

Código: C
  1. // Armors
  2. 0,66,0,0,100:0,100:0,100:0,100:0,60:0,40:0,40:0,20:0,20:0,10:0
  3. // Level 1 weapons
  4. 1,200,8,300,100:0,100:0,100:0,100:0,100:0,100:0,100:0,60:0,40:0,20:0
  5. // Level 2 weapons
  6. 2,300,7,500,100:0,100:0,100:0,100:0,100:0,100:0,60:0,40:0,20:0,20:0
  7. // Level 3 weapons
  8. 3,500,6,800,100:0,100:0,100:0,100:0,100:0,60:0,50:0,20:0,20:0,20:0
  9. // Level 4 weapons
  10. 4,700,5,1300,100:0,100:0,100:0,100:0,60:0,40:0,40:0,20:0,20:0,10:0

Estos números se interpretan de la siguiente manera:
· La 1ª cifra es el tipo de equipo. Lo podemos comprobar y editar en 'status.h'.
· La 2ª cifra son los atributos que aumentará el arma por cada nivel de refinamiento. Para las Armaduras 100 = 1 DEF, para las Armas 100 = 1 ATK.
· La 3ª cifra es el comienzo del bono aleatorio, es el nivel tras el cual el equipo empieza a dar un bono aleatorio que no se muestra al jugador a través del cliente. Este bono se define en la siguiente cifra.
· La 4ª cifra es el valor del bono aleatorio. Debe ser una cifra entre 0 y (Comienzo del bono aleatorio - Nivel de Refinamiento + 1). Sólo se aplica a armas, no armaduras, y suele coincidir con el primer nivel en el que el arma puede romperse al refinarse.
· A partir de la 5ª cifra en adelante se indica el porcentaje de éxito de cada nivel de refinamiento, y también el bono que otorga, con este formato: 'Porcentaje de Éxito:Bono'.


Por tanto, si en 'status.h' hemos aumentado el número de refinamientos máximos de 10 a 12, debemos añadir en 'refine_db.txt' dos 'Porcentaje de Éxito:Bono' al final de cada uno de los cinco tipos de equipamiento.


C.- Crear una nueva clase de Arma

En Ragnarök Online existen 5 tipos de equipo por niveles:

- Armaduras
- Armas de Nivel 1
- Armas de Nivel 2
- Armas de Nivel 3
- Armas de Nivel 4

Como ya hemos visto antes, esta clasificación influye a la hora de refinar, puesto que a cada grupo se le asignan unos atributos diferentes en 'refine_db.txt'.

Con el fin de personalizar nuestro servidor podemos añadir una o varias nuevas clases de Arma, para poder darle unos atributos distintos a los que tienen los otros tipos de equipo sin tener que modificarlos. Para ello primero tenemos que dirigirnos a 'status.h' y buscar esto:

Código: C
  1. enum refine_type {
  2.         REFINE_TYPE_ARMOR   = 0,
  3.         REFINE_TYPE_WEAPON1 = 1,
  4.         REFINE_TYPE_WEAPON2 = 2,
  5.         REFINE_TYPE_WEAPON3 = 3,
  6.         REFINE_TYPE_WEAPON4 = 4,
  7.  
  8.         REFINE_TYPE_MAX     = 5
  9. };
  10.  

Si quieremos añadir una clase debemos hacerlo de la siguiente manera, primero añadiremos un nombre a la nueva clase de equipo que vamos a crear, por ejemplo: 'REFINE_TYPE_WEAPON5 = 5', lo haremos justo debajo de 'REFINE_TYPE_WEAPON4 = 4'. Después modificamos 'REFINE_TYPE_MAX = 5' y añadimos +1 a la última cifra: 'REFINE_TYPE_MAX = 6', puesto que hemos añadido 1 clase nueva.

Ahora nos dirigimos a 'refine_db.txt'. Al final del todo añadiremos una línea nueva en la cual pondremos los atributos de refinamiento de nuestra nueva clase según lo explicado en el punto B de esta FAQ.

Por último, cuando queramos que un arma pertenezca a esta nueva clase, debemos cambiar el campo que hace referencia al nivel del arma (wLV) en el archivo 'item_db.txt', reemplazando el número que ya haya por el de la clase que hemos creado, en este caso '5'.


::: [Mini FAQ] :::

¿Puedo añadir una nueva clase de Armaduras?
Por ahora es imposible, ya que todas las piezas de armadura están en la misma categoría, y esta es indivisible.
« última modificación: 23 de Noviembre de 2012, 14:43 por Leeg »
~Persona3~


 

[FAQ] Edición de estados alterados

Iniciado por Leeg

Respuestas: 0
Vistas: 1840
Último mensaje 10 de Julio de 2012, 22:18
por Leeg
[Guía] Funciones de extración de información (Parte 4 - Refinamiento y armas)

Iniciado por Miles

Respuestas: 0
Vistas: 1606
Último mensaje 29 de Julio de 2012, 15:44
por Miles