seal_of_chaotic_disruption.lua

main 278 lines · 10.7 KB Raw
Alex Alex Commit Server upload 18/10/2026 23:38
1SPELL_ID = 00
2local min = 0
3local max = 0
4
5-- =============== COMBAT VARS ===============
6-- Areas/Combat for 0ms
7local combat0_Aspiral_Gelida = createCombatObject()
8setCombatParam(combat0_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
9setCombatParam(combat0_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
10setCombatArea(combat0_Aspiral_Gelida,createCombatArea({{1},
11{2}}))
12function getDmg_Aspiral_Gelida(cid, level, maglevel)
13
14 return -min, -max
15end
16setCombatCallback(combat0_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
17
18-- Areas/Combat for 100ms
19local combat1_Aspiral_Gelida = createCombatObject()
20setCombatParam(combat1_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
21setCombatParam(combat1_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
22setCombatArea(combat1_Aspiral_Gelida,createCombatArea({{1, 0},
23{0, 2}}))
24function getDmg_Aspiral_Gelida(cid, level, maglevel)
25
26 return -min, -max
27end
28setCombatCallback(combat1_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
29
30-- Areas/Combat for 200ms
31local combat2_Aspiral_Gelida = createCombatObject()
32setCombatParam(combat2_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
33setCombatParam(combat2_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
34setCombatArea(combat2_Aspiral_Gelida,createCombatArea({{1, 2}}))
35function getDmg_Aspiral_Gelida(cid, level, maglevel)
36
37 return -min, -max
38end
39setCombatCallback(combat2_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
40
41-- Areas/Combat for 300ms
42local combat3_Aspiral_Gelida = createCombatObject()
43setCombatParam(combat3_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
44setCombatParam(combat3_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
45setCombatArea(combat3_Aspiral_Gelida,createCombatArea({{0, 2},
46{1, 0}}))
47function getDmg_Aspiral_Gelida(cid, level, maglevel)
48
49 return -min, -max
50end
51setCombatCallback(combat3_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
52
53-- Areas/Combat for 400ms
54local combat4_Aspiral_Gelida = createCombatObject()
55setCombatParam(combat4_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
56setCombatParam(combat4_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
57setCombatArea(combat4_Aspiral_Gelida,createCombatArea({{2},
58{1}}))
59function getDmg_Aspiral_Gelida(cid, level, maglevel)
60
61 return -min, -max
62end
63setCombatCallback(combat4_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
64
65-- Areas/Combat for 500ms
66local combat5_Aspiral_Gelida = createCombatObject()
67setCombatParam(combat5_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
68setCombatParam(combat5_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
69setCombatArea(combat5_Aspiral_Gelida,createCombatArea({{2, 0},
70{0, 1}}))
71function getDmg_Aspiral_Gelida(cid, level, maglevel)
72
73 return -min, -max
74end
75setCombatCallback(combat5_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
76
77-- Areas/Combat for 600ms
78local combat6_Aspiral_Gelida = createCombatObject()
79setCombatParam(combat6_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
80setCombatParam(combat6_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
81setCombatArea(combat6_Aspiral_Gelida,createCombatArea({{2, 1}}))
82function getDmg_Aspiral_Gelida(cid, level, maglevel)
83
84 return -min, -max
85end
86setCombatCallback(combat6_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
87
88-- Areas/Combat for 700ms
89local combat7_Aspiral_Gelida = createCombatObject()
90setCombatParam(combat7_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
91setCombatParam(combat7_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
92setCombatArea(combat7_Aspiral_Gelida,createCombatArea({{0, 1},
93{2, 0}}))
94function getDmg_Aspiral_Gelida(cid, level, maglevel)
95
96 return -min, -max
97end
98setCombatCallback(combat7_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
99
100-- Areas/Combat for 800ms
101local combat8_Aspiral_Gelida = createCombatObject()
102setCombatParam(combat8_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
103setCombatParam(combat8_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
104setCombatArea(combat8_Aspiral_Gelida,createCombatArea({{1},
105{2}}))
106function getDmg_Aspiral_Gelida(cid, level, maglevel)
107
108 return -min, -max
109end
110setCombatCallback(combat8_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
111
112-- Areas/Combat for 900ms
113local combat9_Aspiral_Gelida = createCombatObject()
114setCombatParam(combat9_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
115setCombatParam(combat9_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
116setCombatArea(combat9_Aspiral_Gelida,createCombatArea({{1, 0},
117{0, 2}}))
118function getDmg_Aspiral_Gelida(cid, level, maglevel)
119
120 return -min, -max
121end
122setCombatCallback(combat9_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
123
124-- Areas/Combat for 1000ms
125local combat10_Aspiral_Gelida = createCombatObject()
126setCombatParam(combat10_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
127setCombatParam(combat10_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
128setCombatArea(combat10_Aspiral_Gelida,createCombatArea({{1, 2}}))
129function getDmg_Aspiral_Gelida(cid, level, maglevel)
130
131 return -min, -max
132end
133setCombatCallback(combat10_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
134
135-- Areas/Combat for 1100ms
136local combat11_Aspiral_Gelida = createCombatObject()
137setCombatParam(combat11_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
138setCombatParam(combat11_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
139setCombatArea(combat11_Aspiral_Gelida,createCombatArea({{0, 2},
140{1, 0}}))
141function getDmg_Aspiral_Gelida(cid, level, maglevel)
142
143 return -min, -max
144end
145setCombatCallback(combat11_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
146
147-- Areas/Combat for 1200ms
148local combat12_Aspiral_Gelida = createCombatObject()
149setCombatParam(combat12_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
150setCombatParam(combat12_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
151setCombatArea(combat12_Aspiral_Gelida,createCombatArea({{2},
152{1}}))
153function getDmg_Aspiral_Gelida(cid, level, maglevel)
154
155 return -min, -max
156end
157setCombatCallback(combat12_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
158
159-- Areas/Combat for 1300ms
160local combat13_Aspiral_Gelida = createCombatObject()
161setCombatParam(combat13_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
162setCombatParam(combat13_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
163setCombatArea(combat13_Aspiral_Gelida,createCombatArea({{2, 0},
164{0, 1}}))
165function getDmg_Aspiral_Gelida(cid, level, maglevel)
166
167 return -min, -max
168end
169setCombatCallback(combat13_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
170
171-- Areas/Combat for 1400ms
172local combat14_Aspiral_Gelida = createCombatObject()
173setCombatParam(combat14_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
174setCombatParam(combat14_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
175setCombatArea(combat14_Aspiral_Gelida,createCombatArea({{2, 1}}))
176function getDmg_Aspiral_Gelida(cid, level, maglevel)
177
178 return -min, -max
179end
180setCombatCallback(combat14_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
181
182-- Areas/Combat for 1500ms
183local combat15_Aspiral_Gelida = createCombatObject()
184setCombatParam(combat15_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
185setCombatParam(combat15_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
186setCombatArea(combat15_Aspiral_Gelida,createCombatArea({{0, 1},
187{2, 0}}))
188function getDmg_Aspiral_Gelida(cid, level, maglevel)
189
190 return -min, -max
191end
192setCombatCallback(combat15_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
193
194-- Areas/Combat for 1600ms
195local combat16_Aspiral_Gelida = createCombatObject()
196setCombatParam(combat16_Aspiral_Gelida, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
197setCombatParam(combat16_Aspiral_Gelida, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
198setCombatArea(combat16_Aspiral_Gelida,createCombatArea({{1},
199{2}}))
200function getDmg_Aspiral_Gelida(cid, level, maglevel)
201
202 return -min, -max
203end
204setCombatCallback(combat16_Aspiral_Gelida, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Aspiral_Gelida")
205
206-- =============== CORE FUNCTIONS ===============
207local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
208 if (isCreature(cid)) then
209 doCombat(cid, c, var)
210 if (dirList ~= nil) then -- Emit distance effects
211 local i = 2;
212 while (i < #dirList) do
213 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
214 i = i + 2
215 end
216 end
217 end
218end
219
220function checkSpell1(cid)
221 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
222 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
223 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
224 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
225 SPELL_ID = 01
226
227 if GUN_ID > 0 then
228 if CHECK_SLOT_01 == SPELL_ID then
229 cid:sendCancelMessage("@SpellCooldown 01")
230 return true
231 elseif CHECK_SLOT_02 == SPELL_ID then
232 cid:sendCancelMessage("@SpellCooldown 02")
233 return true
234 elseif CHECK_SLOT_03 == SPELL_ID then
235 cid:sendCancelMessage("@SpellCooldown 03")
236 return true
237 else
238 return false
239 end
240 else
241 return false
242 end
243 return true
244end
245
246function onCastSpell(cid, var)
247 if checkSpell1(cid) or cid:getGroup():getAccess() then
248 local startPos = getCreaturePosition(cid)
249 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
250 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
251 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
252 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
253 max = min
254 RunPart(combat0_Aspiral_Gelida,cid,var)
255 addEvent(RunPart,100,combat1_Aspiral_Gelida,cid.uid,var)
256 addEvent(RunPart,200,combat2_Aspiral_Gelida,cid.uid,var)
257 addEvent(RunPart,300,combat3_Aspiral_Gelida,cid.uid,var)
258 addEvent(RunPart,400,combat4_Aspiral_Gelida,cid.uid,var)
259 addEvent(RunPart,500,combat5_Aspiral_Gelida,cid.uid,var)
260 addEvent(RunPart,600,combat6_Aspiral_Gelida,cid.uid,var)
261 addEvent(RunPart,700,combat7_Aspiral_Gelida,cid.uid,var)
262 addEvent(RunPart,800,combat8_Aspiral_Gelida,cid.uid,var)
263 addEvent(RunPart,900,combat9_Aspiral_Gelida,cid.uid,var)
264 addEvent(RunPart,1000,combat10_Aspiral_Gelida,cid.uid,var)
265 addEvent(RunPart,1100,combat11_Aspiral_Gelida,cid.uid,var)
266 addEvent(RunPart,1200,combat12_Aspiral_Gelida,cid.uid,var)
267 addEvent(RunPart,1300,combat13_Aspiral_Gelida,cid.uid,var)
268 addEvent(RunPart,1400,combat14_Aspiral_Gelida,cid.uid,var)
269 addEvent(RunPart,1500,combat15_Aspiral_Gelida,cid.uid,var)
270 addEvent(RunPart,1600,combat16_Aspiral_Gelida,cid.uid,var)
271
272 return true
273 else
274 cid:getPosition():sendMagicEffect(03)
275 return false
276 end
277end
278
Top