1SPELL_ID = 00
2local min = 0
3local max = 0
4
5-- =============== COMBAT VARS ===============
6-- Areas/Combat for 800ms
7local combat8_Brush = createCombatObject()
8setCombatParam(combat8_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
9setCombatParam(combat8_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
10setCombatArea(combat8_Brush,createCombatArea({{1, 2}}))
11function getDmg_Brush(cid, level, maglevel)
12
13 return -min, -max
14end
15setCombatCallback(combat8_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
16
17-- Areas/Combat for 700ms
18local combat7_Brush = createCombatObject()
19setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
20setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
21setCombatArea(combat7_Brush,createCombatArea({{3}}))
22function getDmg_Brush(cid, level, maglevel)
23
24 return -min, -max
25end
26setCombatCallback(combat7_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
27
28-- Areas/Combat for 600ms
29local combat6_Brush = createCombatObject()
30setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
31setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
32setCombatArea(combat6_Brush,createCombatArea({{2, 1}}))
33function getDmg_Brush(cid, level, maglevel)
34
35 return -min, -max
36end
37setCombatCallback(combat6_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
38
39-- Areas/Combat for 200ms
40local combat2_Brush = createCombatObject()
41setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
42setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
43setCombatArea(combat2_Brush,createCombatArea({{1},
44{2}}))
45function getDmg_Brush(cid, level, maglevel)
46
47 return -min, -max
48end
49setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
50
51-- Areas/Combat for 100ms
52local combat1_Brush = createCombatObject()
53setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
54setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
55setCombatArea(combat1_Brush,createCombatArea({{3}}))
56function getDmg_Brush(cid, level, maglevel)
57
58 return -min, -max
59end
60setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
61
62-- Areas/Combat for 0ms
63local combat0_Brush = createCombatObject()
64setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
65setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
66setCombatArea(combat0_Brush,createCombatArea({{2},
67{1}}))
68function getDmg_Brush(cid, level, maglevel)
69
70 return -min, -max
71end
72setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
73
74-- =============== CORE FUNCTIONS ===============
75local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
76 if (isCreature(cid)) then
77 doCombat(cid, c, var)
78 if (dirList ~= nil) then -- Emit distance effects
79 local i = 2;
80 while (i < #dirList) do
81 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
82 i = i + 2
83 end
84 end
85 end
86end
87
88function checkSpell19(cid)
89 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
90 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
91 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
92 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
93 SPELL_ID = 19
94
95 if GUN_ID > 0 then
96 if CHECK_SLOT_01 == SPELL_ID then
97 cid:sendCancelMessage("@SpellCooldown 01")
98 return true
99 elseif CHECK_SLOT_02 == SPELL_ID then
100 cid:sendCancelMessage("@SpellCooldown 02")
101 return true
102 elseif CHECK_SLOT_03 == SPELL_ID then
103 cid:sendCancelMessage("@SpellCooldown 03")
104 return true
105 else
106 return false
107 end
108 else
109 return false
110 end
111 return true
112end
113function onCastSpell(cid, var)
114 if checkSpell19(cid) or cid:getGroup():getAccess() then
115 local startPos = getCreaturePosition(cid)
116 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
117 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
118 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
119 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
120 max = min
121 addEvent(RunPart,800,combat8_Brush,cid.uid,var)
122 addEvent(RunPart,700,combat7_Brush,cid.uid,var)
123 addEvent(RunPart,600,combat6_Brush,cid.uid,var)
124 addEvent(RunPart,200,combat2_Brush,cid.uid,var)
125 addEvent(RunPart,100,combat1_Brush,cid.uid,var)
126 RunPart(combat0_Brush,cid,var)
127 return true
128 else
129 cid:getPosition():sendMagicEffect(03)
130 return false
131 end
132end