re-re

re-re
Genial, ótimo sistema, gostei muito! Vê se não tira esse.
Abraços. :button_ok:
Oie :D
Haha, pode deixar, não irei tirar ele não.
Qualquer sugestão para o sistema pode ser apresentada aqui.
[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 ?
Muito Bom Este Scripter, Não Tou Tendo Tempo Agora Mais Depos eu Testo.
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.
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.
Belo sistema lobão (:
está de parabéns,obrigado por trazer ao xistebea
abraços
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.
@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...
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...
Ae vlw, ajudo mt, ja tava projetando as coisa aki, agora com esse script vai fika muito mais facil ;D
REP+
vlw ;D
Reabertura dia:--/--/----.
Ótimo script, já adicionei ele o meu ot. REP+
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
- 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) } }
- 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
- 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