The Blacksmith System

Garou12
em Actions e Talkactions

Garou12

O Lobo
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/10/10Posts: 5

re-re

garou1.png

Demonbholder

avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 13/10/08Posts: 1551Char no Tibia: Demonbholder

Genial, ótimo sistema, gostei muito! Vê se não tira esse.

 

Abraços. :button_ok:

Oie :D

Garou12

O Lobo
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/10/10Posts: 5

Haha, pode deixar, não irei tirar ele não.

 

Qualquer sugestão para o sistema pode ser apresentada aqui.

garou1.png

elitevini

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 11/05/11Posts: 31

[11/06/2011 11:59:36] [Error - Action Interface]

[11/06/2011 11:59:36] data/actions/scripts/iron hammer.lua:onUse

[11/06/2011 11:59:36] Description:

[11/06/2011 11:59:36] (luaDoItemSetAttribute) Item not found

 

olha o erro q fika dando quando eu transformo o item e tem sucesso, mais quando não tem sucesso de transforma o item não tem erro algum como eu arrumo isso ?

camcam

Eai ;D
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/09/10Posts: 13

Muito Bom Este Scripter, Não Tou Tendo Tempo Agora Mais Depos eu Testo.

beto06

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/10/08Posts: 488Char no Tibia: Van Zarok

Funcionou perfeitamente, belo script. Rep++

--

Como fazer pra criar item em quantidade?

