Histórico de Edições
Please note that revisions older than 15 days are pruned and will no longer show here
Não há histórico de edição para mostrar, ou este comentário foi editado por um moderador.
-
Quem Está Navegando 0 membros estão online
Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
Por Under
Tutorial Completo: Como Adicionar uma Nova Vocação no Canary Server
1. Entendendo a Lógica das Vocações
No servidor Canary, cada vocação representa uma classe de personagem com habilidades, atributos e características específicas. Para que o servidor reconheça uma nova vocação, é necessário:
- Definir um identificador único (ID);
- Registrar o ClientID (usado para exibição no cliente);
- Especificar um BaseID (para herança de características ou evolução);
- Configurar atributos, fórmulas e habilidades no XML.
2. Alterando a Enumeração das Vocações (Código Fonte C++)
Arquivo: `src/creatures/creatures_definitions.hpp`
Adicione os novos IDs no enum `Vocation_t`:
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_WARRIOR = 9, VOCATION_ELITE_WARRIOR = 10, VOCATION_LAST = VOCATION_ELITE_WARRIOR };
3. Atualizando o Script de Vocações (Lua)
Arquivo: `data/libs/vocation.lua`
Adicione os novos valores nas três seções do objeto `VOCATION`:
VOCATION = { ID = { WARRIOR = 9, ELITE_WARRIOR = 10, ... }, CLIENT_ID = { WARRIOR = 0, ELITE_WARRIOR = 0, ... }, BASE_ID = { WARRIOR = 5, ... } }
4. Criando Função de Verificação da Nova Vocação
Arquivo: `data/libs/functions/player.lua`
Adicione a seguinte função no final do arquivo:
function Player.isWarrior(self) return table.contains({VOCATION.ID.WARRIOR, VOCATION.ID.ELITE_WARRIOR}, self:getVocation():getId()) end
5. Configurando as Vocações no XML
Arquivo: `data/XML/vocations.xml`
Adicione o bloco de cada nova vocação com os atributos desejados:
<vocation id="9" clientid="0" baseid="5" name="Warrior" description="a warrior" magicshield="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="4000" gainhpamount="1" gainmanaticks="6000" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" basespeed="110" soulmax="200" gainsoulticks="15000" fromvoc="5"> <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> <vocation id="10" clientid="0" baseid="6" name="Elite Warrior" description="an elite warrior" magicshield="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="4000" gainhpamount="1" gainmanaticks="6000" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" basespeed="110" soulmax="200" gainsoulticks="15000" fromvoc="5"> <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>
6. Compilando o Servidor
Após todas as alterações, é obrigatório recompilar o servidor para que as novas vocações sejam reconhecidas corretamente.
Conclusão:
Ao seguir todos os passos, suas novas vocações estarão totalmente integradas ao servidor. Você poderá usá-las para personagens.
-
Por fezeRa
Estou com um problema chato. Seguinte:
O player pega , compra promotion, dai fica lá "Elder Druid", dai se ele reloga, ele volta pra Druid.
Ou seja não ta salvando a vocation, é algum problema no login.lua que nao salva a vocation atual? Alguem sabe?
-
Por dolver
E ai pessoa do TK, tudo bem com vocês?
Então brothers, eu não faço a mínima ideia de como trocar as spells de uma vocation... Ai você me pergunta, porque trocar as spells de uma voc cara?
Então brother, eu to fazendo um servidor derivado, usando uma base 8.60 e no "vocations.XML" eu não criei novas vocações, eu apenas editei as existentes da forma que eu quis, e é isso que eu pretendo fazer, editar as vocações que já existem para o servidor não ficar lotado de coisa inútil depois de pronto.
Obrigado desde já gurizada, abraço!
-
Por jonei
Olá
Eu adicionei novas vocats no meu ot junto com um npc pra entrega-las aos players vips, PORÉM depois que eles relogam, perdem a promote, e voltam a ser oque eram. alguém pode me ajudar a resolver este problema?... obrigado.
Vocations,xml
-
Por Yago Blind.
Olá galerinha do TibiaKing , estou com um pequeno problema , e ja pesquisei diversas scripts parecidas , diferentes e editei o effect / dano , e o problema fica o mesmo , bom o problema é o seguinte a wand sai com o efeito normal , porem não dá dano nenhum !! Quem puder me ajudar darei REP++
Script da arma:
local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 0) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 0) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POSIONDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 54) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 14) function onGetFormulaValues(cid, level, maglevel) min = -70 max = -150 return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") function onUseWeapon(cid, var) local ret = doCombat(cid, combat, var) if(ret == LUA_ERROR) then return LUA_ERROR end return true end Weapons.xml já tentei de 2 formas, irei postar as 2 formas que tentei e não consegui.
1° Forma:
<!-- Staffs editis --> <wand id="7958" level="80" mana="15" event="script" value="mantusstaff.lua"> <!-- Mantus staff --> <vocation id="2"/> <vocation id="1"/> </wand> 2° Forma:
<!-- Staffs editis --> <wand id="7958" level="80" mana="15" min="100" max="250" type="earth" event="script" value="mantusstaff.lua"> <!-- Mantus staff --> <vocation id="2"/> <vocation id="1"/> </wand>
-
-
Estatísticas dos Fóruns
96851
Tópicos519618
Posts