• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua data\actions\lib\actions.lua *Destroying items*

soul4soul

Intermediate OT User
Joined
Aug 13, 2007
Messages
1,875
Solutions
3
Reaction score
128
Location
USA
Code:
function destroyItem(cid, itemEx, toPosition)
    if(itemEx.uid <= 65535 or itemEx.actionid > 0) then
        return false
    end
    
    if not(isInArray({1770, 2098, 1774, 2064, 2094, 2095, 1619, 2602, 3805, 3806}, itemEx.itemid) or
        (itemEx.itemid >= 1724 and itemEx.itemid <= 1741) or
        (itemEx.itemid >= 2581 and itemEx.itemid <= 2588) or
        (itemEx.itemid >= 1747 and itemEx.itemid <= 1753) or
        (itemEx.itemid >= 1714 and itemEx.itemid <= 1717) or
        (itemEx.itemid >= 1650 and itemEx.itemid <= 1653) or
        (itemEx.itemid >= 1666 and itemEx.itemid <= 1677) or
        (itemEx.itemid >= 1614 and itemEx.itemid <= 1616) or
        (itemEx.itemid >= 3813 and itemEx.itemid <= 3820) or
        (itemEx.itemid >= 3807 and itemEx.itemid <= 3810) or
        (itemEx.itemid >= 2080 and itemEx.itemid <= 2085) or
        (itemEx.itemid >= 2116 and itemEx.itemid <= 2119)) then
        return false
    end

    if(math.random(1, 7) == 1) then
        if(isInArray({1738, 1739, 1770, 2098, 1774, 1775, 2064}, itemEx.itemid) or
            (itemEx.itemid >= 2581 and itemEx.itemid <= 2588)) then
                doCreateItem(2250, 1, toPosition)
        elseif((itemEx.itemid >= 1747 and itemEx.itemid <= 1749) or itemEx.itemid == 1740) then
            doCreateItem(2251, 1, toPosition)
        elseif((itemEx.itemid >= 1714 and itemEx.itemid <= 1717)) then
            doCreateItem(2252, 1, toPosition)
        elseif((itemEx.itemid >= 1650 and itemEx.itemid <= 1653) or
            (itemEx.itemid >= 1666 and itemEx.itemid <= 1677) or
            (itemEx.itemid >= 1614 and itemEx.itemid <= 1616) or
            (itemEx.itemid >= 3813 and itemEx.itemid <= 3820) or
            (itemEx.itemid >= 3807 and itemEx.itemid <= 3810)) then
                doCreateItem(2253, 1, toPosition)
        elseif((itemEx.itemid >= 1724 and itemEx.itemid <= 1737) or
            (itemEx.itemid >= 2080 and itemEx.itemid <= 2085) or
            (itemEx.itemid >= 2116 and itemEx.itemid <= 2119) or
            isInArray({2094, 2095}, itemEx.itemid)) then
                doCreateItem(2254, 1, toPosition)
        elseif((itemEx.itemid >= 1750 and itemEx.itemid <= 1753) or isInArray({1619, 1741}, itemEx.itemid)) then
            doCreateItem(2255, 1, toPosition)
        elseif(itemEx.itemid == 2602) then
            doCreateItem(2257, 1, toPosition)
        elseif(itemEx.itemid == 3805 or itemEx.itemid == 3806) then
            doCreateItem(2259, 1, toPosition)
        elseif(isInArray({7538, 7539}, itemEx.itemid)) then
            doSendMagicEffect(toPosition, CONST_ME_POFF)
            doTransformItem(itemEx.uid, itemEx.itemid + 6)
            doDecayItem(itemEx.uid)
        end
        doRemoveItem(itemEx.uid, 1)
    end

    doSendMagicEffect(toPosition, CONST_ME_POFF)
    return true
end

this is what i have but you cant destroy items or anything is always says sorry not possible.
 
Last edited:
sure the problem is if you have one of these condotions
Lua:
if(itemEx.uid <= 65535 or itemEx.actionid > 0) then
        return false
    end
    
    if not(isInArray({1770, 2098, 1774, 2064, 2094, 2095, 1619, 2602, 3805, 3806}, itemEx.itemid) or
        (itemEx.itemid >= 1724 and itemEx.itemid <= 1741) or
        (itemEx.itemid >= 2581 and itemEx.itemid <= 2588) or
        (itemEx.itemid >= 1747 and itemEx.itemid <= 1753) or
        (itemEx.itemid >= 1714 and itemEx.itemid <= 1717) or
        (itemEx.itemid >= 1650 and itemEx.itemid <= 1653) or
        (itemEx.itemid >= 1666 and itemEx.itemid <= 1677) or
        (itemEx.itemid >= 1614 and itemEx.itemid <= 1616) or
        (itemEx.itemid >= 3813 and itemEx.itemid <= 3820) or
        (itemEx.itemid >= 3807 and itemEx.itemid <= 3810) or
        (itemEx.itemid >= 2080 and itemEx.itemid <= 2085) or
        (itemEx.itemid >= 2116 and itemEx.itemid <= 2119)) then
        return false
    end


