Killua 389 Postado Março 4, 2014 Share Postado Março 4, 2014 (editado) 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: O player da vocação (11, 16, 21) usa o item (ID: 2553) Nessas Pedras (ID's: 5619, 5620), Com isso ele PODE OU NÂO Obter (70% Obter, 30% não obter) um Iron Ore (ID:5880) OBS² : Ao player usar a pick nas pedras e obter sucesso aparecerá o efeito na pedra (CONST_ME_BLOCKHIT = 3)Menssagem no server log: (Você obteve 1 iron ore!) OBS³: Caso o player use a pick e não obter sucesso aparecerá o efeito na pedra (CONST_ME_HITAREA = 9 )Menssagem no server log: (Você Falhou!) OBS³: Após 20 "pikaretadas" (use da pick na pedra) as pedras vão se "quebrar" transformando-as nos itens (ID's: 5621,5622) 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 end Agora em data/actions/actions.xml, coloque essa tag: <action itemid="2553" script="Killua Mining System.lua"/> Editado Março 4, 2014 por Killua Link para o comentário https://xtibia.com/forum/topic/229507-sdt-minere%C3%A7%C3%A3o-bronson-server/ Compartilhar em outros sites More sharing options...
dyego2008 149 Postado Março 4, 2014 Share Postado Março 4, 2014 Obrigado Killua Por compartilhar. Link para o comentário https://xtibia.com/forum/topic/229507-sdt-minere%C3%A7%C3%A3o-bronson-server/#findComment-1618923 Compartilhar em outros sites More sharing options...
HeltonMuniz2 10 Postado Março 4, 2014 Share Postado Março 4, 2014 Ótimo sistema, estarei utilizando em meu Servidor rsrs. Link para o comentário https://xtibia.com/forum/topic/229507-sdt-minere%C3%A7%C3%A3o-bronson-server/#findComment-1618933 Compartilhar em outros sites More sharing options...
Duuhzinhow 30 Postado Março 15, 2014 Share Postado Março 15, 2014 Ai, modifica para que todas vocaçoes do servidor possam utilizar? é que meu ot é de naruto, dai tem muitas vocaçoes, para adicionar ali.. =/ Link para o comentário https://xtibia.com/forum/topic/229507-sdt-minere%C3%A7%C3%A3o-bronson-server/#findComment-1623640 Compartilhar em outros sites More sharing options...
Killua 389 Postado Março 22, 2014 Autor Share Postado Março 22, 2014 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 Link para o comentário https://xtibia.com/forum/topic/229507-sdt-minere%C3%A7%C3%A3o-bronson-server/#findComment-1627112 Compartilhar em outros sites More sharing options...
duasrodas 5 Postado Março 22, 2014 Share Postado Março 22, 2014 Legal o sistema,seus scripts são otimos,reputado merecidamente! Link para o comentário https://xtibia.com/forum/topic/229507-sdt-minere%C3%A7%C3%A3o-bronson-server/#findComment-1627125 Compartilhar em outros sites More sharing options...
Posts Recomendados