Perfect Blacksmith System

noobinhu
em Actions e Talkactions
  • 1
  • 2

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

Refiz outro sistema meu, agora o Blacksmith System, ele ficou fácil de configurar e agora é baseado em uma function addForge, contida no script.

 

Para iniciar o sistema, faça 2 bancadas no mapa, a de cima com 1 alavanca de actionid 51121, caso tenha dúvida nesta parte, olhe as screenshoots no final do tópico.

 

Depois de fazer isto, faça um script chamado blacksmith.lua em actions/scripts/others contendo:

 

function addForge(cid, reward, tablepos, itemsneeded, percent)

 

if (percent > 100) then

percent = 100

end

playerpos = getPlayerPosition(cid)

errors = 0

 

for k,v in pairs(itemsneeded) do

itemstackpos = k+1

itemidneed = v['itemid']

itemidquantity = v['quantity']

itemposition = {x=tablepos.x, y=tablepos.y, z=tablepos.z, stackpos = itemstackpos}

itemfromposition = getThingfromPos(itemposition)

 

if (itemidquantity == 1) then

itemidquantity = itemfromposition.type

end

 

if itemfromposition.itemid == itemidneed and itemfromposition.type == itemidquantity then

 

else

errors = 1

end

end

 

if (errors == 1) then

doSendMagicEffect(playerpos,2)

return FALSE

else

chance = math.random(0,100)

if (chance <= percent) then

forja = true

end

 

 

for k,v in pairs(itemsneeded) do

itemstackpos = k+1

itemidneed = v['itemid']

itemidquantity = v['quantity']

itemposition = {x=tablepos.x, y=tablepos.y, z=tablepos.z, stackpos = 2}

itemfromposition = getThingfromPos(itemposition)

doRemoveItem(itemfromposition.uid,itemidquantity)

end

if (forja == true) then

doSendMagicEffect(tablepos,13)

doSendAnimatedText(playerpos,"Congratz!",180)

doPlayerAddItem(cid, reward['itemid'], reward['quantity'])

doPlayerSendTextMessage(cid, 21, "Congratulations! You got ".. reward['quantity'] .." ".. getItemName(reward['itemid']) .."(s).")

else

doSendMagicEffect(tablepos,2)

doSendAnimatedText(playerpos,"Fail.",180)

doPlayerSendTextMessage(cid, 21, "The recipe was good, but it failed.")

end

 

return TRUE

end

 

end

 

 

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

if (item.itemid == 1945) then

doTransformItem(item.uid,1946)

else

doTransformItem(item.uid,1945)

end

 

-- table need to stays below the lever

-- a mesa dos items precisa estar abaixo da alavanca

tablepos = {x=toPosition.x, y=toPosition.y+1, z=toPosition.z}

 

-- blacksmith configs below

-- configurações de forjas aqui embaixo

 

 

items = {}

items[1] = {}

items[1]['itemid'] = 2674

items[1]['quantity'] = 2

items[2] = {}

items[2]['itemid'] = 2676

items[2]['quantity'] = 3

reward = {}

reward['itemid'] = 2671

reward['quantity'] = 50

percent = 100

if (addForge(cid, reward, tablepos, items,percent) == TRUE) then end

 

items = {}

items[1] = {}

items[1]['itemid'] = 2671

items[1]['quantity'] = 5

items[2] = {}

items[2]['itemid'] = 2666

items[2]['quantity'] = 5

items[3] = {}

items[3]['itemid'] = 2515

items[3]['quantity'] = 1

reward = {}

reward['itemid'] = 2676

reward['quantity'] = 5

percent = 50

if (addForge(cid, reward, tablepos, items, percent) == TRUE) then end

 

items = {}

items[1] = {}

items[1]['itemid'] = 2463

items[1]['quantity'] = 1

reward = {}

reward['itemid'] = 2515

reward['quantity'] = 1

percent = 10

if (addForge(cid, reward, tablepos, items, percent) == TRUE) then end

 

-- here you can add new combinations of items

-- aqui você pode fazer novas combinações de items

 

 

end

 

Salve e feche.

Embaixo e em cima das partes que estão negritadas, é onde você configurará suas forjas, combinações de items, que será explicado no final do tópico.

 

Para finalizar o sistema, adiciona no arquivo actions.xml localizado em data/actions a seguinte tag:

<action actionid="51121" script="other/blacksmith.lua"/>

 

Ao salvar, acabamos nossos scripts.

 

Adicionando forjas

 

Para adicionar uma combinação de items, forja, adicione em cima de:

-- here you can add new combinations of items

-- aqui você pode fazer novas combinações de items

 

O seguinte:

items = {}

items[1] = {}

items[1]['itemid'] = 2463

items[1]['quantity'] = 1

reward = {}

reward['itemid'] = 2515

reward['quantity'] = 1

percent = 10

if (addForge(cid, reward, tablepos, items, percent) == TRUE) then end

 

