decay_of_knowledge.lua

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