Postado Janeiro 11, 2015 10 anos 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 Janeiro 11, 2015 10 anos por Mythusz (veja o histórico de edições) #Clique na imagem#
Postado Janeiro 11, 2015 10 anos 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 Janeiro 11, 2015 10 anos 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 Janeiro 11, 2015 10 anos por Mythusz (veja o histórico de edições) #Clique na imagem#
Postado Janeiro 11, 2015 10 anos 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.