Ir para conteúdo

Featured Replies

Postado

Fala pessoal. Eu peguei um script de magia que cria uma estatua que fica atacando e some depois de um tempo. Ai eu pensei em modificar ela e fazer com que surja um tambor que fica por tempo limitado. E quando se da use nesse tambor ele continua tocando a musica dele, aparece mensagem em cima dele configuravel, e tambem da uma magia de cura em area. Toda vez que toca ele cura em area.

 

Detalhes:

- Tinha que limitar pra nao poder da spam muito rapido na cura.

- O tambor tem que aparecer na frente do personagem

- Lembrando: Efeitos de use no tambor summonado: Sonzinho, Mensagem em laranja, e magia de cura em area.

 

Segue o script base:

 

Você tem o código disponível? Se tiver publique-o aqui: 

local config = {
    statue = 2367,
    range = 5,
    max_dmg = -150,
    min_dmg = -50,
    hit_delay = 1000,
    statue_time = 10*1000,
    cd = 20,
    stg = 5570
}

local max_hits = config.statue_time/config.hit_delay

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
setCombatFormula(combat, COMBAT_FORMULA_DAMAGE, 0, config.min_dmg, 0, config.max_dmg)

local condition = createConditionObject(CONDITION_INFIGHT)
setConditionParam(condition, CONDITION_PARAM_TICKS, 10 * 1000)

function removeItem(pos)
    doRemoveItem(getTileItemById(pos, config.statue).uid)
end

function attackSpecs(cid, pos, var, hits)
n = hits or 0

    if n >= max_hits then return false end

    local spec = getSpectators(pos, config.range, config.range)
    i = spec[math.random(1, #spec)]
    
if #spec <= 1 then return false end
    while(i == cid) do
        i = spec[math.random(1, #spec)] 
    end
        if isCreature(i) then
            var.pos = getCreaturePosition(i)
            doSendDistanceShoot(pos, var.pos, CONST_ANI_SUDDENDEATH)
            doCombat(cid, combat, var)
        end

    addEvent(attackSpecs, config.hit_delay, cid, pos, var, n+1)
end

function itemInteraction(cid, pos, var)
    attackSpecs(cid, pos, var)
    addEvent(removeItem, config.statue_time, pos)
end

function onCastSpell(cid, var)
    if not isPlayer(cid) then return false end

    if getPlayerStorageValue(cid, config.stg) - os.time() <= 0 then
        doAddCondition(cid, condition)
        setPlayerStorageValue(cid, config.stg, os.time() + config.cd)
        local pos = Position(getCreaturePosition(cid).x+1, getCreaturePosition(cid).y, getCreaturePosition(cid).z)
        doCreateItem(config.statue, 1, pos)
        itemInteraction(cid, pos, var)
    else
        doPlayerSendCancel(cid, "You're exhausted.")
    end
    return true
end

 

 

 

Estou quase conseguindo o Script do tambor. Ele só esta curando o proprio player. Como faz para curar em área?

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
local area = {
{0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0}
}
doSendMagicEffect(fromPosition, CONST_ME_SOUND_BLUE)
doAreaCombatHealth(fromPosition, COMBAT_HEALING, getThingPos(cid), area, 5, 20, CONST_ME_MAGIC_BLUE)
doCreatureAddMana(cid, 5)

return TRUE
end

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

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 519.7k

Informação Importante

Confirmação de Termo