Venho trazer um tutorial de sistema de forja.
Este é 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 motiv desse desenvolvimento é por ser uma forma unica que nao possui em outros RPG's, afinal não é em todo jogo que você coloca itens em lugares específicos e numa ordem pré-determinada e puxa uma alavanca para fundir os itens...
Vamos lá.
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:
Código:
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:
Código:
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 >0and 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 ==trueand"\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
returntrue
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.
Código:
<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. apenas nas informações do arquivo situado em data/lib. Veja abaixo:
Código:
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:
Código:
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:
Código:
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
}
}
Esta feito o Sistema qualquer duvida postem que tentarei ajudar.
Creditos: Garou
Fonte: xtibia