perversion_beam.lua

main 429 lines · 16 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 100ms
7local combat1_Brush = createCombatObject()
8setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
9setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
10setCombatArea(combat1_Brush,createCombatArea({{0, 2},
11{1, 0}}))
12function getDmg_Brush(cid, level, maglevel)
13
14 return -min, -max
15end
16setCombatCallback(combat1_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
17local dfcombat1_Brush = {CONST_ANI_SUDDENDEATH,-1,1}
18
19-- Areas/Combat for 0ms
20local combat0_Brush = createCombatObject()
21setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
22setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
23setCombatArea(combat0_Brush,createCombatArea({{2},
24{1}}))
25function getDmg_Brush(cid, level, maglevel)
26
27 return -min, -max
28end
29setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
30local dfcombat0_Brush = {CONST_ANI_SUDDENDEATH,0,1}
31
32-- Areas/Combat for 200ms
33local combat2_Brush = createCombatObject()
34setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
35setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
36setCombatArea(combat2_Brush,createCombatArea({{1, 2}}))
37function getDmg_Brush(cid, level, maglevel)
38
39 return -min, -max
40end
41setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
42local dfcombat2_Brush = {CONST_ANI_SUDDENDEATH,-1,0}
43
44-- Areas/Combat for 300ms
45local combat3_Brush = createCombatObject()
46setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
47setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
48setCombatArea(combat3_Brush,createCombatArea({{1, 0},
49{0, 2}}))
50function getDmg_Brush(cid, level, maglevel)
51
52 return -min, -max
53end
54setCombatCallback(combat3_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
55local dfcombat3_Brush = {CONST_ANI_SUDDENDEATH,-1,-1}
56
57-- Areas/Combat for 400ms
58local combat4_Brush = createCombatObject()
59setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
60setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
61setCombatArea(combat4_Brush,createCombatArea({{1},
62{2}}))
63function getDmg_Brush(cid, level, maglevel)
64
65 return -min, -max
66end
67setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
68local dfcombat4_Brush = {CONST_ANI_SUDDENDEATH,0,-1}
69
70-- Areas/Combat for 500ms
71local combat5_Brush = createCombatObject()
72setCombatParam(combat5_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
73setCombatParam(combat5_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
74setCombatArea(combat5_Brush,createCombatArea({{0, 1},
75{2, 0}}))
76function getDmg_Brush(cid, level, maglevel)
77
78 return -min, -max
79end
80setCombatCallback(combat5_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
81local dfcombat5_Brush = {CONST_ANI_SUDDENDEATH,1,-1}
82
83-- Areas/Combat for 600ms
84local combat6_Brush = createCombatObject()
85setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
86setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
87setCombatArea(combat6_Brush,createCombatArea({{2, 1}}))
88function getDmg_Brush(cid, level, maglevel)
89
90 return -min, -max
91end
92setCombatCallback(combat6_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
93local dfcombat6_Brush = {CONST_ANI_SUDDENDEATH,1,0}
94
95-- Areas/Combat for 700ms
96local combat7_Brush = createCombatObject()
97setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
98setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
99setCombatArea(combat7_Brush,createCombatArea({{2, 0},
100{0, 1}}))
101function getDmg_Brush(cid, level, maglevel)
102
103 return -min, -max
104end
105setCombatCallback(combat7_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
106local dfcombat7_Brush = {CONST_ANI_SUDDENDEATH,1,1}
107
108-- Areas/Combat for 800ms
109local combat8_Brush = createCombatObject()
110setCombatParam(combat8_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
111setCombatParam(combat8_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
112setCombatArea(combat8_Brush,createCombatArea({{2, 0},
113{0, 0},
114{0, 1}}))
115function getDmg_Brush(cid, level, maglevel)
116
117 return -min, -max
118end
119setCombatCallback(combat8_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
120local dfcombat8_Brush = {CONST_ANI_SUDDENDEATH,1,2}
121
122-- Areas/Combat for 900ms
123local combat9_Brush = createCombatObject()
124setCombatParam(combat9_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
125setCombatParam(combat9_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
126setCombatArea(combat9_Brush,createCombatArea({{2},
127{0},
128{1}}))
129function getDmg_Brush(cid, level, maglevel)
130
131 return -min, -max
132end
133setCombatCallback(combat9_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
134local dfcombat9_Brush = {CONST_ANI_SUDDENDEATH,0,2}
135
136-- Areas/Combat for 1000ms
137local combat10_Brush = createCombatObject()
138setCombatParam(combat10_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
139setCombatParam(combat10_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
140setCombatArea(combat10_Brush,createCombatArea({{0, 2},
141{0, 0},
142{1, 0}}))
143function getDmg_Brush(cid, level, maglevel)
144
145 return -min, -max
146end
147setCombatCallback(combat10_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
148local dfcombat10_Brush = {CONST_ANI_SUDDENDEATH,-1,2}
149
150-- Areas/Combat for 1100ms
151local combat11_Brush = createCombatObject()
152setCombatParam(combat11_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
153setCombatParam(combat11_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
154setCombatArea(combat11_Brush,createCombatArea({{0, 0, 2},
155{0, 0, 0},
156{1, 0, 0}}))
157function getDmg_Brush(cid, level, maglevel)
158
159 return -min, -max
160end
161setCombatCallback(combat11_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
162local dfcombat11_Brush = {CONST_ANI_SUDDENDEATH,-2,2}
163
164-- Areas/Combat for 1200ms
165local combat12_Brush = createCombatObject()
166setCombatParam(combat12_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
167setCombatParam(combat12_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
168setCombatArea(combat12_Brush,createCombatArea({{0, 0, 2},
169{1, 0, 0}}))
170function getDmg_Brush(cid, level, maglevel)
171
172 return -min, -max
173end
174setCombatCallback(combat12_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
175local dfcombat12_Brush = {CONST_ANI_SUDDENDEATH,-2,1}
176
177-- Areas/Combat for 1300ms
178local combat13_Brush = createCombatObject()
179setCombatParam(combat13_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
180setCombatParam(combat13_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
181setCombatArea(combat13_Brush,createCombatArea({{1, 0, 2}}))
182function getDmg_Brush(cid, level, maglevel)
183
184 return -min, -max
185end
186setCombatCallback(combat13_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
187local dfcombat13_Brush = {CONST_ANI_SUDDENDEATH,-2,0}
188
189-- Areas/Combat for 1400ms
190local combat14_Brush = createCombatObject()
191setCombatParam(combat14_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
192setCombatParam(combat14_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
193setCombatArea(combat14_Brush,createCombatArea({{1, 0, 0},
194{0, 0, 2}}))
195function getDmg_Brush(cid, level, maglevel)
196
197 return -min, -max
198end
199setCombatCallback(combat14_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
200local dfcombat14_Brush = {CONST_ANI_SUDDENDEATH,-2,-1}
201
202-- Areas/Combat for 1500ms
203local combat15_Brush = createCombatObject()
204setCombatParam(combat15_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
205setCombatParam(combat15_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
206setCombatArea(combat15_Brush,createCombatArea({{1, 0, 0},
207{0, 0, 0},
208{0, 0, 2}}))
209function getDmg_Brush(cid, level, maglevel)
210
211 return -min, -max
212end
213setCombatCallback(combat15_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
214local dfcombat15_Brush = {CONST_ANI_SUDDENDEATH,-2,-2}
215
216-- Areas/Combat for 1600ms
217local combat16_Brush = createCombatObject()
218setCombatParam(combat16_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
219setCombatParam(combat16_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
220setCombatArea(combat16_Brush,createCombatArea({{1, 0},
221{0, 0},
222{0, 2}}))
223function getDmg_Brush(cid, level, maglevel)
224
225 return -min, -max
226end
227setCombatCallback(combat16_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
228local dfcombat16_Brush = {CONST_ANI_SUDDENDEATH,-1,-2}
229
230-- Areas/Combat for 1700ms
231local combat17_Brush = createCombatObject()
232setCombatParam(combat17_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
233setCombatParam(combat17_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
234setCombatArea(combat17_Brush,createCombatArea({{1},
235{0},
236{2}}))
237function getDmg_Brush(cid, level, maglevel)
238
239 return -min, -max
240end
241setCombatCallback(combat17_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
242local dfcombat17_Brush = {CONST_ANI_SUDDENDEATH,0,-2}
243
244-- Areas/Combat for 1800ms
245local combat18_Brush = createCombatObject()
246setCombatParam(combat18_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
247setCombatParam(combat18_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
248setCombatArea(combat18_Brush,createCombatArea({{0, 1},
249{0, 0},
250{2, 0}}))
251function getDmg_Brush(cid, level, maglevel)
252
253 return -min, -max
254end
255setCombatCallback(combat18_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
256local dfcombat18_Brush = {CONST_ANI_SUDDENDEATH,1,-2}
257
258-- Areas/Combat for 1900ms
259local combat19_Brush = createCombatObject()
260setCombatParam(combat19_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
261setCombatParam(combat19_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
262setCombatArea(combat19_Brush,createCombatArea({{0, 0, 1},
263{0, 0, 0},
264{2, 0, 0}}))
265function getDmg_Brush(cid, level, maglevel)
266
267 return -min, -max
268end
269setCombatCallback(combat19_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
270local dfcombat19_Brush = {CONST_ANI_SUDDENDEATH,2,-2}
271
272-- Areas/Combat for 2000ms
273local combat20_Brush = createCombatObject()
274setCombatParam(combat20_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
275setCombatParam(combat20_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
276setCombatArea(combat20_Brush,createCombatArea({{0, 0, 1},
277{2, 0, 0}}))
278function getDmg_Brush(cid, level, maglevel)
279
280 return -min, -max
281end
282setCombatCallback(combat20_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
283local dfcombat20_Brush = {CONST_ANI_SUDDENDEATH,2,-1}
284
285-- Areas/Combat for 2100ms
286local combat21_Brush = createCombatObject()
287setCombatParam(combat21_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
288setCombatParam(combat21_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
289setCombatArea(combat21_Brush,createCombatArea({{2, 0, 1}}))
290function getDmg_Brush(cid, level, maglevel)
291
292 return -min, -max
293end
294setCombatCallback(combat21_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
295local dfcombat21_Brush = {CONST_ANI_SUDDENDEATH,2,0}
296
297-- Areas/Combat for 2200ms
298local combat22_Brush = createCombatObject()
299setCombatParam(combat22_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
300setCombatParam(combat22_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
301setCombatArea(combat22_Brush,createCombatArea({{2, 0, 0},
302{0, 0, 1}}))
303function getDmg_Brush(cid, level, maglevel)
304
305 return -min, -max
306end
307setCombatCallback(combat22_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
308local dfcombat22_Brush = {CONST_ANI_SUDDENDEATH,2,1}
309
310-- Areas/Combat for 2300ms
311local combat23_Brush = createCombatObject()
312setCombatParam(combat23_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
313setCombatParam(combat23_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
314setCombatArea(combat23_Brush,createCombatArea({{2, 0, 0},
315{0, 0, 0},
316{0, 0, 1}}))
317function getDmg_Brush(cid, level, maglevel)
318
319 return -min, -max
320end
321setCombatCallback(combat23_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
322local dfcombat23_Brush = {CONST_ANI_SUDDENDEATH,2,2}
323
324-- Areas/Combat for 2400ms
325local combat24_Brush = createCombatObject()
326setCombatParam(combat24_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
327setCombatParam(combat24_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
328setCombatArea(combat24_Brush,createCombatArea({{2, 0},
329{0, 0},
330{0, 1}}))
331function getDmg_Brush(cid, level, maglevel)
332
333 return -min, -max
334end
335setCombatCallback(combat24_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
336local dfcombat24_Brush = {CONST_ANI_SUDDENDEATH,1,2}
337
338-- Areas/Combat for 2500ms
339local combat25_Brush = createCombatObject()
340setCombatParam(combat25_Brush, COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
341setCombatParam(combat25_Brush, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
342setCombatArea(combat25_Brush,createCombatArea({{2},
343{0},
344{1}}))
345function getDmg_Brush(cid, level, maglevel)
346
347 return -min, -max
348end
349setCombatCallback(combat25_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
350local dfcombat25_Brush = {CONST_ANI_SUDDENDEATH,0,2}
351
352-- =============== CORE FUNCTIONS ===============
353local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
354 if (isCreature(cid)) then
355 doCombat(cid, c, var)
356 if (dirList ~= nil) then -- Emit distance effects
357 local i = 2;
358 while (i < #dirList) do
359 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
360 i = i + 2
361 end
362 end
363 end
364end
365function checkSpell28(cid)
366 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
367 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
368 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
369 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
370 SPELL_ID = 28
371
372 if GUN_ID > 0 then
373 if CHECK_SLOT_01 == SPELL_ID then
374 cid:sendCancelMessage("@SpellCooldown 01")
375 return true
376 elseif CHECK_SLOT_02 == SPELL_ID then
377 cid:sendCancelMessage("@SpellCooldown 02")
378 return true
379 elseif CHECK_SLOT_03 == SPELL_ID then
380 cid:sendCancelMessage("@SpellCooldown 03")
381 return true
382 else
383 return false
384 end
385 else
386 return false
387 end
388 return true
389end
390function onCastSpell(cid, var)
391 if checkSpell28(cid) or cid:getGroup():getAccess() then
392 local startPos = getCreaturePosition(cid)
393 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
394 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
395 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
396 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
397 max = min
398 addEvent(RunPart,100,combat1_Brush,cid.uid,var,dfcombat1_Brush,startPos)
399 RunPart(combat0_Brush,cid,var,dfcombat0_Brush,startPos)
400 addEvent(RunPart,200,combat2_Brush,cid.uid,var,dfcombat2_Brush,startPos)
401 addEvent(RunPart,300,combat3_Brush,cid.uid,var,dfcombat3_Brush,startPos)
402 addEvent(RunPart,400,combat4_Brush,cid.uid,var,dfcombat4_Brush,startPos)
403 addEvent(RunPart,500,combat5_Brush,cid.uid,var,dfcombat5_Brush,startPos)
404 addEvent(RunPart,600,combat6_Brush,cid.uid,var,dfcombat6_Brush,startPos)
405 addEvent(RunPart,700,combat7_Brush,cid.uid,var,dfcombat7_Brush,startPos)
406 addEvent(RunPart,800,combat8_Brush,cid.uid,var,dfcombat8_Brush,startPos)
407 addEvent(RunPart,900,combat9_Brush,cid.uid,var,dfcombat9_Brush,startPos)
408 addEvent(RunPart,1000,combat10_Brush,cid.uid,var,dfcombat10_Brush,startPos)
409 addEvent(RunPart,1100,combat11_Brush,cid.uid,var,dfcombat11_Brush,startPos)
410 addEvent(RunPart,1200,combat12_Brush,cid.uid,var,dfcombat12_Brush,startPos)
411 addEvent(RunPart,1300,combat13_Brush,cid.uid,var,dfcombat13_Brush,startPos)
412 addEvent(RunPart,1400,combat14_Brush,cid.uid,var,dfcombat14_Brush,startPos)
413 addEvent(RunPart,1500,combat15_Brush,cid.uid,var,dfcombat15_Brush,startPos)
414 addEvent(RunPart,1600,combat16_Brush,cid.uid,var,dfcombat16_Brush,startPos)
415 addEvent(RunPart,1700,combat17_Brush,cid.uid,var,dfcombat17_Brush,startPos)
416 addEvent(RunPart,1800,combat18_Brush,cid.uid,var,dfcombat18_Brush,startPos)
417 addEvent(RunPart,1900,combat19_Brush,cid.uid,var,dfcombat19_Brush,startPos)
418 addEvent(RunPart,2000,combat20_Brush,cid.uid,var,dfcombat20_Brush,startPos)
419 addEvent(RunPart,2100,combat21_Brush,cid.uid,var,dfcombat21_Brush,startPos)
420 addEvent(RunPart,2200,combat22_Brush,cid.uid,var,dfcombat22_Brush,startPos)
421 addEvent(RunPart,2300,combat23_Brush,cid.uid,var,dfcombat23_Brush,startPos)
422 addEvent(RunPart,2400,combat24_Brush,cid.uid,var,dfcombat24_Brush,startPos)
423 addEvent(RunPart,2500,combat25_Brush,cid.uid,var,dfcombat25_Brush,startPos)
424 return true
425 else
426 cid:getPosition():sendMagicEffect(03)
427 return false
428 end
429end
Top