sábado, 1 de março de 2008

Enchanting System (sistema de ancantar armas)

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:

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
Explicando:

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" />
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

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
Você não presisa editar nada, agora vá até data/actions/ abra o arquivo actions.xml e adicione isso:
Código:
Shrine.lua" />

Shrine.lua" />
Shrine.lua" />
Shrine.lua" />
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:
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
Agora va ate a pasta data/actions/ e abra o arquivo actions.xml e adicione isso:
Código:
encanta.lua" />

encanta.lua" />
encanta.lua" />
encanta.lua" />
Explicando:

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:

tibia 850 download server otserv mapa como 854 para global 852 yorots tutorial otserver criar map editor comandos god vancino pokemon online com baixar criando mapas 840 sql war full bot ots fazer styller sqlite serve downloads comando studio alissow 842 editar simone editado dragon itens elfbot yourots quest servidor xtibia ball serv pra enforced mcv script sem otservers alisson npc colocar usar site slayer nukar snowz bug monster download tirar client fake servfull que account thyrania acc meu vip sprut por manager key 810 pagina gangrel sistema baixa lista luz quests completo stuff programa tibiabot elf level conta magias auto senha xdream nukando onde allisow seu player snow servidores qual mudar the uma nova char mana changer xml rme item reset pelo servers multi bugs sqlitestudio otmapeditor pvp todos cliente dos dar forgotten xvx edited versao carlin aumentar creator crack otservlist otserve verso armas lua soft lag rookgaard styler karmia 493 v11 deixar fazendo tempo colocando real nao nuker skull hackear list 100 maps scripts dbz novas atk naruto