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:
Código:
--------------- D@rK ---------------
--------------- OTNet ---------------
function onStepIn(cid, item, pos)
--==--==--==--==--==--==--==--==
energy = {x=1006, y=1004, z=3}
ice = {x=1006, y=1004, z=5}
earth = {x=1002, y=1001, z=6}
fire = {x=1006, y=1004, z=4}
--==--==--==--==--==--==--==--==
voc = getPlayerVocation(cid)
lvl = getPlayerLevel(cid)
if isPremium(cid) then
if lvl >= 30 then
if voc == 1 or voc == 4 then
if item.actionid == 7000 then
doSendMagicEffect(getPlayerPosition(cid),11)
doTeleportThing(cid,energy)
elseif item.actionid == 7003 then
doSendMagicEffect(getPlayerPosition(cid),15)
doTeleportThing(cid,fire)
end
elseif voc == 2 or voc == 5 then
if item.actionid == 7001 then
doSendMagicEffect(getPlayerPosition(cid),43)
doTeleportThing(cid,ice)
elseif item.actionid == 7002 then
doSendMagicEffect(getPlayerPosition(cid),45)
doTeleportThing(cid,earth)
end
else
doPlayerSendTextMessage(cid, 20, "You aren't able to enter this portal")
doTeleportThing(cid,position)
end
else
doPlayerSendTextMessage(cid, 20, "Only players of level 30 or higher are able to enter this portal")
doTeleportThing(cid,position)
end
else
doPlayerSendTextMessage(cid, 20, "Only Premium are able to enter this portal")
doTeleportThing(cid,position)
end
doSendMagicEffect(getPlayerPosition(cid),10)
end
• Roxo - Aqui você coloca a posição do shrine de energy (pra onde o player será teleportado ao passar pelo teleport de energia)
• Azul - Aqui você coloca a posição do shrine de ice (pra onde o player será teleportado ao passar pelo teleport de gelo)
• Verde - Aqui você coloca a posição do shrine de earth (pra onde o player será teleportado ao passar pelo teleport de terra)
• Vermelho - Aqui você coloca a posição do shrine de fire (pra onde o player será teleportado ao passar pelo teleport de fogo)
Agora vá até a pasta data/movements/ e abra o arquivo movements.xml e adicione isso:
Código:
7000" script="telport.lua" /> 7001" script="telport.lua" /> 7002" script="telport.lua" /> 7003" script="telport.lua" />
• 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
Shrines
Apos você passar no teleport, você ira encontrar um desses shrines:
Cada um encanta um tipo de pedra:
==============
Small Amethyst
Energy
==============
Small Emerald
Earth
==============
Small Ruby
Fire
==============
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:
Código:
--------------- D@rK ---------------
--------------- OTNet ---------------
function onUse(cid, item, frompos, item2, topos)
if item.itemid == 2146 then
if item2.itemid == 7508 or item2.itemid == 7509 or item2.itemid == 7510 or item2.itemid == 7511 then
if getPlayerSoul(cid) > 1 and getPlayerMana(cid) > 299 then
if item.type == 1 then
doPlayerAddMana(cid,-300)
doPlayerAddSoul(cid,-2)
doTransformItem(item.uid,7759)
doSendMagicEffect(frompos,12)
doSendAnimatedText(topos,"Glub",35)
else
return 0
end
else
return 0
end
end
elseif item.itemid == 2149 then
if item2.itemid == 7516 or item2.itemid == 7517 or item2.itemid == 7518 or item2.itemid == 7519 then
if getPlayerSoul(cid) > 1 and getPlayerMana(cid) > 299 then
if item.type == 1 then
doPlayerAddMana(cid,-300)
doPlayerAddSoul(cid,-2)
doTransformItem(item.uid,7761)
doSendMagicEffect(frompos,14)
doSendAnimatedText(topos,"Grr",210)
else
return 0
end
else
return 0
end
end
elseif item.itemid == 2150 then
if item2.itemid == 7512 or item2.itemid == 7513 or item2.itemid == 7514 or item2.itemid == 7515 then
if getPlayerSoul(cid) >= 2 and getPlayerMana(cid) >= 300 then
if item.type == 1 then
doPlayerAddMana(cid,-300)
doPlayerAddSoul(cid,-2)
doTransformItem(item.uid,7762)
doSendMagicEffect(frompos,12)
doSendAnimatedText(topos,"Bzz",83)
else
return 0
end
end
end
elseif item.itemid == 2147 then
if item2.itemid == 7504 or item2.itemid == 7505 or item2.itemid == 7506 or item2.itemid == 7507 then
if getPlayerSoul(cid) > 1 and getPlayerMana(cid) > 299 then
if item.type == 1 then
doPlayerAddMana(cid,-300)
doPlayerAddSoul(cid,-2)
doTransformItem(item.uid,7760)
doSendMagicEffect(frompos,13)
doSendAnimatedText(topos,"Pff",180)
else
return 0
end
else
return 0
end
end
else
return 0
end
return 1
end
Código:
Shrine.lua" /> Shrine.lua" /> Shrine.lua" /> Shrine.lua" />
• 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:
Código:
--------------- D@rK ---------------
--------------- OTNet ---------------
function onUse(cid, item, frompos, item2, topos)
normal = {2383,7383}
fire = {7744,7745}
ice = {7763,7764}
earth = {7854,7855}
energy = {7869,7870}
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
Código:
encanta.lua" /> encanta.lua" /> encanta.lua" /> encanta.lua" />
• Verde - Nome do arquivo que criamos
O script vem configurado ja com duas armas, para adicionar as outras é so você fazer isso:
Citação:
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
Citação:
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 Aries 0.4.0 XML
0 comentários:
Postar um comentário