BlackTibia

No estás conectado. Conéctate o registrate

 » Open Tibia » Pedido de Scripts » 

[Resuelto] Pedido de Spell random

[Resuelto] Pedido de Spell random

#1 [Resuelto] Pedido de Spell random el Lun Mayo 05, 2014 3:24 pm

Yoiker


Miembro
Hola usuarios de BlackTibia, he tratado de averiguar si existe un spell como el Exuna Hur Mort de necroxia origin. Para aclarar que suelte combos random con los 5 elementos:

1 exori vis
2 exori frigo
3 exori mort
4 exori flam
5 exori tera

Una que otras veces de combo me explico 2 y 3, 1 y 5 pero random que no siempre sean esos.

Ayúdenme por favor, gracias!
OJO: No todos los elementos de un golpe, eso causa lag

#2 Re: [Resuelto] Pedido de Spell random el Miér Mayo 07, 2014 1:06 am

Belerofonte


Administrador
Servidor/Data/Spells/Spells.xml:
Código:
<instant name="Omni Strike" words="Exuna Hur Mort" lvl="90" mana="20" prem="1" range="3" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="attack/OmniStrike.lua">
 <vocation id="1;5"/>
 <vocation id="2;6"/>
 </instant>
La línea la configuras a tu gusto como cualquier Spell.

Servidor/Data/Spells/Scripts/Attack/... OmniStrike.lua: (o el nombre que le quieras poner al archivo.lua)
Código:
local Config = {
Min = 10, -- Daño Mínimo asestado.
Max = 30, -- Daño Máximo asestado.
Combo = 500 -- Milisegundos que tardarán en aparecer los Combos.
               }
local Belero = {
  [1]={CONST_ME_ENERGYAREA, CONST_ANI_ENERGY, COMBAT_ENERGYDAMAGE}, -- Energy Stricke.
  [2]={CONST_ME_ICEATTACK, CONST_ANI_SMALLICE, COMBAT_ICEDAMAGE}, -- Ice Stricke.
  [3]={CONST_ME_MORTAREA, CONST_ANI_SUDDENDEATH, COMBAT_DEATHDAMAGE}, -- Death Stricke.
  [4]={CONST_ME_FIREATTACK, CONST_ANI_FIRE, COMBAT_FIREDAMAGE}, -- Flame Stricke.
  [5]={CONST_ME_CARNIPHILA, CONST_ANI_EARTH, COMBAT_EARTHDAMAGE} -- Terra Stricke.
               }
local function ComboElectro(param) -- Energy Stricke.
  doSendMagicEffect(param.pos, Belero[1][1])
  doSendDistanceShoot(getThingPos(param.cid), param.pos, Belero[1][2])
  doAreaCombatHealth(param.cid, Belero[1][3], param.pos, 0, -Config.Min, -Config.Max, CONST_ME_NONE)
end
local function ComboTierra(param) -- Terra Stricke.
  doSendMagicEffect(param.pos, Belero[5][1])
  doSendDistanceShoot(getThingPos(param.cid), param.pos, Belero[5][2])
  doAreaCombatHealth(param.cid, Belero[5][3], param.pos, 0, -Config.Min, -Config.Max, CONST_ME_NONE)
end
local function ComboHielo(param) -- Ice Stricke.
  doSendMagicEffect(param.pos, Belero[2][1])
  doSendDistanceShoot(getThingPos(param.cid), param.pos, Belero[2][2])
  doAreaCombatHealth(param.cid, Belero[2][3], param.pos, 0, -Config.Min, -Config.Max, CONST_ME_NONE)
end
local function ComboFuego(param) -- Flame Stricke.
  doSendMagicEffect(param.pos, Belero[4][1])
  doSendDistanceShoot(getThingPos(param.cid), param.pos, Belero[4][2])
  doAreaCombatHealth(param.cid, Belero[4][3], param.pos, 0, -Config.Min, -Config.Max, CONST_ME_NONE)
end
function spellCallback(param)
  local p = Belero[math.random(#Belero)]
    if math.random(1,50) == 1 then
      ComboElectro (param)
      doSendAnimatedText (param.pos, "Combo!", COLOR_GREEN)
      addEvent (ComboTierra, Config.Combo, param)
        elseif math.random(1,50) == 50 then
          ComboHielo (param)
          doSendAnimatedText (param.pos, "Combo!", COLOR_RED)
          addEvent (ComboFuego, Config.Combo, param)
    else
      doSendMagicEffect(param.pos, p[1])
      doSendDistanceShoot(getThingPos(param.cid), param.pos, p[2])
      doAreaCombatHealth(param.cid, p[3], param.pos, 0, -Config.Min, -Config.Max, CONST_ME_NONE)
    end
end
function onTargetTile(cid, pos)
  local param = {}
  param.cid = cid
  param.pos = pos
  spellCallback(param)
end
local combat = createCombatObject()
  setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")
function onCastSpell(cid, var)
  return doCombat(cid, combat, var)
end

Instrucción:
local Config = {
Min = 10, -- Daño Mínimo asestado.
Max = 30, -- Daño Máximo asestado.
Combo = 500 -- Milisegundos que tardarán en aparecer los Combos.
              }
Lo malo es que no supe cómo hacer para añadir la típica fórmula de:
Código:
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)
En forma de función secundaria como las demás, ya que de la forma que está puesta no funciona D;
Es decir, que el daño que hagan no dependerá del nivel & nivel mágico, solo del Min/Max que pongas.

También me tomé la libertad de añadir el texto animado diciéndo "Combo!" cuando aseste el cual ya que queda guay
aunque si no lo quieres, simplemente borra sus respectivas funciones en las líneas: 37 & 42.
O editar las posibilidades para que aparezcan los combos en las líneas: 35 & 39.
function spellCallback(param)
 local p = Belero[math.random(#Belero)]
   if math.random(1,50) == 1 then
     ComboElectro (param)
     doSendAnimatedText (param.pos, "Combo!", COLOR_GREEN)
     addEvent (ComboTierra, Config.Combo, param)
       elseif math.random(1,50) == 50 then
         ComboHielo (param)
         doSendAnimatedText (param.pos, "Combo!", COLOR_RED)
         addEvent (ComboFuego, Config.Combo, param)
   else
     doSendMagicEffect(param.pos, p[1])
     doSendDistanceShoot(getThingPos(param.cid), param.pos, p[2])
     doAreaCombatHealth(param.cid, p[3], param.pos, 0, -Config.Min, -Config.Max, CONST_ME_NONE)
   end
end

EDIT:
Ahora que re-leo tu post creo que la he cagado D;
1.¿Te referías a que normalemnte solamente dispare el "exori mort" y las demás veces al azar dispare ese par de combos formados de "Exori vis" con "Exori tera" y "Exori frigo" con "Exori flam"?
2. O ¿te referías a que como lo hice: normalmente dispare al azar 1 sólo "exori" de todos sus tipos y dispare también al azar los combos mencionados anteriormente?
... creo que es la 1 opción, ¿no? ya que si el conjuro se llama "Exuna Hur Mort", es decir, "Mort" = "exori mort" el usado normalmente... ¿o no? D; y como en los combos no mencionáste al de "exori mort"...



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]

#3 Re: [Resuelto] Pedido de Spell random el Jue Mayo 15, 2014 10:02 am

Yoiker


Miembro
Así es como lo pedí xd gracias.
Pero tengo una duda porq lanza vis seguidamente? o sea se queda lanzando vis y frigo

#4 Re: [Resuelto] Pedido de Spell random el Jue Mayo 15, 2014 10:29 am

Xafterin


Miembro
Aviso que cambies de título o se deberá cerrar tus siguientes temas. Hay nuevos requisitos para postear aqui. No voy a negar la ayuda a nadie pero si veo que no hacen caso cerraré sus temas para que asi lo hagan.

#5 Re: [Resuelto] Pedido de Spell random el Jue Mayo 15, 2014 3:03 pm

Belerofonte


Administrador
[Tienes que estar registrado y conectado para ver este vínculo] escribió:Así es como lo pedí xd gracias.
Pero tengo una duda porq lanza vis seguidamente? o sea se queda lanzando vis y frigo
._. ¿Estás seguro de ello? ¿lo probáste varias veces?
[Tienes que estar registrado y conectado para ver esa imagen]

EDIT:
Cierro, Tema solucionado:
[Tienes que estar registrado y conectado para ver esa imagen]



Última edición por Belerofonte el Miér Mayo 21, 2014 5:28 pm, editado 1 vez (Razón : Solucionado.)



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]

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 .