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