This script has been created by me and some help from OTLand ( as far as I know mostly from Xikini )
its a simple mining system which allows you to mining items and theres a 10% chance that the stone breaks and spawns back after 5min
How to make the script work:
Your stones which should be used as mining must have actionID: 40041.
<- In this part you must add your stone ids which should be spawned back after the stone got broken.
in config part you can add items which should be able to mining and you can change the chance of it aswell.
100 means = 100%
10 means = 10%
<- means you can mining every 5sec.
Code:
its a simple mining system which allows you to mining items and theres a 10% chance that the stone breaks and spawns back after 5min
How to make the script work:
Your stones which should be used as mining must have actionID: 40041.
Lua:
local stones = {5750, 5751, 5752, 5753, 5754}
in config part you can add items which should be able to mining and you can change the chance of it aswell.
100 means = 100%
10 means = 10%
Lua:
local delay_timer = 5
Code:
Lua:
local rewards = {
{ item = 8298, count = 1, chance = 50 },
{ item = 8299, count = 1, chance = 50 },
{ item = 8301, count = 1, chance = 50 },
{ item = 8302, count = 1, chance = 50 },
{ item = 8303, count = 1, chance = 50 },
{ item = 8310, count = 1, chance = 50 },
{ item = 9971, count = 1, chance = 50 },
{ item = 5944, count = 1, chance = 100 }
}
local storage = 5000
local delay_timer = 5
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
local cur_time, cur_storage = os.time(), player:getStorageValue(storage)
if cur_storage > cur_time then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You can mining again in " .. os.date("!%Hh %Mm %Ss", cur_storage - cur_time) .. ".")
return true
end
local function addbackstone()
local stones = {5750, 5751, 5752, 5753, 5754}
local stone = Game.createItem(stones[math.random(#stones)], 1, toPosition)
stone:setActionId(40041)
end
if player:getLevel() < 10 then
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You dont have the required level of 10 to mining.")
return true
end
if not target then
return false
end
if not target:isItem() then
return false
end
if target.actionid ~= 40041 then
local pos = player:getPosition()
player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You cannot use it here.')
return false
end
if target.actionid == 40041 then
local ran = math.random(100)
if ran <= 10 then
toPosition:sendMagicEffect(3)
target:remove()
addEvent(addbackstone, 120000)
return true
end
end
local text = "You have found "
for i = 1, #rewards do
local rand = math.random(1000)
if rand <= rewards[i].chance then
player:addItem(rewards[i].item, rewards[i].count)
if text ~= "You have found " then
text = text .. ", "
end
text = text .. rewards[i].count .. " " .. ItemType(rewards[i].item):getName()
end
end
if text == "You have found " then
text = text .. "nothing"
end
player:sendTextMessage(36, text .. ".")
cur_time = cur_time + delay_timer
player:setStorageValue(storage, cur_time)
return true
end