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