duplicity_of_insanity.lua

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