• 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!

Addon bonus system

kamilcioo

Veteran OT User
Joined
Jul 25, 2008
Messages
977
Solutions
1
Reaction score
289
I need little help. I just edited addon bonus system and it isnt working now.

Code:
local hunter = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(hunter, CONDITION_PARAM_TICKS, -1)
setConditionParam(hunter, CONDITION_PARAM_SKILL_DISTANCE, 5)
 
local hunter2 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(hunter2, CONDITION_PARAM_TICKS, -1)
setConditionParam(hunter2, CONDITION_PARAM_SKILL_DISTANCE, 7) 
 
local mage = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(mage, CONDITION_PARAM_TICKS, -1)
setConditionParam(mage, CONDITION_PARAM_STAT_MAGICLEVEL, 2) 

local kn = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(kn, CONDITION_PARAM_TICKS, -1)
setConditionParam(kn, CONDITION_PARAM_SKILL_SHIELD, 7)

local ass = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(ass, CONDITION_PARAM_TICKS, -1)
setConditionParam(ass, CONDITION_PARAM_SKILL_DISTANCE, 5)
setConditionParam(ass, CONDITION_PARAM_SPEED, 50)

local m2 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(m2, CONDITION_PARAM_TICKS, -1)
setConditionParam(m2, CONDITION_PARAM_STAT_MAGICLEVEL, 3)

local kn2 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(kn2, CONDITION_PARAM_TICKS, -1)
setConditionParam(kn2, CONDITION_PARAM_SKILL_SHIELD, 5)
setConditionParam(kn2, CONDITION_PARAM_SKILL_SWORD, 8)

local a1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(a1, CONDITION_PARAM_TICKS, -1)
setConditionParam(a1, CONDITION_PARAM_SKILL_AXE, 9)

local a2 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(a2, CONDITION_PARAM_TICKS, -1)
setConditionParam(a2, CONDITION_PARAM_SKILL_SWORD, 9)

local a3 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(a3, CONDITION_PARAM_TICKS, -1)
setConditionParam(a3, CONDITION_PARAM_SKILL_DISTANCE, 9)
setConditionParam(a3, CONDITION_PARAM_SPEED, 20)

local a4 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(a4, CONDITION_PARAM_TICKS, -1)
setConditionParam(a4, CONDITION_PARAM_SKILL_AXE, 6)
setConditionParam(a4, CONDITION_PARAM_SKILL_CLUB, 6)
setConditionParam(a4, CONDITION_PARAM_SPEED, 6)

local a5 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(a5, CONDITION_PARAM_TICKS, -1)
setConditionParam(a5, CONDITION_PARAM_STAT_MAGICLEVEL, 2)
setConditionParam(a5, CONDITION_PARAM_SKILL_SHIELD, 7)

local a6 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(a6, CONDITION_PARAM_TICKS, -1)
setConditionParam(a6, CONDITION_PARAM_SKILL_AXE, 6)
setConditionParam(a6, CONDITION_PARAM_SKILL_CLUB, 6)
setConditionParam(a6, CONDITION_PARAM_SKILL_SWORD, 6)

local s7 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(s7, CONDITION_PARAM_TICKS, -1)
setConditionParam(s7, CONDITION_PARAM_SKILL_SWORD, 11)

local s9 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(s9, CONDITION_PARAM_TICKS, -1)
setConditionParam(s9, CONDITION_PARAM_SKILL_SWORD, 15)
setConditionParam(s9, CONDITION_PARAM_SKILL_AXE, 15)
setConditionParam(a9, CONDITION_PARAM_SKILL_CLUB, 15)
setConditionParam(s9, CONDITION_PARAM_SKILL_SHIELD, 20)
setConditionParam(s9, CONDITION_PARAM_SKILL_DISTANCE, 15)
setConditionParam(s9, CONDITION_PARAM_STAT_MAGICLEVEL, 3)
setConditionParam(s9, CONDITION_PARAM_SPEED, 80)

local sa1 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(sa1, CONDITION_PARAM_TICKS, -1)
setConditionParam(sa1, CONDITION_PARAM_SKILL_SHIELD, 8)
setConditionParam(sa1, CONDITION_PARAM_SKILL_AXE, 8)

