barrier_of_holy.lua

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