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