Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

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

Postado

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.

Postado
  • Autor

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

Postado

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.

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.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo