Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

 The OTX Server Version: (2.100 - 6000) - Codename: (FINAL)

Qual o motivo deste tópico? 

Estou com um bug aparentemente comum pra essa versão, ao usar potion correndo, ele não dropa a fluid no chão, dá um erro na distro (erro abaixo). Poderiam me ajudar a consertar? Segue abaixo erro e script potions.lua

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

[29/3/2021 18:24:55] [Error - Action Interface] 
[29/3/2021 18:24:55] data/actions/scripts/liquids/potions.lua:onUse
[29/3/2021 18:24:55] Description: 
[29/3/2021 18:24:55] (LuaInterface::luaHasItemProperty) Item not found

 

Você tem o código disponível? Se tiver publique-o aqui: 

 local ITEM_RUM_FLASK = 5553

local TYPE_EMPTY = 0
local TYPE_WATER = 1
local TYPE_BLOOD = 2
local TYPE_BEER = 3
local TYPE_SLIME = 4
local TYPE_LEMONADE = 5
local TYPE_MILK = 6
local TYPE_MANA_FLUID = 7
local TYPE_LIFE_FLUID = 10
local TYPE_OIL = 11
local TYPE_URINE = 13
local TYPE_COCONUT_MILK = 14
local TYPE_WINE = 15
local TYPE_MUD = 19
local TYPE_FRUIT_JUICE = 21
local TYPE_LAVA = 26
local TYPE_RUM = 27
local TYPE_SWAMP = 28
local TYPE_TEA = 35

local oilLamps = {[2046] = 2044}
local casks = {[1771] = TYPE_WATER, [1772] = TYPE_BEER, [1773] = TYPE_WINE}
local alcoholDrinks = {TYPE_BEER, TYPE_WINE, TYPE_RUM}
local poisonDrinks = {TYPE_SLIME, TYPE_SWAMP}

local drunk = createConditionObject(CONDITION_DRUNK)
setConditionParam(drunk, CONDITION_PARAM_TICKS, 60000)

local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_DELAYED, true) -- Condition will delay the first damage from when it's added
setConditionParam(poison, CONDITION_PARAM_MINVALUE, -50) -- Minimum damage the condition can do at total
setConditionParam(poison, CONDITION_PARAM_MAXVALUE, -120) -- Maximum damage
setConditionParam(poison, CONDITION_PARAM_STARTVALUE, -5) -- The damage the condition will do on the first hit
setConditionParam(poison, CONDITION_PARAM_TICKINTERVAL, 4000) -- Delay between damages
setConditionParam(poison, CONDITION_PARAM_FORCEUPDATE, true) -- Re-update condition when adding it(ie. min/max value)

