local hp_tier1 = Condition(CONDITION_ATTRIBUTES)
hp_tier1:setParameter(CONDITION_PARAM_TICKS, -1) -- not sure but this is the time of condition to expire(?)
hp_tier1:setParameter(CONDITION_PARAM_SUBID, 100)
hp_tier1:setParameter(CONDITION_PARAM_STAT_MAXHITPOINTS, 150)
local hp_tier2 = Condition(CONDITION_ATTRIBUTES)
hp_tier2:setParameter(CONDITION_PARAM_TICKS, -1)
hp_tier2:setParameter(CONDITION_PARAM_SUBID, 101)
hp_tier2:setParameter(CONDITION_PARAM_STAT_MAXHITPOINTS, 250)
local mana_tier1 = Condition(CONDITION_ATTRIBUTES)
mana_tier1:setParameter(CONDITION_PARAM_TICKS,-1)
mana_tier1:setParameter(CONDITION_PARAM_SUBID, 102)
mana_tier1:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTS, 150)
local mana_tier2 = Condition(CONDITION_ATTRIBUTES)
mana_tier2:setParameter(CONDITION_PARAM_TICKS,-1)
mana_tier2:setParameter(CONDITION_PARAM_SUBID, 103)
mana_tier2:setParameter(CONDITION_PARAM_STAT_MAXMANAPOINTS, 300)
local ml_tier1 = Condition(CONDITION_ATTRIBUTES)
ml_tier1:setParameter(CONDITION_PARAM_TICKS,-1)
ml_tier1:setParameter(CONDITION_PARAM_SUBID, 104)
ml_tier1:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 2)
local ml_tier2 = Condition(CONDITION_ATTRIBUTES)
ml_tier2:setParameter(CONDITION_PARAM_TICKS,-1)
ml_tier2:setParameter(CONDITION_PARAM_SUBID, 105)
ml_tier2:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, 3)
local distance = Condition(CONDITION_ATTRIBUTES)
distance:setParameter(CONDITION_PARAM_TICKS, -1)
distance:setParameter(CONDITION_PARAM_SUBID, 106)
distance:setParameter(CONDITION_PARAM_SKILL_DISTANCE, 4)
local sword = Condition(CONDITION_ATTRIBUTES)
sword:setParameter(CONDITION_PARAM_TICKS, -1)
sword:setParameter(CONDITION_PARAM_SUBID, 107)
sword:setParameter(CONDITION_PARAM_SKILL_SWORD, 5)
local axe = Condition(CONDITION_ATTRIBUTES)
axe:setParameter(CONDITION_PARAM_TICKS, -1)
axe:setParameter(CONDITION_PARAM_SUBID, 108)
axe:setParameter(CONDITION_PARAM_SKILL_AXE, 5)
local club = Condition(CONDITION_ATTRIBUTES)
club:setParameter(CONDITION_PARAM_TICKS, -1)
club:setParameter(CONDITION_PARAM_SUBID, 109)
club:setParameter(CONDITION_PARAM_SKILL_CLUB, 5)
local shield = Condition(CONDITION_ATTRIBUTES)
shield:setParameter(CONDITION_PARAM_TICKS, -1)
shield:setParameter(CONDITION_PARAM_SUBID, 110)
shield:setParameter(CONDITION_PARAM_SKILL_SHIELD, 8)
--local speed = Condition(CONDITION_HASTE) need to review the speed condition this one gives the stats of a speed spell like utani hur
--speed:setParameter(CONDITION_PARAM_TICKS, -1)
--speed:setParameter(CONDITION_PARAM_SUBID, 111)
--speed:setParameter(CONDITION_PARAM_SPEED, 20)
oldOutfit = {}
outfitBonuses = {
[128] = {[3] = {condition = hp_tier1}}, --male citizen
[129] = {[3] = {condition = distance}}, -- male hunter
[130] = {[3] = {condition = {ml_tier1,mana_tier2}}}, -- male mage
[131] = {[3] = {condition = {sword, hp_tier1}}}, -- male knight
[132] = {[3] = {condition = club}}, -- male Nobleman
[133] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- male Summoner
[134] = {[3] = {condition = {sword, hp_tier1}}}, -- male Warrior
[143] = {[3] = {condition = {axe, hp_tier1}}}, -- male Barbarian
[144] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- male Druid
[145] = {[3] = {condition = {ml_tier1, mana_tier1, hp_tier1}}}, -- male Wizard
[146] = {[3] = {condition = {hp_tier1, mana_tier1}}}, -- male Oriental
[151] = {[3] = {condition = {club, hp_tier1}}}, -- male Pirate
[152] = {[3] = {condition = distance}}, -- male Assassin
[153] = {[3] = {condition = hp_tier2}}, -- male Beggar
[154] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- male Shaman
[251] = {[3] = {condition = {shield, hp_tier2}}}, -- male Norseman
[268] = {[3] = {condition = {shield, hp_tier2}}}, -- male Nightmare
[273] = {[3] = {condition = hp_tier1}}, -- male Jester
[278] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- male Brotherhood
[289] = {[3] = {condition = {hp_tier2, mana_tier1}}}, -- male Demon Hunter
[325] = {[3] = {condition = ml_tier1}}, -- male Yalaharian
[335] = {[3] = {condition = {hp_tier2, mana_tier1}}}, -- male Warmaster
[367] = {[3] = {condition = {mana_tier2, ml_tier2, hp_tier2}}}, -- male Wayfarer *OP
[136] = {[3] = {condition = hp_tier1}}, --female citizen
[137] = {[3] = {condition = distance}}, -- female hunter
[138] = {[3] = {condition = {ml_tier1,mana_tier2}}}, -- female mage
[139] = {[3] = {condition = {sword, hp_tier1}}}, -- female knight
[140] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- female Nobleman
[141] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- female Summoner
[142] = {[3] = {condition = {sword, hp_tier1}}}, -- female Warrior
[147] = {[3] = {condition = {axe, hp_tier1}}}, -- female Barbarian
[148] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- female Druid
[149] = {[3] = {condition = {ml_tier1, mana_tier1, hp_tier1}}}, -- female Wizard
[150] = {[3] = {condition = {hp_tier1, mana_tier1}}}, -- female Oriental
[155] = {[3] = {condition = {club, hp_tier1}}}, -- female Pirate
[156] = {[3] = {condition = distance}}, -- female Assassin
[157] = {[3] = {condition = hp_tier2}}, -- female Beggar
[158] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- female Shaman
[252] = {[3] = {condition = {shield, hp_tier2}}}, -- female Norseman
[269] = {[3] = {condition = {shield, hp_tier2}}}, -- female Nightmare
[270] = {[3] = {condition = hp_tier1}}, -- female Jester
[279] = {[3] = {condition = {ml_tier1, mana_tier2}}}, -- female Brotherhood
[288] = {[3] = {condition = {hp_tier2, mana_tier1}}}, -- female Demon Hunter
[324] = {[3] = {condition = ml_tier1}}, -- female Yalaharian
[336] = {[3] = {condition = {hp_tier2, mana_tier1}}}, -- female Warmaster
[366] = {[3] = {condition = {mana_tier2, ml_tier2, hp_tier2}}} -- female Wayfarer *OP
}
function Creature:onChangeOutfit(outfit)
if self:isPlayer() then
local getOutfit = self:getOutfit()
oldOutfit[self:getId()] = { --Colors (Head, Body, Legs, Feet) and lookTypeEx are unused, but just gave an example of doing team outfit bonuses
lookHead = getOutfit.lookHead;
lookBody = getOutfit.lookBody;
lookLegs = getOutfit.lookLegs;
lookFeet = getOutfit.lookFeet;
lookType = getOutfit.lookType;
lookTypeEx = getOutfit.lookTypeEx;
lookAddons = getOutfit.lookAddons;
lookMount = getOutfit.lookMount;
}
local old = oldOutfit[self:getId()]
local oldOutfit_t = outfitBonuses[old.lookType]
if oldOutfit_t and oldOutfit_t[old.lookAddons] then
local oldCondition = oldOutfit_t[old.lookAddons].condition
if type(oldCondition) == "table" then
for _, condition in pairs(oldCondition) do
self:removeCondition(condition:getType(), condition:getId(), condition:getSubId())
end
else
self:removeCondition(oldCondition:getType(), oldCondition:getId(), oldCondition:getSubId())
end
end
local currentOutfit = outfitBonuses[outfit.lookType]
if currentOutfit and currentOutfit[outfit.lookAddons] then
local newCondition = currentOutfit[outfit.lookAddons].condition
if type(newCondition) == "table" then
for _, condition in pairs(newCondition) do
self:addCondition(condition)
end
else
self:addCondition(newCondition)
end
end
end
return true
end
function Creature:onAreaCombat(tile, isAggressive)
return RETURNVALUE_NOERROR
end
function Creature:onTargetCombat(target)
return RETURNVALUE_NOERROR
end