Ir para conteúdo

Mining System


miupinho

Posts Recomendados

Galera do XTibia, venho trazer um script bem simpleszinho mas que abre um leque de opções de RPG e diversão pro seu OT.. Trata-se do Mining System, um sistema que você pode utilizar a pick normal (ou uma outra pick especial) para minerar a terra e tentar conseguir items que você pode trocar por dinheiro ou items. São 70 leveis de Mining que vão upando conforme você minera.

 

Enfim, vamos ao script:

actions\scripts\mining.lua:

Citar
terra = {351,352,353,354,355} levels = {[-1] = 2229, ---- skull[0] = 1294, --- small stone[1] = 3976, --- worm[10] = 2149, -- Small Emerald[12] = 2146, -- Small Sapphire[15] = 2145, -- Small Diamond [17] = 2150, -- Small Amethyst[20] = 2147, -- Small Ruby[25] = 2144, -- Black Pearls [27] = 2143, -- White Pearls[30] = 2157, -- Gold Nuggets[35] = 2156, --- red gem[36] = 2158, -- blue gem [37] = 2155, -- green gem [38] = 2153, -- violet gem[39] = 2154, -- yellow gem[40] = 7761, -- small enchanted emerald [42] = 7759, -- Small Enchanted Sapphiire[45] = 7762, -- Small Enchanted Amethyst[50] = 7760, -- Small Enchanted Ruby[70] = 2177  -- Life Crystal} local config = {storage = 19333,chance = 40, --- chance de achar um item ou nãok = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante)experience = 19334}function onUse(cid, item, fromPosition, itemEx, toPosition)local drops = {}function getDrops(cid)for i= -1,getPlayerStorageValue(cid, config.storage) doif levels[i] thentable.insert(drops, levels[i])endendreturn trueendif isInArray(terra, itemEx.itemid) thengetDrops(cid)doPlayerSetStorageValue(cid, config.experience, getPlayerStorageValue(cid, config.experience)+1)local experience = getPlayerStorageValue(cid, config.experience)if experience >= (8+(getPlayerStorageValue(cid, config.storage)^2))/config.k thendoPlayerSetStorageValue(cid, config.storage, getPlayerStorageValue(cid, config.storage)+1)doPlayerSendTextMessage(cid, 27, "Congratulations, you have leveled! Your currect level is "..getPlayerStorageValue(cid, config.storage) ..".")if getPlayerStorageValue(cid, config.storage) == 50 thendoPlayerSendTextMessage(cid, 20, "For reaching level "..getPlayerStorageValue(cid, config.storage) .." you have been awarded with Mining Helmet.")doPlayerAddItem(cid, 7497, 1, true)endendif config.chance >= math.random(1,100) thenif #drops >= 1 thenlocal item = drops[math.random(1,#drops)]doPlayerSendTextMessage(cid, 27, "You have found a "..getItemNameById(item)..".")doPlayerAddItem(cid, item, 1, true)enddoSendMagicEffect(toPosition, 3)elsedoSendMagicEffect(toPosition, 2)return trueendelseif itemEx.itemid == item.itemid thendoPlayerSendTextMessage(cid, 27, "You're currenctly level "..getPlayerStorageValue(cid, config.storage)..".")elsereturn falseendreturn trueend

 

Em terra, você coloca os ids dos chãos em que é possível minerar, levels é o level da skill e o ID do respectivo item que você fica capaz de conseguir após alcançar esse nível. Em outras palavras, no começo você só consegue minerar skull, no nv 70 você vai ter a chance de conseguir todos os items anteriores e não só life crystal. O restante das configurações está no meio do script:

 

local config = {

storage = 19333,

chance = 40, --- chance de achar um item ou não

k = 2, --- constante de level.. quanto maior, mais fácil é upar. (a fórmula é level ao quadrado dividido pela constante)

experience = 19334

}

o storage é onde vai salvar o seu nível

chance é a chance de pegar um item cada vez que minera.

k é a constante de level, o nivel 10 precisa de 10*10/k de experiencia para ser alcançado (com k sendo 2 dá 50 de experiencia), ou seja, com 50 picaretadas na terra vc pega nivel 10.

experience é o storage que fica salvo sua experiencia.

 

Bônus: Ao alcançar level 50 você ganha o Mining Helmet como prêmio, ele não faz nada de especial mas é como se fosse um troféu. No meu server tem uma série de troféus que voce pode colecionar e fica como sendo uma conquista épica para os players.

 

e no actions.xml:

<action itemid="2553" script="mining.lua"/>

OBS: Sugiro que vcs utilizem uma outra pick pra não dar conflito mas você faz oque quiser.

PS: Uma fotinha pra vcs verem

10383795_1447596885491791_75281408890328

 

Autor: WhiteWolf

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...