local burn = createConditionObject(CONDITION_FIRE)
setConditionParam(burn, CONDITION_PARAM_DELAYED, true) -- Condition will delay the first damage from when it's added
setConditionParam(burn, CONDITION_PARAM_MINVALUE, -70) -- Minimum damage the condition can do at total
setConditionParam(burn, CONDITION_PARAM_MAXVALUE, -150) -- Maximum damage
setConditionParam(burn, CONDITION_PARAM_STARTVALUE, -10) -- The damage the condition will do on the first hit
setConditionParam(burn, CONDITION_PARAM_TICKINTERVAL, 10000) -- Delay between damages
setConditionParam(burn, CONDITION_PARAM_FORCEUPDATE, true) -- Re-update condition when adding it(ie. min/max value)

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(doComparePositions(getCreaturePosition(cid), toPosition))then
		itemEx.uid = cid
	end

	if(itemEx.uid == cid) then
		if(item.type == TYPE_EMPTY) then
			doPlayerSendCancel(cid, "It is empty.")
			return true
		end

		if(item.type == TYPE_MANA_FLUID) then
			if(not doPlayerAddMana(itemEx.uid, math.random(40, 80))) then
				return false
			end

			doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER_SAY)
			doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
		elseif(item.type == TYPE_LIFE_FLUID) then
			if(not doCreatureAddHealth(itemEx.uid, math.random(40, 80))) then
				return false
			end

			doCreatureSay(itemEx.uid, "Aaaah...", TALKTYPE_MONSTER_SAY)
			doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
		elseif(isInArray(alcoholDrinks, item.type)) then
			if(not doTargetCombatCondition(0, cid, drunk, CONST_ME_NONE)) then
				return false
			end

			doCreatureSay(cid, "Aaah...", TALKTYPE_MONSTER_SAY)
		elseif(isInArray(poisonDrinks, item.type)) then
			if(not doTargetCombatCondition(0, cid, poison, CONST_ME_NONE)) then
				return false
			end

			doCreatureSay(cid, "Urgh!", TALKTYPE_MONSTER_SAY)
		elseif(item.type == TYPE_LAVA) then
			if(not doTargetCombatCondition(0, cid, burn, CONST_ME_NONE)) then
				return false
			end

			doCreatureSay(cid, "Urgh!", TALKTYPE_MONSTER_SAY)
		else
			doCreatureSay(cid, "Gulp.", TALKTYPE_MONSTER_SAY)
		end

		doChangeTypeItem(item.uid, TYPE_EMPTY)
		return true
	end

	if(not isCreature(itemEx.uid)) then
		if(item.type == TYPE_EMPTY) then
			if(isItemFluidContainer(itemEx.itemid) and itemEx.type ~= TYPE_EMPTY) then
				doChangeTypeItem(item.uid, itemEx.type)
				doChangeTypeItem(itemEx.uid, TYPE_EMPTY)
				return true
			end

			local tmp = casks[itemEx.itemid]
			if(tmp == nil) then
				tmp = getFluidSourceType(itemEx.itemid)
			end

			if(tmp) then
				doChangeTypeItem(item.uid, tmp)
				return true
			end

			doPlayerSendCancel(cid, "It is empty.")
			return true
		end

		local tmp = oilLamps[itemEx.itemid]
		if(item.type == TYPE_OIL and tmp ~= nil) then
			doTransformItem(itemEx.uid, tmp)
			doChangeTypeItem(item.uid, TYPE_NONE)
			return true
		end

		if(isItemFluidContainer(itemEx.itemid) and itemEx.type == TYPE_EMPTY) then
			doChangeTypeItem(itemEx.uid, itemEx.type)
			doChangeTypeItem(item.uid, TYPE_EMPTY)
			return true
		end

		if(hasProperty(itemEx.uid, CONST_PROP_BLOCKSOLID)) then
			return false
		end
	end

	if(item.type == TYPE_EMPTY) then
		doPlayerSendCancel(cid, "It is empty.")
		return true
	end

	doDecayItem(doCreateItem(POOL, item.type, toPosition))
	doChangeTypeItem(item.uid, TYPE_EMPTY)
	return true
end

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Postado

Estou utilizando o OTX 7.72 também, aqui não deu erro fazendo o que tu informou.

Tenta esse:
 

local ITEM_RUM_FLASK = 5553
 
local TYPE_EMPTY = 0
local TYPE_WATER = 1
local TYPE_BLOOD = 2
local TYPE_BEER = 3
local TYPE_SLIME = 4
local TYPE_LEMONADE = 5
local TYPE_MILK = 6
local TYPE_MANA_FLUID = 7
local TYPE_LIFE_FLUID = 10
local TYPE_OIL = 11
local TYPE_URINE = 13
local TYPE_COCONUT_MILK = 14
local TYPE_WINE = 15
local TYPE_MUD = 19
local TYPE_FRUIT_JUICE = 21
local TYPE_LAVA = 26
local TYPE_RUM = 27
local TYPE_SWAMP = 28
local TYPE_TEA = 35
 
local oilLamps = {[2046] = 2044}
local casks = {[1771] = TYPE_WATER, [1772] = TYPE_BEER, [1773] = TYPE_WINE}
local alcoholDrinks = {TYPE_BEER, TYPE_WINE, TYPE_RUM}
local poisonDrinks = {TYPE_SLIME, TYPE_SWAMP}
 
