Ir para conteúdo

Sistema De Forja


pablo361

Posts Recomendados

Meu Novo sistema de Forja,
Procurei aqui no Xtibia e não achei um Sistema de Forja Completo e Facil de Configurar.
Meu Segundo Script *-*

Versão Testada: TFS 0.4 (8.60)
Sistema de Forja V1.0
Vamos la

Video:




em Actions.xml Adicione:
<action uniqueid="16451" event="script" value="forjar.lua" />



Crie um Arquivo LUA em Actions>Scripts com o nome de "forjar.lua" e adicione isso dentro:

function onUse(cid, item, item2, frompos, topos, pos)local config = {["Magic Plate Armor"] = {t1=2476,t2=2464,t3=2472}, -- t1 = ID do ITEM 1 |---| t2 = ID do ITEM 2 |---| t3 = ID do ITEM a ser FORJADO --["Dragon Scale Mail"] = {t1=2489,t2=2487,t3=2492},}local r1 = {x = 222, y = 217, z = 7, stackpos= 2} -- Posição 1 ( NÃO MEXA NO stackpos= 2 )local r2 = {x = 224, y = 217, z = 7, stackpos= 2} -- Posição 2 ( NÃO MEXA NO stackpos= 2 )local r3 = {x = 223, y = 217, z = 7} -- Posição do Item a Ser Criadolocal q1 = getThingfromPos(r1)local q2 = getThingfromPos(r2)for i, x in pairs(config) doif (q1.itemid == x.t1 and q2.itemid == x.t2) or (q1.itemid == x.t2 and q2.itemid == x.t1) thendoRemoveItem(q1.uid, 1)doRemoveItem(q2.uid, 1)addEvent(doCreateItem, 1000, x.t3, 1, r3)doSendMagicEffect(r3, 47)addEvent(doSendMagicEffect, 900, r3, 39)doPlayerSendTextMessage(cid, 22, "Parabéns, Você Forjou Um " .. i .. ".")breakendendreturn TRUEend



na Alavanca Colocar a UniqueID: 16451

Configurando:
["Magic Plate Armor] = {t1=2476,t2=2464,t3=2472},

Vermelho: Nome do Item a Ser Forjado
Azul: ID do Item1 necessário para forjar o item Vermelho
Roxo: ID do Item2 necessário para forjar o item Vermelho
Verde: ID do Item Vermelho

Você Também Pode Adicionar Novas "Receitas" para Forjas !!
Só Adicionar só 1 Linha a Mais Iguais a Outras mudando as Configurações

Posição:
local r1 = {x = 222, y = 217, z = 7, stackpos= 2} -- Posição do Item1 ( NÃO MEXA NO stackpos= 2 )
local r2 = {x = 224, y = 217, z = 7, stackpos= 2} -- Posição do Item2 ( NÃO MEXA NO stackpos= 2 )
local r3 = {x = 223, y = 217, z = 7} -- Posição do Item Vermelho


Talkaction para mostrar os Itens de Forja

talkactions.xml Adicione isso:

<talkaction words="!forjas" script="forjas.lua"/>



Crie um arquivo forjas.lua na pasta talkactions>scripts e adicione isso dentro:

function onSay(cid, words, param)file = io.open('forjas.txt','r')notice = file:read(-1)doShowTextDialog(cid,9004,notice)file:close()end



Agora na Pasta Principal do Seu OT, onde tem a pasta DATA, as DLLs e o .exe do seu ot
Crie um Arquivo .txt ( arquivo de texto ), renomeie para forjas.txt

e dentro dele adicione os materiais de Forjas para os seus Players não se perderem.


Bom é Isso, Gostou ? REP+ =)

Aprendii usar in pairs(table) *--*
Créditos: Eu Pelo Script, Idéia sei la quem teve '-', e aos meus amigos que estão me ajudando bastante =)

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 1 month later...

sera q teria como fazer para colocar todos os itens da formula para só precisar de 1 sqm ? q eu queria fazer mais de 2 itens para fusão queria poder colocar 6 itens da formula em 1 sqm sera q tem como ?

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 1 month later...

talkactions nem pego :/

 

 [17/08/2011 15:11:18] data/talkactions/scripts/forjas.lua:3: attempt to index global 'file' (a nil value)
[17/08/2011 15:11:18] stack traceback:
[17/08/2011 15:11:18] 	data/talkactions/scripts/forjas.lua:3: in function <data/talkactions/scripts/forjas.lua:1> 

 

EDIT- deixa pra lá , eu que tinha feito errado :D

 

REP+,obrigado

Editado por LipeFioravanti
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

como faz pra determinar uma quantidade de item?

por exemplo:

25 red piece of cloth

 

facil cara so coloka assim {t1=2476,25,

 

acho q é assim no casso id 2476 e presissa ter 25 '-'

 

n sei se vai da acho q é assim

Link para o comentário
Compartilhar em outros sites

Obrigado :D

mas agora, eu to com outra duvida :S

o item q eu vo usar pra fusao é um liquido.

Vial of Milk.

o id dele é 2006

igual qualquer outro liquido q venha em vials...

descobri q para criar ele eu presiso digitar /i 2006,6,5

dai eu coloquei ele pra dropar dos monstros e tals.. pelo id 2006,6,5

mas o mostro dropa um vial vazio...

entao provavelmente... se alguem colocar um vial vazio na hora da fusão, vai dar certo?

outra coisa... (fugindo do tópico), como eu coloco esse item pra ficar "agrupavel"?

Link para o comentário
Compartilhar em outros sites

Obrigado :D

mas agora, eu to com outra duvida :S

o item q eu vo usar pra fusao é um liquido.

Vial of Milk.

o id dele é 2006

igual qualquer outro liquido q venha em vials...

descobri q para criar ele eu presiso digitar /i 2006,6,5

dai eu coloquei ele pra dropar dos monstros e tals.. pelo id 2006,6,5

mas o mostro dropa um vial vazio...

entao provavelmente... se alguem colocar um vial vazio na hora da fusão, vai dar certo?

outra coisa... (fugindo do tópico), como eu coloco esse item pra ficar "agrupavel"?

Certamente se coloka 1 pod ser q funciona sim pq vc quer liquido cheio e no id ele ta vazio, bom agora n sei tenta ae

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 weeks later...

Nada mal, o código está bem básico. Gostei que você usou tabelas, for e pairs().

 

É realmente muito chato esse negócio de stackpos, sugiro que você use a função getTileItemById(), os resultados são bem melhores, pois ela verifica se tal item existe em todos os stackpos de um tile, sendo não necessária a especificação de um.

 

Seu script pode ser encurtado ainda mais para a função que ele desempenha. Estude um pouco mais, há uma maneira de substituir isso:

 

if (q1.itemid == x.t1 and q2.itemid == x.t2) or (q1.itemid == x.t2 and q2.itemid == x.t1) then

 

Tornando o script mais dinâmico.

 

Um abraço

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...