Slime
Active Member
- Joined
- Jan 25, 2014
- Messages
- 115
- Reaction score
- 32
I'm posting this since it may be useful for someone and also it needs some improvement (which I can't really do, because I'm a beginner at scripting). The code itself is a bit chaotic:
So basically casting time in this script is reduced by sword an axe fighting (they are replaced by intellect and luck on my server) but you can use whatever stat you want by changing the castreduction formula. The player can't move during the casting.
Code:
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 41)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -12)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 42)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -12)
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 41)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -12)
local area1 = createCombatArea(AREA_CROSS6X6)
local area2 = createCombatArea(AREA_CROSS6X6)
local area3 = createCombatArea(AREA_CROSS6X6)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
local function castingTime(cid)
doCreatureSay(cid, "[CASTING]Storm Gust!", TALKTYPE_ORANGE_1)
doPlayerSendCancel(cid, "You cannot move while casting a spell.")
doCreatureSetNoMove(cid, 1)
end
local function castingStop(cid)
doCreatureSay(cid, "Storm Gust!", TALKTYPE_ORANGE_1)
doCreatureSetNoMove(cid, 0)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, }
local castreduction=(getPlayerSkillLevel(cid, SKILL_SWORD)*0.7 + getPlayerSkillLevel(cid, SKILL_AXE)*0.3)
local casttime = 3000
local globaltime=((casttime)-casttime*castreduction*0.01)
if (globaltime <= 0) then
addEvent(castingStop, (50), cid)
addEvent(onCastSpell1, (51), parameters)
addEvent(onCastSpell2, (500), parameters)
addEvent(onCastSpell3, (1000), parameters)
else
addEvent(castingTime, 1, cid)
addEvent(castingStop, (globaltime+50), cid)
addEvent(onCastSpell1, (globaltime+51), parameters)
addEvent(onCastSpell2, (globaltime+500), parameters)
addEvent(onCastSpell3, (globaltime+1000), parameters)
end
return true
end
Last edited: