- Awards
- 38
Hola a todos,
Hoy veremos como agregar una nueva vocation a nuestro servidor, este último necesitara ser compilado para poder funcionar.
Parte Servidor:
En primer lugar, buscaremos el archivo enums.h ( que sera el único archivo source que tocar y podremos compilar ) =
Aquí, encontraremos esta parte, debajo de
Y al ser la última entonces la agregaremos a la VOCATION_LAST.
Quedará de esta forma:
En siguiente nos iremos al archivo data/lib/tables, vocation.lua:
En el cual agregaremos el crusader, por mi parte en ClientID, le puse 0, por el cual mostrara al cliente Tibia Vocation: None ( pero sera bien un crusader ) esto aparecera únicamente al momento de logearse y mostrar los characters, una vez en el juego muestra bien que somos un crusader.
Y finalmente nos iremos al archivo data/lib/core y buscaremos:
Justo debajo agregaremos nuestra vocation nueva:
Nos iremos al archivo data/XML/Vocations, y abriremos el vocations.xml
Vamos a copiar el último apartado que corresponde al Elite Knight, y cambiaremos el
No podréis crear uno nuevo en clientID debido a que el cliente TIBIA no disponemos de sources, por el cual su vocation no existe y si agregan otro número no podrán entrar.
Editaremos a gusto la capacidad, la vida, y los skills.
Para quiénes gusten de agregar items para sus vocations, entonces nos iremos para data/scripts/movements/unscripted_equipements.lua
Y en data/scripts/weapons/unscripted_weapons.lua.
Por el cual bastara agregar la nueva classe "crusader" en el caso del ejemplo para que solo ellos puedan equipar un item.
¿Como es el código para llamar a la vocation nueva Crusader ?
De esa forma:
Podréis basaros en un script como el The Oracle, para crear un script y agregar su nueva vocation por el cual podrán elegir la vocation antes de ir para una Town.
Parte Web Con ZnoteAAC:
Por la parte web, nos iremos en www o htdocs / config.php encontraremos:
Agregaremos al final:
El false, significa que es una vocation de Base, por el cual, si van a crear un "Master_Crusader" entonces el master_crusader tendra "fromVoc => "9" que será la ID del crusader.
Despues justo debajo veremos:
En el cual al final agregaremos:
Capacity, mp y Hp de su gusto.
Si deseamos agregar nuestra nueva vocation en la pagina web, entonces reemplazaremos en la línea 306 del notepad del config.php:
por:
9 = Crusader, pueden agregar más, (1,2,3,4,9), que serian entonces, Sorc, Druid, Pally, Knight y Crusader.
Espero que les sirva, quizás el sistema es el mismo para versiones más avanzadas, pero de momento no estoy dentro los 12.85+.
Pero seguro es bastante similar.
Hoy veremos como agregar una nueva vocation a nuestro servidor, este último necesitara ser compilado para poder funcionar.
Parte Servidor:
En primer lugar, buscaremos el archivo enums.h ( que sera el único archivo source que tocar y podremos compilar ) =
Código:
enum Vocation_t : uint16_t {
VOCATION_NONE = 0,
VOCATION_SORCERER = 1,
VOCATION_DRUID = 2,
VOCATION_PALADIN = 3,
VOCATION_KNIGHT = 4,
VOCATION_MASTER_SORCERER = 5,
VOCATION_ELDER_DRUID = 6,
VOCATION_ROYAL_PALADIN = 7,
VOCATION_ELITE_KNIGHT = 8,
VOCATION_LAST = VOCATION_ELITE_KNIGHT
};
VOCATION_ELITE_KNIGHT
, escribiremos nuestra vocación ejemplo: VOCATION_CRUSADER
Y al ser la última entonces la agregaremos a la VOCATION_LAST.
Quedará de esta forma:
Código:
enum Vocation_t : uint16_t {
VOCATION_NONE = 0,
VOCATION_SORCERER = 1,
VOCATION_DRUID = 2,
VOCATION_PALADIN = 3,
VOCATION_KNIGHT = 4,
VOCATION_MASTER_SORCERER = 5,
VOCATION_ELDER_DRUID = 6,
VOCATION_ROYAL_PALADIN = 7,
VOCATION_ELITE_KNIGHT = 8,
VOCATION_CRUSADER = 9,
VOCATION_LAST = VOCATION_CRUSADER
};
En siguiente nos iremos al archivo data/lib/tables, vocation.lua:
Código:
VOCATION = {
ID = {
NONE = 0,
SORCERER = 1,
DRUID = 2,
PALADIN = 3,
KNIGHT = 4,
MASTER_SORCERER = 5,
ELDER_DRUID = 6,
ROYAL_PALADIN = 7,
ELITE_KNIGHT = 8,
},
CLIENT_ID = {
NONE = 0,
KNIGHT = 1,
PALADIN = 2,
SORCERER = 3,
DRUID = 4,
ELITE_KNIGHT = 11,
ROYAL_PALADIN = 12,
MASTER_SORCERER = 13,
ELDER_DRUID = 14,
},
BASE_ID = {
NONE = 0,
SORCERER = 1,
DRUID = 2,
PALADIN = 3,
KNIGHT = 4,
}
}
En el cual agregaremos el crusader, por mi parte en ClientID, le puse 0, por el cual mostrara al cliente Tibia Vocation: None ( pero sera bien un crusader ) esto aparecera únicamente al momento de logearse y mostrar los characters, una vez en el juego muestra bien que somos un crusader.
Código:
VOCATION = {
ID = {
NONE = 0,
SORCERER = 1,
DRUID = 2,
PALADIN = 3,
KNIGHT = 4,
MASTER_SORCERER = 5,
ELDER_DRUID = 6,
ROYAL_PALADIN = 7,
ELITE_KNIGHT = 8,
CRUSADER = 9
},
CLIENT_ID = {
NONE = 0,
KNIGHT = 1,
PALADIN = 2,
SORCERER = 3,
DRUID = 4,
ELITE_KNIGHT = 11,
ROYAL_PALADIN = 12,
MASTER_SORCERER = 13,
ELDER_DRUID = 14,
CRUSADER = 0
},
BASE_ID = {
NONE = 0,
SORCERER = 1,
DRUID = 2,
PALADIN = 3,
KNIGHT = 4,
CRUSADER = 5
}
}
Y finalmente nos iremos al archivo data/lib/core y buscaremos:
Código:
function Player.isKnight(self)
return table.contains({VOCATION.ID.KNIGHT, VOCATION.ID.ELITE_KNIGHT}, self:getVocation():getId())
end
Justo debajo agregaremos nuestra vocation nueva:
Código:
function Player.isCrusader(self)
return table.contains({VOCATION.ID.CRUSADER, VOCATION.ID.CRUSADER}, self:getVocation():getId())
end
Nos iremos al archivo data/XML/Vocations, y abriremos el vocations.xml
Vamos a copiar el último apartado que corresponde al Elite Knight, y cambiaremos el
vocation id="8"
para 9
, y el clientid="11"
para 0
.No podréis crear uno nuevo en clientID debido a que el cliente TIBIA no disponemos de sources, por el cual su vocation no existe y si agregan otro número no podrán entrar.
Editaremos a gusto la capacidad, la vida, y los skills.
Código:
<vocation id="8" clientid="11" baseid="4" name="Elite Knight" description="an elite knight" magicshield="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="4000" gainhpamount="1" gainmanaticks="6000" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" basespeed="220" soulmax="200" gainsoulticks="15000" fromvoc="4">
<formula meleeDamage="1.0" distDamage="1.0" defense="1.0" armor="1.0" />
<skill id="0" multiplier="1.1" />
<skill id="1" multiplier="1.1" />
<skill id="2" multiplier="1.1" />
<skill id="3" multiplier="1.1" />
<skill id="4" multiplier="1.4" />
<skill id="5" multiplier="1.1" />
<skill id="6" multiplier="1.1" />
</vocation>
Para quiénes gusten de agregar items para sus vocations, entonces nos iremos para data/scripts/movements/unscripted_equipements.lua
Y en data/scripts/weapons/unscripted_weapons.lua.
Por el cual bastara agregar la nueva classe "crusader" en el caso del ejemplo para que solo ellos puedan equipar un item.
¿Como es el código para llamar a la vocation nueva Crusader ?
De esa forma:
VOCATION.ID.CRUSADER
Podréis basaros en un script como el The Oracle, para crear un script y agregar su nueva vocation por el cual podrán elegir la vocation antes de ir para una Town.
Parte Web Con ZnoteAAC:
Por la parte web, nos iremos en www o htdocs / config.php encontraremos:
Código:
// Vocations IDS
$config['vocations'] = array(
0 => array(
'name' => 'No vocation',
'fromVoc' => false
),
1 => array(
'name' => 'Sorcerer',
'fromVoc' => false
),
2 => array(
'name' => 'Druid',
'fromVoc' => false
),
3 => array(
'name' => 'Paladin',
'fromVoc' => false
),
4 => array(
'name' => 'Knight',
'fromVoc' => false
),
5 => array(
'name' => 'Master Sorcerer',
'fromVoc' => 1
),
6 => array(
'name' => 'Elder Druid',
'fromVoc' => 2
),
7 => array(
'name' => 'Royal Paladin',
'fromVoc' => 3
),
8 => array(
'name' => 'Elite Knight',
'fromVoc' => 4
),
Agregaremos al final:
Código:
9 => array(
'name' => 'Crusader',
'fromVoc' => false
),
Despues justo debajo veremos:
Código:
$config['vocations_gain'] = array(
0 => array(
'hp' => 5,
'mp' => 5,
'cap' => 10
),
1 => array(
'hp' => 5,
'mp' => 30,
'cap' => 10
),
2 => array(
'hp' => 5,
'mp' => 30,
'cap' => 10
),
3 => array(
'hp' => 10,
'mp' => 15,
'cap' => 20
),
4 => array(
'hp' => 15,
'mp' => 5,
'cap' => 25
),
5 => array(
'hp' => 5,
'mp' => 30,
'cap' => 10
),
6 => array(
'hp' => 5,
'mp' => 30,
'cap' => 10
),
7 => array(
'hp' => 10,
'mp' => 15,
'cap' => 20
),
8 => array(
'hp' => 15,
'mp' => 5,
'cap' => 25
),
En el cual al final agregaremos:
Capacity, mp y Hp de su gusto.
Código:
9 => array(
'hp' => 15,
'mp' => 5,
'cap' => 25
),
Si deseamos agregar nuestra nueva vocation en la pagina web, entonces reemplazaremos en la línea 306 del notepad del config.php:
Código:
$config['available_vocations'] = array(0);
Código:
$config['available_vocations'] = array(9);
Espero que les sirva, quizás el sistema es el mismo para versiones más avanzadas, pero de momento no estoy dentro los 12.85+.
Pero seguro es bastante similar.