lunes, 23 de agosto de 2010

Customizando algunas skills de Ninja (eAthena)

Esta vez, liberare algunas skills que edite para el servidor Stille-RO, el cual es un servidor elemental de Rates /30/30/ en desarrollo con las terceras class.

Las skills que se editaron fueron las siguientes:

Skill: Throw Shuriken
Formula: Skill * 4
Formula Stille: Skill * 200
Incrementa el daño de un shuriken (Ítem no arma 13250) acorde al nivel de la skill por 200.

El código fuente de esta skill queda de la siguiente manera:

En el archivo battle.c del emulador buscaremos la siguiente línea:

                    case NJ_SYURIKEN:
                         ATK_ADD(4*skill_lv);
                    break;

El ATK_ADD  se edita por el valor que queramos que el ninja pegue con está skill, si nuestro servidor es custom, en el caso de Stille-RO se estableció en valor 100*skill_lv que es un valor justo para el player en un pvp.


Skill: Thow Kunai
Formula: Agrega un 60% de Atk por skill Level.
Formula Stille: Agrega 100% de Atk Por Skill Level.

En el archivo battle.c del emulador buscaremos la siguiente línea:

if (skill_num == NJ_KUNAI)
                ATK_ADD(60);

El ATK_ADD se editar por el valor que queremos que el ninja pegue con está skill, si nuestro servidor es custom, en el caso de Stille-RO se estableció en valor 100, que es un valor justo para el player en un pvp/woe de manera que el ATK_ADD queda ATK_ADD(100);
               


Skill: Soul.
Formula: Skill Level * 1
Formula Stille: Skill Level * 2
Descripción: Incrementa Status Str/Int en 2*Skill Level

Está skill incrementa los valores de Str e Int en 1 * Skill Level, o sea que en nivel 5 de esta skill nosotros obtenemos str +5 e int +5, pero si queremos modificar este valor, editaremos la siguiente línea en el archivo status.c

if(sc->data[SC_NEN]) //Esto es para editar el valor de STR.
        str += sc->data[SC_NEN]->val1;

cambiamos str+=sc->data[SC_NEN->val1*2; // El 2 indica el multiplicador para los nuevos status, es decir que ese 2 se ira multiplicando por el nivel de la skill para obtener el nuevo valor de Str que en 5 sería STR + 10 y no 5 como anteriormente estaba configurado, el 2 puede ser cambiado por cualquier otro multiplicador que se adecue a nuestro servidor.

Para cambiar el valor de INT buscamos la siguiente línea de código que también esta en status.c

if(sc->data[SC_NEN])
        int_ += sc->data[SC_NEN]->val1

De igual forma agregamos un *2 en el val1 de manera que quedará int_ += sc->data[SC_NEN]->val1*2


Skill: Final Strike:
Descripción: Consume todo el hp del usuario en un solo ataque.
Descripción 2 Stille: Consume todo el SP del usuario en un solo ataque.

Está skill es muy conocida porque sacrifica todo el HP del ninja, nosotros en el servidor decidimos hacer un cambio sacrificando el SP del Ninja, para ello solamente editamos la siguiente línea de código que se localiza en el archivo battle.c

             case NJ_ISSEN:
                wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35);
                wd.damage2 = 0;
                status_set_hp(src, 1, 0);
                break;

Y la dejamos de la siguiente manera:

              case NJ_ISSEN:
                wd.damage = 40*sstatus->str +skill_lv*(sstatus->hp/10 + 35);
                wd.damage2 = 0;
               //Está modificación fué realizada por remmi para Stille-RO
                status_set_sp(src, 1,0); //Convertir el SP a 0
                break;

De forma q’ ahora se consume todo el SP del jugador en lugar de su HP.

Es importante recalcar que estas customizaciones son en base a nuestro servidor :) pero igual pueden servir para otros.

Saludos