Try to make a simple test in a onuse function.[use the item now and see what msg appear]
Lua:
function destroyItem(cid, itemEx, toPosition)
    if(itemEx.uid <= 65535 or itemEx.actionid > 0) then
	 doPlayerSendCancel(cid,"You cant use this here[action and unique id].")
        return true
    end
    
    if not(isInArray({1770, 2098, 1774, 2064, 2094, 2095, 1619, 2602, 3805, 3806}, itemEx.itemid) or
        (itemEx.itemid >= 1724 and itemEx.itemid <= 1741) or
        (itemEx.itemid >= 2581 and itemEx.itemid <= 2588) or
        (itemEx.itemid >= 1747 and itemEx.itemid <= 1753) or
        (itemEx.itemid >= 1714 and itemEx.itemid <= 1717) or
        (itemEx.itemid >= 1650 and itemEx.itemid <= 1653) or
        (itemEx.itemid >= 1666 and itemEx.itemid <= 1677) or
        (itemEx.itemid >= 1614 and itemEx.itemid <= 1616) or
        (itemEx.itemid >= 3813 and itemEx.itemid <= 3820) or
        (itemEx.itemid >= 3807 and itemEx.itemid <= 3810) or
        (itemEx.itemid >= 2080 and itemEx.itemid <= 2085) or
        (itemEx.itemid >= 2116 and itemEx.itemid <= 2119)) then
		doPlayerSendCancel(cid,"You cant use this here[not is in array].")
        return true
    end

    if(math.random(1, 7) == 1) then
        if(isInArray({1738, 1739, 1770, 2098, 1774, 1775, 2064}, itemEx.itemid) or
            (itemEx.itemid >= 2581 and itemEx.itemid <= 2588)) then
                doCreateItem(2250, 1, toPosition)
        elseif((itemEx.itemid >= 1747 and itemEx.itemid <= 1749) or itemEx.itemid == 1740) then
            doCreateItem(2251, 1, toPosition)
        elseif((itemEx.itemid >= 1714 and itemEx.itemid <= 1717)) then
            doCreateItem(2252, 1, toPosition)
        elseif((itemEx.itemid >= 1650 and itemEx.itemid <= 1653) or
            (itemEx.itemid >= 1666 and itemEx.itemid <= 1677) or
            (itemEx.itemid >= 1614 and itemEx.itemid <= 1616) or
            (itemEx.itemid >= 3813 and itemEx.itemid <= 3820) or
            (itemEx.itemid >= 3807 and itemEx.itemid <= 3810)) then
                doCreateItem(2253, 1, toPosition)
        elseif((itemEx.itemid >= 1724 and itemEx.itemid <= 1737) or
            (itemEx.itemid >= 2080 and itemEx.itemid <= 2085) or
            (itemEx.itemid >= 2116 and itemEx.itemid <= 2119) or
            isInArray({2094, 2095}, itemEx.itemid)) then
                doCreateItem(2254, 1, toPosition)
        elseif((itemEx.itemid >= 1750 and itemEx.itemid <= 1753) or isInArray({1619, 1741}, itemEx.itemid)) then
            doCreateItem(2255, 1, toPosition)
        elseif(itemEx.itemid == 2602) then
            doCreateItem(2257, 1, toPosition)
        elseif(itemEx.itemid == 3805 or itemEx.itemid == 3806) then
            doCreateItem(2259, 1, toPosition)
        elseif(isInArray({7538, 7539}, itemEx.itemid)) then
            doSendMagicEffect(toPosition, CONST_ME_POFF)
            doTransformItem(itemEx.uid, itemEx.itemid + 6)
            doDecayItem(itemEx.uid)
        end
        doRemoveItem(itemEx.uid, 1)
    end

    doSendMagicEffect(toPosition, CONST_ME_POFF)
    return true
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
destroyItem(cid, itemEx, toPosition)

return true
end
 
Last edited:
Back
Top