local drunk = createConditionObject(CONDITION_DRUNK)
setConditionParam(drunk, CONDITION_PARAM_TICKS, 60000)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_DELAYED, true-- Condition will delay the first damage from when it's added
setConditionParam(poison, CONDITION_PARAM_MINVALUE, -50-- Minimum damage the condition can do at total
setConditionParam(poison, CONDITION_PARAM_MAXVALUE, -120-- Maximum damage
setConditionParam(poison, CONDITION_PARAM_STARTVALUE, -5-- The damage the condition will do on the first hit
setConditionParam(poison, CONDITION_PARAM_TICKINTERVAL, 4000-- Delay between damages
setConditionParam(poison, CONDITION_PARAM_FORCEUPDATE, true-- Re-update condition when adding it(ie. min/max value)
 
local burn = createConditionObject(CONDITION_FIRE)
setConditionParam(burn, CONDITION_PARAM_DELAYED, true-- Condition will delay the first damage from when it's added
setConditionParam(burn, CONDITION_PARAM_MINVALUE, -70-- Minimum damage the condition can do at total
setConditionParam(burn, CONDITION_PARAM_MAXVALUE, -150-- Maximum damage
setConditionParam(burn, CONDITION_PARAM_STARTVALUE, -10-- The damage the condition will do on the first hit
setConditionParam(burn, CONDITION_PARAM_TICKINTERVAL, 10000-- Delay between damages
setConditionParam(burn, CONDITION_PARAM_FORCEUPDATE, true-- Re-update condition when adding it(ie. min/max value)
 
function onUse(ciditemfromPositionitemExtoPosition)
    if(doComparePositions(getCreaturePosition(cid), toPosition))then
        itemEx.uid = cid
    end
 
    if(itemEx.uid == cid) then
        if(item.type == TYPE_EMPTY) then
            doPlayerSendCancel(cid, "It is empty.")
            return true
        end
 
        if(item.type == TYPE_MANA_FLUID) then
            if(not doPlayerAddMana(itemEx.uidmath.random(4080))) then
                return false
            end
 
            doCreatureSay(itemEx.uid"Aaaah...", TALKTYPE_MONSTER_SAY)
            doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
        elseif(item.type == TYPE_LIFE_FLUID) then
            if(not doCreatureAddHealth(itemEx.uidmath.random(4080))) then
                return false
            end
 
            doCreatureSay(itemEx.uid"Aaaah...", TALKTYPE_MONSTER_SAY)
            doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
        elseif(isInArray(alcoholDrinks, item.type)) then
            if(not doTargetCombatCondition(0, cid, drunk, CONST_ME_NONE)) then
                return false
            end
 
            doCreatureSay(cid, "Aaah...", TALKTYPE_MONSTER_SAY)
        elseif(isInArray(poisonDrinks, item.type)) then
            if(not doTargetCombatCondition(0, cid, poison, CONST_ME_NONE)) then
                return false
            end
 
            doCreatureSay(cid, "Urgh!", TALKTYPE_MONSTER_SAY)
        elseif(item.type == TYPE_LAVA) then
            if(not doTargetCombatCondition(0, cid, burn, CONST_ME_NONE)) then
                return false
            end
 
            doCreatureSay(cid, "Urgh!", TALKTYPE_MONSTER_SAY)
        else
            doCreatureSay(cid, "Gulp.", TALKTYPE_MONSTER_SAY)
        end
 
        doChangeTypeItem(item.uid, TYPE_EMPTY)
        return true
    end
 
    if(not isCreature(itemEx.uid)) then
        if(item.type == TYPE_EMPTY) then
            if(isItemFluidContainer(itemEx.itemid) and itemEx.type ~= TYPE_EMPTY) then
                doChangeTypeItem(item.uid, itemEx.type)
                doChangeTypeItem(itemEx.uid, TYPE_EMPTY)
                return true
            end
 
            local tmp = casks[itemEx.itemid]
            if(tmp == nilthen
                tmp = getFluidSourceType(itemEx.itemid)
            end
 
            if(tmp) then
                doChangeTypeItem(item.uid, tmp)
                return true
            end
 
            doPlayerSendCancel(cid, "It is empty.")
            return true
        end
 
        local tmp = oilLamps[itemEx.itemid]
        if(item.type == TYPE_OIL and tmp ~= nilthen
            doTransformItem(itemEx.uid, tmp)
            doChangeTypeItem(item.uid, TYPE_NONE)
            return true
        end
 
        if(isItemFluidContainer(itemEx.itemid) and itemEx.type == TYPE_EMPTY) then
            doChangeTypeItem(itemEx.uid, itemEx.type)
            doChangeTypeItem(item.uid, TYPE_EMPTY)
            return true
        end
 
        if(hasProperty(itemEx.uid, CONST_PROP_BLOCKSOLID)) then
            return false
        end
    end
 
    if(item.type == TYPE_EMPTY) then
        doPlayerSendCancel(cid, "It is empty.")
        return true
    end
 
    doDecayItem(doCreateItem(POOL, item.type, toPosition))
    doChangeTypeItem(item.uid, TYPE_EMPTY)
    return true
end
Postado
  • Autor
13 horas atrás, Pezzadura disse:

Estou utilizando o OTX 7.72 também, aqui não deu erro fazendo o que tu informou.

Tenta esse:
 

local ITEM_RUM_FLASK = 5553
 
local TYPE_EMPTY = 0
local TYPE_WATER = 1
local TYPE_BLOOD = 2
local TYPE_BEER = 3
local TYPE_SLIME = 4
local TYPE_LEMONADE = 5
local TYPE_MILK = 6
local TYPE_MANA_FLUID = 7
local TYPE_LIFE_FLUID = 10
local TYPE_OIL = 11
local TYPE_URINE = 13
local TYPE_COCONUT_MILK = 14
local TYPE_WINE = 15
local TYPE_MUD = 19
local TYPE_FRUIT_JUICE = 21
local TYPE_LAVA = 26
local TYPE_RUM = 27
local TYPE_SWAMP = 28
local TYPE_TEA = 35
 
local oilLamps = {[2046] = 2044}
local casks = {[1771] = TYPE_WATER, [1772] = TYPE_BEER, [1773] = TYPE_WINE}
local alcoholDrinks = {TYPE_BEER, TYPE_WINE, TYPE_RUM}
local poisonDrinks = {TYPE_SLIME, TYPE_SWAMP}
 
local drunk = createConditionObject(CONDITION_DRUNK)
setConditionParam(drunk, CONDITION_PARAM_TICKS, 60000)
 
local poison = createConditionObject(CONDITION_POISON)
setConditionParam(poison, CONDITION_PARAM_DELAYED, true-- Condition will delay the first damage from when it's added
setConditionParam(poison, CONDITION_PARAM_MINVALUE, -50-- Minimum damage the condition can do at total
setConditionParam(poison, CONDITION_PARAM_MAXVALUE, -120-- Maximum damage
setConditionParam(poison, CONDITION_PARAM_STARTVALUE, -5-- The damage the condition will do on the first hit
setConditionParam(poison, CONDITION_PARAM_TICKINTERVAL, 4000-- Delay between damages
setConditionParam(poison, CONDITION_PARAM_FORCEUPDATE, true-- Re-update condition when adding it(ie. min/max value)
 
local burn = createConditionObject(CONDITION_FIRE)
setConditionParam(burn, CONDITION_PARAM_DELAYED, true-- Condition will delay the first damage from when it's added
setConditionParam(burn, CONDITION_PARAM_MINVALUE, -70-- Minimum damage the condition can do at total
setConditionParam(burn, CONDITION_PARAM_MAXVALUE, -150-- Maximum damage
setConditionParam(burn, CONDITION_PARAM_STARTVALUE, -10-- The damage the condition will do on the first hit
setConditionParam(burn, CONDITION_PARAM_TICKINTERVAL, 10000-- Delay between damages
setConditionParam(burn, CONDITION_PARAM_FORCEUPDATE, true-- Re-update condition when adding it(ie. min/max value)
 
function onUse(ciditemfromPositionitemExtoPosition)
    if(doComparePositions(getCreaturePosition(cid), toPosition))then
        itemEx.uid = cid
    end
 
    if(itemEx.uid == cid) then
        if(item.type == TYPE_EMPTY) then
            doPlayerSendCancel(cid, "It is empty.")
            return true
        end
 
        if(item.type == TYPE_MANA_FLUID) then
            if(not doPlayerAddMana(itemEx.uidmath.random(4080))) then
                return false
            end
 
            doCreatureSay(itemEx.uid"Aaaah...", TALKTYPE_MONSTER_SAY)
            doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
        elseif(item.type == TYPE_LIFE_FLUID) then
            if(not doCreatureAddHealth(itemEx.uidmath.random(4080))) then
                return false
            end
 
            doCreatureSay(itemEx.uid"Aaaah...", TALKTYPE_MONSTER_SAY)
            doSendMagicEffect(toPosition, CONST_ME_MAGIC_BLUE)
        elseif(isInArray(alcoholDrinks, item.type)) then
            if(not doTargetCombatCondition(0, cid, drunk, CONST_ME_NONE)) then
                return false
            end
 
            doCreatureSay(cid, "Aaah...", TALKTYPE_MONSTER_SAY)
        elseif(isInArray(poisonDrinks, item.type)) then
            if(not doTargetCombatCondition(0, cid, poison, CONST_ME_NONE)) then
                return false
            end
 
            doCreatureSay(cid, "Urgh!", TALKTYPE_MONSTER_SAY)
        elseif(item.type == TYPE_LAVA) then
            if(not doTargetCombatCondition(0, cid, burn, CONST_ME_NONE)) then
                return false
            end
 
            doCreatureSay(cid, "Urgh!", TALKTYPE_MONSTER_SAY)
        else
            doCreatureSay(cid, "Gulp.", TALKTYPE_MONSTER_SAY)
        end
 
        doChangeTypeItem(item.uid, TYPE_EMPTY)
        return true
    end
 
    if(not isCreature(itemEx.uid)) then
        if(item.type == TYPE_EMPTY) then
            if(isItemFluidContainer(itemEx.itemid) and itemEx.type ~= TYPE_EMPTY) then
                doChangeTypeItem(item.uid, itemEx.type)
                doChangeTypeItem(itemEx.uid, TYPE_EMPTY)
                return true
            end
 
            local tmp = casks[itemEx.itemid]
            if(tmp == nilthen
                tmp = getFluidSourceType(itemEx.itemid)
            end
 
            if(tmp) then
                doChangeTypeItem(item.uid, tmp)
                return true
            end
 
            doPlayerSendCancel(cid, "It is empty.")
            return true
        end
 
        local tmp = oilLamps[itemEx.itemid]
        if(item.type == TYPE_OIL and tmp ~= nilthen
            doTransformItem(itemEx.uid, tmp)
            doChangeTypeItem(item.uid, TYPE_NONE)
            return true
        end
 
        if(isItemFluidContainer(itemEx.itemid) and itemEx.type == TYPE_EMPTY) then
            doChangeTypeItem(itemEx.uid, itemEx.type)
            doChangeTypeItem(item.uid, TYPE_EMPTY)
            return true
        end
 
        if(hasProperty(itemEx.uid, CONST_PROP_BLOCKSOLID)) then
            return false
        end
    end
 
    if(item.type == TYPE_EMPTY) then
        doPlayerSendCancel(cid, "It is empty.")
        return true
    end
 
    doDecayItem(doCreateItem(POOL, item.type, toPosition))
    doChangeTypeItem(item.uid, TYPE_EMPTY)
    return true
end

Tb deu o mesmo erro, usar parado ele não da erro, mas ao correr e usar, ao invés da pot cair no chão ou não usar, da erro na console.

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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.8k

Informação Importante

Confirmação de Termo