Postado Junho 8, 2020 5 anos .Qual servidor ou website você utiliza como base? tfs 1.3, Downgrade 8.70 Qual o motivo deste tópico? Erro ao usar potions. Está surgindo algum erro? Se sim coloque-o aqui. Citar Lua Script Error: [Action Interface]data/actions/scripts/other/potions.lua:onUsedata/actions/scripts/other/potions.lua:90: attempt to call global 'doTargetCombatHealth' (a nil value)stack traceback: [C]: in function 'doTargetCombatHealth' data/actions/scripts/other/potions.lua:90: in function <data/actions/scripts/other/potions.lua:72> Você tem o código disponível? Se tiver publique-o aqui: local berserk = Condition(CONDITION_ATTRIBUTES) berserk:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) berserk:setParameter(CONDITION_PARAM_SKILL_MELEE, 5) berserk:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) berserk:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local mastermind = Condition(CONDITION_ATTRIBUTES) mastermind:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) mastermind:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3) mastermind:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local bullseye = Condition(CONDITION_ATTRIBUTES) bullseye:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) bullseye:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 5) bullseye:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) bullseye:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local antidote = Combat() antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON) antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false) antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true) local exhaust = Condition(CONDITION_EXHAUST_HEAL) exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 1000)) -- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion. local potions = { [6558] = {transform = {id = {7588, 7589}}, effect = CONST_ME_DRAWBLOOD}, [7439] = {condition = berserk, vocations = {4, 8}, effect = CONST_ME_MAGIC_RED, description = "Only knights may drink this potion.", text = "You feel stronger."}, [7440] = {condition = mastermind, vocations = {1, 2, 5, 6}, effect = CONST_ME_MAGIC_BLUE, description = "Only sorcerers and druids may drink this potion.", text = "You feel smarter."}, [7443] = {condition = bullseye, vocations = {3, 7}, effect = CONST_ME_MAGIC_GREEN, description = "Only paladins may drink this potion.", text = "You feel more accurate."}, [7588] = {health = {250, 350}, vocations = {3, 4, 7, 8}, level = 50, flask = 7634, description = "Only knights and paladins of level 50 or above may drink this fluid."}, [7589] = {mana = {115, 185}, vocations = {1, 2, 3, 5, 6, 7}, level = 50, flask = 7634, description = "Only sorcerers, druids and paladins of level 50 or above may drink this fluid."}, [7590] = {mana = {150, 250}, vocations = {1, 2, 5, 6}, level = 80, flask = 7635, description = "Only druids and sorcerers of level 80 or above may drink this fluid."}, [7591] = {health = {425, 575}, vocations = {4, 8}, level = 80, flask = 7635, description = "Only knights of level 80 or above may drink this fluid."}, [7618] = {health = {125, 175}, flask = 7636}, [7620] = {mana = {75, 125}, flask = 7636}, [8472] = {health = {270, 360}, mana = {100, 200}, vocations = {3, 7}, level = 80, flask = 7635, description = "Only paladins of level 80 or above may drink this fluid."}, [8473] = {health = {650, 850}, vocations = {4, 8}, level = 130, flask = 7635, description = "Only knights of level 130 or above may drink this fluid."}, [8474] = {combat = antidote, flask = 7636}, [8704] = {health = {60, 90}, flask = 7636}, [13357] = {mana = {350, 480}, vocations = {1, 2, 5, 6}, level = 130, flask = 7635, description = "Only druids and sorcerers of level 130 or above may drink this fluid."}, [13358] = {health = {300, 450}, mana = {220, 300}, vocations = {3, 7}, level = 130, flask = 7635, description = "Only paladins of level 130 or above may drink this fluid."}, [13359] = {health = {820, 1125}, vocations = {4, 8}, level = 200, flask = 7635, description = "Only knights of level 200 or above may drink this fluid."} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if type(target) == "userdata" and not target:isPlayer() then return false end local potion = potions[item:getId()] if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getBase():getId()) and not (player:getGroup():getId() >= 2) then player:say(potion.description, TALKTYPE_MONSTER_SAY) return true end if player:getCondition(CONDITION_EXHAUST_HEAL) then player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED)) return true end if potion.health or potion.mana or potion.combat then if potion.health then doTargetCombatHealth(0, target, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE) end if potion.mana then doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE) end if potion.combat then potion.combat:execute(target, Variant(target:getId())) end player:addAchievementProgress('Potion Addict', 100000) target:say("Aaaah...", TALKTYPE_MONSTER_SAY) player:addItem(potion.flask, 1) player:addCondition(exhaust) player:setStorageValue(38412, player:getStorageValue(38412)+1) end if potion.condition then player:addCondition(potion.condition) player:say(potion.text, TALKTYPE_MONSTER_SAY) player:getPosition():sendMagicEffect(potion.effect) end if potion.transform then item:transform(potion.transform.id[math.random(#potion.transform.id)]) item:getPosition():sendMagicEffect(potion.effect) return true end if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then return true end local client = player:getClient() if client.version > 1140 then player:updateSupplyTracker(item) end item:remove(1) return true end function Player:canUsePotion(potionId, ignoreLevel --[[=false]]) if not ignoreLevel then ignoreLevel = false end if self:getGroup():getAccess() then return true end local potion = potions[potionId] if potion then return (potion.level and self:getLevel() >= potion.level or ignoreLevel) and (potion.vocations and table.contains(potion.vocations, self:getVocation():getBase():getId()) or not potion.vocations) end return false end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
Postado Junho 8, 2020 5 anos 21 minutos atrás, Freitas Epilef disse: .Qual servidor ou website você utiliza como base? tfs 1.3, Downgrade 8.70 Qual o motivo deste tópico? Erro ao usar potions. Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: local berserk = Condition(CONDITION_ATTRIBUTES) berserk:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) berserk:setParameter(CONDITION_PARAM_SKILL_MELEE, 5) berserk:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) berserk:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local mastermind = Condition(CONDITION_ATTRIBUTES) mastermind:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) mastermind:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3) mastermind:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local bullseye = Condition(CONDITION_ATTRIBUTES) bullseye:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) bullseye:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 5) bullseye:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) bullseye:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local antidote = Combat() antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON) antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false) antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true) local exhaust = Condition(CONDITION_EXHAUST_HEAL) exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 1000)) -- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion. local potions = { [6558] = {transform = {id = {7588, 7589}}, effect = CONST_ME_DRAWBLOOD}, [7439] = {condition = berserk, vocations = {4, 8}, effect = CONST_ME_MAGIC_RED, description = "Only knights may drink this potion.", text = "You feel stronger."}, [7440] = {condition = mastermind, vocations = {1, 2, 5, 6}, effect = CONST_ME_MAGIC_BLUE, description = "Only sorcerers and druids may drink this potion.", text = "You feel smarter."}, [7443] = {condition = bullseye, vocations = {3, 7}, effect = CONST_ME_MAGIC_GREEN, description = "Only paladins may drink this potion.", text = "You feel more accurate."}, [7588] = {health = {250, 350}, vocations = {3, 4, 7, 8}, level = 50, flask = 7634, description = "Only knights and paladins of level 50 or above may drink this fluid."}, [7589] = {mana = {115, 185}, vocations = {1, 2, 3, 5, 6, 7}, level = 50, flask = 7634, description = "Only sorcerers, druids and paladins of level 50 or above may drink this fluid."}, [7590] = {mana = {150, 250}, vocations = {1, 2, 5, 6}, level = 80, flask = 7635, description = "Only druids and sorcerers of level 80 or above may drink this fluid."}, [7591] = {health = {425, 575}, vocations = {4, 8}, level = 80, flask = 7635, description = "Only knights of level 80 or above may drink this fluid."}, [7618] = {health = {125, 175}, flask = 7636}, [7620] = {mana = {75, 125}, flask = 7636}, [8472] = {health = {270, 360}, mana = {100, 200}, vocations = {3, 7}, level = 80, flask = 7635, description = "Only paladins of level 80 or above may drink this fluid."}, [8473] = {health = {650, 850}, vocations = {4, 8}, level = 130, flask = 7635, description = "Only knights of level 130 or above may drink this fluid."}, [8474] = {combat = antidote, flask = 7636}, [8704] = {health = {60, 90}, flask = 7636}, [13357] = {mana = {350, 480}, vocations = {1, 2, 5, 6}, level = 130, flask = 7635, description = "Only druids and sorcerers of level 130 or above may drink this fluid."}, [13358] = {health = {300, 450}, mana = {220, 300}, vocations = {3, 7}, level = 130, flask = 7635, description = "Only paladins of level 130 or above may drink this fluid."}, [13359] = {health = {820, 1125}, vocations = {4, 8}, level = 200, flask = 7635, description = "Only knights of level 200 or above may drink this fluid."} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if type(target) == "userdata" and not target:isPlayer() then return false end local potion = potions[item:getId()] if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getBase():getId()) and not (player:getGroup():getId() >= 2) then player:say(potion.description, TALKTYPE_MONSTER_SAY) return true end if player:getCondition(CONDITION_EXHAUST_HEAL) then player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED)) return true end if potion.health or potion.mana or potion.combat then if potion.health then doTargetCombatHealth(0, target, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE) end if potion.mana then doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE) end if potion.combat then potion.combat:execute(target, Variant(target:getId())) end player:addAchievementProgress('Potion Addict', 100000) target:say("Aaaah...", TALKTYPE_MONSTER_SAY) player:addItem(potion.flask, 1) player:addCondition(exhaust) player:setStorageValue(38412, player:getStorageValue(38412)+1) end if potion.condition then player:addCondition(potion.condition) player:say(potion.text, TALKTYPE_MONSTER_SAY) player:getPosition():sendMagicEffect(potion.effect) end if potion.transform then item:transform(potion.transform.id[math.random(#potion.transform.id)]) item:getPosition():sendMagicEffect(potion.effect) return true end if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then return true end local client = player:getClient() if client.version > 1140 then player:updateSupplyTracker(item) end item:remove(1) return true end function Player:canUsePotion(potionId, ignoreLevel --[[=false]]) if not ignoreLevel then ignoreLevel = false end if self:getGroup():getAccess() then return true end local potion = potions[potionId] if potion then return (potion.level and self:getLevel() >= potion.level or ignoreLevel) and (potion.vocations and table.contains(potion.vocations, self:getVocation():getBase():getId()) or not potion.vocations) end return false end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Realizei o teste do seu script no meu servidor e funcionou, voce esta utilizando tfs 1.3 com release de 8.7? Pelo erro provavelmente o valor do callback (parametros) algum esta vindo nulo, pode estar relacionado a aqueles ultimos ids? Sao ids que inseriu no servidor? Editado Junho 8, 2020 5 anos por Skydangerous (veja o histórico de edições) http://baiakuza.com/IP: baiakuza.com TIBIA: 10.96 Baiak Custom [ High Exp Rate ]
Postado Junho 8, 2020 5 anos 25 minutos atrás, Freitas Epilef disse: .Qual servidor ou website você utiliza como base? tfs 1.3, Downgrade 8.70 Qual o motivo deste tópico? Erro ao usar potions. Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: local berserk = Condition(CONDITION_ATTRIBUTES) berserk:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) berserk:setParameter(CONDITION_PARAM_SKILL_MELEE, 5) berserk:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) berserk:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local mastermind = Condition(CONDITION_ATTRIBUTES) mastermind:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) mastermind:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3) mastermind:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local bullseye = Condition(CONDITION_ATTRIBUTES) bullseye:setParameter(CONDITION_PARAM_TICKS, 10 * 60 * 1000) bullseye:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 5) bullseye:setParameter(CONDITION_PARAM_SKILL_SHIELD, -10) bullseye:setParameter(CONDITION_PARAM_BUFF_SPELL, true) local antidote = Combat() antidote:setParameter(COMBAT_PARAM_TYPE, COMBAT_HEALING) antidote:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) antidote:setParameter(COMBAT_PARAM_DISPEL, CONDITION_POISON) antidote:setParameter(COMBAT_PARAM_AGGRESSIVE, false) antidote:setParameter(COMBAT_PARAM_TARGETCASTERORTOPMOST, true) local exhaust = Condition(CONDITION_EXHAUST_HEAL) exhaust:setParameter(CONDITION_PARAM_TICKS, (configManager.getNumber(configKeys.EX_ACTIONS_DELAY_INTERVAL) - 1000)) -- 1000 - 100 due to exact condition timing. -100 doesn't hurt us, and players don't have reminding ~50ms exhaustion. local potions = { [6558] = {transform = {id = {7588, 7589}}, effect = CONST_ME_DRAWBLOOD}, [7439] = {condition = berserk, vocations = {4, 8}, effect = CONST_ME_MAGIC_RED, description = "Only knights may drink this potion.", text = "You feel stronger."}, [7440] = {condition = mastermind, vocations = {1, 2, 5, 6}, effect = CONST_ME_MAGIC_BLUE, description = "Only sorcerers and druids may drink this potion.", text = "You feel smarter."}, [7443] = {condition = bullseye, vocations = {3, 7}, effect = CONST_ME_MAGIC_GREEN, description = "Only paladins may drink this potion.", text = "You feel more accurate."}, [7588] = {health = {250, 350}, vocations = {3, 4, 7, 8}, level = 50, flask = 7634, description = "Only knights and paladins of level 50 or above may drink this fluid."}, [7589] = {mana = {115, 185}, vocations = {1, 2, 3, 5, 6, 7}, level = 50, flask = 7634, description = "Only sorcerers, druids and paladins of level 50 or above may drink this fluid."}, [7590] = {mana = {150, 250}, vocations = {1, 2, 5, 6}, level = 80, flask = 7635, description = "Only druids and sorcerers of level 80 or above may drink this fluid."}, [7591] = {health = {425, 575}, vocations = {4, 8}, level = 80, flask = 7635, description = "Only knights of level 80 or above may drink this fluid."}, [7618] = {health = {125, 175}, flask = 7636}, [7620] = {mana = {75, 125}, flask = 7636}, [8472] = {health = {270, 360}, mana = {100, 200}, vocations = {3, 7}, level = 80, flask = 7635, description = "Only paladins of level 80 or above may drink this fluid."}, [8473] = {health = {650, 850}, vocations = {4, 8}, level = 130, flask = 7635, description = "Only knights of level 130 or above may drink this fluid."}, [8474] = {combat = antidote, flask = 7636}, [8704] = {health = {60, 90}, flask = 7636}, [13357] = {mana = {350, 480}, vocations = {1, 2, 5, 6}, level = 130, flask = 7635, description = "Only druids and sorcerers of level 130 or above may drink this fluid."}, [13358] = {health = {300, 450}, mana = {220, 300}, vocations = {3, 7}, level = 130, flask = 7635, description = "Only paladins of level 130 or above may drink this fluid."}, [13359] = {health = {820, 1125}, vocations = {4, 8}, level = 200, flask = 7635, description = "Only knights of level 200 or above may drink this fluid."} } function onUse(player, item, fromPosition, target, toPosition, isHotkey) if type(target) == "userdata" and not target:isPlayer() then return false end local potion = potions[item:getId()] if potion.level and player:getLevel() < potion.level or potion.vocations and not table.contains(potion.vocations, player:getVocation():getBase():getId()) and not (player:getGroup():getId() >= 2) then player:say(potion.description, TALKTYPE_MONSTER_SAY) return true end if player:getCondition(CONDITION_EXHAUST_HEAL) then player:sendTextMessage(MESSAGE_STATUS_SMALL, Game.getReturnMessage(RETURNVALUE_YOUAREEXHAUSTED)) return true end if potion.health or potion.mana or potion.combat then if potion.health then doTargetCombatHealth(0, target, COMBAT_HEALING, potion.health[1], potion.health[2], CONST_ME_MAGIC_BLUE) end if potion.mana then doTargetCombatMana(0, target, potion.mana[1], potion.mana[2], CONST_ME_MAGIC_BLUE) end if potion.combat then potion.combat:execute(target, Variant(target:getId())) end player:addAchievementProgress('Potion Addict', 100000) target:say("Aaaah...", TALKTYPE_MONSTER_SAY) player:addItem(potion.flask, 1) player:addCondition(exhaust) player:setStorageValue(38412, player:getStorageValue(38412)+1) end if potion.condition then player:addCondition(potion.condition) player:say(potion.text, TALKTYPE_MONSTER_SAY) player:getPosition():sendMagicEffect(potion.effect) end if potion.transform then item:transform(potion.transform.id[math.random(#potion.transform.id)]) item:getPosition():sendMagicEffect(potion.effect) return true end if not configManager.getBoolean(configKeys.REMOVE_POTION_CHARGES) then return true end local client = player:getClient() if client.version > 1140 then player:updateSupplyTracker(item) end item:remove(1) return true end function Player:canUsePotion(potionId, ignoreLevel --[[=false]]) if not ignoreLevel then ignoreLevel = false end if self:getGroup():getAccess() then return true end local potion = potions[potionId] if potion then return (potion.level and self:getLevel() >= potion.level or ignoreLevel) and (potion.vocations and table.contains(potion.vocations, self:getVocation():getBase():getId()) or not potion.vocations) end return false end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Testa esse script aqui! Caso funcione marque como melhor resposta e/ou me da rep+ por gentileza potions.lua
Postado Junho 8, 2020 5 anos Autor 45 minutos atrás, Skydangerous disse: Realizei o teste do seu script no meu servidor e funcionou, voce esta utilizando tfs 1.3 com release de 8.7? Pelo erro provavelmente o valor do callback (parametros) algum esta vindo nulo, pode estar relacionado a aqueles ultimos ids? Sao ids que inseriu no servidor? Sim, adicionei as sprites novas, e criei com aqueles id. 40 minutos atrás, Faysal disse: Testa esse script aqui! Caso funcione marque como melhor resposta e/ou me da rep+ por gentileza potions.lua 5 kB · 0 downloads Vou testar e édito aqui com a resposta
Postado Junho 8, 2020 5 anos 3 minutos atrás, Freitas Epilef disse: Sim, adicionei as sprites novas, e criei com aqueles id. Vou testar e édito aqui com a resposta Entao provavelmente nesta parte dos (potion.health[1], potion.health[2]) , onde ele verificar a o id da potion esta vindo nulo .. e por isso ao tentar executar a funcao ele da este erro.. tenta usar potions ja existente no servidor e verifique se ocorrera os erros ou se so e as potions novas. http://baiakuza.com/IP: baiakuza.com TIBIA: 10.96 Baiak Custom [ High Exp Rate ]
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.