Ir para conteúdo
Entre para seguir isso  
Pivizz

Máquina para criar armadura

Recommended Posts

Pivizz    1
Pivizz

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 Pivigu
combinacao = {id1 = 5880, count1 = 2, id2 = 5904, count2 = 1, id3 = 2157, count3 = 1} -- Itens que serão sacrificados
sacrpos1 = {x = 39, y = 32, z = 7, stackpos = 1} -- Posição do sacrifício
sacrpos2 = {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á formada
armadurapos = {x = 38, y = 36, z = 7, stackpos = 2} -- Posição da armadura
criararm = {x = 40, y = 37, z = 7} -- Posição que será criada a armadura

machinepos1 = {x = 39, y = 36, z = 7} -- Posição da máquina (para efeitos
machinepos2 = {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çados
lixoitem = 2258 -- ID do item que será criado caso de errada a fabricação

fogoid = {1492, 1493, 1494, 1487, 1488, 1489} -- IDs dos fogos
chanceComFogo = {30, 15, 5, 30, 15, 5} -- Chance de cada fogo
fogopos = {x = 40, y = 33, z = 7, stackpos = 1} -- Posição do fogo

poco1 = {x = 39, y = 34, z = 7} -- Posição dos poços de lava
poco2 = {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
end

if 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) 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

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 TRUE
end

function sendShoot(frompos, topos, count)
if count < 20 then
doSendDistanceShoot(frompos, topos, 3)
addEvent(sendShoot, 500, frompos, topos, count + 1)
end
end

function pegarFogo(pos, count, effect)
if count < 40 then
doSendMagicEffect(pos,effect)
addEvent(pegarFogo, 250, pos, count + 1, effect)
end
end

 

 

[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

 

pivigumachine2.pngpivigumachine1.png

 

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.

 

 

Editado por Black Ice
Adicionado loop para efeitos

Compartilhar este post


Link para o post
Mock    32
Mock

Comentario: Isso que é um script bom :P

 

Aprovadoico_aprovado.png & Movidoicon_movido.giffechado22xnux7.gif

Compartilhar este post


Link para o post
~Rastaman    0
~Rastaman

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 !

Compartilhar este post


Link para o post
Pivizz    1
Pivizz
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}

Compartilhar este post


Link para o post
~Rastaman    0
~Rastaman

Muito obrigado, vou editar e obviamente deixarei os creditos ;D Parabens cara, e obrigado pelo esclarescimento !

Compartilhar este post


Link para o post
Shyzoul    0
Shyzoul

NUSS.

Pivigu é um forte candidato contra o Mock Oo'

sempre fazendo scripts MUITO UTEIS para quem tem servidor :P

 

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

Compartilhar este post


Link para o post
Pivizz    1
Pivizz

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 ^^'

Compartilhar este post


Link para o post
Conde2    0
Conde2

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

Editado por Conde2

Compartilhar este post


Link para o post
Nighandy    0
Nighandy

fiz tudo certo mais na hora a lavanca nao puxa

o que eu faco?

Compartilhar este post


Link para o post
Pivizz    1
Pivizz

Ponha óleo na alavanca ;)

E fogo no lugar correto, assim como mostra na imagem

 

Se não conseguir posta aí :)

Abraços

Compartilhar este post


Link para o post
Conde2    0
Conde2

@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

Editado por Conde2

Compartilhar este post


Link para o post
Pivizz    1
Pivizz

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

Editado por Pivizz

Compartilhar este post


Link para o post
Shyzoul    0
Shyzoul

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?

Compartilhar este post


Link para o post
brenotibia    0
brenotibia

ei mais qual o id do olho pra botar?

Compartilhar este post


Link para o post
Pivizz    1
Pivizz

ID do óleo é um container type 3, /i 2005, 3

Compartilhar este post


Link para o post
atchim    0
atchim

a armadura vai direto para a bp do individuo?? ou aparece aonde??

 

Obrigado

Compartilhar este post


Link para o post
Pivizz    1
Pivizz

A armadura irá aparecer no local definido nas configurações.

Compartilhar este post


Link para o post
rafhael743331    0
rafhael743331

precisa mesmo por akelas duas "coisas que en auguns ots são usadas pra encantar armas?

Compartilhar este post


Link para o post
Pivizz    1
Pivizz

Que? Explica melhor, plz

Compartilhar este post


Link para o post
LoboxD    0
LoboxD

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?

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×