Ir para conteúdo

.brunofiorillo

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Antes de mais nada, você precisa saber que o revscriptsys é compatível apenas com:
    TFS 1.3+. Canary. OTX 5, que foi criado usando como base o TFS 1.3 e OTG-Global.
    O revscriptsys é uma nova forma de registrar scripts para que você não precise fazer isso via XML (apenas em Lua). Você só precisa colocar seus scripts Lua dentro de "data/scripts/" ou em qualquer subpasta dele, se desejar. Os scripts de monstro são colocados em um caminho diferente: data/monster também sendo possível colocar em qualquer subpasta e organizar como você bem entender.
    Este sistema suporta o uso de diferentes metatables no mesmo script (Actions, MoveEvents, GlobalEvents... Etc). Isso é muito útil se você fizer missões prolongadas (por exemplo), não necessitando criar arquivos separados para cada metatable. O script deve conter um cabeçalho e rodapé, confirme mostrado no exemplo a seguir.
     
    -- Este é o nosso cabeçalho, é a primeira coisa que deve ser colocada, com exceção das variáveis de configuração local testAction = Action() -- Aqui, nós registramos a action na função onUse, se você esquecer de declarar a variável testAction aqui, o script não funcionará function testAction.onUse(player, item, fromPosition, target, toPosition, isHotkey) return print("We used this item: " .. item.itemid ..".) end -- Aqui você registra o id do item testAction:id(2550) -- Este é o rodapé, deve sempre ser a última função registrada testAction:register() -- Movement local testMovement = MoveEvent() function testMovement.onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if not player then return true end print(player:getName(), item:getId(), item:getName()) return true end testMovement:id(426) testMovement:register()  
    No exemplo acima, temos uma Action e um MoveEvent dentro do mesmo script, lembra da introdução?
    O revscriptsys suporta o uso de diferentes metatables no mesmo script.

    O "testAction" é uma variável (local), o que significa que você pode mudar ele para qualquer outro nome do seu gosto, por exemplo:
    local scythe = Action() Fazendo isso, você também precisa modificar a variável que fica na linha do function, ficando assim:
    function scythe.onUse(player, item, fromPosition, target, toPosition, isHotkey) Também precisa modificar a variável do "id", ficando assim:
    scythe:id(2550) E a do register, ficando assim:
    scythe:register() Conclusão agora não é necessário mais registrar via xml você tem as tags de registro com base no nome da função no próprio script lua
    ilocal scythe = Action() NOME DA FUNÇÂO + Modulo action nesse caso.
    function scythe.onUse(player, item, fromPosition, target, toPosition, isHotkey)  Função scythe declarada com modulo Action sendo usado na função onUse. 
    scythe:id(2550) Registro do ITEMID
    scythe:register() Registro Do EVENTO

    Então repare que agora nos scripts sempre no inicio você vai ter o nome da função que esta sendo declarada junto do modulo e no final os tipos de registros atrelado a função.
  2. Gostei
    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.
     
     
  3. Gostei
    .brunofiorillo recebeu reputação de Under em Como Adicionar uma Nova Vocação no Canary Server   
    Fiz exatamente o que você me dissse e deu super certo!
     
    Obrigado!

Informação Importante

Confirmação de Termo