BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

(Resuelto) [Pedido] Ítem evoluciona por stone.

(Resuelto) [Pedido] Ítem evoluciona por stone.

Garitero007


Novato
Hola amigos estoy buscando un scripts de una stone que cuando se la eches a un item el items evolucione entienden? Que ej tienes una demon armor, agarras la stone se la echas a la armor y se combierta en otro item ej un golden armor

Gracias ayudaaa :c

Belerofonte


Administrador
(Antes de seguir mis instrucciones, lee este comentario al completo, pues tal vez te arrepientas de no haber llegado hasta el final en un primer momento )

Si he de suponer que con "agarrar & echar" en realidad te refieres a usar la opción "Use with..." en la piedra para luego darle a la armadura en cuestión,
pues has de escoger algún objeto que ya posea dicha propiedad de "Use with..." porque por lo que he leído, no es posible o no se sabe hacerlo de otra forma que no sea con algún OTItemEditor:
[Tienes que estar registrado y conectado para ver este vínculo]

Te vas a tu Servidor/Data/Actions/Actions.xml y en una de las líneas, pegas la siguiente:
Actions.xml escribió:<action itemid="2556" event="script" value="evolitem.lua"/>
Y ahí le pones el ID del objeto que se ha de usar ("Use with...") en la armadura evolucionable.

Luego te vas a tu Servidor/Data/Actions/Scripts/... creas un evolitem.lua (o como quieras llamarlo, el mismo nombre que le hayas puesto en la línea del Actions.xml anterior).
Lo abres & sutitúyes todo lo que haya dentro a cambio de lo siguiente:
evolitem.lua escribió:  local c = {
   Effect = CONST_ME_BLOCKHIT, -- Efecto Mágico que aparecerá en el objeto evolucionado.
-- [Objeto evolucionable] = {Objeto evolucionado},
   [2494] = {2466}, -- Demon Armor = Golden Armor.
   [2464] = {2463}, -- Chain Armor = Plate Armor.
 }

function onUse(cid, item, fromPosition, itemEx, toPosition)
 local v = c[itemEx.itemid]
   if v then
       doTransformItem(itemEx.uid, v[1])
       doSendMagicEffect(toPosition, c.Effect)
       doRemoveItem(item.uid, 1)
    else
      doPlayerSendCancel(cid, 'This article cannot evolve.') -- Mensaje que aparecerá cuando se use en un objeto NO evolucionable.
      doSendMagicEffect(toPosition, CONST_ME_POFF)
   end
 return true
end

Si quieres añadir más, solo tienes que añadir más líneas como las anteriores. Ejemplo:
evolitem.lua escribió:  local c = {
   Effect = CONST_ME_BLOCKHIT, -- Efecto Mágico que aparecerá en el objeto evolucionado.
-- [Objeto evolucionable] = {Objeto evolucionado},
   [2494] = {2466}, -- Demon Armor = Golden Armor.
   [2464] = {2463}, -- Chain Armor = Plate Armor.
   [2483] = {2476}, -- Scale Armor = Knight Armor.
   [2486] = {2487}, -- Noble Armor = Crown Armor.
   [2505] = {2503}, -- Elven Mail = Dwarven Armor.
   [2650] = {2651}, -- Jacket = Coat.

 }

function onUse(cid, item, fromPosition, itemEx, toPosition)
 local v = c[itemEx.itemid]
   if v then
       doTransformItem(itemEx.uid, v[1])
       doSendMagicEffect(toPosition, c.Effect)
       doRemoveItem(item.uid, 1)
    else
      doPlayerSendCancel(cid, 'This article cannot evolve.') -- Mensaje que aparecerá cuando se use en un objeto NO evolucionable.
      doSendMagicEffect(toPosition, CONST_ME_POFF)
   end
 return true
end


Pero si realmente te referías a "agarrar & echar" literalmente, pues olvida lo anterior y:
Servidor/Data/Movements/Movements.xml:
Movements.xml escribió:<movevent type="AddItem" tileitem="1" itemid="2494;2464;2483;2486;2505;2650" event="script" value="evolitem.lua"/>
Ahí pones los ID de los objetos evolucionables.

Servidor/Data/Movements/Scripts/... evolitem.lua:
evolitem.lua escribió:  local c = {
   Effect = CONST_ME_BLOCKHIT, -- Efecto Mágico que aparecerá en el objeto evolucionado.
StoneID = 1294, -- ID del objeto lanzado.
-- [Objeto evolucionable] = {Objeto evolucionado},
   [2494] = {2466}, -- Demon Armor = Golden Armor.
   [2464] = {2463}, -- Chain Armor = Plate Armor.
   [2483] = {2476}, -- Scale Armor = Knight Armor.
   [2486] = {2487}, -- Noble Armor = Crown Armor.
   [2505] = {2503}, -- Elven Mail = Dwarven Armor.
   [2650] = {2651}, -- Jacket = Coat.
 }
function onAddItem(moveitem, tileitem, position, cid)
 local t = c[tileitem.itemid]
   if moveitem.itemid == c.StoneID then
       if t then
          doTransformItem(tileitem.uid, t[1])
          doSendMagicEffect(position, c.Effect)
          doRemoveItem(moveitem.uid, 1)
      end
   end
return true
end

Si quieres añadir más armaduras, pues como lo anterior: añades mas líneas y pones el ID en la línea del Movements.xml separada por punto & coma ";" de las demás.



Sugerencia para evitar futuros quebraderos de cabeza:
[Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo] - [Tienes que estar registrado y conectado para ver este vínculo]
[Tienes que estar registrado y conectado para ver esa imagen]

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.

 

¿Quién está en línea?

En total hay 0 usuarios en línea: 0 Registrados, 0 Ocultos y 0 Invitado

Usuarios navegando en este foro: Ninguno

Forum Statistics

Nuestros miembros han públicado un total de posts en temas.
Actualmente hay miembros registrados.
Démosle la bienvenida al miembro más reciente,
La mayor cantidad de usuarios en línea ha sido de .