Ir para conteúdo

Winfernus

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Winfernus recebeu reputação de tbruibia 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
  2. Gostei
    Winfernus recebeu reputação de Vinicius Sousa 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
  3. Gostei
    Winfernus recebeu reputação de Tainan Manzoni 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
  4. Gostei
    Winfernus recebeu reputação de Bissonho 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
  5. Gostei
    Winfernus deu reputação a BiieLziNHoO em Ajuda meu site está sendo dirigido a outro!   
    Opa, pegou né rsrs !  
     
    Te ajudei ? +REP
     
    E nem vai pra nenhuma pagina de empresa, isso era o xampp, o 1.7.3 é excelente !
  6. Gostei
    Winfernus recebeu reputação de Pakira 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
  7. Gostei
    Winfernus deu reputação a Markin em Tutorial Básico Creaturescripts   
    Vim trazer hoje um tutorial bem útil para quem esta aprendendo a linguagem lua.



    Com a autorização do grande Jhon vou postar aqui um tópico desenvolvido por ele.





    Tutorial Básico sobre CreatureScripts

    CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são:


    onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- semelhante ao onAttack. onLogin(cid) -- executa ao logar. onLook(cid, thing, position, lookDistance) -- executa ao dar look. onAdvance(cid, skill, oldLevel, newLevel) -- executa ao upar skills/levels. onStatsChange(cid, attacker, type, combat, value) -- executa ao perder ou ganhar life/mana/condições. onLogout(cid) -- executa ao deslogar. onKill(cid, target, lastHit) -- executa ao matar. onThink(cid, interval) -- executa em determinado tempo. onJoinChannel(cid, channelId, users) -- executa ao entrar em um chat. onReceiveMail(cid, sender, item, openBox) -- executa ao receber um parcel/carta. onReportBug(cid, comment) -- executa ao reportar bug. Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Agora você vai determinar que função você vai precisar para criação do seu script. Para exemplo vou usar a função "onAdvance"(ao upar). Neste exemplo, quando o player upar level 100 ele irá ganhar 1kk: 1 function onAdvance(cid, skill, oldLevel, newLevel) 2 if (getPlayerLevel(cid) == 100) then 3 doPlayerAddItem(cid, 2160, 100) 4 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você ganhou 1kk por atingir level 100!") 5 doSendMagicEffect(getCreaturePosition(cid), 30) 6 end 7 return true 8 end Numerei as linhas para melhor entendimento, nos seus scripts vocês não devem numerar. linha 1 = Inicio da função onAdvance, essa linha recebe algumas informações do player que upou, como seu cid, seus skills o velho level e o novo level. Obs: cid = creature id, numero de identificação do player/monstro. linha 2 = Inicia-se um if onde verifica se o level do player é igual a 100. Se for verdadeiro, o script executa as linhas 3,4 e 5, senão pula direto a linha 6. linha 3 = Adiciona 100 itens com o id 2160 ao player. linha 4 = Manda uma mensagem parabenizando o player. linha 5 = Solta o efeito de numero 30, na posição em que o player esta. linha 6 = Finaliza a verificação do if. linha 7 = Retorna verdadeiro. Obs: sempre é necessario ela linha no final de seu código. linha 8 = Finaliza a função onAdvance. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Por fim para funcionamento do seu script é necessario adicionar 2 tags: 1º- No "data/creaturescripts/creaturescripts.xml" 2º- No arquivo "data/creaturescripts/scripts/login.lua", Obs: se o script que você for fazer for de função onLogin, não precisa adicionar a segunda tag. 1º Tag: Vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="advance" name="QualquerNome" event="script" value="nomedesejado.lua"/> O type="" , será o nome da função de seu script após a palavra "on" e sempre tudo em minusculo. O name="", use qualquer nome porem esse nome vai ser usado para registrar no script onLogin na tag2. O value="", é o nome com qual você salvou seu script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true: registerCreatureEvent(cid, "QualquerNome")
    QualquerNome é o name que você adicionou na tag1 do creaturescripts.xml.

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    Acho que é isso aew, espero ter ajudado a galera que esta iniciando.

    Dica para criação de scripts:
    Para melhor edição e organização use Notepad++: http://www.baixaki.c...ad/notepad-.htm
    Sempre usar uma lista de funções como apoio: http://tibiaking.com...funcoes-em-lua/
    E sempre pesquise por scripts prontos e tutoriais para ter uma base.





    CREDITOS:




    JHON pelo tutorial completo!



    Anne por trazer ao TK.

  8. Gostei
    Winfernus recebeu reputação de Willyan Miake 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
  9. Gostei
    Winfernus recebeu reputação de 1215171 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
  10. Gostei
    Winfernus recebeu reputação de MatheusVidaLoka 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
  11. Gostei
    Winfernus recebeu reputação de Sociopata 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