[2544, 100] = { -- o item que será feito
	recipe = {{5901, 50}}, -- a receita do item

Não deu certo assim. =/

--

Ahh, e o DoItemSetAttribute da erro também, como o do amigo acima.

Sanf

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/01/09Posts: 87Char no Tibia: Creepbreed

Kra os creditos não tão funcionando (DoSetItemAtribute como ajeitar isso?

email: tansio_drowning@hotmail.com

 

 

Vendo Bronson server full todas features.. interessados add msn.

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

Belo sistema lobão (:

está de parabéns,obrigado por trazer ao xistebea

abraços

bossisg.png

Sanf

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/01/09Posts: 87Char no Tibia: Creepbreed

Ei Vodkart da uma ajuda ae, pra min vc é o melhor quando se esta falando de scripts aki no Xtibia.. como arrumo isso.

email: tansio_drowning@hotmail.com

 

 

Vendo Bronson server full todas features.. interessados add msn.

beto06

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 04/10/08Posts: 488Char no Tibia: Van Zarok

@semruela

Mude a parte do iron hammer.lua, no final, por essa:

		if(chance >= math.random(1, 1000)) then
		local item = doCreateItem(match, 1, toPosition)
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You have created ".. getItemInfo(match).article .." ".. getItemNameById(match)..".")
		doSendMagicEffect(toPosition, CONST_ME_MAGIC_RED)
		doSendAnimatedText(toPosition, "Success!", TEXTCOLOR_GREEN)
		doItemSetAttribute(item, "description", 'It has been forged by ' .. getCreatureName(cid) .. '.')
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Something went wrong.")
		doSendMagicEffect(toPosition, CONST_ME_POFF)
		doSendAnimatedText(toPosition, "Failure!", TEXTCOLOR_RED)
	end
	return true
end
return doPlayerSendCancel(cid, "This forge recipe doesn't exist.")
end

Aqui funcionou...

pauloestore

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/07/06Posts: 38Char no Tibia: Keon Sartanda

Eu consegui por no OT funciono...

Porém eu gostaria de fazer de mais itens exemplo: ai você fez o da Sov eu queria fazer do Sca etc..como eu faço? faço vários arquivos e só mudo o nome dele exemplo: 039-Blacksmith e o cod de dentro? ou tenho que fazer algo mais? tentei faze isso não deu certo.Tem algum lugar que eu tenho que modifica? eu mudei id dentro do arquivo lua ta tudo certinho mas na hora de Forja num da... :worriedsmiley:










fazepao

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/01/11Posts: 11Char no Tibia: Cattaplattus

Ae vlw, ajudo mt, ja tava projetando as coisa aki, agora com esse script vai fika muito mais facil ;D

 

REP+

 

vlw ;D

23tnixc.jpg

 

Reabertura dia:--/--/----.

laravita

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/07/11Posts: 17

Ótimo script, já adicionei ele o meu ot. REP+

mapperneto

~Mapping Art~
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/05/10Posts: 54Char no Tibia: Secret

Lol parece ser muito legal, funciona em 9.10?

+Rep

Mapping é Art, Coerencia Faz Parte, Harmonia é Moda, Show-Off é Foda (By: Mapper Neto)0601e43126c941e39978057555413b91.0.gif

hique86

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/09/08Posts: 62

 

Nome: The Blacksmith System

Autor: Garou

Testado em: The Forgotten Server rev3884

 

Olá,

 

Este é um sistema que eu fiz a um tempo atrás. Basicamente, é um sistema onde você posiciona uma certa combinação de itens em cima uma bigorna, usa um certo item em cima dessa combinação e se tudo ocorrer com sucesso, você terá um novo item para usar.

 

O motivo para desenvolver este sistema, foi olhar para outros genéricos que foram disponibilizados anteriormente que eu, particularmente, achei não conter nenhuma noção de RPG, afinal não é em todo jogo que você coloca itens em lugares específicos e numa ordem pré-determinada e puxa uma alavanca do mal para fundir os itens...

 

Sem mais enrolação, vamos ao que interessa.

 



INSTALAÇÃO

 

  1. Crie um arquivo chamado 038-blacksmith.lua na sua pasta data/lib, após isso, abra o arquivo e cole este conteúdo abaixo.


    config = {
    credits = true -- Adicionar criado por na descrição do item?
    }
    
    forges = {     
    [2400] = { -- o item que será feito
    	recipe = {{2376, 1}}, -- a receita do item
    	chance = 1000 -- chance do item dar certo (100% = 1000, 1% = 10, 0.5% = 5 e etc)
    }
    }
    


  2. O próximo passo é criar um arquivo chamado iron hammer.lua na sua pasta data/actions/scripts e então colar este código abaixo:


    local chance = nil
    
    function onUse(cid, item, fromPosition, itemEx, toPosition)
       if isInArray({0, 65535}, toPosition.x) then
           return false
       elseif getTileItemById(toPosition, 2555).uid < 1 then
           return doPlayerSendCancel(cid, 'You must put the ingredients on an anvil.')
       end
    
       local tmp, match = {}
    
       for ret, v in pairs(forges) do
           for i = 1, #v.recipe do
               local g = getTileItemById(toPosition, v.recipe[i][1])
               if g.uid > 0 and math.max(1, g.type) == v.recipe[i][2] then
                   table.insert(tmp, g.uid)
                   if i == #v.recipe then
                       match = ret
    				chance = v.chance
                   end
               else
                   tmp = {}
                   break
               end
           end
           if match then
               break
           end
       end
    
    if match then
    	for i = 1, #tmp do
    		doRemoveItem(tmp[i], forges[match].recipe[i][2])
    	end
    	if(chance >= math.random(1, 1000)) then
    		doCreateItem(match, 1, toPosition)
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You have created ".. getItemInfo(match).article .." ".. getItemNameById(match)..".")
    		doSendMagicEffect(toPosition, CONST_ME_MAGIC_RED)
    		doSendAnimatedText(toPosition, "Success!", TEXTCOLOR_GREEN)
    		doItemSetAttribute(create, "description", "".. getItemInfo(match).description .."".. (config.credits == true and "\nIt has forged by ".. getCreatureName(cid) .."." or ""))
    	else
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "Something went wrong.")
    		doSendMagicEffect(toPosition, CONST_ME_POFF)
    		doSendAnimatedText(toPosition, "Failure!", TEXTCOLOR_RED)
    	end
    	return true
    end
    return doPlayerSendCancel(cid, "This forge recipe doesn't exist.")
    end
    


  3. Pronto! Você já tem o sistema instalado no seu servidor. Basta então registrar essa chave no seu arquivo actions.xml.
     
    <action itemid="4846" event="script" value="iron hammer.lua"/>


 

CONFIGURAÇÃO

 

A configuração do sistema se faz bastante simples, você não precisa mexer EM NADA do script, apenas nas informações do arquivo situado em data/lib. Veja abaixo:

 

config = {
credits = true -- Adicionar criado por na descrição do item?
}

forges = {     
[2400] = { -- o item que será feito
	recipe = {{2376, 1}}, -- a receita do item
	chance = 1000 -- chance do item dar certo (100% = 1000, 1% = 10, 0.5% = 5 e etc)
}
}

 

As linhas comentadas já explicam toda a estruturação das informações do arquivo, se você quiser criar uma receita para um item, basta apenas ir adicionando os itens da receita e suas respectivas quantidades. Veja abaixo como formatar a receita:

 

recipe = {{ITEM1, QUANT1}, {ITEM2, QUANT2}, {ITEM3, QUANT3}, {ITEM4, QUANT4}, ..., {ITEM99, QUANT99}},

 

O sistema foi criado para que o sistema identifique receitas de até N itens, onde (provavelmente) N tende ao infinito. E claro, o sistema irá identificar a receita do item, não importando a ordem que você dispor os itens na bigorna.

 

Vamos a um exemplo agora: "Quero uma receita de Golden Helmet que precise de 100 gold ingots e 1 iron helmet". Então:

 

config = {
credits = true -- Adicionar criado por na descrição do item?
}

forges = {     
[2400] = { -- o item que será feito
	recipe = {{2376, 1}}, -- a receita do item
	chance = 1000 -- chance do item dar certo (100% = 1000, 1% = 10, 0.5% = 5 e etc)
}, -- note essa vírgula entre as diferentes receitas
       [2471] = { -- id do golden helmet
       	recipe = {{9971, 100}, {2459, 1}} -- a receita do exemplo
               chance = 10 -- 1% de chance hehe
       }
}

 

Espero que você tenha entendido todo esse sistema, rs. Assim que eu puder, irei postar vídeo e imagens do funcionamento do sistema.

 

p.s: Você pode tirar dúvidas aqui neste tópico e reportar erros.

 

Um grande abraço,

Garou.

 

 

Desculpe minha ignorancia, mas como que eu coloco isso no meu ot?!?

tipo, é pela lavanca?!? por comando?!?

 

da uma ajuda ae, valew

Meus trabalhos:

Minha Galeria

Fazendo Suas Próprias Looktype

Teleportes, Saindo Do Basico!

 

 

Te ajudei?!? dá REP+ não custa nada =D