Jump to content
Sign in to follow this  
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.

 

 

Edited by Black Ice
Adicionado loop para efeitos

Share this post


Link to post
Mock    32
Mock

Comentario: Isso que é um script bom :P

 

Aprovadoico_aprovado.png & Movidoicon_movido.giffechado22xnux7.gif

Share this post


Link to 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 !

Share this post


Link to 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}

Share this post


Link to post
~Rastaman    0
~Rastaman

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

Share this post


Link to 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

Share this post


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

Share this post


Link to 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

Edited by Conde2

Share this post


Link to post
Nighandy    0
Nighandy

fiz tudo certo mais na hora a lavanca nao puxa

o que eu faco?

Share this post


Link to 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

Share this post


Link to 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

Edited by Conde2

Share this post


Link to 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

Edited by Pivizz

Share this post


Link to 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?

Share this post


Link to post
brenotibia    0
brenotibia

ei mais qual o id do olho pra botar?

Share this post


Link to post
Pivizz    1
Pivizz

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

Share this post


Link to post
atchim    0
atchim

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

 

Obrigado

Share this post


Link to post
Pivizz    1
Pivizz

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

Share this post


Link to post
rafhael743331    0
rafhael743331

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

Share this post


Link to post
Pivizz    1
Pivizz

Que? Explica melhor, plz

Share this post


Link to 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?

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.

×