Ir para conteúdo
Entre para seguir isso  
Dark

Enchanting System

Recommended Posts

Dark    3
Dark

Enchanting System

 

Neste tutorial vou colocar 3 scripts relacionados ao encantamento das armas, são eles: Os portais, Os holy shrines e Encantar as armas.

 

Portais

Como todos sabem, no Tibia Global, em cada cidade, no templo há um teleport que leva para os respectivos shrines. Apenas jogadores premium e de level 30 ou superior podem passar e encantar as pedras nos shrines.

 

Vá até a pasta data/movements/scripts e copie qualquer arquivo de lá e renomei para telport.lua, abra o arquivo, apague oque estiver dentro dele e cole isso:

 


--==--==--== Script by DarK ==--==--==--
--==--==--==--== OTNet ==--==--==--==--

local CONFIG =
{
[color=SeaGreen][1000]={effect = CONST_ME_ICEAREA, pos = {x=73, y=56, z=7}, voc = {2,6}, lvl = 30, pa = TRUE}, -- Ice[/color]
[[color=Purple]1001]={effect = CONST_ME_ENERGYHIT, pos = {x=76, y=56, z=7}, voc = {1,5}, lvl = 30, pa = TRUE}, -- Energy[/color]
[color=Green][1002]={effect = CONST_ME_SMALLPLANTS, pos = {x=79, y=56, z=7}, voc = {2,6}, lvl = 30, pa = TRUE}, -- Earth[/color]
[color=Red] [1003]={effect = CONST_ME_FIREAREA, pos = {x=82, y=56, z=7}, voc = {1,5}, lvl = 30, pa = TRUE} -- Fire[/color]
}

function onStepIn(cid, item, position, fromPosition)



if isInArray(CONFIG[item.actionid].voc, getPlayerVocation(cid)) == TRUE then
if isPremium(cid) == CONFIG[item.actionid].pa then
if getPlayerLevel(cid) >= CONFIG[item.actionid].lvl then
doTeleportThing(cid,CONFIG[item.actionid].pos)
doSendMagicEffect(position,CONFIG[item.actionid].effect)
doSendMagicEffect(getPlayerPosition(cid),10)
else
doPlayerSendCancel(cid,"Você não tem level suficiente")
doTeleportThing(cid,fromPosition)
end
else
doPlayerSendCancel(cid,"Você não é um premium account")
doTeleportThing(cid,fromPosition)
end
else
doPlayerSendCancel(cid,"Você não tem a vocação requerida")
doTeleportThing(cid,fromPosition)
end
end

Explicando:

Os numeros entre "[]" (cochetes) são os ActionsIDs dos respectivos portais

 

Roxo - Aqui você coloca as configurações de energy

Azul -Aqui você coloca as configurações de ice

 

Verde -Aqui você coloca as configurações de earth

 

Vermelho -Aqui você coloca as configurações de fire

 

Agora vá até a pasta data/movements/ e abra o arquivo movements.xml e adicione isso:

 


<movevent event="StepIn" actionid="[color=Purple]1000[/color]" script="telport.lua" />
<movevent event="StepIn" actionid="[color=Teal]1001[/color]" script="telport.lua" />
<movevent event="StepIn" actionid="[color=Green]1002[/color]" script="telport.lua" />
<movevent event="StepIn" actionid="[color=Red]1003[/color]" script="telport.lua" />

Explicando:

 

Roxo - Aqui você coloca o actionid que você colocou no piso do teleport de energy

Azul -Aqui você coloca o actionid que você colocou no piso do teleport de ice

 

Verde -Aqui você coloca o actionid que você colocou no piso do teleport de earth

 

Vermelho -Aqui você coloca o actionid que você colocou no piso do teleport de fire

 

 

ID dos portais

 

portce0.png

Shrines

Apos você passar no teleport, você ira encontrar um desses shrines:

 

shrineswu2.gif

 

Cada um encanta um tipo de pedra:

 

