Ir para conteúdo
  • Cadastre-se

Posts Recomendados

No meu servidor existe um sistema de auras por vocações que quando invocado as seguintes palavras mágicas cria a da vocação, bréve explicação:

 

 

Exevo Aura Wand / Sorcerer

Exevo Aura Rod / Druid

Exevo Aura Bow / Paladin

Exevo Aura Axe / Knight

Exevo Aura Sword / Knight

Exevo Aura Club / Knight

 

 

Cada aura tem uma spell, e quando o player tenta criar uma aura e tiver com algo nas mãos o script manda uma mensagem que ele tem que estar com as mãos vazias para receber a aura, mas mesmo depois de estar com as mãos vazias a aura quando criada fica dentro da backpack e isso acontece com todas auras.

 

Como faz pra aura ser criada na mão?

 

Aqui está um script de uma aura (Aura bow):

local config = {
  mana = 200,
  seconds = 60,
  storage = 500,
  semMana = "Você não têm mana suficiente.",
  msg = "Você precisa aguardar %d segundos para usar essa magia novamente.",
}
 
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 30)
 
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 30)
 
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)
 
function onCastSpell(cid, var)
  if getPlayerStorageValue(cid, config.storage) == -1 then
    setPlayerStorageValue(cid, config.storage, os.time()-config.seconds)
  end
  if config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)) > 0 then
    doPlayerSendCancel(cid, string.format(config.msg, config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage))))
    return true
  end
  if getPlayerMana(cid) >= config.mana then
        setPlayerStorageValue(cid, config.storage, os.time())
        if ((getPlayerSlotItem(cid, 5).itemid) <= 0) or ((getPlayerSlotItem(cid, 6).itemid) <= 0) then
        doPlayerAddMana(cid, -config.mana)
        doPlayerAddItem(cid,8858,1)
        addEvent(doCombat, 0, cid, combat1, var)
        addEvent(doCombat, 0, cid, combat2, var)
        else
        doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar com as mãos livres para receber o Aura Bow.")
        doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
        doSendMagicEffect(getThingPos(cid), 2)
        end
  else
doPlayerSendCancel(cid, config.semMana)
  end
  return true
end
Editado por Mythusz (veja o histórico de edições)

#Clique na imagem#

 

iodxo.jpg

Link para o post
Compartilhar em outros sites

Tente:

local config = {
    mana = 200,
    seconds = 60,
    storage = 500,
    semMana = "Você não têm mana suficiente.",
    msg = "Você precisa aguardar %d segundos para usar essa magia novamente."
}

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 30)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 30)

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)

function onCastSpell(cid, var)
    if getPlayerStorageValue(cid, config.storage) == -1 then
        setPlayerStorageValue(cid, config.storage, os.time()-config.seconds)
    end
    
        if config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)) > 0 then
            return doPlayerSendCancel(cid, string.format(config.msg, config.seconds-(os.time()-getPlayerStorageValue(cid, config.storage)))) and true
        end
        
    if getPlayerMana(cid) >= config.mana then
        setPlayerStorageValue(cid, config.storage, os.time())
        if ((getPlayerSlotItem(cid, 5).itemid) <= 0) or ((getPlayerSlotItem(cid, 6).itemid) <= 0) then
            doPlayerAddMana(cid, -config.mana)
            doPlayerAddItem(cid, 8858, 1, true, 1, SLOT_LEFT)
            addEvent(doCombat, 0, cid, combat1, var)
            addEvent(doCombat, 0, cid, combat2, var)
        else
            doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar com as mãos livres para receber o Aura Bow.")
            doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
            doSendMagicEffect(getThingPos(cid), 2)
        end
    else
        doPlayerSendCancel(cid, config.semMana)
    end
    
    return true
end

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Não criou a aura e deu o seguinte erro

 

[11/01/2015 18:06:35] Lua Script Error: [Spell Interface] 
[11/01/2015 18:06:35] data/spells/scripts/support/aurabow.lua:onCastSpell
 
[11/01/2015 18:06:35] luaDoPlayerAddItem(). Player not found
Editado por Mythusz (veja o histórico de edições)

#Clique na imagem#

 

iodxo.jpg

Link para o post
Compartilhar em outros sites

Qual a versão do seu servidor e do distro?
Provavelmente o parâmetro para o slot na função doPlayerAddItem não deve existir na versão que você utiliza.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo