BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

[PEDIDO SCRIPT]Runa Creadora de Items

[PEDIDO SCRIPT]Runa Creadora de Items

#1 [PEDIDO SCRIPT]Runa Creadora de Items el Mar Abr 29, 2014 3:45 am

Mage Inmortall


Aprendiz
Hola quisiera saber si existe de algun manera de que con una runa puedra crear 1 de 2 cosas al azar, por ejemplo si tiro una magic wall al suelo que cree una crystal coin y que tenga un 50% de chance que cree una platinum coin, ya le configure yo en magic wall rune.lua pero solo logro hacer que cree la crystal coin no puedo hacer que salga una u otra cosa ,uso otx server la version mas reciente servidor 8.60

Edit: Que pueda crear un item con la id 2125 o con la id 2160 (mas facil explicado)

Edit 2: Mini fake(gif de como seria)
[Tienes que estar registrado y conectado para ver esa imagen]

aqui pondre mi magicwallrune.lua en caso de que se nececite
Spoiler:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1285)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end



Última edición por Mage Inmortall el Miér Abr 30, 2014 5:40 pm, editado 5 veces

#2 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 12:58 pm

Mage Inmortall


Aprendiz
@Bump

#3 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 2:01 pm

Kroxos


Estudiante
kieres que salga el efecto de distance en energy y lo que se cree sea una piedra envez de la magic wall??

http://tibiadarkblue.activo.mx/

#4 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 2:06 pm

Mage Inmortall


Aprendiz
[Tienes que estar registrado y conectado para ver este vínculo] escribió:kieres que salga el efecto de distance en energy y lo que se cree sea una piedra envez de la magic wall??

Si, quiero que salga el efecto y que se cree uno de los 2 items, una platinum o una crystal coin, por lo que veo es coplicado el scipt ando tratado de hacer uno a trozos pero no lo consigo

#5 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 4:32 pm

Sirakx


Moderador
Prueva:

Código:

local iditems = {2160, 2158 , 2185}
local random = iditems[math.random(1,3)]
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, random)

function onCastSpell(cid, var)
   doCombat(cid, combat, var)
return true
end



[Tienes que estar registrado y conectado para ver esa imagen]
http://celesta-global.net/

#6 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 5:27 pm

Mage Inmortall


Aprendiz
Spoiler:

God Rakzzo escribió:Prueva:

Código:

local iditems = {2160, 2158 , 2185}
local random = iditems[math.random(1,3)]
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatParam(combat, COMBAT_PARAM_CREATEITEM, random)

function onCastSpell(cid, var)
   doCombat(cid, combat, var)
return true
end

Solo crea la id "2158"(Blue Gem) todas las veces que intente (No funciono)

#7 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 5:51 pm

Belerofonte


