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