1SPELL_ID = 00
2local min = 0
3local max = 0
4
5-- =============== COMBAT VARS ===============
6-- Areas/Combat for 0ms
7local combat0_Brush = createCombatObject()
8setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
9setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
10setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
11setCombatArea(combat0_Brush,createCombatArea({{3}}))
12function getDmg_Brush(cid, level, maglevel)
13
14 return -min, -max
15end
16setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
17
18-- Areas/Combat for 500ms
19local combat5_Brush_2 = createCombatObject()
20setCombatParam(combat5_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
21setCombatParam(combat5_Brush_2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
22setCombatArea(combat5_Brush_2,createCombatArea({{3}}))
23
24
25-- =============== CORE FUNCTIONS ===============
26local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
27 if (isCreature(cid)) then
28 doCombat(cid, c, var)
29 if (dirList ~= nil) then -- Emit distance effects
30 local i = 2;
31 while (i < #dirList) do
32 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
33 i = i + 2
34 end
35 end
36 end
37end
38function checkSpell62(cid)
39 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
40 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
41 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
42 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
43 SPELL_ID = 62
44
45 if GUN_ID > 0 then
46 if CHECK_SLOT_01 == SPELL_ID then
47 cid:sendCancelMessage("@SpellCooldown 01")
48 return true
49 elseif CHECK_SLOT_02 == SPELL_ID then
50 cid:sendCancelMessage("@SpellCooldown 02")
51 return true
52 elseif CHECK_SLOT_03 == SPELL_ID then
53 cid:sendCancelMessage("@SpellCooldown 03")
54 return true
55 else
56 return false
57 end
58 else
59 return false
60 end
61end
62function onCastSpell(cid, var)
63 if checkSpell62(cid) or cid:getGroup():getAccess() then
64 local startPos = getCreaturePosition(cid)
65 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
66 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
67 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
68 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
69 max = min
70 RunPart(combat0_Brush,cid,var)
71 addEvent(RunPart,500,combat5_Brush_2,cid.uid,var)
72 return true
73 else
74 cid:getPosition():sendMagicEffect(03)
75 return false
76 end
77end