Ir para conteúdo

Featured Replies

Postado
local water = {490, 491, 492, 493, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625}

local combat = createCombatObject()

local meteor = createCombatObject()

setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)

setCombatParam(meteor, COMBAT_PARAM_USECHARGES, TRUE)

setCombatParam(meteor, COMBAT_PARAM_EFFECT, CONST_ME_BIGPLANTS)

setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -99.5, -99975, -99.5, -99975)

local stun = createConditionObject(CONDITION_POISON)

setConditionParam(stun, CONDITION_PARAM_DELAYED, 1)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

addDamageCondition(stun, 1, 3000, -700)

setCombatCondition(meteor, stun)

 

local meteor_water = createCombatObject()

setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)

setCombatParam(meteor_water, COMBAT_PARAM_USECHARGES, TRUE)

setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, CONST_ME_BIGPLANTS)

setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -99.5, -99975, -99.5, -99975)

combat_arr = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

}

local combat_area = createCombatArea(combat_arr)

setCombatArea(combat, combat_area)

local function meteorCast(p)

doCombat(p.cid, p.combat, positionToVariant(p.pos))

end

local function stunEffect(cid)

doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)

end

function onTargetTile(cid, pos)

if (math.random(0, 1) == 1) then

local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})

if (isInArray(water, ground.itemid) == TRUE) then

local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}

doSendDistanceShoot(newpos, pos, CONST_ANI_EARTH)

addEvent(meteorCast, 200, {cid = cid, pos = pos, combat = meteor_water})

else

local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}

doSendDistanceShoot(newpos, pos,CONST_ANI_EARTH)

addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})

end

end

end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)

local mana = 2400

local cmana = getCreatureMana(cid)

if cmana >= mana then

if isGemActivated(cid) == TRUE then

doCreatureAddMana(cid, mana * -1)

doPlayerAddSpentMana(cid, mana)

doPlayerSendCancel(cid, doRemoveGemEffect(cid))

return doCombat(cid, combat, var)

else

doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)

doPlayerSendCancel(cid, "Voce nao usou o Crystal de sua vocacao ainda!")

return FALSE

end

else

doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)

doPlayerSendCancel(cid, "Você não possui mana suficiente.")

return FALSE

end

end

 

Alguem pode me ajudar

91-thais.png

Postado

Agora entendi o que você quer.

Serão 2 scripts:

Uma action para a gema;

E, uma spell para a magia;

 

Primeiramente vou te passar o script de action para a gema:

local config = {
    itemId = 2154,
    vocationId = 2,
    vocationName = "clerigo",
    minLevel = 500,
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local itemId, amount = config.itemId, 1
    local storage, getItemName = 6318964231, getItemNameById(itemId)
    if getPlayerVocation(cid) == config.vocationId then
        if getPlayerLevel(cid) >= config.minLevel then
            if getPlayerItemCount(cid, itemId) >= amount then
                if getPlayerStorageValue(cid, storage) < 1 then
                    doPlayerRemoveItem(cid, itemId, amount)
                    setPlayerStorageValue(cid, storage, 1)
                else
                    doPlayerSendCancel(cid, "Voce ja usou uma " .. getItemName)
                end
            else
                doPlayerSendCancel(cid, getItemName .. " precisa estar com voce.")
            end
        else
            doPlayerSendCancel(cid, "Para usar a gema voce precisa ter pelo menos nivel " .. config.minLevel)
        end
    else
        doPlayerSendCancel(cid, "Para usar a gema voce precisa ser um " .. config.vocationId)
    end
    return true
end

 

Postado
  • Autor

@Anderson Sacani Passa  as duas com tutorial de como instala a vocação 2 é 'Mage' e a promotion é [VIP] Mage não tem sorcerer só tem 3 vocation Knight/Paladin [VIP] Knight/[VIP]Paladin esse nome e a magia é 'Karamatsu' passa action/spells me ensina por favor.

Editado por Muvuka (veja o histórico de edições)

91-thais.png

Postado

E aqui o script da magia:

local config = {
    spellMana = 2400,
}

-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 0ms
local combat0_water = createCombatObject()
setCombatParam(combat0_water, COMBAT_PARAM_EFFECT, CONST_ME_WATERSPLASH)
setCombatParam(combat0_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_water, createCombatArea({
    { 1, 1, 1 },
    { 1, 2, 1 },
    { 1, 1, 1 }
}))


-- Areas/Combat for 300ms
local combat3_water = createCombatObject()
setCombatParam(combat3_water, COMBAT_PARAM_EFFECT, CONST_ME_WATERSPLASH)
setCombatParam(combat3_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat3_water, createCombatArea({
    { 1, 1, 1, 1, 1 },
    { 1, 0, 0, 0, 1 },
    { 1, 0, 2, 0, 1 },
    { 1, 0, 0, 0, 1 },
    { 1, 1, 1, 1, 1 }
}))


-- Areas/Combat for 600ms
local combat6_water = createCombatObject()
setCombatParam(combat6_water, COMBAT_PARAM_EFFECT, CONST_ME_WATERSPLASH)
setCombatParam(combat6_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat6_water, createCombatArea({
    { 1, 1, 1, 1, 1, 1, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 2, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 1, 1, 1, 1, 1, 1 }
}))


-- Areas/Combat for 900ms
local combat9_water = createCombatObject()
setCombatParam(combat9_water, COMBAT_PARAM_EFFECT, CONST_ME_WATERSPLASH)
setCombatParam(combat9_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat9_water, createCombatArea({
    { 0, 0, 1, 1, 1, 1, 1, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 1, 0, 0, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 2, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 0, 0, 1 },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 1, 1, 1, 1, 0, 0 }
}))


