• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • New resources must be posted under Resources tab. A discussion thread will be created automatically, you can't open threads manually anymore.

Spell AVALANCHE STRIKE (Done, working, and shared!)

supomglol

Member
Joined
Jan 29, 2012
Messages
195
Reaction score
10
So I have created a spell for my Second Promoted Druids, which uses both Terra Wave + Ice Strike at the same time, (The same formula's as the original spells.)

Put this in your spells.xml

HTML:
	<instant name="Avalanche Strike" words="exevo teraga" lvl="550" mana="1000" casterTargetOrDirection="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="attack/Avalanche Strike.lua">
	<vocation id="10"/>
	</instant>

and then go to Spells-> Scripts -> Attack
Create a Avalanche Strike.lua
HTML:
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -3.5, -7)


local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)


local function onCastSpell1(parameters)
	doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters) 
    doCombat(parameters.cid, combat2, parameters.var)
end

local area1 = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat1, area1)


function onCastSpell(cid, var) 
local parameters = { cid = cid, var = var} 
addEvent(onCastSpell1, 0, parameters) 
addEvent(onCastSpell2, 0, parameters)
return TRUE
end


Works perfectly on my 8.55 client 0.3.6 TFS


ENJOY :)
 
Last edited:
HTML:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 3.5, 7)

local area = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combat, area)

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

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

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



Maybe something like this?
 
No wait, I cannot get my exori frigo to shoot ranged, i will work on this in a bit, gonna take a break. sorry for the misleading title guys
 
Meh. You have to do for the wave:

Lua:
local combatWave = createCombatObject()
setCombatParam(combatWave, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatParam(combatWave, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combatWave, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setAttackFormula(combatWave, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 3.5, 7)

local areaWave = createCombatArea(AREA_SQUAREWAVE5, AREADIAGONAL_SQUAREWAVE5)
setCombatArea(combatWave, areaWave)


local combatStrike = createCombatObject()
setCombatParam(combatStrike, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combatStrike, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combatStrike, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)
setCombatFormula(combatStrike, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1)

function onCastSpell(cid, var)
	doCombat(cid, combatStrike, var)
	return doCombat(cid, combatWave, positionToVariant(getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1)))
end
 
Back
Top