==============

Small_Amethyst.gif

Small Amethyst

Energy

==============

Small_Emerald.gif

Small Emerald

Earth

==============

Small_Ruby.gif

Small Ruby

Fire

==============

Small_Sapphire.gif

Small Sapphire

Ice

==============

 

Para encantar a pedra, você gasta 300 de mana e 2 soul poits. Para encantar é so dar use with com a pedra no shrine e ela ficará brilhando

 

Va ate a pasta data/actions/scripts, copie qualquer arquivo de la e renomei para Shrine.lua, abra ele apague oque estiver la dentro e cole isso:


--==--==--== Script by DarK ==--==--==--
--==--==--==--== OTNet ==--==--==--==--

local CONFIG =
{
[2146]={effect = CONST_ME_MAGIC_BLUE, text = 'Glub', color = 35, idshrine = {7508,7509,7510,7511}, enchant=7759, mana = 300, soul = 2}, -- Ice
[2147]={effect = CONST_ME_MAGIC_RED, text = 'PFF', color = 183, idshrine = {7504,7505,7506,7507}, enchant=7760, mana = 300, soul = 2}, -- Fire
[2149]={effect = CONST_ME_MAGIC_GREEN, text = 'Grr', color = 210, idshrine = {7516,7517,7518,7519}, enchant=7761, mana = 300, soul = 2}, -- Earth
[2150]={effect = CONST_ME_MAGIC_BLUE, text = 'Bzz', color = 83, idshrine = {7512,7513,7514,7515}, enchant=7762, mana = 300, soul = 2} -- Energy
}


function onUse(cid, item, fromPosition, item2, topos)

if CONFIG[item.itemid] == nil then
return FALSE
end
if isInArray(CONFIG[item.itemid].idshrine, item2.itemid) == TRUE then
if getPlayerMana(cid) >= CONFIG[item.itemid].mana then
if getPlayerSoul(cid) >= CONFIG[item.itemid].soul then
doPlayerAddSoul(cid,-CONFIG[item.itemid].soul)
doPlayerAddMana(cid,-CONFIG[item.itemid].mana)
doRemoveItem(item.uid,1)
doPlayerAddItem(cid,CONFIG[item.itemid].enchant,1)
doSendAnimatedText(topos,CONFIG[item.itemid].text,CONFIG[item.itemid].color)
doSendMagicEffect(topos,CONFIG[item.itemid].effect)
else
doPlayerSendCancel(cid,"Você não tem soul suficiente")
end
else
doPlayerSendCancel(cid,"Você não tem mana suficiente")
end
else
return FALSE
end
return TRUE
end

Agora vá até data/actions/ abra o arquivo actions.xml e adicione isso:


<action itemid="2146" script="[color=DarkGreen]Shrine.lua[/color]" />
<action itemid="2149" script="[color=DarkGreen]Shrine.lua[/color]" />
<action itemid="2150" script="[color=DarkGreen]Shrine.lua[/color]" />
<action itemid="2147" script="[color=DarkGreen]Shrine.lua[/color]" />

Explicando:

 

Verde - Nome do arquivo que criamos

 

 

Ecantar armas

Você pode encantar algumas armas com um dos 4 elementos (fire, ice, earth, energy), para isso você presisa ter uma das pedras e dar use with com el na arma.

 

Vá ate a pasta data/actions/scripts, copie qualquer arquivo de lá e renomei para encanta.lua, apague oque estiver la dentro e cole isso:


--------------- D@rK ---------------
--------------- OTNet ---------------

function onUse(cid, item, frompos, item2, topos)

[b]normal = {2383,7383}
fire = {7744,7745}
ice = {7763,7764}
earth = {7854,7855}
energy = {7869,7870}[/b]

if isInArray(normal, item2.itemid) == 1 then
for a = 1, table.getn(normal) do
if item2.itemid == normal[a] then
fogo = fire[a]
gelo = ice[a]
terra = earth[a]
energia = energy[a]
break
end
end
if item.itemid == 7760 then
doSendMagicEffect(topos,15)
doRemoveItem(item2.uid,1)
doPlayerAddItem(cid,fogo,1000)
doRemoveItem(item.uid,1)
elseif item.itemid == 7759 then
doSendMagicEffect(topos,43)
doRemoveItem(item2.uid,1)
doPlayerAddItem(cid,gelo,1000)
doRemoveItem(item.uid,1)
elseif item.itemid == 7761 then
doSendMagicEffect(topos,45)
doRemoveItem(item2.uid,1)
doPlayerAddItem(cid,terra,1000)
doRemoveItem(item.uid,1)
elseif item.itemid == 7762 then
doSendMagicEffect(topos,11)
doRemoveItem(item2.uid,1)
doPlayerAddItem(cid,energia,1000)
doRemoveItem(item.uid,1)
end
return 1
end
end

Agora va ate a pasta data/actions/ e abra o arquivo actions.xml e adicione isso:


<action itemid="7761" script="[color=DarkGreen]encanta.lua[/color]" />
<action itemid="7759" script="[color=DarkGreen]encanta.lua[/color]" />
<action itemid="7760" script="[color=DarkGreen]encanta.lua[/color]" />
<action itemid="7762" script="[color=DarkGreen]encanta.lua[/color]" />

Explicando:

 

Verde - Nome do arquivo que criamos

 

O script vem configurado ja com duas armas, para adicionar as outras é so você fazer isso:

 

normal = {2383,7383} --- Aqui você adiciona o id da arma normal

fire = {7744,7745} --- Aqui você adiciona o id da arma encantada com fire

ice = {7763,7764} --- Aqui você adiciona o id da arma encantada com ice

earth = {7854,7855} --- Aqui você adiciona o id da arma encantada com earth

energy = {7869,7870} --- Aqui você adiciona o id da arma encantada com energy

 

Por exemplo vamos supor que eu quero adicionar uma arma que é de id 2354 (os id aqui mostrados não são reais, são meramente ilustrativos), que o id dela encantada com fire é 2355, encantada com ice é 2356, encantada com earth é 2357 e encantada com energy é 2358. Então ficaria assim

 

normal = {2383,7383,2354} --- Id da arma normal

fire = {7744,7745,2355} --- encantada com fire

ice = {7763,7764,2356} --- encantada com ice

earth = {7854,7855,2357} --- encantada com earth

energy = {7869,7870,2358} --- encantada com energy

Acho que é so, espero que tenham gostado e bom divertimento

 

ps: Testado em The Forgotten Server 0.2.9

:bye:

 

Compartilhar este post


Link para o post
Nietzsch    0
Nietzsch

Muito bom...Script! Parabéns!!!!!!!!^^

Mtu gente vai utilizalo!^^

Compartilhar este post


Link para o post
Pancini    0
Pancini

Ou parabens cara

PERFEITO

AJUDOU MT GENTE

Q BOM QUE EU JA TENHO xD

Compartilhar este post


Link para o post
Sir Jhow    0
Sir Jhow
:lol: aprovatedt :P

Compartilhar este post


Link para o post
Sir Jhow    0
Sir Jhow

• Roxo - Aqui você coloca o actionid que você colocou no piso do teleport de energy

 

affs n entendi me ajuda plxxx

Compartilhar este post


Link para o post
Nord    2
Nord

Cara, primeiramente: SCRIPT ÓTIMOOOOO

 

Ah legal, é mais simples o sistema de encantamento que os outros.

 

--EDIT--

E o script é tão bom que da tem até o sistema de cargas. :lol:

Compartilhar este post


Link para o post
Addicted    1
Addicted

@D@rk

Parabéns, a cada dia que passa você faz um script melhor que o otro :)

Adorei seu script.. e imagino o trabalho que deu.

Obrigado Pela Contribuição!!!