-- Areas/Combat for 1200ms
local combat12_plant = createCombatObject()
setCombatParam(combat12_plant, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat12_plant, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat12_plant, createCombatArea({
    { 1, 1, 1 },
    { 1, 2, 1 },
    { 1, 1, 1 }
}))
function getDmg_plant(cid, level, maglevel)
    return (0) * -1, (2000) * -1
end

setCombatCallback(combat12_plant, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_plant")

local con_poisoning__combat12_plant = createConditionObject(0)
addDamageCondition(con_poisoning__combat12_plant, 10, 500, -200)
setCombatCondition(combat12_plant, con_poisoning__combat12_plant)

-- Areas/Combat for 1500ms
local combat15_plant = createCombatObject()
setCombatParam(combat15_plant, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat15_plant, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat15_plant, createCombatArea({
    { 1, 1, 1, 1, 1 },
    { 1, 0, 0, 0, 1 },
    { 1, 0, 2, 0, 1 },
    { 1, 0, 0, 0, 1 },
    { 1, 1, 1, 1, 1 }
}))
function getDmg_plant(cid, level, maglevel)
    return (0) * -1, (2000) * -1
end

setCombatCallback(combat15_plant, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_plant")

local con_poisoning__combat15_plant = createConditionObject(0)
addDamageCondition(con_poisoning__combat15_plant, 10, 500, -200)
setCombatCondition(combat15_plant, con_poisoning__combat15_plant)

-- Areas/Combat for 1800ms
local combat18_plant = createCombatObject()
setCombatParam(combat18_plant, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat18_plant, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat18_plant, createCombatArea({
    { 1, 1, 1, 1, 1, 1, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 2, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 0, 0, 0, 0, 0, 1 },
    { 1, 1, 1, 1, 1, 1, 1 }
}))
function getDmg_plant(cid, level, maglevel)
    return (0) * -1, (2000) * -1
end

setCombatCallback(combat18_plant, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_plant")

local con_poisoning__combat18_plant = createConditionObject(0)
addDamageCondition(con_poisoning__combat18_plant, 10, 500, -200)
setCombatCondition(combat18_plant, con_poisoning__combat18_plant)

-- =============== CORE FUNCTIONS ===============
local function RunPart(c, cid, var, dirList, dirEmitPos) -- Part
    if (isCreature(cid)) then
        doCombat(cid, c, var)
        if (dirList ~= nil) then -- Emit distance effects
            local i = 2;
            while (i < #dirList) do
                doSendDistanceShoot(dirEmitPos, {
                    x = dirEmitPos.x - dirList[i],
                    y = dirEmitPos.y - dirList[i + 1],
                    z = dirEmitPos.z
                }, dirList[1])
                i = i + 2
            end
        end
    end
end

function onCastSpell(cid, var)
    local spellMana = config.spellMana
    local storage, creatureMana = 6318964231, getCreatureMana(cid)
    if getPlayerStorageValue(cid, storage) > 0 then
        if creatureMana >= spellMana then
            doCreatureAddMana(cid, -spellMana)
            doPlayerAddSpentMana(cid, spellMana)
            setPlayerStorageValue(cid, storage, 0)
            RunPart(combat0_water, cid, var)
            addEvent(RunPart, 300, combat3_water, cid, var)
            addEvent(RunPart, 600, combat6_water, cid, var)
            addEvent(RunPart, 900, combat9_water, cid, var)
            addEvent(RunPart, 1200, combat12_plant, cid, var)
            addEvent(RunPart, 1500, combat15_plant, cid, var)
            addEvent(RunPart, 1800, combat18_plant, cid, var)
        else
            doPlayerSendCancel(cid, "Voce precisa de pelo menos " .. spellMana .. " pontos de mana.")
            return false
        end
    else
        doPlayerSendCancel(cid, "Primeiramente voce precisa usar a gema de sua classe.")
        return false
    end
    return true
end

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.3k

Informação Importante

Confirmação de Termo