soul_ray.lua

main 70 lines · 2.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_ENERGYHIT)
9setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
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-- =============== CORE FUNCTIONS ===============
20local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
21 if (isCreature(cid)) then
22 doCombat(cid, c, var)
23 if (dirList ~= nil) then -- Emit distance effects
24 local i = 2;
25 while (i < #dirList) do
26 doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
27 i = i + 2
28 end
29 end
30 end
31end
32function checkSpell61(cid)
33 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
34 local CHECK_SLOT_01 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_04)
35 local CHECK_SLOT_02 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_05)
36 local CHECK_SLOT_03 = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_06)
37 SPELL_ID = 61
38
39 if GUN_ID > 0 then
40 if CHECK_SLOT_01 == SPELL_ID then
41 cid:sendCancelMessage("@SpellCooldown 01")
42 return true
43 elseif CHECK_SLOT_02 == SPELL_ID then
44 cid:sendCancelMessage("@SpellCooldown 02")
45 return true
46 elseif CHECK_SLOT_03 == SPELL_ID then
47 cid:sendCancelMessage("@SpellCooldown 03")
48 return true
49 else
50 return false
51 end
52 else
53 return false
54 end
55end
56function onCastSpell(cid, var)
57 if checkSpell61(cid) or cid:getGroup():getAccess() then
58 local startPos = getCreaturePosition(cid)
59 local GUN_ID = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_01)
60 local starGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_03)
61 local levelGun = cid:getStorageValue(_SYSTEM.INVENTARIO[04].UID_07)
62 min = onDamage(cid, GUN_ID, levelGun, starGun, "SKILL_MIN", SPELL_ID)
63 max = min
64 RunPart(combat0_Brush,cid,var)
65 return true
66 else
67 cid:getPosition():sendMagicEffect(03)
68 return false
69 end
70end
Top