• 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 Plantation script TFS 0.4 to 1.3

Icaraii

Well-Known Member
Joined
Jan 5, 2020
Messages
469
Solutions
1
Reaction score
58
Hi guys,

I found this script and I would like very much to use on my server, however I'm getting a error that I didn't find a way to solve.

Lua:
-- Plantation System created by Vítor Bertolucci - Killua
-- 02/04/2014

local usableDirt = 103 -- Dirt to seed
local mustBeInHouse = true -- Is it only enabled inside houses? [true/false]
local fruits = {2682, 5097, 8838, 2685, 2674} -- Fruits that can grow
local failChance = 0 -- Fail chance in %

function transformIt(pos, id) -- Seeds the ground
    pos.stackpos = 0
    return doTransformItem(getThingFromPos(pos).uid, id)
end

function getUnwantedItem(pos) -- Checks for unwanted items
    for i = 1, 5 do
        pos.stackpos = i
        if getThingFromPos(pos).itemid > 0 and getThingFromPos(pos).itemid ~= 7732 then
            return true
        end
    end
    return false
end

function transformTo(pos, fromid, toid) -- Makes the plants grow
    for s = 1, 5 do
        pos.stackpos = s
        local item = getThingFromPos(pos)
        if item.itemid == fromid then
            doTransformItem(item.uid, toid)
        end
    end
end

function doRemoveMe(pos, id) -- Removes weeds
    for stackpos = 1, 5 do
      pos.stackpos = stackpos
      local item = getThingFromPos(pos)
        if item.itemid == id then
          doRemoveItem(item.uid)
        end
    end
end

function onUse(cid, item, fromPosition, itemEx, toPosition)
    if mustBeInHouse and not getHouseFromPos(toPosition) then
        return doPlayerSendCancel(cid, "You can only plant inside houses.")
    end
 
    toPosition.stackpos = 0
    local tile = getThingFromPos(toPosition)
    if tile.itemid == usableDirt and not getUnwantedItem(toPosition) and itemEx.itemid ~= 7732 then
        if item.itemid == 2552 then
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have plowed the ground.")
            doTransformItem(tile.uid, 804)
            addEvent(transformIt, math.random(44600, 48600), toPosition, usableDirt)
        end
    elseif item.itemid == 7732 and tile.itemid == 804 and not getUnwantedItem(toPosition) then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have planted the seed.")
        doRemoveItem(item.uid, 1)
        doCreateItem(6216, 1, toPosition)
        doSendMagicEffect(toPosition, CONST_ME_SMALLPLANTS)
        local chance = math.random(1, 100)
        local time1 = math.random(8500, 12600)
        local time2 = math.random(24500, 28600)
        if chance <= failChance then
            addEvent(transformTo, time1, toPosition, 6216, 2784)
            addEvent(doSendMagicEffect, time1, toPosition, 7)
            addEvent(doRemoveMe, time2, toPosition, 2784)
            addEvent(doSendMagicEffect, time2, toPosition, CONST_ME_POFF)
        else
            addEvent(transformTo, time1, toPosition, 6216, 2779)
            addEvent(doSendMagicEffect, time1, toPosition, CONST_ME_SMALLPLANTS)
            addEvent(doSendMagicEffect, time2, toPosition, CONST_ME_PLANTATTACK)
            addEvent(transformTo, time2, toPosition, 2779, fruits[math.random(1, #fruits)])
        end
    elseif itemEx.itemid == 2784 or itemEx.itemid == 2779 then
        if tile.itemid == 804 or tile.itemid == 103 then
            doRemoveItem(itemEx.uid, 1)
            doSendMagicEffect(toPosition, 3)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have removed the plant.")
        end
        else
        doPlayerSendCancel(cid, "You cannot plow this ground.")
    end
    return true
end

Lua Script Error: [Action Interface]
data/actions/scripts/plantation.lua:eek:nUse
data/actions/scripts/plantation.lua:50: attempt to call global 'getThingFromPos' (a nil value)
stack traceback:
[C]: in function 'getThingFromPos'
data/actions/scripts/plantation.lua:50: in function <data/actions/scripts/plantation.lua:44>
I'm using TFS 1.3, the error happen when I try to use the item 2552 on the floor 103.

If anyone could help me with this syntax error I would be glad.
 
Back
Top