lunar_orbs.lua

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