Ir para conteúdo

[Action]Fusão De Itens


josedi

Posts Recomendados

>> Bom e o Seguinte eu quero fazer Modificaçoes nessa Script

Em vez de vez de trabalhar com 3 itens ou queria com apenas 2.

O premio n foçe aleatorio e sim toda vez ke a alavaca foçe acionada.

Não foçe varios premios e sim so 1.Exp: ferumbras doll+nightmare doll=Solar axe.

Se poderão dexar bem explicado para que eu desenvolva com outros itens agradeço.

 

Essa a Script que eu achei aki no Xtibia com creditos a Dias otonwer.

 

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:

 

 

 

Alguem pode me ajuda?

Link para o comentário
Compartilhar em outros sites

O script ficou interessante, parabéns!

 

Só para esclarecer, créditos para: Dias Otonwer e Duduzz, certo?

 

Abraços.

 

 

E mesmo esqueci o duduzz ,Obg Demonbholder mas vc n vai me ajudar a Editar a Script?

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

Creio que o nosso amigo Demonbholder se equivocou e achou que esse tópico era uma contribuição para o fórum.

 

Voltando ao tópico, recomendo usar esse sistema aqui, é um pouco mais fácil de configurar: The Blacksmith System

 

Um abraço do lobo.

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

Haha, foi mesmo, mas ainda sim o script ficou interessante.

 

O equivoco aconteceu porque ele postou em actions, entretanto, depois de perceber o erro, eu mesmo movi para Duvidas de Scripts.

 

Se a duvida foi sanada, reporte para moderação, ate.

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

  • 7 months later...
×
×
  • Criar Novo...