BestGames

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

SEMPRE À ATIVA!


    [Tutorial] Criando Magias

    Administrador
    Administrador
    Admin
    Admin


    Mensagens : 381
    ZXG Coins : 4886
    Data de inscrição : 11/02/2012
    Idade : 24
    Localização : Bom Jesus do Itabapoana

    [Tutorial] Criando Magias Empty [Tutorial] Criando Magias

    Mensagem por Administrador Qua Fev 22, 2012 3:30 am

    Introdução

    Ao Motivo de fechar a minha "fabrica de spells" resolvi criar esse tutorial. Para os iniciantes aprederem sozinhos. Organizei em Spoiler os Tipos de Magia.

    Spell De Attack:

    Spoiler
    #O Corpo da Spell:

    #Simples: 1 Efeito
    Spoiler
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA)
    setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.6, -600)

    arr = {
    {0, 1, 0},
    {1, 3, 1},
    {0, 1, 0}
    }
    local area = createCombatArea(arr)
    setCombatArea(combat, area)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end

    #Simples: 2 Efeitos
    Spoiler
    local combat1 = createCombatObject()
    setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
    setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21)
    setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250)

    local combat2 = createCombatObject()
    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
    setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20)
    setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

    arr1 = {
    {0, 1, 0},
    {1, 3, 1},
    {0, 1, 0}
    }




    arr2 = {
    {1, 0, 1},
    {0, 3, 0},
    {1, 0, 1}
    }



    local area1 = createCombatArea(arr1)
    local area2 = createCombatArea(arr2)
    setCombatArea(combat1, area1)
    setCombatArea(combat2, area2)

    local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
    end

    local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat2, parameters.var)
    end

    function onCastSpell(cid, var)
    local parameters = { cid = cid, var = var}
    addEvent(onCastSpell1, 100, parameters)
    addEvent(onCastSpell2, 100, parameters)

    return TRUE
    end

    #Contruindo a Spell

    #Fazendo Sua Magia: Simples 1 Efeito
    Spoiler
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA)
    setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.6, -600)

    setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT_PHYSICALDAMAGE) -> Tipo De Dano
    setCombatParam(combat, COMBAT_PARAM_EFFECT,CONST_ME_HITAREA) -> Efeito da magia
    setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, 1.0, -600) -> Formula do HIT da Spell

    arr = {
    {0, 1, 0},
    {1, 2, 1},
    {0, 1, 0}
    }

    Local em que a Spell vai sair ou seja, aonde esta o 2 sera o player.
    Obs: Botando 2 o efeito da magia nao sai no player, botando 3 o efeito sai encima do player tb

    local area = createCombatArea(arr)
    setCombatArea(combat, area)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end
    Nao mecheremos aqui, pois é uma spell simples.


    #Fazendo Sua Magia: 2 Efeitos
    Spoiler
    local combat1 = createCombatObject()
    setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
    setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21)
    setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250)

    local combat2 = createCombatObject()
    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
    setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20)
    setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680)

    setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) -> Tipo de Dano do primeiro efeito
    setCombatParam(combat1, COMBAT_PARAM_EFFECT, 21) -> Primeiro Efeito
    setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -6.0, -100, -3.0, -250) -> Formula do HIT do primeiro efeito

    setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) -> Tipo de dano do segundo efeito
    setCombatParam(combat2, COMBAT_PARAM_EFFECT, 20) -> Segundo Efeito
    setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1.0, -500, -1.3, -680) -> Formula do Hit do segundo efeito

    arr1 = {
    {0, 1, 0},
    {1, 3, 1},
    {0, 1, 0}
    }

    arr2 = {
    {1, 0, 1},
    {0, 3, 0},
    {1, 0, 1}
    }
    arr1 = Onde a spell vai se 'criar' o primeiro efeito
    arr2 = onde a spell vai se 'criar' o segundo efeito

    addEvent(onCastSpell1, 100, parameters)
    addEvent(onCastSpell2, 100, parameters)
    addEvent(onCastSpell1, 100, parameters) -> Quantos segundos apos a fala da magia ira criar o primeiro efeito
    addEvent(onCastSpell2, 100, parameters) -> Quantos segundos apos a fala da magia ira criar o segundo efeito
    Obs: 100= 1 segundo, 300= 3 segundos, 1000= 10 segundos


    Spell De Cura:
    Spoiler
    #Corpo da Spell:
    Spoiler
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
    setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)
    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
    setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
    setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 11, 15)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end

    #Criando Sua Spell:

    #Fazendo Sua Magia:
    Spoiler

    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
    Esse Sera o a spell ira fazer

    setCombatParam(combat, COMBAT_PARAM_EFFECT, 36)
    Esse sera o efeito dela

    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
    Aqui e que essa spell nao é agressiva, entao pode ser usada em protect zone

    setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
    Essa magia vai curar paralyze

    setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 11, 15)
    Formula da magia, o quanto ela vai healar.

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end
    Nao precisamos mecher.


    Spell de Suport:
    Spoiler
    #Corpo da Spell:
    #Correr:
    Spoiler
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

    local condition = createConditionObject(CONDITION_HASTE)
    setConditionParam(condition, CONDITION_PARAM_TICKS, 33000)
    setConditionFormula(condition, 0.3, -24, 0.3, -24)
    setCombatCondition(combat, condition)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end
    #Luz
    Spoiler
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)

    local condition = createConditionObject(CONDITION_LIGHT)
    setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6)
    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)
    setConditionParam(condition, CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000)
    setCombatCondition(combat, condition)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end

    #Uma magia qualquer de trap
    Spoiler
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
    setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497)

    local arr = {
    {0, 0, 0, 1, 0, 0 ,0},
    {0, 0, 1, 1, 1, 0 ,0},
    {0, 1, 0, 0, 0, 1 ,0},
    {1, 0, 0, 2, 0, 0 ,1},
    {0, 1, 0, 0, 0, 1 ,0},
    {0, 0, 1, 1, 1, 0 ,0},
    {0, 0, 0, 1, 0, 0 ,0}
    }


    local area = createCombatArea(arr)
    setCombatArea(combat, area)


    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end

    #Contruindo a Spell

    #Correr
    Spoiler
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
    Efeito da Magia

    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
    Magia nao Agressiva, pode ser usada em Portect Zone

    local condition = createConditionObject(CONDITION_HASTE)
    Condição de Correr

    setConditionParam(condition, CONDITION_PARAM_TICKS, 33000)
    Tempo que vai durar, nesse caso 33 segundos

    setConditionFormula(condition, 0.3, -24, 0.3, -24)
    Formula da velocidade

    setCombatCondition(combat, condition)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end
    Nao Mechemos aqui

    #Luz:
    Spoiler
    setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
    Efeito da Magia

    setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
    Magia nao agressiva, para ser usada em protect zone

    local condition = createConditionObject(CONDITION_LIGHT)
    Condição de criar Luz

    setConditionParam(condition, CONDITION_PARAM_LIGHT_LEVEL, 6)
    Tamanho da Luz

    setConditionParam(condition, CONDITION_PARAM_LIGHT_COLOR, 215)
    Cor da Luz

    setConditionParam(condition, CONDITION_PARAM_TICKS, (6 * 60 + 10) * 1000)
    Tempo que vai durar

    setCombatCondition(combat, condition)

    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end
    Nao Mechemos aqui

    #Uma Magia qualquer de Trap:

    Spoiler
    setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
    Efeito que soltara, nesse caso "poff"

    local arr = {
    {0, 0, 0, 1, 0, 0 ,0},
    {0, 0, 1, 1, 1, 0 ,0},
    {0, 1, 0, 0, 0, 1 ,0},
    {1, 0, 0, 2, 0, 0 ,1},
    {0, 1, 0, 0, 0, 1 ,0},
    {0, 0, 1, 1, 1, 0 ,0},
    {0, 0, 0, 1, 0, 0 ,0}
    }
    Local em que as magic wall serao criadas

    local area = createCombatArea(arr)
    setCombatArea(combat, area)


    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end
    Aqui nao mecheremos.

    Bom é isso Pessoal.
    Espero que tenham Gostado!
    Obs: Quando eu tiver tempo, mostrarei todos os effects

      Data/hora atual: Ter maio 07, 2024 8:28 pm