Ir para conteúdo

Featured Replies

Postado

Então galera, do nada começou a bugar minhas potions, meu servidor tem 7 vocações, mas está configurados tudo certinho, mas somente está funcionando a mana potion, quando eu tento utilizar outra potion , dar esse bug

Citar

 

[Error - Action Interface]
data/actions/scripts/liquids/potions.lua:onUse
Description:
data/actions/scripts/liquids/potions.lua:50: attempt to call global 'isInArray' (a nil value)
stack traceback:
        data/actions/scripts/liquids/potions.lua:50: in function <data/actions/scripts/liquids/potions.lua:30>


 


Na linha 50 o script é

Citar

 if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and


Na linha 30 é

Spoiler

function onUse(cid, item, fromPosition, itemEx, toPosition)

Script Completo abaixo

Citar

local config = {
        removeOnUse = "no",
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
        splashable = "no",
        realAnimation = "no", -- make text effect visible only for players in range 1x1
        healthMultiplier = 1.0,
        manaMultiplier = 1.0
}
 
config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)
 
local POTIONS = {
        [8704] = {empty = 7636, splash = 2, health = {100, 200}}, -- small health potion
        [7618] = {empty = 7636, splash = 2, health = {150, 200}}, -- health potion
        [7588] = {empty = 7634, splash = 2, health = {300, 350}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
        [7591] = {empty = 7635, splash = 2, health = {800, 900}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
        [8473] = {empty = 7635, splash = 2, health = {1100, 1200}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
        [7620] = {empty = 7636, splash = 7, mana = {200, 250}}, -- mana potion
        [7589] = {empty = 7634, splash = 7, mana = {300, 300}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
        [7590] = {empty = 7635, splash = 7, mana = {650, 750}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
        [8472] = {empty = 7635, splash = 3, health = {350, 400}, mana = {300, 350}, level = 80, vocations = {3, 7}, vocStr = "paladins"}, -- great spirit potion
}
 
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
        local potion = POTIONS[item.itemid]
        if(not potion) then
                return false
        end
        if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
                if(not config.splashable) then
                        return false
                end
                if(toPosition.x == CONTAINER_POSITION) then
                        toPosition = getThingPos(item.uid)
                end
                doDecayItem(doCreateItem(2016, potion.splash, toPosition))
                doTransformItem(item.uid, potion.empty)
                return TRUE
        end
        if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
                doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
                return TRUE
        end
        if(((potion.level and getPlayerLevel(cid) < potion.level) or (potion.vocations and not isInArray(potion.vocations, getPlayerVocation(cid)))) and
                not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
        then
                doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
                return TRUE
        end
        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
                return false
        end
        local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
                return false
        end
        doSendMagicEffect(getThingPos(itemEx.uid), 66)
        if(not realAnimation) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        else
                for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
                        if(isPlayer(tid)) then
                                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
                        end
                end
        end
        doAddCondition(cid, exhaust)
        if(not potion.empty or config.removeOnUse) then
        doRemoveItem(item.uid, 1)
        return TRUE
        end
        doRemoveItem(item.uid, 0)
        doPlayerAddItem(cid, potion.empty, 0)
        doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
        doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
        return TRUE
end

O erro é esse, tem como alguém me ajudar a resolver? rep+ , estou utilizando OTX versão 4.7.2 by mattyx14 and tfs team

Postado
local config = {
        removeOnUse = "no",
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
        splashable = "no",
        realAnimation = "no", -- make text effect visible only for players in range 1x1
        healthMultiplier = 1.0,
        manaMultiplier = 1.0
}
 
config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)
 
local POTIONS = {
        [8704] = {empty = 7636, splash = 2, health = {100, 200}}, -- small health potion
        [7618] = {empty = 7636, splash = 2, health = {150, 200}}, -- health potion
        [7588] = {empty = 7634, splash = 2, health = {300, 350}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
        [7591] = {empty = 7635, splash = 2, health = {800, 900}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
        [8473] = {empty = 7635, splash = 2, health = {1100, 1200}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
        [7620] = {empty = 7636, splash = 7, mana = {200, 250}}, -- mana potion
        [7589] = {empty = 7634, splash = 7, mana = {300, 300}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
        [7590] = {empty = 7635, splash = 7, mana = {650, 750}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
        [8472] = {empty = 7635, splash = 3, health = {350, 400}, mana = {300, 350}, level = 80, vocations = {3, 7}, vocStr = "paladins"}, -- great spirit potion
}
 
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
        local potion = POTIONS[item.itemid]
        if(not potion) then
                return false
        end
        if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
                if(not config.splashable) then
                        return false
                end
                if(toPosition.x == CONTAINER_POSITION) then
                        toPosition = getThingPos(item.uid)
                end
                doDecayItem(doCreateItem(2016, potion.splash, toPosition))
                doTransformItem(item.uid, potion.empty)
                return TRUE
        end
        if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
                doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
                return TRUE
        end
        if(((potion.level and getPlayerLevel(cid) < potion.level) or (getPlayerVocation(cid) ~= potion.vocations))) and
                not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
        then
                doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
                return TRUE
        end
        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
                return false
        end
        local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
                return false
        end
        doSendMagicEffect(getThingPos(itemEx.uid), 66)
        if(not realAnimation) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        else
                for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
                        if(isPlayer(tid)) then
                                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
                        end
                end
        end
        doAddCondition(cid, exhaust)
        if(not potion.empty or config.removeOnUse) then
        doRemoveItem(item.uid, 1)
        return TRUE
        end
        doRemoveItem(item.uid, 0)
        doPlayerAddItem(cid, potion.empty, 0)
        doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
        doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
        return TRUE
end

Tenta assim...

Postado
  • Autor
4 horas atrás, Kemmlly disse:

local config = {
        removeOnUse = "no",
        usableOnTarget = "yes", -- can be used on target? (fe. healing friend)
        splashable = "no",
        realAnimation = "no", -- make text effect visible only for players in range 1x1
        healthMultiplier = 1.0,
        manaMultiplier = 1.0
}
 
config.removeOnUse = getBooleanFromString(config.removeOnUse)
config.usableOnTarget = getBooleanFromString(config.usableOnTarget)
config.splashable = getBooleanFromString(config.splashable)
config.realAnimation = getBooleanFromString(config.realAnimation)
 
local POTIONS = {
        [8704] = {empty = 7636, splash = 2, health = {100, 200}}, -- small health potion
        [7618] = {empty = 7636, splash = 2, health = {150, 200}}, -- health potion
        [7588] = {empty = 7634, splash = 2, health = {300, 350}, level = 50, vocations = {3, 4, 7, 8}, vocStr = "knights and paladins"}, -- strong health potion
        [7591] = {empty = 7635, splash = 2, health = {800, 900}, level = 80, vocations = {4, 8}, vocStr = "knights"}, -- great health potion
        [8473] = {empty = 7635, splash = 2, health = {1100, 1200}, level = 130, vocations = {4, 8}, vocStr = "knights"}, -- ultimate health potion
        [7620] = {empty = 7636, splash = 7, mana = {200, 250}}, -- mana potion
        [7589] = {empty = 7634, splash = 7, mana = {300, 300}, level = 50, vocations = {1, 2, 3, 5, 6, 7}, vocStr = "sorcerers, druids and paladins"}, -- strong mana potion
        [7590] = {empty = 7635, splash = 7, mana = {650, 750}, level = 80, vocations = {1, 2, 5, 6}, vocStr = "sorcerers and druids"}, -- great mana potion
        [8472] = {empty = 7635, splash = 3, health = {350, 400}, mana = {300, 350}, level = 80, vocations = {3, 7}, vocStr = "paladins"}, -- great spirit potion
}
 
local exhaust = createConditionObject(CONDITION_EXHAUST)
setConditionParam(exhaust, CONDITION_PARAM_TICKS, (getConfigInfo('timeBetweenExActions') - 100))
 
function onUse(cid, item, fromPosition, itemEx, toPosition)
        local potion = POTIONS[item.itemid]
        if(not potion) then
                return false
        end
        if(not isPlayer(itemEx.uid) or (not config.usableOnTarget and cid ~= itemEx.uid)) then
                if(not config.splashable) then
                        return false
                end
                if(toPosition.x == CONTAINER_POSITION) then
                        toPosition = getThingPos(item.uid)
                end
                doDecayItem(doCreateItem(2016, potion.splash, toPosition))
                doTransformItem(item.uid, potion.empty)
                return TRUE
        end
        if(hasCondition(cid, CONDITION_EXHAUST_HEAL)) then
                doPlayerSendDefaultCancel(cid, RETURNVALUE_YOUAREEXHAUSTED)
                return TRUE
        end
        if(((potion.level and getPlayerLevel(cid) < potion.level) or (getPlayerVocation(cid) ~= potion.vocations))) and
                not getPlayerCustomFlagValue(cid, PLAYERCUSTOMFLAG_GAMEMASTERPRIVILEGES))
        then
                doCreatureSay(itemEx.uid, "Only " .. potion.vocStr .. (potion.level and (" of level " .. potion.level) or "") .. " or above may drink this fluid.", TALKTYPE_ORANGE_1)
                return TRUE
        end
        local health = potion.health
        if(health and not doCreatureAddHealth(itemEx.uid, math.ceil(math.random(health[1], health[2]) * config.healthMultiplier))) then
                return false
        end
        local mana = potion.mana
        if(mana and not doPlayerAddMana(itemEx.uid, math.ceil(math.random(mana[1], mana[2]) * config.manaMultiplier))) then
                return false
        end
        doSendMagicEffect(getThingPos(itemEx.uid), 66)
        if(not realAnimation) then
                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1)
        else
                for i, tid in ipairs(getSpectators(getCreaturePosition(cid), 1, 1)) do
                        if(isPlayer(tid)) then
                                doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_ORANGE_1, false, tid)
                        end
                end
        end
        doAddCondition(cid, exhaust)
        if(not potion.empty or config.removeOnUse) then
        doRemoveItem(item.uid, 1)
        return TRUE
        end
        doRemoveItem(item.uid, 0)
        doPlayerAddItem(cid, potion.empty, 0)
        doPlayerRemoveItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
        doPlayerAddItem(cid, potion.empty, getPlayerItemCount(cid, potion.empty))
        return TRUE
end

Tenta assim...

Boa tarde amigo, então o script não pegou não,dessa vez não usa a potion e nem dar erro no console do servidor..,mas muito obrigado por tentar me ajudar, se tiver outra solução,irei agradecer amigo!

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