Aeronx
Intermediate OT User
- Joined
- Dec 17, 2015
- Messages
- 746
- Solutions
- 9
- Reaction score
- 125
Hello everyone!
Im doing some testing and trying to learn a bit here, so maybe you can help me out, thank you in advance.
Here's the code:
First of all this spell onCast creates a ring of fire and damages all creatures on it.
-How can i optimize the code? It looks waaay too repetitive.
-How can i add delay between sendDistanceEffects? and apply the same delay to damage?
Thank you for your time.
Im doing some testing and trying to learn a bit here, so maybe you can help me out, thank you in advance.
Here's the code:
Code:
local function sendEffc(cid)
local cid = Player(cid)
r1 = cid:getPosition()
a1 = Position(r1.x, r1.y - 3, r1.z)
a2 = Position(r1.x + 1, r1.y - 3, r1.z)
a3 = Position(r1.x + 2, r1.y - 2, r1.z)
a4 = Position(r1.x + 3, r1.y - 1, r1.z)
a5 = Position(r1.x + 3, r1.y, r1.z)
a6 = Position(r1.x + 3, r1.y + 1, r1.z)
a7 = Position(r1.x + 2, r1.y + 2, r1.z)
a8 = Position(r1.x + 1, r1.y + 3, r1.z)
a9 = Position(r1.x, r1.y + 3, r1.z)
a10 = Position(r1.x - 1, r1.y + 3, r1.z)
a11 = Position(r1.x - 2, r1.y + 2, r1.z)
a12 = Position(r1.x - 3, r1.y + 1, r1.z)
a13 = Position(r1.x - 3, r1.y, r1.z)
a14 = Position(r1.x - 3, r1.y - 1, r1.z)
a15 = Position(r1.x - 2, r1.y - 2, r1.z)
a16 = Position(r1.x - 1, r1.y - 3, r1.z)
a1:sendDistanceEffect(a2, CONST_ANI_FIRE)
a2:sendDistanceEffect(a3, CONST_ANI_FIRE)
a3:sendDistanceEffect(a4, CONST_ANI_FIRE)
a4:sendDistanceEffect(a5, CONST_ANI_FIRE)
a5:sendDistanceEffect(a6, CONST_ANI_FIRE)
a6:sendDistanceEffect(a7, CONST_ANI_FIRE)
a7:sendDistanceEffect(a8, CONST_ANI_FIRE)
a8:sendDistanceEffect(a9, CONST_ANI_FIRE)
a9:sendDistanceEffect(a10, CONST_ANI_FIRE)
a10:sendDistanceEffect(a11, CONST_ANI_FIRE)
a11:sendDistanceEffect(a12, CONST_ANI_FIRE)
a12:sendDistanceEffect(a13, CONST_ANI_FIRE)
a13:sendDistanceEffect(a14, CONST_ANI_FIRE)
a14:sendDistanceEffect(a15, CONST_ANI_FIRE)
a15:sendDistanceEffect(a16, CONST_ANI_FIRE)
a16:sendDistanceEffect(a1, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a1, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a2, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a3, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a4, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a5, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a6, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a7, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a8, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a9, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a10, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a11, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a12, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a13, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a14, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a15, {1}, 10, 20, CONST_ANI_FIRE)
doAreaCombatHealth(cid, COMBAT_FIREDAMAGE, a16, {1}, 10, 20, CONST_ANI_FIRE)
end
local times = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34}
function onCastSpell(creature, variant)
for i = 1, #times do
addEvent(sendEffc, times[i] * 150, creature.uid)
end
return true
end
First of all this spell onCast creates a ring of fire and damages all creatures on it.
-How can i optimize the code? It looks waaay too repetitive.
-How can i add delay between sendDistanceEffects? and apply the same delay to damage?
Thank you for your time.
