Pivizz 1 #1 Posted April 6, 2009 (edited) POR FAVOR, NÃO COMENTE FRASES COMO 'OBRIGADO', 'VALEU' OU ALGO DO TIPO. APENAS POSTE SUAS DÚVIDAS E SUAS MENSAGENS DE ERRO.OBRIGADO Máquina de criar armadura desenvolvido por Pivigu Nome: Pivigu Machine Versão: 8.4x Tipo do script: Action Servidor Testado: The Forgotten Server 0.3 b3 Autor: Pivigu (Eu) Descrição Pivigu Machine é uma máquina onde você irá posicionar três itens de sacrifício e uma armadura para formar uma nova. Você precisa escolher corretamente a quantidade e os itens que serão usados para a fabricação da nova armadura. A alavanca poderá ser puxada apenas se você por óleo nela. Ao puxa-la, se a máquina estiver aquecida (você precisa lançar um fire field no lugar correto para que a máquina aqueça) você terá uma chance de conseguir fabricar a nova armadura. O sistema é parecido com um de forja. Scripts [spoiler=Pivigu Machine Config.lua] Pivigu Machine Config.lua -- Pivigu Machine desenvolvido por Pivigucombinacao = {id1 = 5880, count1 = 2, id2 = 5904, count2 = 1, id3 = 2157, count3 = 1} -- Itens que serão sacrificadossacrpos1 = {x = 39, y = 32, z = 7, stackpos = 1} -- Posição do sacrifíciosacrpos2 = {x = 40, y = 32, z = 7, stackpos = 1}sacrpos3 = {x = 41, y = 32, z = 7, stackpos = 1}armadura = {id = 2465, count = 1, resultadoId = 2466, resultadoCount = 1} -- Armadura que será usada e a que será formadaarmadurapos = {x = 38, y = 36, z = 7, stackpos = 2} -- Posição da armaduracriararm = {x = 40, y = 37, z = 7} -- Posição que será criada a armaduramachinepos1 = {x = 39, y = 36, z = 7} -- Posição da máquina (para efeitosmachinepos2 = {x = 40, y = 36, z = 7}machinepos3 = {x = 41, y = 36, z = 7}efeitos = {2, 3, 5, 7, 2, 2, 3, 3, 5, 2, 12, 13, 14, 15} -- Efeitos que serão lançadoslixoitem = 2258 -- ID do item que será criado caso de errada a fabricaçãofogoid = {1492, 1493, 1494, 1487, 1488, 1489} -- IDs dos fogoschanceComFogo = {30, 15, 5, 30, 15, 5} -- Chance de cada fogofogopos = {x = 40, y = 33, z = 7, stackpos = 1} -- Posição do fogopoco1 = {x = 39, y = 34, z = 7} -- Posição dos poços de lavapoco2 = {x = 42, y = 34, z = 7} [/spoiler_name] [spoiler_name=Pivigu Machine.lua] Pivigu Machine.lua dofile("data/actions/Pivigu Machine Config.lua")function onUse(cid, item, position) if getGlobalStorageValue(2050) ~= 1 then doPlayerSendCancel(cid, "Você não pode usar este item.") if item.itemid == 1945 then doTransformItem(item.uid, 1946) else doTransformItem(item.uid, 1945) end return FALSE end local chance = 0 for i = 1, #fogoid do if getThingFromPos(fogopos).itemid == fogoid[i] then chance = chanceComFogo[i] end end if chance == 0 then doPlayerSendCancel(cid, "A máquina não está preparada.") if item.itemid == 1945 then doTransformItem(item.uid, 1946) else doTransformItem(item.uid, 1945) end return FALSE end local thingsacr1 = getThingFromPos(sacrpos1) local thingsacr2 = getThingFromPos(sacrpos2) local thingsacr3 = getThingFromPos(sacrpos3) local thingarmor = getThingFromPos(armadurapos) local success = 0 local criaritem = lixoitem local criarcount = 1 if thingsacr1.itemid == combinacao.id1 and thingsacr2.itemid == combinacao.id2 and thingsacr3.itemid == combinacao.id3 then if thingsacr1.type == combinacao.count1 and thingsacr2.type == combinacao.count2 and thingsacr3.type == combinacao.count3 then if thingarmor.itemid > 1 then doRemoveItem(thingsacr1.uid, combinacao.count1) doRemoveItem(thingsacr2.uid, combinacao.count2) doRemoveItem(thingsacr3.uid, combinacao.count3) success = 1 end end endif thingarmor.itemid > 1 then doRemoveItem(thingarmor.uid, armadura.count)end if thingarmor.itemid ~= armadura.id then doPlayerSendCancel(cid, "Você não tem uma armadura para modificar.") return FALSE end local tabela1 = {1, 3, 5, 7, 10}local tabela2 = {2, 3, 5, 6, 9}local tabela3 = {1, 2, 4, 8, 9}for i, v in ipairs(tabela1) doaddEvent(doSendMagicEffect, v*1000, machinepos1, efeitos[math.random(#efeitos)])endfor i, v in ipairs(tabela2) doaddEvent(doSendMagicEffect, v*1000, machinepos2, efeitos[math.random(#efeitos)])endfor i, v in ipairs(tabela3) doaddEvent(doSendMagicEffect, v*1000, machinepos3, efeitos[math.random(#efeitos)])end sendShoot(poco1, poco2, 0) addEvent(sendShoot, 250, poco2, poco1, 0) addEvent(sendShoot, 250, poco1, {x = 40, y = 36, z = 7}, 0) sendShoot(poco2, {x = 40, y = 36, z = 7}, 0) pegarFogo({x = 40, y = 34, z = 7}, 0,36) pegarFogo({x = 40, y = 36, z = 7}, 0,36) pegarFogo({x = 43, y = 33, z = 7}, 0,15) pegarFogo({x = 37, y = 33, z = 7}, 0,15) if success > 0 then criaritem = armadura.resultadoId criarcount = armadura.resultadoCount end if math.random(1,100) > chance then criaritem = lixoitem end addEvent(doCreateItem, 11*1000, criaritem, criarcount, criararm) return TRUEend function sendShoot(frompos, topos, count) if count < 20 then doSendDistanceShoot(frompos, topos, 3) addEvent(sendShoot, 500, frompos, topos, count + 1) endendfunction pegarFogo(pos, count, effect) if count < 40 then doSendMagicEffect(pos,effect) addEvent(pegarFogo, 250, pos, count + 1, effect) endend [spoiler=containers.lua] Adicione em containers.lua if item.type == TYPE_OIL and itemEx.uid == 2050 then setGlobalStorageValue(itemEx.uid, 1) addEvent(setGlobalStorageValue, 60*1000, itemEx.uid, 0) local splash = doCreateItem(ITEM_POOL, item.type, toPosition) doDecayItem(splash) doChangeTypeItem(item.uid, TYPE_EMPTY) return TRUE end Instalando o script [spoiler=Instalando] Para instalar a Pivigu Machine, você deve copiar os arquivos para suas respectivas pastas: Pivigu Machine Config.lua: data/actions Pivigu Machine.lua: data/actions/scripts/concursos Adicionar em actions/scripts/liquids/containers.lua o script citado acima. Adicione em actions.xml <action uniqueid="2050" script="concursos/Pivigu Machine.lua"/> Adicione o uniqueid 2050 na alavanca. Configurando [spoiler=Configuração] Para configurar você deverá modificar as variáveis que estão localizadas no Pivigu Machine Config.lua. Cada variável tem a sua explicação ao lado, facilitando o entendimento do leitor. Caso haja dúvidas, poste neste tópico. Download Aqui está o download de todos os scripts e o mapa para demonstração. Download Screens Prêmios Este script ganhou a nota 99, a mais alta do Mini Concurso de Scripting #1. Direitos Todo o conteúdo foi desenvolvido por Pivigu (neste fórum com o nick de Pivizz) e deverá, sempre, continuar com seus respectivos créditos. Você pode editar o script do modo que desejar, desde que não remova os créditos. Edited January 24, 2011 by Black Ice Adicionado loop para efeitos Share this post Link to post
Mock 32 #2 Posted April 6, 2009 Comentario: Isso que é um script bom Aprovado & Movido Share this post Link to post
~Rastaman 0 #3 Posted April 6, 2009 Disculpa comenta aki, mais você sabe se funfa em TFS, e outra, como eu edito quais os itens usadospara fazer cada armor, tem como mexer? Vlw, e desculpa incomoda ! Share this post Link to post
Pivizz 1 #4 Posted April 6, 2009 Disculpa comenta aki, mais você sabe se funfa em TFS, e outra, como eu edito quais os itens usadospara fazer cada armor, tem como mexer? Vlw, e desculpa incomoda ! Você postou no lugar correto. Ele funciona em TFS 0.3 b3 e o arquivo para configurar os itens que você irá usar fica no Pivigu Machine Config.lua combinacao = {id1 = 5880, count1 = 2, id2 = 5904, count2 = 1, id3 = 2157, count3 = 1} armadura = {id = 2465, count = 1, resultadoId = 2466, resultadoCount = 1} Share this post Link to post
~Rastaman 0 #5 Posted April 6, 2009 Muito obrigado, vou editar e obviamente deixarei os creditos ;D Parabens cara, e obrigado pelo esclarescimento ! Share this post Link to post
Shyzoul 0 #6 Posted April 6, 2009 NUSS. Pivigu é um forte candidato contra o Mock Oo' sempre fazendo scripts MUITO UTEIS para quem tem servidor Uma duvida: Meu server é o TFS 0.3.2 funfa nele Oo' pq não acho aqui no forum o que vc usa acho que ele é melhor. Dicas: Nos proximos scripts poe 1° as tags como actin e dps o arquivo .lua Sem Mais. Shyzol Share this post Link to post
Pivizz 1 #7 Posted April 7, 2009 Obrigado, mas não quero competir com ninguém O meu servidor eu peguei no forum oficial do TFS. Não sei se posso por o link aqui, qualquer coisa procura no google que você acha. Agora eu estou usando o The Forgotten Crying Damson 3 Abraço Edited Quer dizer, se eu não quisesse competir eu não ia participar dos concursos, né.. Mas acho que você entendeu o que eu quis dizer ^^' Share this post Link to post
Conde2 0 #8 Posted April 10, 2009 (edited) Gostei pra caramba do script mas porque você nao usa o FOR ?? de vez de usa todos esses addEvent ?? Isso dai pode buga demais o script =P Usa uma coisa mais facil =D addEvent(doSendMagicEffect, 1*1000, machinepos1, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 3*1000, machinepos1, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 5*1000, machinepos1, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 7*1000, machinepos1, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 10*1000, machinepos1, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 2*1000, machinepos2, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 3*1000, machinepos2, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 5*1000, machinepos2, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 6*1000, machinepos2, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 9*1000, machinepos2, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 1*1000, machinepos3, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 2*1000, machinepos3, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 4*1000, machinepos3, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 8*1000, machinepos3, efeitos[math.random(#efeitos)]) addEvent(doSendMagicEffect, 9*1000, machinepos3, efeitos[math.random(#efeitos)]) local tabela1 = {1, 3, 5, 7, 10}local tabela2 = {2, 3, 5, 6, 9} local tabela3 = {1, 2, 4, 8, 9} for i, v in ipairs(tabela1) do addEvent(doSendMagicEffect, v*1000, machinepos1, efeitos[math.random(#efeitos)]) end for i, v in ipairs(tabela2) do addEvent(doSendMagicEffect, v*1000, machinepos2, efeitos[math.random(#efeitos)]) end for i, v in ipairs(tabela3) do addEvent(doSendMagicEffect, v*1000, machinepos3, efeitos[math.random(#efeitos)]) end SE TIVER DANDO ERRO TENTA USA ASSIM:addEvent(doSendMagicEffect, tabela3[v]*1000, machinepos3, efeitos[math.random(#efeitos)]) EH QUE NAO LEMBRO DE COR COMO ERA SAHUDAHUDHUDUSA Edited April 10, 2009 by Conde2 Share this post Link to post
Nighandy 0 #9 Posted April 10, 2009 fiz tudo certo mais na hora a lavanca nao puxa o que eu faco? Share this post Link to post
Pivizz 1 #10 Posted April 10, 2009 Ponha óleo na alavanca E fogo no lugar correto, assim como mostra na imagem Se não conseguir posta aí Abraços Share this post Link to post
Conde2 0 #11 Posted April 10, 2009 (edited) @Pivizz Se tento faze o que eu falei ?? Estou esperando resposta se deu certo =D Eh que nao to podendo testar se nao eu falava se daquele jeito que te falei ali em cima deu certo ou nao xD Flw @Edit Que bom que deu certo =P Fico feliz em ajudar xD Seria bom vc aprende um poco do comando FOR Ele eh muitoooo util Edited April 11, 2009 by Conde2 Share this post Link to post
Pivizz 1 #12 Posted April 10, 2009 (edited) Não testei, mas pelo que vejo é o de baixo que está correto, vou dar uma testada e já edito aqui Edited Não, não... Tá certo do jeito que tu disse mesmo. Funcionou Vou editar no script Edited April 10, 2009 by Pivizz Share this post Link to post
Shyzoul 0 #13 Posted April 19, 2009 Pivigu Tipo não acho o oléo qual id dele ? e qual seria a posição que vou tacar o fire field? na parte do meio? Share this post Link to post
brenotibia 0 #14 Posted April 19, 2009 ei mais qual o id do olho pra botar? Share this post Link to post
Pivizz 1 #15 Posted April 20, 2009 ID do óleo é um container type 3, /i 2005, 3 Share this post Link to post
atchim 0 #16 Posted April 27, 2009 a armadura vai direto para a bp do individuo?? ou aparece aonde?? Obrigado Share this post Link to post
Pivizz 1 #17 Posted April 27, 2009 A armadura irá aparecer no local definido nas configurações. Share this post Link to post
rafhael743331 0 #18 Posted May 16, 2009 precisa mesmo por akelas duas "coisas que en auguns ots são usadas pra encantar armas? Share this post Link to post
LoboxD 0 #20 Posted May 16, 2009 Help Tipow Eu To Tentando Coloka No Meu Ot So Que Nao Consigu Joga O Oil No Lugar Ond Eh Pra Joga O Oil Tah Dentro De Um Blade?? E Se Tiver Como Eu Jogo Hem Cima Da Alavanca? E Mais Uma Pergunta Tem Como Fazer Outra Combinacao Pra Sair Outro Item? Share this post Link to post