Obrigado Killua Por compartilhar.
- Fórum
- OTServ
- Recursos
- Scripting
- Actions e Talkactions
- [SDT] Minereção - Bronson Server
KI
action
[SDT] Minereção - Bronson Server
Por Killua, 04 de mar. de 2014 em Actions e Talkactions
script
otserv
6
1.9k
info
Grupo: Conde
Registrado: 03/06/08
Posts: 508
Reputação: +149

04 de março de 2014 às 12:17
info
Grupo: Campones
Registrado: 02/03/14
Posts: 59
Reputação: +10

04 de março de 2014 às 12:51
Ótimo sistema, estarei utilizando em meu Servidor rsrs.
2 semanas depois...
info
Grupo: Visconde
Registrado: 14/01/14
Posts: 276
Reputação: +30
Gênero: Masculino
Char no Tibia: Sonda retro

15 de março de 2014 às 19:43
Ai, modifica para que todas vocaçoes do servidor possam utilizar? é que meu ot é de naruto, dai tem muitas vocaçoes, para adicionar ali.. =/
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

22 de março de 2014 às 00:07
Ai, modifica para que todas vocaçoes do servidor possam utilizar? é que meu ot é de naruto, dai tem muitas vocaçoes, para adicionar ali.. =/
--- Sistema de mineração feito por Killua, XTibia.com
local pedras = {5619, 5620} -- Id das pedras que podem ser mineradas
local maxTries = 5 -- Quantas vezes a pedra sera minerada para se transformar em outra
local pedrasExaustas = {5621, 5622} -- Id das pedras nas quais as pedras mineradas vao se transformar
local chance = 70 -- Chance em % de conseguir o iron ore
local tempoQuebrada = 5 -- Tempo em minutos que a pedra permanece quebrada
local cooldown = 2 -- Em segundos
function onUse(cid, item, fromPosition, itemEx, toPosition)
local desc = tonumber(getItemSpecialDescription(itemEx.uid)) ~= nil and tonumber(getItemSpecialDescription(itemEx.uid)) or 0
local pos = getThingPos(itemEx.uid)
local a = math.random(1, #pedrasExaustas)
local idPedra = getItemIdByName(getItemName(itemEx.uid))
local function removeStone()
local t = getTileItemById(pos, pedrasExaustas[a])
if t then
doRemoveItem(t.uid, 1)
end
end
if isInArray(pedras, itemEx.itemid) then
if getPlayerStorageValue(cid, 338192) > os.time() then
doPlayerSendCancel(cid, "Voce esta cansado! Aguarde " .. getPlayerStorageValue(cid, 338192) - os.time() .. " segundos.")
return true
end
if tonumber(getItemSpecialDescription(itemEx.uid)) == nil or tonumber(getItemSpecialDescription(itemEx.uid)) < maxTries - 1 then
doItemSetAttribute(itemEx.uid, "description", desc + 1)
doPlayerSetStorageValue(cid, 338192, os.time() + cooldown)
local a = math.random(1, 100)
if a < chance then
doPlayerAddItem(cid, 5880, 1)
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_BLOCKHIT)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce obteve um iron ore!")
else
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_HITAREA)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.")
end
elseif tonumber(getItemSpecialDescription(itemEx.uid)) == maxTries - 1 then
doItemSetAttribute(itemEx.uid, "description", 0)
doTransformItem(itemEx.uid, pedrasExaustas[a])
addEvent(removeStone, tempoQuebrada * 1000 * 60)
addEvent(doCreateItem, tempoQuebrada * 1000 * 60 + 200, idPedra, 1, pos)
doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_HITAREA)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "A pedra quebrou")
end
else
doPlayerSendCancel(cid, "Aqui nao e lugar de minerar.")
end
return true
end




info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
Bom dia a todos, hoje vou postar para o SDT um "sistema" de mineração igual ao do Bronson server que eu fiz a pedido de um usuário. Se quiser ver os outros Scripts de terça, clique aqui.
Segue o modo que o usuário fez o pedido:
Primeiro crie Killua Mining System.lua em data/actions/scripts e coloque esse código:
--- Sistema de mineração feito por Killua, XTibia.com local pedras = {5619, 5620} -- Id das pedras que podem ser mineradas local maxTries = 5 -- Quantas vezes a pedra sera minerada para se transformar em outra local pedrasExaustas = {5621, 5622} -- Id das pedras nas quais as pedras mineradas vao se transformar local chance = 70 -- Chance em % de conseguir o iron ore local vocations = {11, 21, 16} -- Vocacoes que podem minerar local tempoQuebrada = 5 -- Tempo em minutos que a pedra permanece quebrada local cooldown = 2 -- Em segundos function onUse(cid, item, fromPosition, itemEx, toPosition) local desc = tonumber(getItemSpecialDescription(itemEx.uid)) ~= nil and tonumber(getItemSpecialDescription(itemEx.uid)) or 0 local pos = getThingPos(itemEx.uid) local a = math.random(1, #pedrasExaustas) local idPedra = getItemIdByName(getItemName(itemEx.uid)) local function removeStone() local t = getTileItemById(pos, pedrasExaustas[a]) if t then doRemoveItem(t.uid, 1) end end if isInArray(pedras, itemEx.itemid) then if getPlayerStorageValue(cid, 338192) > os.time() then doPlayerSendCancel(cid, "Voce esta cansado! Aguarde " .. getPlayerStorageValue(cid, 338192) - os.time() .. " segundos.") return true end if not isInArray(vocations, getPlayerVocation(cid)) then doPlayerSendCancel(cid, "Sua vocation nao pode minerar.") return true end if tonumber(getItemSpecialDescription(itemEx.uid)) == nil or tonumber(getItemSpecialDescription(itemEx.uid)) < maxTries - 1 then doItemSetAttribute(itemEx.uid, "description", desc + 1) doPlayerSetStorageValue(cid, 338192, os.time() + cooldown) local a = math.random(1, 100) if a < chance then doPlayerAddItem(cid, 5880, 1) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_BLOCKHIT) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce obteve um iron ore!") else doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_HITAREA) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.") end elseif tonumber(getItemSpecialDescription(itemEx.uid)) == maxTries - 1 then doItemSetAttribute(itemEx.uid, "description", 0) doTransformItem(itemEx.uid, pedrasExaustas[a]) addEvent(removeStone, tempoQuebrada * 1000 * 60) addEvent(doCreateItem, tempoQuebrada * 1000 * 60 + 200, idPedra, 1, pos) doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_HITAREA) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "A pedra quebrou") end else doPlayerSendCancel(cid, "Aqui nao e lugar de minerar.") end return true endAgora em data/actions/actions.xml, coloque essa tag:
Editado Março 4 por Killua