Olá xTibianos, estou aqui pra trazer um novo tutorial feito pelo D@rK.
Sistema de Mineração

--------------------------------------------------------------------------------
Neste tutorial irei explicar como você ira fazer um script de mineração, alguns detalhes:
-
O script é facil de se editar
-
Pode configurar os itens que será minerado
-
Pode configurar a chance de a pick quebrar
-
Pode configurar a frequencia de não minerar nada
Algumas informações sobre a action:
-
Tem exausted
-
Você minerará dando use numa pedra
-
Para poder minerar é presiso ter em uma das duas mão uma dwarven pickaxe (ID: 4874)
-
A 5 niveis, o 1° é o item mais facil de minerar,e o 5° o mais dificil
-
Ao der use na pedra ela soltará um som, dependendo doque foi minerado
-
A pick pode se quebrar e sumir, e você será atingido pelos estilhasos, perdendo um certo hp
Bonus: Magia para você poder guardar sua pick
Agora que ja expliquei vamos para o script:
Abra a pasta do seu OT e va até data/action/script, copie qualquer arquivo dela e renomei para mineracao.lua, abra o arquivo e apague tudo que estiver la dentro, e cole isso:
function onUse(cid, item, frompos, item2, topos)
item1 = 1293
item2 = 5944
item3 = 6536
item4 = 2145
item5 = 2154
porcentagem = 10
puff = 200
pick = math.random(1, 100)
rand = math.random(1, puff)
hit = math.random(10, 30)
pick1 = getPlayerSlotItem(cid, 5)
pick2 = getPlayerSlotItem(cid, 6)
if exhaust(cid, 9000, 3) == 1 then
if pick1.itemid == 4874 or pick2.itemid == 4874 then
if pick >= porcentagem then
if rand >= 1 and rand <= 50 then
doSendAnimatedText(topos,'Tck',210)
doSendMagicEffect(topos,3)
doPlayerAddItem(cid,item1,1)
elseif rand >= 51 and rand <= 81 then
doSendAnimatedText(topos,'Tuk',210)
doSendMagicEffect(topos,3)
doPlayerAddItem(cid,item2,1)
elseif rand >= 82 and rand <= 92 then
doSendAnimatedText(topos,'Tnk',210)
doSendMagicEffect(topos,3)
doPlayerAddItem(cid,item3,1)
elseif rand >= 93 and rand <= 100 then
doSendAnimatedText(topos,'Tin',210)
doSendMagicEffect(topos,3)
doPlayerAddItem(cid,item4,1)
elseif rand >= 101 and rand <= 103 then
doSendAnimatedText(topos,'Tifn',210)
doSendMagicEffect(topos,3)
doPlayerAddItem(cid,item5,1)
else
doSendAnimatedText(topos,'Tuff',210)
doSendMagicEffect(topos,2)
end
else
doPlayerAddHealth(cid,-hit)
doPlayerSay(cid, hit, 16)
doPlayerSendTextMessage(cid, 21,'A pick quebrou e você foi atingido pelos estilhasos. Use uma pick nova')
doSendMagicEffect((getPlayerPosition(cid)),31)
doPlayerRemoveItem(cid,4874,1)
setPlayerStorageValue(cid,pick,-1)
end
end
end
end
Explicação
1293 -- ID do item que é muito facil de ser minerado
5944 -- ID do item que é facil de ser minerado
6536 -- ID do item que é mais ou menos facil de ser minerado
2145 -- ID do item que é dificil de ser minerado
2154 -- ID do item que é muito dificil de ser minerado
10 -- Chance que a pick irá quebrar
200 -- Aqui é a chance de não minerar nada (coloque um numero, quanoo maior o numero, mais chance de não minerar nada, coloque apenas numeros acima de 103, por exemplo: 104,105,...115,...230,... etc)
Agora vá até data/action/ e abra o arquivo actions.xml e adicione isso:
<action itemid="1356" script="mineracao.lua" />
1356 -- Aqui é o ID da pedra que será minerada (Aonde você dara use para minerar)
mineracao.lua -- aqui é o nome do arquivo que nós criamos
~~º Bonus º~
Você não tem aonde guardar a sua Pick? Seus problemas acabaram, chego a Magic Bag, basta apenas falar okos e sua pick vai para um compartimento magico, agora você quer tira ela de lá, simples fale dokos e pronto ela ja esta com você, simples não? Só tem uma coisa, você presisa ter no minimo 300 de mana e quando você guarda você gasta metade da mana que você tem, e quando você tira você gasta toda a sua mana... Vamos lá
Abra apasta do seu OT e va até data/talckactions/scripts, copie qualquer arquivo de la e renomei para minera.lua, abra o arquivo e apague tudo que estiver la dentro e cole isso:
function onSay(cid, words, param)
qmana = 300
mana = getPlayerMana(cid)
pick = getPlayerStorageValue(cid,pickc)
pickk = getPlayerItemCount(cid,4874)
player = getPlayerPosition(cid)
pos1 = {x=player.x+1, y=player.y, z=player.z}
pos2 = {x=player.x-1, y=player.y, z=player.z}
pos3 = {x=player.x, y=player.y+1, z=player.z}
pos4 = {x=player.x, y=player.y-1, z=player.z}
pos5 = {x=player.x-1, y=player.y-1, z=player.z}
pos6 = {x=player.x+1, y=player.y+1, z=player.z}
pos7 = {x=player.x-1, y=player.y+1, z=player.z}
pos8 = {x=player.x+1, y=player.y-1, z=player.z}
if words == 'okos' then
if pickk > 0 and pick == -1 then
if mana >= qmana then
doPlayerSendTextMessage(cid, 21,'Você guardou sua pick')
doPlayerAddMana(cid,-mana/2)
doPlayerSay(cid,words,1)
doPlayerRemoveItem(cid,4874,1)
setPlayerStorageValue(cid,pickc,1)
doSendMagicEffect(pos1,10)
doSendMagicEffect(pos2,10)
doSendMagicEffect(pos3,10)
doSendMagicEffect(pos4,10)
doSendMagicEffect(pos5,10)
doSendMagicEffect(pos6,10)
doSendMagicEffect(pos7,10)
doSendMagicEffect(pos8,10)
doSendMagicEffect(player,17)
else
doPlayerSendTextMessage(cid, 21,'Você não tem mana suficiente')
end
else
doPlayerSendTextMessage(cid, 21,'Sorry, not possible')
end
end
300 -- Aqui é a quantidade de mana que ele tera que ter
Agora va até data/talkactions/, abra o arquivo talkactions.xml e adicione isso:
<talkaction words="okos" script="minera.lua" /><talkaction words="dokos" script="minera.lua" />
minera.lua -- nome do arquivo que nós criamos
O tutorial fica por aqui, espero que tenham gostado, postem duvidas sugestões ou criticas construtivas.
Creditos: D@rK
Espero que gostem...
Atenciosamente,
~DD ou ~DevilzinhUu