Ir para conteúdo

tbruibia

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    tbruibia deu reputação a Winfernus em Entendendo Scripts,Rune,Spells,Monsters,etc...   
    ANTES DE TUDO ME AJUDE! NÃO SEI SE POSTEI NA ÁREA CERTA! Por Favor Mova!
    Aprenda a fazer seus próprios Monstros, Spells e NPC

    Basicamente scripts sao o conjunto dos códigos que formam os arquivos de players, monster, spells, etc.

    Nesse
    tutorial vou ensinar tudo, pra vc sair daqui fazendo monstros, spells e
    tudo mais. E se no final houver alguma duvida poste aqui que serei
    grato em ajudar. Neste Tutorial existem varios comandos básicos, bons
    para iniciantes, parte por parte é explicada, visando um maior
    entendimento sobre o assunto.
    Vamos lá!

    SPELLS
    Primeiro vamos falar sobre as spells
    Existem
    as spells de instant e as spells de rune, as spells de instant sao
    aquelas em q o monstro usa nele, e as de runa ele vai usar em vc. Entao
    a primeira coisa que precisamos fazer é decidir se vamos fazer uma
    spell de runa ou de instant, vou mostrar aqui apenas um exemplo, se nao
    o topico ficara muito grande. Vamos começar, seguindo um exemplo de uma
    magia minha:
    Primeiro, crie um arquivo chamado crossover.lua, na pasta Data>Spells>Instant

    Começamos o script com isso:

    CODE
    area = {
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    }


    Essa
    é a area em que a magia ira pegar, o numero 0 simboliza os espaços que
    a magia nao pega e os numeros 1, os lugares onde acontecerá a magia, no
    exemplo acima, é uma magia em forma de cruz
    Pulamos entao uma linha e acrescentamos isso:


    CODE
    attackType = ATTACK_PHYSICAL
    needDirection = false
    areaEffect = NM_ME_YELLOW_RINGS
    animationEffect = NM_ANI_NONE

    hitEffect = NM_ME_HIT_AREA
    damageEffect = NM_ME_DRAW_BLOOD
    animationColor = BLACK_WHITE
    offensive = true
    drawblood = true


    Vamos às explicações:
    attackType = o tipo de ataque que será, no exemplo será um ataque fisico, mas tbm poderia ser um ataque de fogo, ou de energy
    needDirection = se o ataque precisa de direção, como as firewaves
    areaEffect = o tipo de animação que saira na area na magia
    animationEffect = a animação de quando o player sofrer dano da magia
    damageEffect = o efeito que saira quando o player receber o dano
    animationColor = a cor da animação da Magia
    offensive = se a magia é de ataque ou nao
    drawblood = se embaixo do player vai sair sangue quando ele receber a magia


    Explicado, pulamos uma linha e adicionamos:

    CODE
    UltimateExplosionObject
    = MagicDamageObject(attackType, animationEffect, hitEffect,
    damageEffect, animationColor, offensive, drawblood, 0, 0)


    Essa é a função que fara com q oq explicamos acima funcione, pulamos outra linha e acrescentamos:


    CODE
    function onCast(cid, creaturePos, level, maglv, var)
    centerpos = {x=creaturePos.x, y=creaturePos.y, z=creaturePos.z}
    n = tonumber(var)
    if n ~= nil then
    -- bugged
    -- ultimateExplosionObject.minDmg = var+0
    -- UltimateExplosionObject.maxDmg = var+0

    UltimateExplosionObject.minDmg = 0
    UltimateExplosionObject.maxDmg = 0
    else
    UltimateExplosionObject.minDmg = (level * 2 + maglv * 3) * 2.6 - 30
    UltimateExplosionObject.maxDmg = (level * 2 + maglv * 3) * 3.0
    end


    Essa é a fórmula do Dano que o player irá tomar ao receber a magia, agora pra finalizar adiconamos:

    CODE
    return doAreaMagic(cid, centerpos, needDirection, areaEffect, area, UltimateExplosionObject:ordered())
    end


    Pronto ja terminamos nossa primeira spell, agora para faze-la funcionar precisamos acrescenta-la aou arquivo spells.xml
    vamos lá, na pasta Data>Spells abra o arquivo spells.xml e na sessao de INSTANT, acrescente esta linha:

    CODE
    spell
    name="CrossOver" words="crossover" maglv="12" mana="160"
    enabled="1">/>


    Explicando:
    spell name = nome da magia (pode ser qualquer um)
    words = as palavras magicas que terao que ser ditas pra magia funcionar (tem q ser igual ao nome do script da magia)
    magvl = maglv necessario para usar essa magia
    mana = mana que será gasta
    enabled = se a magia esta abilitada ou nao
    vocation id = para quais vocações essa magia funcionará, no caso acima ela so funciona pra sorc e druid
    ------------------

    MONSTERS
    Spell criada, vamos passar para o Monstro que usara esta spell
    Crie um arquivo .xml com um nome qualquer na pasta Data>Monsters

    CODE

Informação Importante

Confirmação de Termo