local sa2 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(sa1, CONDITION_PARAM_TICKS, -1)
setConditionParam(sa1, CONDITION_PARAM_SKILL_SHIELD, 9)
setConditionParam(sa1, CONDITION_PARAM_SKILL_AXE, 9

local ass2 = createConditionObject(CONDITION_ATTRIBUTES)
setConditionParam(ass2, CONDITION_PARAM_TICKS, -1)
setConditionParam(ass2, CONDITION_PARAM_SKILL_DISTANCE, 11
setConditionParam(ass2, CONDITION_PARAM_SPEED, 20)

outfitBonusTable0 = { --- [] = {condition = , maxHealth = , maxMana = }
	[131] = {condition = kn}, [139] = {condition = kn}, --Knight
	[133] = {maxMana = 50}, [141] = {maxMana = 50}, --Summoner
	[134] = {maxHealth = 0}, [142] = {maxHealth = 0}, --Warrior
	[145] = {maxMana = 50}, [149] = {maxMana = 50}, --Wizard
	[146] = {maxHealth = 0}, [150] = {maxHealth = 0}, --Oriental
	[152] = {condition = ass, typ = CONDITION_HASTE}, [156] = {condition = ass, typ = CONDITION_HASTE}, --Assassin
	[154] = {maxMana = 45}, [158] = {maxMana = 45}, --Shaman
	[268] = {maxHealth = 0}, [269] = {maxHealth = 0}, --Nightmare
	[270] = {maxHealth = 0, maxMana = 42, condition = kn}, [273] = {maxHealth = 0, maxMana = 42, condition = kn}, --Jester
	[324] = {maxMana = 200, condition = m2}, [325] = {maxMana = 200, condition = m2} --Yalaharian
    } 
outfitBonusTable1 = { --- [] = {condition = , maxHealth = , maxMana = }
	[129] = {condition = hunter, maxHealth = 0}, [137] = {condition = hunter, maxHealth = 0}, --Hunter
	[130] = {condition = mage, maxMana = 50}, [138] = {condition = mage, maxMana = 50}, --Mage
	[131] = {maxHealth = 0, condition = kn2}, [139] = {maxHealth = 0, condition = kn2}, --Knight
	[133] = {maxMana = 150}, [141] = {maxMana = 150}, --Summoner
	[134] = {maxHealth = 0}, [142] = {maxHealth = 0}, --Warrior
	[143] = {condition = a1, maxHealth = 0}, [147] = {condition = a1, maxHealth = 0}, --Barbarian
	[144] = {maxMana = 150}, [148] = {maxMana = 150}, --Druid
	[145] = {condition = mage, maxMana = 50}, [149] = {condition = mage, maxMana = 50}, --Wizard
	[146] = {maxHealth = 0, condition = a2}, [150] = {maxHealth = 0, condition = a2}, --Oriental
	[152] = {condition = a3, typ = CONDITION_HASTE}, [156] = {condition = a3, typ = CONDITION_HASTE}, --Assassin
	[154] = {maxMana = 145}, [158] = {maxMana = 145}, --Shaman
	[251] = {condition = a4, typ = CONDITION_HASTE}, [252] = {condition = a4, typ = CONDITION_HASTE}, --Norse
	[268] = {maxHealth = 0, condition = kn}, [269] = {maxHealth = 0, condition = kn}, --Nightmare
	[270] = {maxHealth = 0, maxMana = 42, condition = a5}, [273] = {maxHealth = 0, maxMana = 42, condition = a5}, --Jester
	[278] = {condition = a6}, [279] = {condition = a6}, --Brotherhood
	[288] = {maxMana = 500}, [289] = {maxMana = 500}, --Demonhunter
	[324] = {maxMana = 400, condition = m2}, [325] = {maxMana = 400, condition = m2} --Yalaharian
    }
outfitBonusTable2 = { --- [] = {condition = , maxHealth = , maxMana = }
	[129] = {condition = hunter, maxHealth = 0}, [137] = {condition = hunter, maxHealth = 0}, --Hunter
	[130] = {maxMana = 50}, [138] = {maxMana = 50}, --Mage
	[131] = {maxHealth = 0, condition = kn}, [139] = {maxHealth = 0, condition = kn}, --Knight
	[133] = {maxMana = 50, condition = m2}, [141] = {maxMana = 50, condition = m2}, --Summoner
	[134] = {maxHealth = 0, condition = s7}, [142] = {maxHealth = 0, condition = s7}, --Warrior
	[143] = {maxHealth = 0}, [147] = {maxHealth = 150}, --Barbarian
	[144] = {maxMana = 150}, [148] = {maxMana = 150}, --Druid
	[145] = {maxMana = 50, condition = mage}, [149] = {maxMana = 50, condition = mage}, --Wizard
	[146] = {maxHealth = 25}, [150] = {maxHealth = 0}, --Oriental
	[152] = {condition = a3}, [156] = {condition = a3}, --Assassin
	[154] = {maxMana = 170, condition = mage}, [158] = {maxMana = 170, condition = mage}, --Shaman
	[268] = {maxHealth = 0, condition = sa1}, [269] = {maxHealth = 0, condition = sa1}, --Nightmare
	[270] = {maxHealth = 0, maxMana = 69, condition = kn}, [273] = {maxHealth = 0, maxMana = 69, condition = kn}, --Jester
	[278] = {maxMana = 100}, [279] = {maxMana = 100}, --Brotherhood
	[288] = {maxHealth = 0, maxMana = 500}, [289] = {maxHealth = 0, maxMana = 500}, --Demonhunter
	[324] = {maxMana = 200, condition = m2}, [325] = {maxMana = 200, condition = m2} --Yalaharian
    }
outfitBonusTable3 = { --- [] = {condition = , maxHealth = , maxMana = }
	[129] = {condition = hunter2, maxHealth = 0}, [137] = {condition = hunter2, maxHealth = 0}, --Hunter
	[130] = {maxMana = 100, condition = mage}, [138] = {maxMana = 100, condition = mage}, --Mage
	[131] = {maxHealth = 0, condition = kn2}, [139] = {maxHealth = 0, condition = kn2}, --Knight
	[133] = {maxMana = 150, condition = m2}, [141] = {maxMana = 150, condition = m2}, --Summoner
	[134] = {maxHealth = 0, condition = s7}, [142] = {maxHealth = 0, condition = s7}, --Warrior
	[143] = {maxHealth = 0, condition = a1}, [147] = {maxHealth = 0, condition = a1}, --Barbarian
	[144] = {maxMana = 300}, [148] = {maxMana = 300}, --Druid
	[145] = {maxMana = 50, condition = m2}, [149] = {maxMana = 50, condition = m2}, --Wizard
	[146] = {maxHealth = 0, condition = a2}, [150] = {maxHealth = 0, condition = a2}, --Oriental
	[152] = {condition = ass2, typ = CONDITION_HASTE}, [156] = {condition = ass2, typ = CONDITION_HASTE}, --Assassin
	[154] = {maxMana = 270, condition = mage}, [158] = {maxMana = 270, condition = mage}, --Shaman
	[251] = {condition = a4, typ = CONDITION_HASTE}, [252] = {condition = a4, typ = CONDITION_HASTE}, --Norse
	[268] = {maxHealth = 0, condition = sa2}, [269] = {maxHealth = 0, condition = sa2}, --Nightmare
	[270] = {condition = a5, maxHealth = 0, maxMana = 69}, [273] = {}, --Jester
	[278] = {condition = a6, maxMana = 100 }, [279] = {condition = a6, maxMana = 100 }, --Brotherhood
	[288] = {condition = s9, maxHealth = 0, maxMana = 500}, [289] = {condition = s9, maxHealth = 0, maxMana = 500}, --Demonhunter
    }


 
function onLogin(cid)
	registerCreatureEvent(cid, "Addons")
	local oldOutfit = getCreatureOutfit(cid)
 

	
	if (oldOutfit.lookAddons == 0) then
		if (outfitBonusTable0[oldOutfit.lookType] == nil) or ((outfitBonusTable0[oldOutfit.lookType]).condition == nil) then
		return true
	    end
	   doAddCondition(cid, (outfitBonusTable0[oldOutfit.lookType]).condition)
	end
	if (oldOutfit.lookAddons == 1) then
		if (outfitBonusTable1[oldOutfit.lookType] == nil) or ((outfitBonusTable1[oldOutfit.lookType]).condition == nil) then
		return true
	end
	   doAddCondition(cid, (outfitBonusTable1[oldOutfit.lookType]).condition)
	end
	if (oldOutfit.lookAddons == 2) then
		if (outfitBonusTable2[oldOutfit.lookType] == nil) or ((outfitBonusTable2[oldOutfit.lookType]).condition == nil) then
		return true
	end
	   doAddCondition(cid, (outfitBonusTable2[oldOutfit.lookType]).condition)
	end
	if (oldOutfit.lookAddons == 3) then
		if (outfitBonusTable3[oldOutfit.lookType] == nil) or ((outfitBonusTable3[oldOutfit.lookType]).condition == nil) then
		return true
	end
	   doAddCondition(cid, (outfitBonusTable3[oldOutfit.lookType]).condition)
	end
	return true
end
 
function onOutfit(cid, old, current)
        if old.lookAddons == 0 and outfitBonusTable0[old.lookType] then --Bonus off
                if (outfitBonusTable0[old.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) -(outfitBonusTable0[old.lookType]).maxHealth)
                        doCreatureAddHealth(cid, -(outfitBonusTable0[old.lookType]).maxHealth)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable0[old.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) -(outfitBonusTable0[old.lookType]).maxMana)
                        doCreatureAddMana(cid, -(outfitBonusTable0[old.lookType]).maxMana)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable0[old.lookType]).condition ~= nil then
					(outfitBonusTable0[old.lookType]).typ = ( (outfitBonusTable0[old.lookType]).typ == nil) and CONDITION_ATTRIBUTES or (outfitBonusTable0[old.lookType]).typ
					doRemoveCondition(cid, (outfitBonusTable0[old.lookType]).typ)
                end
        end  
        if current.lookAddons == 0 and outfitBonusTable0[current.lookType] then --Bonus on
                if (outfitBonusTable0[current.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +(outfitBonusTable0[current.lookType]).maxHealth)
                        doCreatureAddHealth(cid, (outfitBonusTable0[current.lookType]).maxHealth)
                end
                if (outfitBonusTable0[current.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) +(outfitBonusTable0[current.lookType]).maxMana)
                        doCreatureAddMana(cid, (outfitBonusTable0[current.lookType]).maxMana)
                end
                if (outfitBonusTable0[current.lookType]).condition ~= nil then
                        doAddCondition(cid, (outfitBonusTable0[current.lookType]).condition)
                end
        end  
        
        if old.lookAddons == 1 and outfitBonusTable1[old.lookType] then --Bonus off
                if (outfitBonusTable1[old.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) -(outfitBonusTable1[old.lookType]).maxHealth)
                        doCreatureAddHealth(cid, -(outfitBonusTable1[old.lookType]).maxHealth)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable1[old.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) -(outfitBonusTable1[old.lookType]).maxMana)
                        doCreatureAddMana(cid, -(outfitBonusTable1[old.lookType]).maxMana)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable1[old.lookType]).condition ~= nil then
					(outfitBonusTable1[old.lookType]).typ = ( (outfitBonusTable1[old.lookType]).typ == nil) and CONDITION_ATTRIBUTES or (outfitBonusTable1[old.lookType]).typ
					doRemoveCondition(cid, (outfitBonusTable1[old.lookType]).typ)
                end
        end  
        if current.lookAddons == 1 and outfitBonusTable1[current.lookType] then --Bonus on
                if (outfitBonusTable1[current.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +(outfitBonusTable1[current.lookType]).maxHealth)
                        doCreatureAddHealth(cid, (outfitBonusTable1[current.lookType]).maxHealth)
                end
                if (outfitBonusTable1[current.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) +(outfitBonusTable1[current.lookType]).maxMana)
                        doCreatureAddMana(cid, (outfitBonusTable1[current.lookType]).maxMana)
                end
                if (outfitBonusTable1[current.lookType]).condition ~= nil then
                        doAddCondition(cid, (outfitBonusTable1[current.lookType]).condition)
                end
        end  
        
        
                if old.lookAddons == 2 and outfitBonusTable2[old.lookType] then --Bonus off
                if (outfitBonusTable2[old.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) -(outfitBonusTable2[old.lookType]).maxHealth)
                        doCreatureAddHealth(cid, -(outfitBonusTable2[old.lookType]).maxHealth)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable2[old.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) -(outfitBonusTable2[old.lookType]).maxMana)
                        doCreatureAddMana(cid, -(outfitBonusTable2[old.lookType]).maxMana)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable2[old.lookType]).condition ~= nil then
					(outfitBonusTable2[old.lookType]).typ = ( (outfitBonusTable2[old.lookType]).typ == nil) and CONDITION_ATTRIBUTES or (outfitBonusTable2[old.lookType]).typ
					doRemoveCondition(cid, (outfitBonusTable2[old.lookType]).typ)
                end
        end  
        if current.lookAddons == 2 and outfitBonusTable2[current.lookType] then --Bonus on
                if (outfitBonusTable2[current.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +(outfitBonusTable2[current.lookType]).maxHealth)
                        doCreatureAddHealth(cid, (outfitBonusTable2[current.lookType]).maxHealth)
                end
                if (outfitBonusTable2[current.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) +(outfitBonusTable2[current.lookType]).maxMana)
                        doCreatureAddMana(cid, (outfitBonusTable2[current.lookType]).maxMana)
                end
                if (outfitBonusTable2[current.lookType]).condition ~= nil then
                        doAddCondition(cid, (outfitBonusTable2[current.lookType]).condition)
                end
        end  
        
        
        
                if old.lookAddons == 3 and outfitBonusTable3[old.lookType] then --Bonus off
                if (outfitBonusTable3[old.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) -(outfitBonusTable3[old.lookType]).maxHealth)
                        doCreatureAddHealth(cid, -(outfitBonusTable3[old.lookType]).maxHealth)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable3[old.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) -(outfitBonusTable3[old.lookType]).maxMana)
                        doCreatureAddMana(cid, -(outfitBonusTable3[old.lookType]).maxMana)
						doRemoveCondition(cid, CONDITION_INFIGHT)
                end
                if (outfitBonusTable3[old.lookType]).condition ~= nil then
					(outfitBonusTable3[old.lookType]).typ = ( (outfitBonusTable3[old.lookType]).typ == nil) and CONDITION_ATTRIBUTES or (outfitBonusTable3[old.lookType]).typ
					doRemoveCondition(cid, (outfitBonusTable3[old.lookType]).typ)
                end
        end  
        if current.lookAddons == 3 and outfitBonusTable3[current.lookType] then --Bonus on
                if (outfitBonusTable3[current.lookType]).maxHealth ~= nil then
                        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) +(outfitBonusTable3[current.lookType]).maxHealth)
                        doCreatureAddHealth(cid, (outfitBonusTable3[current.lookType]).maxHealth)
                end
                if (outfitBonusTable3[current.lookType]).maxMana ~= nil then
                        setCreatureMaxMana(cid, getCreatureMaxMana(cid) +(outfitBonusTable3[current.lookType]).maxMana)
                        doCreatureAddMana(cid, (outfitBonusTable3[current.lookType]).maxMana)
                end
                if (outfitBonusTable3[current.lookType]).condition ~= nil then
                        doAddCondition(cid, (outfitBonusTable3[current.lookType]).condition)
                end
        end  
           
        return true
end
 
Do you get any errors? Not very many people want to read through 100 lines of code to find your error.
 
use xml addon bonus
example:
Code:
	<outfit id="1">
		<list gender="0" lookType="136" name="Citizen" requirement="both" speed="40"> 
	</list>
		<list gender="1" lookType="128" name="Citizen" requirement="both" speed="40"> 
	</list> 
	</outfit>

/data/XML/outfits.xml
 
Back
Top