• 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 Problems with (houses - spells - Condition)

Hrsha

Member
Joined
May 30, 2010
Messages
450
Reaction score
21
Location
Egypt
Hi otlanders

i have some problems which i gonna share it with u ;)

3- Condition ....

where i can find more condition scripts hmmm
i wana make condition script that allow items (mana and health gain - speed - absorbpercent)

4- how to set attribute "attackspeed" to distance weapons ? cuz it does not work

5- i wana make formula of this spell

Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -150, -1.0, -150)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 2)

function onGetFormulaValues(cid, level, maglevel)
	local min = (level * 1)  --- add the minimum you want outside parenthesis it will be added last. So for lvl 0 and ml 0, min damage = 750
	local max = (level * 1) --- here 1000 is the minimum max value
	return -min, -max
end

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat, parameters.var)
end

local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell3(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell4(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell5(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell6(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell7(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell8(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell9(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell10(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 2000, parameters)
addEvent(onCastSpell3, 4000, parameters)
addEvent(onCastSpell4, 6000, parameters)
addEvent(onCastSpell5, 8000, parameters)
addEvent(onCastSpell6, 10000, parameters)
addEvent(onCastSpell7, 12000, parameters)
addEvent(onCastSpell8, 14000, parameters)
addEvent(onCastSpell9, 16000, parameters)
addEvent(onCastSpell10, 18000, parameters)


return TRUE
end

i wana delete this type of formula
Code:
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -150, -1.0, -150)

and add this type to local combate too
Code:
function onGetFormulaValues(cid, level, maglevel)
	local min = (level * 1)  --- add the minimum you want outside parenthesis it will be added last. So for lvl 0 and ml 0, min damage = 750
	local max = (level * 1) --- here 1000 is the minimum max value
	return -min, -max
end

cuz when i added u formula functions it says
Code:
Warning: [CallBack::loadCallBack] Event onGetFormulaValues not found

6- how i can set attack speed of distance weapons ? cuz it does not work


Thanks for reading , repp + +
 
Last edited:
it gives error too about houses

[20:46:00.453] [Warning - Houses::loadFromXml] House entry not set for: Forgotte
n headquarter (Flat 1, Area 42) (4)
[20:46:00.453] [Warning - Houses::loadFromXml] House entry not set for: Forgotte
n headquarter (Flat 1, Area 42) (5)
[20:46:00.453] [Warning - Houses::loadFromXml] House entry not set for: Forgotte
n headquarter (Flat 1, Area 42) (6)
 
2.
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

function onCastSpell(cid, var)
if (not isPlayer(getCreatureTarget(cid))) then 
doPlayerSendCancel(cid, "You can only use this on players.");
return true;
end
	if(variantToNumber(var) ~= 0) then
		return doCombat(cid, distanceCombat, var)
	end
	return doCombat(cid, combat, var)
end

3.
Talk more clearly..

4.
XML\weapons.xml
 
2.
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(distanceCombat, COMBAT_FORMULA_LEVELMAGIC, -0.4, 0, -0.5, 0)

function onCastSpell(cid, var)
if (not isPlayer(getCreatureTarget(cid))) then 
doPlayerSendCancel(cid, "You can only use this on players.");
return true;
end
	if(variantToNumber(var) ~= 0) then
		return doCombat(cid, distanceCombat, var)
	end
	return doCombat(cid, combat, var)
end

3.
Talk more clearly..

4.
XML\weapons.xml

Thanks mate problem 2 Solved :D

1 more problem added

i wana make formula of this spell

Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 2)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -150, -1.0, -150)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 2)

function onGetFormulaValues(cid, level, maglevel)
	local min = (level * 1)  --- add the minimum you want outside parenthesis it will be added last. So for lvl 0 and ml 0, min damage = 750
	local max = (level * 1) --- here 1000 is the minimum max value
	return -min, -max
end

setCombatCallback(combat1, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

local function onCastSpell1(parameters)
    doCombat(parameters.cid, combat, parameters.var)
end

local function onCastSpell2(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell3(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell4(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell5(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell6(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell7(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell8(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell9(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell10(parameters)
    doCombat(parameters.cid, combat1, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 2000, parameters)
addEvent(onCastSpell3, 4000, parameters)
addEvent(onCastSpell4, 6000, parameters)
addEvent(onCastSpell5, 8000, parameters)
addEvent(onCastSpell6, 10000, parameters)
addEvent(onCastSpell7, 12000, parameters)
addEvent(onCastSpell8, 14000, parameters)
addEvent(onCastSpell9, 16000, parameters)
addEvent(onCastSpell10, 18000, parameters)


return TRUE
end

i wana delete this type of formula
Code:
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0, -150, -1.0, -150)

and add this type to local combate too
Code:
function onGetFormulaValues(cid, level, maglevel)
	local min = (level * 1)  --- add the minimum you want outside parenthesis it will be added last. So for lvl 0 and ml 0, min damage = 750
	local max = (level * 1) --- here 1000 is the minimum max value
	return -min, -max
end

cuz when i added u formula functions it says
Code:
Warning: [CallBack::loadCallBack] Event onGetFormulaValues not found
 
3- Condition ....

where i can find more condition scripts hmmm
i wana make condition script that allow items (mana and health gain - speed - absorbpercent)

something like these Condition with how to insert it correctly on script

Code:
	conditionHP[i] = createConditionObject(CONDITION_ATTRIBUTES)
	setConditionParam(conditionHP[i], CONDITION_PARAM_TICKS, -1)
	setConditionParam(conditionHP[i], CONDITION_PARAM_STAT_MAXHEALTHPERCENT, 100+i)
	setConditionParam(conditionHP[i], CONDITION_PARAM_BUFF, true)
	setConditionParam(conditionHP[i], CONDITION_PARAM_SUBID, 50)
	--MANA
	conditionMP[i] = createConditionObject(CONDITION_ATTRIBUTES)
	setConditionParam(conditionMP[i], CONDITION_PARAM_TICKS, -1)
	setConditionParam(conditionMP[i], CONDITION_PARAM_STAT_MAXMANAPERCENT, 100+i)
	setConditionParam(conditionMP[i], CONDITION_PARAM_BUFF, true)
	setConditionParam(conditionMP[i], CONDITION_PARAM_SUBID, 51)
	--Magic level
	conditionML[i] = createConditionObject(CONDITION_ATTRIBUTES)
	setConditionParam(conditionML[i], CONDITION_PARAM_TICKS, -1)
	setConditionParam(conditionML[i], CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 100+i)
	setConditionParam(conditionML[i], CONDITION_PARAM_BUFF, true)
	setConditionParam(conditionML[i], CONDITION_PARAM_SUBID, 52)

4- when i add this line into items.xml to distance weapon (bow-xbow)
it does not work
Code:
  <attribute key="attackspeed" value="500" />
 
Back
Top