arcane_nova.lua

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