eruption_bolt.lua

main 151 lines · 5.2 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_Brush = createCombatObject()
8setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
9setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE)
10setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
11setCombatArea(combat0_Brush,createCombatArea({{3}}))
12function getDmg_Brush(cid, level, maglevel)
13
14 return -min, -max
15end
16setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
17
18-- Areas/Combat for 200ms
19local combat2_Brush_2 = createCombatObject()
20setCombatParam(combat2_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
21setCombatParam(combat2_Brush_2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
22setCombatArea(combat2_Brush_2,createCombatArea({{0, 0, 1, 0, 0},
23{0, 0, 1, 0, 0},
24{1, 1, 2, 1, 1},
25{0, 0, 1, 0, 0},
26{0, 0, 1, 0, 0}}))
27function getDmg_Brush_2(cid, level, maglevel)
28
29 return -min, -max
30end
31setCombatCallback(combat2_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")local combat2_Brush_3 = createCombatObject()
32setCombatParam(combat2_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
33setCombatParam(combat2_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
34setCombatArea(combat2_Brush_3,createCombatArea({{3}}))
35
36
37-- Areas/Combat for 700ms
38local combat7_Brush = createCombatObject()
39setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
40setCombatParam(combat7_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE)
41setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
42setCombatArea(combat7_Brush,createCombatArea({{3}}))
43function getDmg_Brush(cid, level, maglevel)
44
45 return -min, -max
46end
47setCombatCallback(combat7_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
48
49-- Areas/Combat for 900ms
50local combat9_Brush_2 = createCombatObject()
51setCombatParam(combat9_Brush_2, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
52setCombatParam(combat9_Brush_2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
53setCombatArea(combat9_Brush_2,createCombatArea({{1, 0, 0, 0, 1},
54{0, 1, 0, 1, 0},
55{0, 0, 2, 0, 0},
56{0, 1, 0, 1, 0},
57{1, 0, 0, 0, 1}}))
58function getDmg_Brush_2(cid, level, maglevel)
59
60 return -min, -max
61end
62setCombatCallback(combat9_Brush_2, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush_2")local combat9_Brush_3 = createCombatObject()
63setCombatParam(combat9_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
64setCombatParam(combat9_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
65setCombatArea(combat9_Brush_3,createCombatArea({{3}}))
66
67
68-- Areas/Combat for 1100ms
69local combat11_Brush_3 = createCombatObject()
70setCombatParam(combat11_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
71setCombatParam(combat11_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
72setCombatArea(combat11_Brush_3,createCombatArea({{1, 0, 0, 0, 1},
73{0, 1, 0, 1, 0},
74{0, 0, 2, 0, 0},
75{0, 1, 0, 1, 0},
76{1, 0, 0, 0, 1}}))
77
78
79-- Areas/Combat for 400ms
80local combat4_Brush_3 = createCombatObject()
81setCombatParam(combat4_Brush_3, COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
82setCombatParam(combat4_Brush_3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
83setCombatArea(combat4_Brush_3,createCombatArea({{0, 0, 1, 0, 0},
84{0, 0, 1, 0, 0},
85{1, 1, 2, 1, 1},
86{0, 0, 1, 0, 0},
87{0, 0, 1, 0, 0}}))
88
89
90-- =============== CORE FUNCTIONS ===============
91local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
92 if (isCreature(cid)) then
93 doCombat(cid, c, var)
94 if (dirList ~= nil) then -- Emit distance effects
95 local i = 2;
96 while (i < #dirList) do
97 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
98 i = i + 2
99 end
100 end
101 end
102end
103
104function checkSpell9(cid)
105 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
106 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
107 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
108 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
109 SPELL_ID = 09
110
111 if GUN_ID > 0 then
112 if CHECK_SLOT_01 == SPELL_ID then
113 cid:sendCancelMessage("@SpellCooldown 01")
114 return true
115 elseif CHECK_SLOT_02 == SPELL_ID then
116 cid:sendCancelMessage("@SpellCooldown 02")
117 return true
118 elseif CHECK_SLOT_03 == SPELL_ID then
119 cid:sendCancelMessage("@SpellCooldown 03")
120 return true
121 else
122 return false
123 end
124 else
125 return false
126 end
127 return true
128end
129
130function onCastSpell(cid, var)
131 if checkSpell9(cid) or cid:getGroup():getAccess() then
132 local startPos = getCreaturePosition(cid)
133 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
134 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
135 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
136 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
137 max = min
138 RunPart(combat0_Brush,cid,var)
139 addEvent(RunPart,200,combat2_Brush_2,cid.uid,var)
140 addEvent(RunPart,200,combat2_Brush_3,cid.uid,var)
141 addEvent(RunPart,700,combat7_Brush,cid.uid,var)
142 addEvent(RunPart,900,combat9_Brush_2,cid.uid,var)
143 addEvent(RunPart,900,combat9_Brush_3,cid.uid,var)
144 addEvent(RunPart,1100,combat11_Brush_3,cid.uid,var)
145 addEvent(RunPart,400,combat4_Brush_3,cid.uid,var)
146 return true
147 else
148 cid:getPosition():sendMagicEffect(03)
149 return false
150 end
151end
Top