E, mais uma vez :D, Parabéns!!

E continue sempre assim!! :lol:

:bye:

Compartilhar este post


Link para o post
Finrod Elensar    0
Finrod Elensar

Perfeitoo...

 

Sem palavras para descrever seu topico...

 

TUDO EXCELENTEEEEE...

 

Perfeição em todos os detalhes...

 

Elaboração perfeita do topico...

 

Topicos como esses q precisamos ter aqui nesse forum...bem feitos, com SS's e explicando tudo..

Compartilhar este post


Link para o post
yago_nobre    0
yago_nobre

dark sei que vc nao gosta de mim mais parabens ta muito bom

Compartilhar este post


Link para o post
Liqnkr    0
Liqnkr

Dark, realmente você está no lugar certo, meus parabéns, isto ajudará muitas pessoas, inclusive a mim, continue assim ^^

Compartilhar este post


Link para o post
Dark Skyllen    7
Dark Skyllen

Caraca veio!

Script perfeito!

 

Eu só tenho um dúvida (cruel)

Se sabe qual o ID dos portais?

Ou você próprio tem que montá-lo?

Compartilhar este post


Link para o post
Dark    3
Dark

@ all

 

Vlw ai gente ^^

 

@ Sir Jhow

 

Evite postar duas vezes seguidas :)... caso queira adicionar algo ao seu ultimo post use o botão edit.gif. E sobre sua duvida. Esse actionid é para ser colocado no piso (ou no caso dos portais, no energy wall) que o player passara para ser teleportado

 

@ yago_nobre

 

Por que eu não gostaria de você :)

 

@ Liqnkr

 

Quem bom que eu lhe ajudei em algo ^^

 

@ Dark Skyllen

 

Sabia que eu estava esquecendo de algo!!! Daqui a pouco eu edito aqui o id dos portais :)

 

 

:bye:

Compartilhar este post


Link para o post
Dark Skyllen    7
Dark Skyllen
Agora vá até a pasta data/movements/ e abra o arquivo movements.xml e adicione isso:

 

Código:

<movevent event="StepIn" actionid="7000" script="telport.lua" />

<movevent event="StepIn" actionid="7001" script="telport.lua" />

<movevent event="StepIn" actionid="7002" script="telport.lua" />

<movevent event="StepIn" actionid="7003" script="telport.lua" />

 

 

Outra coisa D@rk, nessa parte deve conter algum erro. Pelo menos no Aries, fiz tudo o que pede no tutorial, mas na hora de abrir o servidor ele encontra um erro no movementes.xml.

 

O que seria isso?

Compartilhar este post


Link para o post
Dark    3
Dark

@ Dark Skyllen

 

Qual erro aparece ?

Compartilhar este post


Link para o post
Dark Skyllen    7
Dark Skyllen

@D@rk

 

já arrumei o erro, foi só trocar o nome do arquivo de teleport para armas.lua

:D

Outra dúvida D@rk, as armas não dão danos elementais, axei um tópico que ensina a colocar, mas e para elas terem cargas? O que eu devo fazer?

Compartilhar este post


Link para o post
Dark    3
Dark

@ Dark Skyllen

 

Esse script é apenas para encatar as armas, para faze-las dar dano elemental, ai você ja tem que modificar no wepons.xml, ou pegar um OTServ que ja venha pelo menos com um sistema basico :)

Compartilhar este post


Link para o post
philipe89    0
philipe89

rox a lot..

qnd eu chegar da autoescola vo testar!! ;D

Compartilhar este post


Link para o post
UrsO    0
UrsO

Curti mto o banner q vc fez pro tópico =}

Tp, e os actions para as armas darem hits elementais? Sérá q existe 1 script ;x

Compartilhar este post


Link para o post
philipe89    0
philipe89

mas como tem q ser os portais?! tem q ser as bolinhas azuis?!

ou pode ser q nem o do tibia?!

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×