SPELL_ID = 00 local min = 0 local max = 0 -- =============== COMBAT VARS =============== -- Areas/Combat for 2000ms local combat20_Brush = createCombatObject() setCombatParam(combat20_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat20_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat20_Brush,createCombatArea({{0, 0, 1}, {2, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat20_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat20_Brush = {CONST_ANI_WHIRLWINDAXE,2,-1} -- Areas/Combat for 1900ms local combat19_Brush = createCombatObject() setCombatParam(combat19_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat19_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat19_Brush,createCombatArea({{2, 0, 0}, {0, 0, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat19_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat19_Brush = {CONST_ANI_WHIRLWINDAXE,2,1} -- Areas/Combat for 1800ms local combat18_Brush = createCombatObject() setCombatParam(combat18_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat18_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat18_Brush,createCombatArea({{0, 2}, {1, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat18_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat18_Brush = {CONST_ANI_WHIRLWINDAXE,-1,1} -- Areas/Combat for 1700ms local combat17_Brush = createCombatObject() setCombatParam(combat17_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat17_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat17_Brush,createCombatArea({{2, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat17_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat17_Brush = {CONST_ANI_WHIRLWINDAXE,1,0} -- Areas/Combat for 1600ms local combat16_Brush = createCombatObject() setCombatParam(combat16_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat16_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat16_Brush,createCombatArea({{1, 0}, {0, 2}, {0, 0}, {1, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat16_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat16_Brush = {CONST_ANI_WHIRLWINDAXE,-1,2,-1,-1} -- Areas/Combat for 1500ms local combat15_Brush = createCombatObject() setCombatParam(combat15_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat15_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat15_Brush,createCombatArea({{0, 0, 2}, {1, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat15_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat15_Brush = {CONST_ANI_WHIRLWINDAXE,-2,1} -- Areas/Combat for 1400ms local combat14_Brush = createCombatObject() setCombatParam(combat14_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat14_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat14_Brush,createCombatArea({{1, 0, 2}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat14_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat14_Brush = {CONST_ANI_WHIRLWINDAXE,-2,0} -- Areas/Combat for 1300ms local combat13_Brush = createCombatObject() setCombatParam(combat13_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat13_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat13_Brush,createCombatArea({{2, 0, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat13_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat13_Brush = {CONST_ANI_WHIRLWINDAXE,2,0} -- Areas/Combat for 1200ms local combat12_Brush = createCombatObject() setCombatParam(combat12_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat12_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat12_Brush,createCombatArea({{2, 0}, {0, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat12_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat12_Brush = {CONST_ANI_WHIRLWINDAXE,1,1} -- Areas/Combat for 1100ms local combat11_Brush = createCombatObject() setCombatParam(combat11_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat11_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat11_Brush,createCombatArea({{1}, {2}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat11_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat11_Brush = {CONST_ANI_WHIRLWINDAXE,0,-1} -- Areas/Combat for 1000ms local combat10_Brush = createCombatObject() setCombatParam(combat10_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat10_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat10_Brush,createCombatArea({{0, 0, 1}, {0, 0, 0}, {2, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat10_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat10_Brush = {CONST_ANI_WHIRLWINDAXE,2,-2} -- Areas/Combat for 900ms local combat9_Brush = createCombatObject() setCombatParam(combat9_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat9_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat9_Brush,createCombatArea({{0, 0, 2}, {1, 0, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat9_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat9_Brush = {CONST_ANI_WHIRLWINDAXE,-2,1} -- Areas/Combat for 800ms local combat8_Brush = createCombatObject() setCombatParam(combat8_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat8_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat8_Brush,createCombatArea({{1, 0, 0}, {0, 0, 2}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat8_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat8_Brush = {CONST_ANI_WHIRLWINDAXE,-2,-1} -- Areas/Combat for 700ms local combat7_Brush = createCombatObject() setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat7_Brush,createCombatArea({{1, 2}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat7_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat7_Brush = {CONST_ANI_WHIRLWINDAXE,-1,0} -- Areas/Combat for 600ms local combat6_Brush = createCombatObject() setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat6_Brush,createCombatArea({{2, 0}, {0, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat6_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat6_Brush = {CONST_ANI_WHIRLWINDAXE,1,1} -- Areas/Combat for 500ms local combat5_Brush = createCombatObject() setCombatParam(combat5_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat5_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat5_Brush,createCombatArea({{2, 0, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat5_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat5_Brush = {CONST_ANI_WHIRLWINDAXE,2,0} -- Areas/Combat for 400ms local combat4_Brush = createCombatObject() setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat4_Brush,createCombatArea({{1}, {0}, {2}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat4_Brush = {CONST_ANI_WHIRLWINDAXE,0,-2} -- Areas/Combat for 300ms local combat3_Brush = createCombatObject() setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat3_Brush,createCombatArea({{0, 1}, {2, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat3_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat3_Brush = {CONST_ANI_WHIRLWINDAXE,1,-1} -- Areas/Combat for 200ms local combat2_Brush = createCombatObject() setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat2_Brush,createCombatArea({{0, 2}, {0, 0}, {1, 0}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat2_Brush = {CONST_ANI_WHIRLWINDAXE,-1,2} -- Areas/Combat for 100ms local combat1_Brush = createCombatObject() setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat1_Brush,createCombatArea({{2}, {1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat1_Brush = {CONST_ANI_WHIRLWINDAXE,0,1} -- Areas/Combat for 0ms local combat0_Brush = createCombatObject() setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_DRAWBLOOD) setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatArea(combat0_Brush,createCombatArea({{2, 0, 0}, {0, 0, 0}, {0, 0, 1}})) function getDmg_Brush(cid, level, maglevel) return -min, -max end setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush") local dfcombat0_Brush = {CONST_ANI_WHIRLWINDAXE,2,2} -- =============== CORE FUNCTIONS =============== local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part if (isCreature(cid)) then doCombat(cid, c, var) if (dirList ~= nil) then -- Emit distance effects local i = 2; while (i < #dirList) do doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1]) i = i + 2 end end end end function checkSpell31(cid) local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01) local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04) local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05) local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06) SPELL_ID = 31 if GUN_ID > 0 then if CHECK_SLOT_01 == SPELL_ID then cid:sendCancelMessage("@SpellCooldown 01") return true elseif CHECK_SLOT_02 == SPELL_ID then cid:sendCancelMessage("@SpellCooldown 02") return true elseif CHECK_SLOT_03 == SPELL_ID then cid:sendCancelMessage("@SpellCooldown 03") return true else return false end else return false end return true end function onCastSpell(cid, var) if checkSpell31(cid) or cid:getGroup():getAccess() then local startPos = getCreaturePosition(cid) local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01) local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03) local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07) min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID) max = min addEvent(RunPart,2000,combat20_Brush,cid.uid,var,dfcombat20_Brush,startPos) addEvent(RunPart,1900,combat19_Brush,cid.uid,var,dfcombat19_Brush,startPos) addEvent(RunPart,1800,combat18_Brush,cid.uid,var,dfcombat18_Brush,startPos) addEvent(RunPart,1700,combat17_Brush,cid.uid,var,dfcombat17_Brush,startPos) addEvent(RunPart,1600,combat16_Brush,cid.uid,var,dfcombat16_Brush,startPos) addEvent(RunPart,1500,combat15_Brush,cid.uid,var,dfcombat15_Brush,startPos) addEvent(RunPart,1400,combat14_Brush,cid.uid,var,dfcombat14_Brush,startPos) addEvent(RunPart,1300,combat13_Brush,cid.uid,var,dfcombat13_Brush,startPos) addEvent(RunPart,1200,combat12_Brush,cid.uid,var,dfcombat12_Brush,startPos) addEvent(RunPart,1100,combat11_Brush,cid.uid,var,dfcombat11_Brush,startPos) addEvent(RunPart,1000,combat10_Brush,cid.uid,var,dfcombat10_Brush,startPos) addEvent(RunPart,900,combat9_Brush,cid.uid,var,dfcombat9_Brush,startPos) addEvent(RunPart,800,combat8_Brush,cid.uid,var,dfcombat8_Brush,startPos) addEvent(RunPart,700,combat7_Brush,cid.uid,var,dfcombat7_Brush,startPos) addEvent(RunPart,600,combat6_Brush,cid.uid,var,dfcombat6_Brush,startPos) addEvent(RunPart,500,combat5_Brush,cid.uid,var,dfcombat5_Brush,startPos) addEvent(RunPart,400,combat4_Brush,cid.uid,var,dfcombat4_Brush,startPos) addEvent(RunPart,300,combat3_Brush,cid.uid,var,dfcombat3_Brush,startPos) addEvent(RunPart,200,combat2_Brush,cid.uid,var,dfcombat2_Brush,startPos) addEvent(RunPart,100,combat1_Brush,cid.uid,var,dfcombat1_Brush,startPos) RunPart(combat0_Brush,cid,var,dfcombat0_Brush,startPos) return true else cid:getPosition():sendMagicEffect(03) return false end end