teteusinhu 1 Postado Janeiro 20, 2011 Share Postado Janeiro 20, 2011 (editado) Tipo do script: Acho que Spells ou Items. Protocolo (versão do Tibia): 8.6 Servidor utilizado: Styller Yurotz Nível de experiência: Intermediário Adicionais/Informações: Antes de mais nada boa tarde a todos, bom gostaria de uma ajuda de vocês: Bom gostaria que minha runa só pudesse ser usada por players com mais de 2 resets, como exemplo: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) function onCastSpell(cid, var) doPlayerAddMana(cid, math.random(45000, 55000)) return doCombat(cid, combat, var) end e temos : <rune name="Mana Rune" id="2284" allowfaruse="1" charges="1" lvl="20" maglv="4" exhaustion="550" aggressive="0" needtarget="1" blocktype="solid" script="healing/mana rune.lua"/> e meu script de resets é este: function onSay(cid, words, param) --[Configurações de Condição]__ config = { --[[verdadeiro / Falso]] needPa = false, -- Precisa de Premium Account? [true / false] needPz = true, -- Precisa estar em Protection Zone? [true / false] battle = false, -- Precisa estar sem Batlle para Resetar? [true / false] withe = false, -- Players PK Withe pode Resetar? [true / false] red = false, -- Players PK Red pode Resetar? [true / false] tp = true, -- Teleportar para o Templo após o reset? [true / false] look = true, -- Mostrar Resets no Look do Player? [true / false] addLimite = false, -- Abilitar Limite de Resets? [true / false] setClasse = false, -- Mudar Vocação do player quando resetar? [true / false] storage = 2310, -- Storage [valor] --[Configurações do Reset]__ resetStatus = { player = getPlayerGUID(cid), -- Não Mude. lvl = 50000 , -- Level Necessário para Resetar. [valor] lvlreset = 100, -- Level que retornará após o Reset. [valor] limite = 200, -- Máximo de resets que um player pode chegar. [valor] newClasse = 0, -- Id da Nova Vocação após o Reset. [valor] tempo= 5 -- Tempo para o Player deslogar para Resetar. Em segundos. [valor] }, } --[Funções]__ function Reseting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function noAll(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noTeleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noLook(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) return TRUE end function noClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function setClasse(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doPlayerSetVocation(cid, config.resetStatus.newClasse) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function look(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = ' [Reset "..resets.."]' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function teleporting(cid) resets = getResets(cid) setPlayerStorageValue(cid,config.storage,resets+1) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `description` = '' WHERE `players`.`id` = "..config.resetStatus.player) db.executeQuery("UPDATE `players` SET `level` = "..config.resetStatus.lvlreset..", `experience` = 0 WHERE `id` = "..config.resetStatus.player) return TRUE end function getResets(cid) resets = getPlayerStorageValue(cid,config.storage) if resets < 1 then resets = 1 end return resets end local resets = getResets(cid) local needLvl ="Você precisa de "..config.resetStatus.lvl-getPlayerLevel(cid).." level's para resetar." local msg ="~~[Reset: "..getResets(cid).."]~~ 'Sucesso ao Resetar! Você será deslogado em "..config.resetStatus.tempo.." Segundos." --[Condiçoes]__ if(config.needPz == true) and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid,22,"Você Precisa estar em Protection Zone Para Resetar.") return TRUE elseif(config.addLimite == true) and (getResets(cid) == config.resetStatus.limite) then doPlayerSendTextMessage(cid, 22, "Você ja atingiu o Limite de Resets.") return TRUE elseif(config.withe == false) and (getCreatureSkullType(cid) == 3) then doPlayerSendTextMessage(cid,22,"Você ta PK White, por isso não pode resetar.") return TRUE elseif(config.red == false) and (getCreatureSkullType(cid) == 4) then doPlayerSendTextMessage(cid,22,"Você ta PK Red, por isso não pode resetar.") return TRUE elseif(config.needPa == true) and not isPremium(cid) then doPlayerSendTextMessage(cid,22,"Você Precisa ser Premium Account para Resetar.") return TRUE elseif(config.battle == true) and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid,22,"Você Precisa estar sem Battle para Resetar.") return TRUE elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == true) then addEvent(Reseting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == false) then addEvent(noAll, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == true) then addEvent(noTeleporting, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == true) then addEvent(noLook, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == true) and (config.setClasse == false) then addEvent(noClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == false) and (config.setClasse == true) then addEvent(setClasse, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == false) and (config.look == true) and (config.setClasse == false) then addEvent(look, config.resetStatus.tempo* 1000, cid) elseif getPlayerLevel(cid) >= config.resetStatus.lvl and (config.tp == true) and (config.look == false) and (config.setClasse == false) then addEvent(teleporting, config.resetStatus.tempo* 1000, cid) elseif doPlayerSendCancel(cid, needLvl) then doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return TRUE end if doPlayerPopupFYI(cid, msg) then end return TRUE end --[by: MarcelloMkez]__ Bom desde ja serei grato. Abraços. Editado Janeiro 20, 2011 por teteusinhu Link para o comentário https://xtibia.com/forum/topic/149838-pedido-restringir-um-item-por-resets/ Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Janeiro 20, 2011 Share Postado Janeiro 20, 2011 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local reset_min = 2 function onCastSpell(cid, var) if getResets(cid) >= reset_min then doPlayerAddMana(cid, math.random(45000, 55000)) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Sorry, you need "..reset_min.." reset's or more to use this spell.") end return TRUE end Link para o comentário https://xtibia.com/forum/topic/149838-pedido-restringir-um-item-por-resets/#findComment-990785 Compartilhar em outros sites More sharing options...
teteusinhu 1 Postado Janeiro 20, 2011 Autor Share Postado Janeiro 20, 2011 Bom amigo o codigo fico assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local reset_min = 70 function onCastSpell(cid, var) if getResets(cid) >= reset_min then doPlayerAddMana(cid, math.random(100000, 110000)) doPlayerAddHealth(cid, math.random(100000, 110000)) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Sorry, you need "..reset_min.." reset's or more to use this spell.") end return TRUE end e deu o seguinte erro: [19/01/2011 21:02:32] [Error - Spell Interface] [19/01/2011 21:02:32] data/spells/scripts/healing/super mana e life rune.lua:onCastSpell [19/01/2011 21:02:32] Description: [19/01/2011 21:02:32] ...ta/spells/scripts/healing/super mana e life rune.lua:9: attempt to call global 'getReset' (a nil value) [19/01/2011 21:02:32] stack traceback: [19/01/2011 21:02:32] ...ta/spells/scripts/healing/super mana e life rune.lua:9: in function <...ta/spells/scripts/healing/super mana e life rune.lua:8> se puder resolver serei grato. Abraços. Link para o comentário https://xtibia.com/forum/topic/149838-pedido-restringir-um-item-por-resets/#findComment-990812 Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Janeiro 21, 2011 Share Postado Janeiro 21, 2011 achei que já tava na lib a função local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_RED) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local reset_min = 2 function getResets(cid) resets = getPlayerStorageValue(cid,2310) if resets < 1 then resets = 1 end return resets end function onCastSpell(cid, var) if getResets(cid) >= reset_min then doPlayerAddMana(cid, math.random(45000, 55000)) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Sorry, you need "..reset_min.." reset's or more to use this spell.") end return TRUE end Link para o comentário https://xtibia.com/forum/topic/149838-pedido-restringir-um-item-por-resets/#findComment-990865 Compartilhar em outros sites More sharing options...
teteusinhu 1 Postado Janeiro 21, 2011 Autor Share Postado Janeiro 21, 2011 Deu certo Obrigado por tudo. Desde ja grato. Atencisoamente, teteusinhu. Link para o comentário https://xtibia.com/forum/topic/149838-pedido-restringir-um-item-por-resets/#findComment-990934 Compartilhar em outros sites More sharing options...
Adriez 6 Postado Agosto 14, 2011 Share Postado Agosto 14, 2011 fmz manos ?? como restringir spells por reset baseado no q tu fez eu fiz na magia da isso ou uma hora aparece vc tem q ter 50 reset pra da a magia so q a magia sai normalmente como q faz ?? flws fmz [Error - Spell Interface] [14/08/2011 02:45:36] data/spells/scripts/ThorKiller.lua:onCastSpell [14/08/2011 02:45:36] Description: [14/08/2011 02:45:36] data/spells/scripts/ThorKiller.lua:157: attempt to call global 'getPlayerReset' (a nil value) [14/08/2011 02:45:36] stack traceback: [14/08/2011 02:45:36] data/spells/scripts/ThorKiller.lua:157: in function <data/spells/scripts/ThorKiller.lua:156> Link para o comentário https://xtibia.com/forum/topic/149838-pedido-restringir-um-item-por-resets/#findComment-1085004 Compartilhar em outros sites More sharing options...
Posts Recomendados