De azul, é onde estam os items, aqui você configura todos os itemsid e quantidade destes mesmos items.

 

De vermelho, onde é configurado o prêmio desta forja quando ocorrer tudo certo.

 

De verde, é a porcentagem de acerto da forja, quanto menor, menos acertos. Sendo 100, 100% de acerto.

 

Em negrito, a function que ativa as forjas, aqui não precisa mexer.

 

Um pouco de prática e você aprende adicionar todas as forjas (Não é aconselhável usar items iguais para mais de 1 forja.) :)

 

Screenshoots:

blacksmithsuccessbe2.png

 

blacksmithfailwy4.png

 

 

Nota: A ordem dos items, é a ordem de visão, sendo o item[1], o primeiro a ser visto (o que está em cima).

 

//Yunie

Darth Sidious

Em chamas...
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 31/07/07Posts: 533Char no Tibia: Kninght'Danilo

Nossa cara muito bom, você tem se saido muito bem aqui no xtibia, concerteza foi uma ótima contratação.

 

Boa sorte.


Xtibia 2006 ~ 2009!
Eu não to mais aguentando e a vida tá passando...





Quots :
QUOTE
17:24 Ulryx Shadowseeker [13]: eu acessava site pedofilo ~ Leo94
17:26 Next Shadowseeker [7]: SELL THAIS SWORD ~ Christian
'      Léo 1OO     diz:
ngm come minha xaninha
'      Léo 1OO     diz:
se nao tive
'      Léo 1OO     diz:
eu do meu cu

bachieguinha

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 06/01/07Posts: 603

Ótimo trabalho!

Ta aí o noobinho dando tdo oq veio aqui pra dar

HAHAHA :D



BillyBola

Ex-Imprensa XTibia
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 08/06/08Posts: 676Char no Tibia: Kimera De Pegasus

Muito bom mesmo.

 

Você anda fazendo otimos scripts.

 

Parabéns.

cidriosblack

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 30/06/08Posts: 2Char no Tibia: Cidrios Black

Muito bom esse script, muita gente vai apreciar!

Parabens!

amour

kaana de rezends
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 14/04/08Posts: 139Char no Tibia: Kanaszika

Otimo script

sem +

 

;)

Atenciosamente,

amour :)

 

WWW.OPENPVP.COM

alissonlinneker

ñ frite bacon sem kmiza xP
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 15/12/07Posts: 239

esse é melhor do que o do Dias OTonwer pq tem a chance de quebrar o item...

 

muito bom mesmo

 

vlw

 

Edited:

 

@noobinhu

 

O random nas rates que dão "Fail" estão erradas...

tipo..o krinha vai tentando e tndando...ai vai dando fail..

si depois vai dando congratz sempre...

 

isso acontece em qualquer configuração do porcent = x

 

 

consegui arruma isso aqui...depois c tenta arruma ae tb e colocar ae pra galera d novo...

 

Otimo script esse

=]



Devo esquecer aqueles que me impuseram obstáculos infundados e agradecer àqueles que me impulsionaram adiante. É hora, mais do que nunca, de valorizar as amizades e os conhecimentos adquiridos aqui. Agradeço a todos que me apoiaram. Vlw xTibia!
Amais!
[Retired]



~~>Meus Trabalhos:

---Sistema De Domínio De Castelos. (Action)
---Sistema De Mineraçao (Action)
---Scroll Que Da X Exp Quando é Usada (Action)
---Portas Não Abrem? Venha Aqui Ver Como Arruma! (Action)
---Crie Suas Quest´s De Uma Maneira Rapida E Facil. (Action)
---The Demon OaK Quest (Action)

---Addon Por Item, Com Todos Os Outfits. (Npc)

---Aprenda a colocar suas quests no Quest Log (Tutorial+scripts _ data/xml/quests.xml)
---Conhecendo Melhor A Pasta Globalevents (Tutorial+scripts)
---Gerencie O Seu Mysql Como Se Fosse Sqlite (Tutorial)
---Multi World Sistem - Como Funciona. (Tutorial)

---Projeto de tradução do TFS 8.31 SQL - Inglês para o Portugês (Server 8.31)

---2 Templantes para Web Site de OT (Websites de OTserv)
---Atualização de sites do Gesior para sistema de mult-world (Websites de OTserv)

---Thyrania editado (Map)
---Yalahar Global Completo (Map)

---Pic Editor para Tibia 8.2+ (Programa)
---Ztracker - Clone mapas 8.4 (Programa)



Vi Vanderlaysk

Vinnie Simon
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 07/10/06Posts: 108Char no Tibia: Vi Vanderlaysk

Gostei do seu script ... mas eu preferia que fosse um sistema como os outros ... vc nao forja nada com uma alavanca, mas sim com um martelo e utros instrumentos ;P

Mas fora isso ta massa :D

 

 

Abraço!


Anges et Demóns Project ATS


