• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Envenom - damage over time modified by lvl?

Anoph

New Member
Joined
Mar 20, 2011
Messages
14
Reaction score
0
Hello!

This time I have different problem:
I'd like to make a spell which deals damage depending from character's level, and then deals damage over time depending on level too. I decided to modify envenom spell, I made it deal damage depending from lvl + regular envenom effect (dealing damage over time).

Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POISONAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON)
[I]setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.8, 0)[/I] [COLOR="lime"]//I added this line[/COLOR]

local condition = createConditionObject(CONDITION_POISON)

setConditionParam(condition, CONDITION_PARAM_DELAYED, TRUE)
setConditionParam(condition, CONDITION_PARAM_MINVALUE, 20)
setConditionParam(condition, CONDITION_PARAM_MAXVALUE, 70)
setConditionParam(condition, CONDITION_PARAM_STARTVALUE, 5)
setConditionParam(condition, CONDITION_PARAM_TICKINTERVAL, 3000)
setConditionParam(condition, CONDITION_PARAM_FORCEUPDATE, TRUE)
setCombatCondition(combat, condition)

function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end

What to add to make this over time effect make damage depending from lvl?
Example:
lvl 10 of person who attacks with this spell - 20 damage per tick
lvl 20 - 40 damage per tick
lvl 30 - 60 damage per tick

Thanks a lot for every help attempt.
 
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POISONAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON)

local t = {}
for i = 1, 300 do -- how many levels to create conditions for
	t[i] = createConditionObject(CONDITION_POISON)
	setConditionParam(t[i], CONDITION_PARAM_DELAYED, true)
	setConditionParam(t[i], CONDITION_PARAM_MINVALUE, i * 8)
	setConditionParam(t[i], CONDITION_PARAM_MAXVALUE, i * 9)
	setConditionParam(t[i], CONDITION_PARAM_STARTVALUE, i * 2)
	setConditionParam(t[i], CONDITION_PARAM_TICKINTERVAL, 3000)
	setConditionParam(t[i], CONDITION_PARAM_FORCEUPDATE, true)
end

function onCastSpell(cid, var)
	return doCombat(cid, combat, var) and doTargetCombatCondition(cid, variantToNumber(var), t[getPlayerLevel(cid)], CONST_ME_NONE)
end
 
Code:
[22/03/2011 21:16:20] Lua Script Error: [Spell Interface] 
[22/03/2011 21:16:20] data/spells/scripts/attack/Vshadowstrike.lua:onCastSpell
[22/03/2011 21:16:20] luaDoTargetCombatCondition(). Creature not found
[22/03/2011 21:16:20] stack traceback:
[22/03/2011 21:16:21] 	[C]: in function 'doTargetCombatCondition'
[22/03/2011 21:16:21] 	data/spells/scripts/attack/Vshadowstrike.lua:18: in function <data/spells/scripts/attack/Vshadowstrike.lua:17>

This appears in console after I use this spell. Hm.
 
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POISONAREA)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_POISON)
 
local t = {}
for i = 1, 300 do -- how many levels to create conditions for
	t[i] = createConditionObject(CONDITION_POISON)
	setConditionParam(t[i], CONDITION_PARAM_DELAYED, true)
	setConditionParam(t[i], CONDITION_PARAM_MINVALUE, i * 8)
	setConditionParam(t[i], CONDITION_PARAM_MAXVALUE, i * 9)
	setConditionParam(t[i], CONDITION_PARAM_STARTVALUE, i * 2)
	setConditionParam(t[i], CONDITION_PARAM_TICKINTERVAL, 3000)
	setConditionParam(t[i], CONDITION_PARAM_FORCEUPDATE, true)
end
 
function onCastSpell(cid, var)
	if doCombat(cid, combat, var) then
		local k = variantToNumber(var)
		if k ~= 0 then
			doTargetCombatCondition(cid, k, t[getPlayerLevel(cid)], CONST_ME_NONE)
		end
		return true
	end
end
spells.xml needtarget="1"
 
Sorry for bumping this, But could someone add a string that makes it tick let's say.. 10 times ? :eek: cuz if my 250~~ish knight use this it ticks down from 518 to 1.. o_o wich is a bit overpowered..
 
Back
Top