DU

Fusão De Items Avançada

Por duduzz, 23 de abr. de 2010 em Actions e Talkactions

script
6
2.8k
duduzzD
23 de abril de 2010 às 21:01

Baseado no script de Dias Otonwer

 

Esse script faz com que 3 items sejam usados para formar um item final.

Nele há 2 tipos de combinações:

- Combinação Fraca: serão usados 3 items no qual o resultado será um item fraco

- Combinação Rara: serão usados 3 items no qual o resultado será um item raro

 

Ambas configuráveis, no meu script essas são as combinações:

- Combinação Fraca: piece of royal steel + gem + wooden trash

- Combinação Rara: piece of royal steel + gem + frozen starlight

 

Os resultados são configuráveis e randomizados.

 

Testado em: TFS Crying Damson 8.54

 

Script:

Crie um arquivo dentro da pasta actions/scripts com o nome fusion.lua e coloque:

 

--------------------------------------
--------- FUSION SYSTEM --------------
-- Ideia Original por: Dias Otonwer --
----- Melhorado por: Duduzz ----------
--------------------------------------           

function onUse(cid,item,fromPosition,itemEx,toPosition)

--------------------------------
-------- Configuração ----------
--------------------------------

-- Item 1 -> pedaco de ferro ; Item 2 -> gemas
local steel = 5889  -- id do pedaço de ferro ou a materia prima pra fusao. obs: APENAS 1 ID
local gems = {2153,2154,2155,2156}  -- id das gemas ou do segundo item para fusao. obs: 2 OU MAIS IDS

-- Item 3 -> frozen starlight ou wooden trash (configuravel)
local item3 = 2361 -- id do item para criar items raros (frozen starlight). obs: APENAS 1 ID
local item4 = 2250 -- id do item para criar items fracos (wooden trash). obs: APENAS 1 ID

-- Premios
local premios = {2392,2393,2414,7748,2407} -- premios fracos. obs: 2 OU MAIS IDS
local premiosraros = {2431,2447,8925,2400,7382}  -- premios raros. obs: 2 OU MAIS IDS

-- Posicoes
local pos1 = {x=207,y=348,z=7,stackpos=255} -- posicao do item 1
local pos2 = {x=209,y=348,z=7,stackpos=255} -- posicao do item 2
local pos3 = {x=211,y=348,z=7,stackpos=255} -- posicao do item 3
local pos4 = {x=213,y=348,z=7,stackpos=255} -- posicao do item criado

--------------------------------
-- Não mexa em nada abaixo!!! --
--------------------------------

local getpos = {getThingFromPos(pos1),getThingFromPos(pos2),getThingFromPos(pos3)} 
local randfacil = math.random(1,table.getn(premios))
local resultado = premios[randfacil]
local randdificil = math.random(1,table.getn(premiosraros))
local resultado1 = premiosraros[randdificil]                      

if itemEx.itemid == 1945 then
  if getpos[1].itemid == steel then
     if isInArray(gems,getpos[2].itemid) == TRUE and getpos[3].itemid == item4 then
        doCreateItem(resultado,1,pos4)
        doRemoveItem(getpos[1].uid,1)
        doRemoveItem(getpos[2].uid,1)
        doRemoveItem(getpos[3].uid,1)
        doSendMagicEffect(pos4,13)
        doSendMagicEffect(pos3,13)
        doSendMagicEffect(pos2,13)
        doSendMagicEffect(pos1,13)
        doPlayerSendTextMessage(cid,20,"Voce criou uma arma!")
        doTransformItem(itemEx.uid,itemEx.itemid+1)
     elseif isInArray(gems,getpos[2].itemid) == TRUE and getpos[3].itemid == item3 then
        doCreateItem(resultado1,1,pos4)
        doRemoveItem(getpos[1].uid,1)
        doRemoveItem(getpos[2].uid,1)
        doRemoveItem(getpos[3].uid,1)
        doSendMagicEffect(pos4,13)
        doSendMagicEffect(pos2,13)
        doSendMagicEffect(pos3,13)
        doSendMagicEffect(pos1,13)
        doPlayerSendTextMessage(cid,20,"Voce criou uma arma rara!")
        doTransformItem(itemEx.uid,itemEx.itemid+1)
    else
doPlayerSendCancel(cid,"Os items estao errados ou sua ordem esta incorreta.")
     end
else
doPlayerSendCancel(cid,"Voce precisa primeiramente da materia prima.")
end

elseif itemEx.uid == 5396 and itemEx.itemid == 1946 then
    doTransformItem(itemEx.uid,1945)
else
   doPlayerSendCancel(cid,"Impossivel")
end
return 1
end  

 

Posições dos items: pos1,pos2,pos3, são as posições dos items que serão usados e pos4 é a posição do item formado.

 

Agora no actions.xml:

<action uniqueid="5396" event="script" value="fusion.lua"/>

 

E no mapeditor crie uma área com 4 espaços, 3 pra colocar os items e outro para o item formado (olhe as ss's) e coloque uma alavanca com o uniqueid 5396

 

 

Para adicionar novas gemas ou novos premios apenas adicione uma vírgula e o ID nas tabelas, por exemplo:

Adicionando gemas:

local gems = {2153,2154,2155,2156,2157}

Adicionando premios:

local premios = {2392,2393,2414,7748,2407,2400}

 

Lembrando que os prêmios nunca serão fixos e serão randomizados de acordo com os ids que você colocar na configuração.

 

 

SS's:

 

 

Quaisquer dúvidas ou ideias me avise pelo tópico ou por PM.

Serão lançadas futuras versões com mais funções.

Editado Abril 23 por duduzz

guedes100G
23 de abril de 2010 às 21:37

gostei da script

ela é facil de configurar e facil de o pessoal entender tbm

bem explicado ta de parabens

 

aprovado.

abraços

lucasatakL
23 de abril de 2010 às 23:00

também gostei,muito bom,aprovado.

 

uma duvida,foi você que fez?

 

se foi,parabéns,gostei mesmo.

 

abçs!

duduzzD
23 de abril de 2010 às 23:42

Sim eu que fiz :) só peguei a ideia do Dias Otonwer cujo topico está fixado nessa seção

Editado Abril 23 por duduzz

1 mês depois...
DXtibiaXDD
18 de maio de 2010 às 10:07

Aew espera por essa fusao vo coloca no kratos serv 0.6 vlw mermo

 

tipo n tem como escolher qual quer intem n?

18 de maio de 2010 às 10:15

Otimo script, obrigado por trazer ao XTibia.

 

Aprovado :button_ok:

 

Abraços.