Quer saber um pouco sobre Serviço?
"Meu filho, se entrares para o serviço de Deus,
permanece firme na justiça e no temor,
e prepara a tua alma para a provação;
humilha teu coração, espera com paciencia,
dá ouvidos e acolhe as palavras de sabedoria;
nao te perturbes no tempo da infelicidade,
sofre as demoras de Deus;
dedica-te a Deus, espera com paciência,
a fim de que no derradeiro momento tua vida se enriqueça.
Aceita tudo o que te acontecer.
Na dor, permanece firme,
na humilhação, tem paciência.
Pois é pelo fogo que se experimentam o ouro e a prata,
e os homens agradáveis a Deus, pelo cadinho da humilhação.
Põe tua confiança em Deus e Ele te salvará,
orienta bem o teu carinho e espera n'Ele.
Conserva o temor d'Ele até na velhice." Eclo 2;1-6



noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

Allison, não entendi o que quis dizer, testei aqui e funcionou normalmente, forjei + de 30 items para testar...

alissonlinneker

ñ frite bacon sem kmiza xP
avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 15/12/07Posts: 239
Allison, não entendi o que quis dizer, testei aqui e funcionou normalmente, forjei + de 30 items para testar...

 

 

tipo assim..

a rete de da Fail na hora de forjar ta com problema...

 

as vezes da fail e as vezes congrats..mais depois vai dando congratz direto, sem nenhum fail..

 

 

Otra coisa...

As veses fica ruim ter q forjar os itens na ordem...

tem como mudar isso n?

 

 

vlws



Devo esquecer aqueles que me impuseram obstáculos infundados e agradecer àqueles que me impulsionaram adiante. É hora, mais do que nunca, de valorizar as amizades e os conhecimentos adquiridos aqui. Agradeço a todos que me apoiaram. Vlw xTibia!
Amais!
[Retired]



~~>Meus Trabalhos:

---Sistema De Domínio De Castelos. (Action)
---Sistema De Mineraçao (Action)
---Scroll Que Da X Exp Quando é Usada (Action)
---Portas Não Abrem? Venha Aqui Ver Como Arruma! (Action)
---Crie Suas Quest´s De Uma Maneira Rapida E Facil. (Action)
---The Demon OaK Quest (Action)

---Addon Por Item, Com Todos Os Outfits. (Npc)

---Aprenda a colocar suas quests no Quest Log (Tutorial+scripts _ data/xml/quests.xml)
---Conhecendo Melhor A Pasta Globalevents (Tutorial+scripts)
---Gerencie O Seu Mysql Como Se Fosse Sqlite (Tutorial)
---Multi World Sistem - Como Funciona. (Tutorial)

---Projeto de tradução do TFS 8.31 SQL - Inglês para o Portugês (Server 8.31)

---2 Templantes para Web Site de OT (Websites de OTserv)
---Atualização de sites do Gesior para sistema de mult-world (Websites de OTserv)

---Thyrania editado (Map)
---Yalahar Global Completo (Map)

---Pic Editor para Tibia 8.2+ (Programa)
---Ztracker - Clone mapas 8.4 (Programa)



Rocky

[ADM]GRog
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/07/06Posts: 20Char no Tibia: Eckous

nossa muito bom

 

parabens,..

Animatrix Reload, uma nova éra!

 

xtibiaassinatura.jpg

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

Bom, Allison aqui não ocorreu este bug, fiz cerca de 30 forjas para testes e foi tudo tranquilo, cheque a porcentagem que você colocou... Não teria nexo um bug deste tipo, já que quando você faz forjas, nada altera na porcentagem de acerto.

 

Sobre não ser na ordem, tem sim, mas ficaria mais complicado, é só você fazer um loop numa function assim:

 

function findItem(itemid,pos)

stackpos = 1

while (stackpos <= 10) then

position = {x=..., stackpos=stackpos} -- arrume aqui a pos que veio pela function

itempos = getThingfromPos(position)

if (itempos.itemid == itemid) then

found = 1

break

end

stackpos = stackpos+1

end

if (found == 1) then

return TRUE

else

return FALSE

end

end

 

E então fazer isto com todos os items :)

Eventide

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 08/10/08Posts: 189

excelente script... :-D~

está altamente configurável, excelente! :*



?

 

 

1440522_2.png

 

scorpion_lord

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 28/01/09Posts: 1Char no Tibia: Machanp Sorcer

Aew parabens pelo script muito mas eu tenho uma duvida e sugestão, pode se mudar de alavanca para wood hammer ou iron hammer, porque fica com mais cara de forja usar um martelo abraço...

Espero resposta :great:

blade06

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/02/10Posts: 12Char no Tibia: [Nenhum Preferencial]

Otimo script era isso mesmo que eu estava preucurando.

Preucurando ser o Melhor!!

O Sabio cria, o burro copia !!

Nunca faça metas , Pois elas te limitan!

Sempre faça que criticas virem elogios.

  • 1
  • 2