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

RevScripts custom outfit bonus

abdala ragab

Veteran OT User
Joined
Aug 18, 2018
Messages
512
Solutions
12
Reaction score
380
Location
gamelaot.sytes.net
Hello, I want to create a bonus outfit If the player gets outfit number 264, the dose of MP&HP will increase to 1000 every 3 seconds.
regenMana = 1000,
regenHealth = 1000,
And he will get 5 Skill distance&sword&axe&club&Magic Level
Thanks in advance
 
Solution
Lua:
local config = {
    outfitId = 264,
    regenerationHP = 1000,
    regenerationMP = 1000,
    regenerationInterval = 3000,
    skillDistance = 5,
    skillSword = 5,
    skillAxe = 5,
    skillClub = 5,
    magicLevel = 5
}

function addPlayerOutfitXXXBonus(player)
    if not player:hasOutfit(config.outfitId) then return true end
    if player:getOutfit().lookType ~= config.outfitId then return true end

    local conditionRegen = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
    conditionRegen:setParameter(CONDITION_PARAM_SUBID, 100)
    conditionRegen:setParameter(CONDITION_PARAM_TICKS, -1)
    conditionRegen:setParameter(CONDITION_PARAM_HEALTHGAIN, config.regenerationHP)...
Lua:
local config = {
    outfitId = 264,
    regenerationHP = 1000,
    regenerationMP = 1000,
    regenerationInterval = 3000,
    skillDistance = 5,
    skillSword = 5,
    skillAxe = 5,
    skillClub = 5,
    magicLevel = 5
}

function addPlayerOutfitXXXBonus(player)
    if not player:hasOutfit(config.outfitId) then return true end
    if player:getOutfit().lookType ~= config.outfitId then return true end

    local conditionRegen = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
    conditionRegen:setParameter(CONDITION_PARAM_SUBID, 100)
    conditionRegen:setParameter(CONDITION_PARAM_TICKS, -1)
    conditionRegen:setParameter(CONDITION_PARAM_HEALTHGAIN, config.regenerationHP)
    conditionRegen:setParameter(CONDITION_PARAM_HEALTHTICKS, config.regenerationInterval)
    conditionRegen:setParameter(CONDITION_PARAM_MANAGAIN, config.regenerationMP)
    conditionRegen:setParameter(CONDITION_PARAM_MANATICKS, config.regenerationInterval)
    player:addCondition(conditionRegen)

    local conditionSkills = Condition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT)
    conditionRegen:setParameter(CONDITION_PARAM_SUBID, 101)
    conditionSkills:setParameter(CONDITION_PARAM_TICKS, -1)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_DISTANCE, config.skillDistance)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_SWORD, config.skillSword)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_AXE, config.skillAxe)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_CLUB, config.skillClub)
    conditionSkills:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, config.magicLevel)
    player:addCondition(conditionSkills)
end

local getBonus = CreatureEvent("GetBonus")

function getBonus.onLogin(player)
    addPlayerOutfitXXXBonus(player)
    return true
end

getBonus:register()

local event = EventCallback

function event.onChangeOutfit(creature, outfit)
    if creature:isPlayer() then
        if outfit.lookType == config.outfitId then
            addPlayerOutfitXXXBonus(creature)
        elseif creature:getOutfit().lookType ~= outfit.lookType then
            creature:removeCondition(CONDITION_REGENERATION, CONDITIONID_DEFAULT, 100, true)
            creature:removeCondition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT, 101, true)
        end
    end
    return true
end

event:register()

When you give the outfit to the player, just call this function:
Lua:
addPlayerOutfitXXXBonus(player)
 
Last edited:
Solution
Lua:
local config = {
    outfitId = 264,
    regenerationHP = 1000,
    regenerationMP = 1000,
    regenerationInterval = 3000,
    skillDistance = 5,
    skillSword = 5,
    skillAxe = 5,
    skillClub = 5,
    magicLevel = 5
}

function addPlayerOutfitXXXBonus(player)
    if not player:hasOutfit(config.outfitId) then return true end

    local conditionRegen = Condition(CONDITION_REGENERATION, CONDITIONID_DEFAULT)
    conditionRegen:setParameter(CONDITION_PARAM_SUBID, 100)
    conditionRegen:setParameter(CONDITION_PARAM_TICKS, -1)
    conditionRegen:setParameter(CONDITION_PARAM_HEALTHGAIN, config.regenerationHP)
    conditionRegen:setParameter(CONDITION_PARAM_HEALTHTICKS, config.regenerationInterval)
    conditionRegen:setParameter(CONDITION_PARAM_MANAGAIN, config.regenerationMP)
    conditionRegen:setParameter(CONDITION_PARAM_MANATICKS, config.regenerationInterval)
    player:addCondition(conditionRegen)

    local conditionSkills = Condition(CONDITION_ATTRIBUTES, CONDITIONID_DEFAULT)
    conditionRegen:setParameter(CONDITION_PARAM_SUBID, 101)
    conditionSkills:setParameter(CONDITION_PARAM_TICKS, -1)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_DISTANCE, config.skillDistance)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_SWORD, config.skillSword)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_AXE, config.skillAxe)
    conditionSkills:setParameter(CONDITION_PARAM_SKILL_CLUB, config.skillClub)
    conditionSkills:setParameter(CONDITION_PARAM_STAT_MAGICPOINTS, config.magicLevel)
    player:addCondition(conditionSkills)
end

local getBonus = CreatureEvent("GetBonus")

function getBonus.onLogin(player)
    addPlayerOutfitXXXBonus(player)
    return true
end

getBonus:register()

When you give the outfit to the player, just call this function:
Lua:
addPlayerOutfitXXXBonus(player)
can you do it for equiped outfit instead also to give mana-lifeleech or crit? thx in advance :3

i mean if player equips x outfit enables bonus, if deequips outfit disables bonus
 
It works well, but after using the item, you do not get your reward unless you log out and log in, and also if you change the outfit, you still get the reward hp/mp/skill
This should stop after you change your outfit
Thank you for your help
 
It works well now, but when using the item you must log out and log in to get the reward, and when changing the outfit you must log out and log in to finish the reward.
I appreciate your efforts ♥♥
 
Back
Top