• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Squeezings, Help to convert for TFS 1.0

Techrlz

System Manager & Programmer
Premium User
Joined
Feb 20, 2014
Messages
1,073
Solutions
4
Reaction score
177
Code:
local holes = {468, 481, 483, 7932}
local holeId = {294, 369, 370, 383, 392, 408, 409, 427, 428, 430, 462, 469, 470, 482, 484, 485, 489, 924, 3135, 3136}
function onUse(cid, item, fromPosition, itemEx, toPosition)
local value = getPlayerStorageValue(cid, 10)
if(value ~= -1 and os.clock()-value < 60)then
doPlayerSay(cid, "The tool jammed. Please wait " .. 60-math.floor(os.clock()-value) .. " seconds before using it again.", TALKTYPE_MONSTER)
return TRUE
end
if(math.random(1, 10) == 1)then
setPlayerStorageValue(cid, 10, os.clock())
doPlayerSay(cid, "The tool jammed. Please wait 60 seconds before using it again.", TALKTYPE_MONSTER)
return TRUE
end
-- Shovel
if isInArray(holes, itemEx.itemid) == TRUE then
doTransformItem(itemEx.uid, itemEx.itemid + 1)
doDecayItem(itemEx.uid)
return FALSE
-- Rope
elseif toPosition.x == CONTAINER_POSITION or toPosition.x == 0 and toPosition.y == 0 and toPosition.z == 0 then
return FALSE
end

local groundTile = getThingfromPos(toPosition)
if groundTile.itemid == 384 or groundTile.itemid == 418 or groundTile.itemid == 8278 then
doTeleportThing(cid, {x = toPosition.x, y = toPosition.y + 1, z = toPosition.z - 1}, FALSE)
elseif isInArray(holeId, itemEx.itemid) == TRUE then
local hole = getThingfromPos({x = toPosition.x, y = toPosition.y, z = toPosition.z + 1, stackpos = STACKPOS_TOP_MOVEABLE_ITEM_OR_CREATURE})
if hole.itemid > 0 then
doTeleportThing(hole.uid, {x = toPosition.x, y = toPosition.y + 1, z = toPosition.z}, FALSE)
else
doPlayerSendCancel(cid, "Sorry, not possible.")
end
return FALSE
-- Pick
elseif (itemEx.uid <= 65535 or itemEx.actionid > 0) and (itemEx.itemid == 354 or itemEx.itemid == 355 or itemEx.itemid == 9024 or itemEx.itemid == 9025) then
doTransformItem(itemEx.uid, 392)
doDecayItem(itemEx.uid)
return TRUE
elseif itemEx.uid == 60001 then
doTeleportThing(cid, {x=329, y=772, z=10})
doSendMagicEffect({x=329, y=772, z=10},10)
return TRUE
-- Machete
elseif itemEx.itemid == 2782 then
doTransformItem(itemEx.uid, 2781)
doDecayItem(itemEx.uid)
return TRUE
elseif itemEx.itemid == 1499 then
doRemoveItem(itemEx.uid)
return TRUE
-- Scythe
elseif itemEx.itemid == 2739 then
doTransformItem(itemEx.uid, 2737)
doCreateItem(2694, 1, toPosition)
doDecayItem(itemEx.uid)
return TRUE
end
return destroyItem(cid, itemEx, toPosition)
end

Anyone can help? @Mark @Ninja
 
Code:
local config = {
    functions = {
        [10511] = { -- sneaky stabber of eliteness
            TOOLS.ROPE,
            TOOLS.SHOVEL,
            TOOLS.PICK,
            TOOLS.MACHETE,
            TOOLS.KNIFE,
            TOOLS.SPOON
        },
        [10513] = { -- squeezing gear of girlpower
            TOOLS.ROPE,
            TOOLS.SHOVEL,
            TOOLS.PICK,
            TOOLS.MACHETE,
            TOOLS.SCYTHE,
            TOOLS.SICKLE
        },
        [10515] = { -- whacking driller of fate
            TOOLS.ROPE,
            TOOLS.SHOVEL,
            TOOLS.PICK,
            TOOLS.MACHETE,
            TOOLS.CROWBAR,
            TOOLS.KNIFE
        }
    },
    jamChance = 60
}

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

    local funcs = config.functions[item.itemid]
    if funcs == nil then
        return false
    end

    if math.random(1, 1000) <= config.jamChance then
        Item(item.uid):transform(item.itemid + 1):decay()
        Player(cid):say("Oh no! Your tool is jammed and can't be used for a minute.", TALKTYPE_ORANGE_1)
        return true
    end

    for _, func in ipairs(funcs) do
        if func(cid, item, fromPosition, itemEx, toPosition) then
            break
        end
    end

    return true
end
and move your tools in to lib/actions.lua
 
Lua Script Error: [Test Interface]
data/actions/scripts/tools/squeezings.lua
data/actions/scripts/tools/squeezings.lua:4: attempt to index global 'TOOLS' (a nil value)
stack traceback:
[C]: in function '__index'
data/actions/scripts/tools/squeezings.lua:4: in main chunk
[Warning - Event::checkScript] Can not load script: scripts/tools/squeezings.lua
 
Back
Top