curse_of_ancestral_fury.lua

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