Administrador
Código:
function onTargetTile(cid, pos)
local o = {1497, 1285} -- ID de los objetos creados.
local u = o[math.random(#o)]
  doCreateItem(u, 1, pos)
 return true
end
local combat = createCombatObject()
  setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
  setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
 return doCombat(cid, combat, var)
end

Al principio lo hice como pedíste con la magic wall y la piedra... el problema era que la piedra no se removía obviamente poniéndo una función secundaria para que lo hiciéra. Con la magic wall sin problemas pues la cual se configura en el Items.xml, por haber 2 magic walls una que se elimina pasado X tiempo y la otra se queda eternamente cual cualquier objeto del escenario:
<item id="1497" article="a" name="magic wall">
<attribute key="type" value="magicfield"/>
<attribute key="decayTo" value="0"/>
<attribute key="duration" value="20"/>
</item>
<item id="1498" article="a" name="magic wall" editorsuffix=" (Not decaying)">
<attribute key="type" value="magicfield"/>
</item>



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]

#8 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 6:14 pm

Mage Inmortall


Aprendiz
Spoiler:

[Tienes que estar registrado y conectado para ver este vínculo] escribió:
Código:
function onTargetTile(cid, pos)
local getPos = pos
local p = {2152, 2160} -- ID de los objetos creados.
local s = p[math.random(#p)]
  getPos.stackpos = 1
  doCreateItem(s, 1, pos)
 return true
end

local combat = createCombatObject()
  setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
  setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
 return doCombat(cid, combat, var)
end

Al principio lo hice como pedíste con la magic wall y la piedra... el problema era que la piedra no se removía aun poniéndo una función secundaria para que lo hiciéra, con la magic wall sin problemas pues la cual se configura en el Items.xml, por haber 2 magic walls una que se elimina pasado X tiempo y la otra se queda eternamente cual cualquier objeto del escenario.

Esta perfecto el script sirve exactamente para crear items diversos, solo que no sirve exactamente para lo que EXACTAMENTE lo queria, lo que pasa es que en tibia 8.60 hay varias magic walls en items.otb las cuales se pueden utilizar y lo que yo queria era tener un script que creara items diversos y ya yo despues cambiar las ids a la de las magic walls inutilizadas(10546,11098,1497,1498,otras para hacer una replica de las magic walls randoms en Tibia RL para que los botters no tubieran el timer siempre ON y le diera algo de chance a los fair players igualmente el script fuinciona pero es una lastima eso de la magic wall aun con el DecayTo "0" que no se pueda quitar pero bueno no todas las veces se puede (Funciono)

#9 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Miér Abr 30, 2014 10:44 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:
Spoiler:

[Tienes que estar registrado y conectado para ver este vínculo] escribió:
Código:
function onTargetTile(cid, pos)
local getPos = pos
local p = {2152, 2160} -- ID de los objetos creados.
local s = p[math.random(#p)]
  getPos.stackpos = 1
  doCreateItem(s, 1, pos)
 return true
end

local combat = createCombatObject()
  setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
  setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
 return doCombat(cid, combat, var)
end

Al principio lo hice como pedíste con la magic wall y la piedra... el problema era que la piedra no se removía aun poniéndo una función secundaria para que lo hiciéra, con la magic wall sin problemas pues la cual se configura en el Items.xml, por haber 2 magic walls una que se elimina pasado X tiempo y la otra se queda eternamente cual cualquier objeto del escenario.

Esta perfecto el script sirve exactamente para crear items diversos, solo que no sirve exactamente para lo que EXACTAMENTE lo queria, lo que pasa es que en tibia 8.60 hay varias magic walls en items.otb las cuales se pueden utilizar y lo que yo queria era tener un script que creara items diversos y ya yo despues cambiar las ids a la de las magic walls inutilizadas(10546,11098,1497,1498,otras para hacer una replica de las magic walls randoms en Tibia RL para que los botters no tubieran el timer siempre ON y le diera algo de chance a los fair players igualmente el script fuinciona pero es una lastima eso de la magic wall aun con el DecayTo "0" que no se pueda quitar pero bueno no todas las veces se puede (Funciono)

Bueno ya está, recién salido del horno. Ñam ñam ;D
A ojos de cualquier scripter puede parecer bastante feote estéticamente por no haber usado tables para acortarlo,
almenos esa parte de arriba repetitiva, pero no pude hacerlo de otra forma, aunque funcionar; funciona

Código:
local o = {
Seg = 5, -- Tiempo que durarán las walls ants de desvanecerse. (Contado en Segundos)
Wall = {1497, 1498, 10546, 11098} -- ID de los objetos creados.
}
local v = o.Wall
local function Belero (pos)
    if getTileItemById(pos, v[1]).uid > 0 then
      doRemoveItem(getTileItemById(pos, v[1]).uid, 1)
    end
        if getTileItemById(pos, v[2]).uid > 0 then
          doRemoveItem(getTileItemById(pos, v[2]).uid, 1)
        end
            if getTileItemById(pos, v[3]).uid > 0 then
              doRemoveItem(getTileItemById(pos, v[3]).uid, 1)
            end
               if getTileItemById(pos, v[4]).uid > 0 then
                  doRemoveItem(getTileItemById(pos, v[4]).uid, 1)
                end
  doSendMagicEffect (pos, CONST_ME_POFF)
end
    function onTargetTile(cid, pos)
      local u = v[math.random(#v)]
       doCreateItem(u, 1, pos)
       addEvent (Belero, o.Seg*1000, pos)
      return true
    end
local combat = createCombatObject()
  setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
  setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
  return doCombat(cid, combat, var)
end

La única parte que has de editar es ésa de arriba:
local o = {
Seg = 5, -- Tiempo que durarán las walls ants de desvanecerse. (Contado en Segundos)
Wall = {1497, 1498, 10546, 11098} -- ID de los objetos creados.
}

Si quisiéras añadir más Walls, simplemente tendrías que añadir otro ID más y en la parte repetitiva otras 3 líneas más como las anteriores pero en el "v[X]" el número sucesivo, es decir:
if getTileItemById(pos, v[5]).uid > 0 then
doRemoveItem(getTileItemById(pos, v[5]).uid, 1)
end

Previsualización:
[Tienes que estar registrado y conectado para ver esa imagen]

Lo cierto es que aún no he entendido el para qué querías añadir más de ese mismo tipo de Walls... creía que te referías a añadir las de todos los aspectos, pero bueno, hazlo como gustes ;)Se le puede poner cualquier cosa:
[Tienes que estar registrado y conectado para ver esa imagen]

¡Saludos!



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]

#10 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Jue Mayo 01, 2014 1:21 am

Mage Inmortall


Aprendiz
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Lo cierto es que aún no he entendido el para qué querías añadir más de ese mismo tipo de Walls...

Lo que quería hacer era tener 4 tipos de magic walls cada una con su DecayTo y su duracion "17","15",18",22" segundos para simular las magic walls de Tibia 10.39~ y que los botters que tuvieran timer(Información en la pantalla que te muestra los segundos restantes de una Magic Wall) no renovaran exactamente cuando la magic wall se quitara.

Los 2 scripts que hiciste están geniales pero no hacen la función de randomize en las walls hacen casi lo mismo pero distinto cada script sirve para otras cosas mas interesantes como eventos u otras cosas, te la rifaste con los scripts y lo siento por no haberme explicado ultra mega detallado pero aquí hice un fake final que debí haber echo desde un principio para no hacer tanto rollo, aunque los scripts que hiciste pueden servir para otra gente que los busque por que son perfectos.


[Tienes que estar registrado y conectado para ver esa imagen]

#11 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Jue Mayo 01, 2014 9:41 am

Belerofonte


Administrador
@Up, ok xD no te preocupes.

Código:
local o = {
Seg =  { 17,   15,    18,    22  }, -- Tiempo que durarán sus Magic Walls correspondientes de abajo. (Contado en Segundos)
Wall = {1497, 1498, 10546, 11098} -- ID de las Magic Walls.
          }
local v = o.Wall
local function Alfa (pos)
    if getTileItemById(pos, v[1]).uid > 0 then
      doRemoveItem(getTileItemById(pos, v[1]).uid, 1)
  doSendMagicEffect (pos, CONST_ME_POFF)
    end
end
    local function Beta (pos)
        if getTileItemById(pos, v[2]).uid > 0 then
          doRemoveItem(getTileItemById(pos, v[2]).uid, 1)
  doSendMagicEffect (pos, CONST_ME_POFF)
        end
    end
     local function Gamma (pos)
            if getTileItemById(pos, v[3]).uid > 0 then
              doRemoveItem(getTileItemById(pos, v[3]).uid, 1)
              doSendMagicEffect (pos, CONST_ME_POFF)
            end
        end
            local function Delta (pos)  
                if getTileItemById(pos, v[4]).uid > 0 then
                  doRemoveItem(getTileItemById(pos, v[4]).uid, 1)
  doSendMagicEffect (pos, CONST_ME_POFF)
                end
            end
        local t = o.Seg
    function onTargetTile(cid, pos)
      local Belero = v[math.random(#v)]
       doCreateItem(Belero, 1, pos)
       addEvent (Alfa, t[1]*1000, pos)
   addEvent (Beta, t[2]*1000, pos)
   addEvent (Gamma, t[3]*1000, pos)
   addEvent (Delta, t[4]*1000, pos)
      return true
    end
local combat = createCombatObject()
  setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
  setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
  return doCombat(cid, combat, var)
end

La parte que has de editar es la de arriba:
Seg =  { 17,   15,    18,    22  }, -- Tiempo que durarán sus Magic Walls correspondientes de abajo. (Contado en Segundos)
___________________
Wall = {1497, 1498, 10546, 11098} -- ID de las Magic Walls.

Como antes, solo que ahora los Segundos que permanecerán están parejos a las ID que tienen abajo. Como hay cuatro espacios, cuatro arriba & cuatro abajo pues cada uno está unido al suyo verticalmente.



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]

#12 Re: [PEDIDO SCRIPT]Runa Creadora de Items el Jue Mayo 01, 2014 1:05 pm

Mage Inmortall


Aprendiz
Spoiler:

[Tienes que estar registrado y conectado para ver este vínculo] escribió:@Up, ok xD no te preocupes.

Código:
local o = {
Seg =  { 17,   15,    18,    22  }, -- Tiempo que durarán sus Magic Walls correspondientes de abajo. (Contado en Segundos)
Wall = {1497, 1498, 10546, 11098} -- ID de las Magic Walls.
          }
local v = o.Wall
local function Alfa (pos)
    if getTileItemById(pos, v[1]).uid > 0 then
      doRemoveItem(getTileItemById(pos, v[1]).uid, 1)
  doSendMagicEffect (pos, CONST_ME_POFF)
    end
end
    local function Beta (pos)
        if getTileItemById(pos, v[2]).uid > 0 then
          doRemoveItem(getTileItemById(pos, v[2]).uid, 1)
  doSendMagicEffect (pos, CONST_ME_POFF)
        end
    end
     local function Gamma (pos)
            if getTileItemById(pos, v[3]).uid > 0 then
              doRemoveItem(getTileItemById(pos, v[3]).uid, 1)
              doSendMagicEffect (pos, CONST_ME_POFF)
            end
        end
            local function Delta (pos)  
                if getTileItemById(pos, v[4]).uid > 0 then
                  doRemoveItem(getTileItemById(pos, v[4]).uid, 1)
  doSendMagicEffect (pos, CONST_ME_POFF)
                end
            end
        local t = o.Seg
    function onTargetTile(cid, pos)
      local Belero = v[math.random(#v)]
       doCreateItem(Belero, 1, pos)
       addEvent (Alfa, t[1]*1000, pos)
   addEvent (Beta, t[2]*1000, pos)
   addEvent (Gamma, t[3]*1000, pos)
   addEvent (Delta, t[4]*1000, pos)
      return true
    end
local combat = createCombatObject()
  setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
  setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
function onCastSpell(cid, var)
  return doCombat(cid, combat, var)
end

La parte que has de editar es la de arriba:
Seg =  { 17,   15,    18,    22  }, -- Tiempo que durarán sus Magic Walls correspondientes de abajo. (Contado en Segundos)
___________________
Wall = {1497, 1498, 10546, 11098} -- ID de las Magic Walls.

Como antes, solo que ahora los Segundos que permanecerán están parejos a las ID que tienen abajo. Como hay cuatro espacios, cuatro arriba & cuatro abajo pues cada uno está unido al suyo verticalmente.

No se que escribir solo te dire GRACIAS


                                                   TEMA MEGA SOLUCIONADO CON PLUS+2

Contenido patrocinado


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 .