1SPELL_ID = 00
2local min = 0
3local max = 0
4
5-- =============== COMBAT VARS ===============
6-- Areas/Combat for 100ms
7local combat1_Brush_2 = createCombatObject()
8setCombatParam(combat1_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
9setCombatParam(combat1_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
10setCombatArea(combat1_Brush_2,createCombatArea({{1, 0, 0, 0, 1},
11{0, 0, 2, 0, 0},
12{0, 0, 0, 1, 0}}))
13function getDmg_Brush_2(cid, level, maglevel)
14
15 return -min, -max
16end
17setCombatCallback(combat1_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
18
19-- Areas/Combat for 0ms
20local combat0_Brush = createCombatObject()
21setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
22setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FIRE)
23setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
24setCombatArea(combat0_Brush,createCombatArea({{3}}))
25function getDmg_Brush(cid, level, maglevel)
26
27 return -min, -max
28end
29setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
30
31-- Areas/Combat for 200ms
32local combat2_Brush_2 = createCombatObject()
33setCombatParam(combat2_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
34setCombatParam(combat2_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
35setCombatArea(combat2_Brush_2,createCombatArea({{0, 1},
36{0, 2},
37{1, 0},
38{0, 1}}))
39function getDmg_Brush_2(cid, level, maglevel)
40
41 return -min, -max
42end
43setCombatCallback(combat2_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
44
45-- Areas/Combat for 300ms
46local combat3_Brush_2 = createCombatObject()
47setCombatParam(combat3_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
48setCombatParam(combat3_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
49setCombatArea(combat3_Brush_2,createCombatArea({{1, 0, 2, 0, 1},
50{0, 0, 0, 0, 0},
51{0, 0, 0, 0, 1}}))
52function getDmg_Brush_2(cid, level, maglevel)
53
54 return -min, -max
55end
56setCombatCallback(combat3_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
57
58-- Areas/Combat for 400ms
59local combat4_Brush_2 = createCombatObject()
60setCombatParam(combat4_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
61setCombatParam(combat4_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
62setCombatArea(combat4_Brush_2,createCombatArea({{0, 0, 0, 0, 1, 0, 0},
63{0, 0, 0, 0, 0, 0, 0},
64{0, 0, 0, 2, 0, 0, 0},
65{0, 0, 0, 0, 0, 0, 1},
66{1, 0, 0, 0, 0, 0, 0}}))
67function getDmg_Brush_2(cid, level, maglevel)
68
69 return -min, -max
70end
71setCombatCallback(combat4_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
72
73-- Areas/Combat for 500ms
74local combat5_Brush_2 = createCombatObject()
75setCombatParam(combat5_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
76setCombatParam(combat5_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
77setCombatArea(combat5_Brush_2,createCombatArea({{1, 0, 0, 0, 1},
78{0, 0, 0, 0, 0},
79{0, 2, 0, 0, 0},
80{0, 0, 0, 0, 0},
81{0, 0, 0, 0, 0},
82{0, 0, 1, 0, 0}}))
83function getDmg_Brush_2(cid, level, maglevel)
84
85 return -min, -max
86end
87setCombatCallback(combat5_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
88
89-- Areas/Combat for 600ms
90local combat6_Brush_2 = createCombatObject()
91setCombatParam(combat6_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
92setCombatParam(combat6_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
93setCombatArea(combat6_Brush_2,createCombatArea({{1, 0, 0, 0, 0, 0},
94{0, 0, 0, 0, 0, 1},
95{0, 0, 2, 0, 0, 0},
96{0, 0, 0, 0, 0, 0},
97{1, 0, 0, 0, 0, 0}}))
98function getDmg_Brush_2(cid, level, maglevel)
99
100 return -min, -max
101end
102setCombatCallback(combat6_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
103
104-- Areas/Combat for 700ms
105local combat7_Brush_2 = createCombatObject()
106setCombatParam(combat7_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
107setCombatParam(combat7_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
108setCombatArea(combat7_Brush_2,createCombatArea({{1, 0, 0, 2, 1, 0, 0},
109{0, 0, 0, 0, 0, 0, 0},
110{0, 0, 0, 0, 0, 0, 0},
111{0, 0, 0, 0, 0, 0, 1}}))
112function getDmg_Brush_2(cid, level, maglevel)
113
114 return -min, -max
115end
116setCombatCallback(combat7_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
117
118-- Areas/Combat for 800ms
119local combat8_Brush_2 = createCombatObject()
120setCombatParam(combat8_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
121setCombatParam(combat8_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
122setCombatArea(combat8_Brush_2,createCombatArea({{1, 0},
123{1, 2},
124{0, 1}}))
125function getDmg_Brush_2(cid, level, maglevel)
126
127 return -min, -max
128end
129setCombatCallback(combat8_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
130
131-- Areas/Combat for 900ms
132local combat9_Brush_2 = createCombatObject()
133setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)
134setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
135setCombatArea(combat9_Brush_2,createCombatArea({{0, 0, 0, 1},
136{0, 2, 0, 0},
137{0, 0, 0, 1},
138{0, 0, 1, 0},
139{1, 0, 0, 0}}))
140function getDmg_Brush_2(cid, level, maglevel)
141
142 return -min, -max
143end
144setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")
145
146-- =============== CORE FUNCTIONS ===============
147local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
148 if (isCreature(cid)) then
149 doCombat(cid, c, var)
150 if (dirList ~= nil) then -- Emit distance effects
151 local i = 2;
152 while (i < #dirList) do
153 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
154 i = i + 2
155 end
156 end
157 end
158end
159function checkSpell15(cid)
160 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
161 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
162 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
163 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
164 SPELL_ID = 15
165
166 if GUN_ID > 0 then
167 if CHECK_SLOT_01 == SPELL_ID then
168 cid:sendCancelMessage("@SpellCooldown 01")
169 return true
170 elseif CHECK_SLOT_02 == SPELL_ID then
171 cid:sendCancelMessage("@SpellCooldown 02")
172 return true
173 elseif CHECK_SLOT_03 == SPELL_ID then
174 cid:sendCancelMessage("@SpellCooldown 03")
175 return true
176 else
177 return false
178 end
179 else
180 return false
181 end
182 return true
183end
184function onCastSpell(cid, var)
185 if checkSpell15(cid) or cid:getGroup():getAccess() then
186 local startPos = getCreaturePosition(cid)
187 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
188 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
189 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
190 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
191 max = min
192 addEvent(RunPart,100,combat1_Brush_2,cid.uid,var)
193 RunPart(combat0_Brush,cid,var)
194 addEvent(RunPart,200,combat2_Brush_2,cid.uid,var)
195 addEvent(RunPart,300,combat3_Brush_2,cid.uid,var)
196 addEvent(RunPart,400,combat4_Brush_2,cid.uid,var)
197 addEvent(RunPart,500,combat5_Brush_2,cid.uid,var)
198 addEvent(RunPart,600,combat6_Brush_2,cid.uid,var)
199 addEvent(RunPart,700,combat7_Brush_2,cid.uid,var)
200 addEvent(RunPart,800,combat8_Brush_2,cid.uid,var)
201 addEvent(RunPart,900,combat9_Brush_2,cid.uid,var)
202 return true
203 else
204 cid:getPosition():sendMagicEffect(03)
205 return false
206 end
207end