Sistema de Plantação
Crie cultivo.lua em data/actions/scripts e cole:
-- 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
Em actions.xml coloque:
<action itemid="2552" event="script" value="cultivo.lua"/>
<action itemid="7732" event="script" value="cultivo.lua"/>
Use a enchada (ID: 2552) para arar o solo e plante uma semente (ID: 7732) nele.