diff --git a/data-canary/scripts/creaturescripts/login.lua b/data-canary/scripts/creaturescripts/login.lua index d783f106872..88bdaeefb64 100644 --- a/data-canary/scripts/creaturescripts/login.lua +++ b/data-canary/scripts/creaturescripts/login.lua @@ -97,7 +97,16 @@ function login.onLogin(player) -- Set Client XP Gain Rate -- if configManager.getBoolean(configKeys.XP_DISPLAY_MODE) then local baseRate = player:getFinalBaseRateExperience() - player:setBaseXpGain(baseRate * 100) + baseRate = baseRate * 100 + if configManager.getBoolean(configKeys.VIP_SYSTEM_ENABLED) then + local vipBonusExp = configManager.getNumber(configKeys.VIP_BONUS_EXP) + if vipBonusExp > 0 and player:isVip() then + vipBonusExp = (vipBonusExp > 100 and 100) or vipBonusExp + baseRate = baseRate * (1 + (vipBonusExp / 100)) + player:sendTextMessage(MESSAGE_BOOSTED_CREATURE, "Normal base xp is: " .. baseRate .. "%, because you are VIP, bonus of " ..vipBonusExp .."%") + end + end + player:setBaseXpGain(baseRate) end local staminaBonus = player:getFinalBonusStamina() diff --git a/data-otservbr-global/scripts/creaturescripts/others/login.lua b/data-otservbr-global/scripts/creaturescripts/others/login.lua index cc81da4370f..9408c364371 100644 --- a/data-otservbr-global/scripts/creaturescripts/others/login.lua +++ b/data-otservbr-global/scripts/creaturescripts/others/login.lua @@ -235,7 +235,16 @@ function playerLogin.onLogin(player) -- Set Client XP Gain Rate -- if configManager.getBoolean(configKeys.XP_DISPLAY_MODE) then local baseRate = player:getFinalBaseRateExperience() - player:setBaseXpGain(baseRate * 100) + baseRate = baseRate * 100 + if configManager.getBoolean(configKeys.VIP_SYSTEM_ENABLED) then + local vipBonusExp = configManager.getNumber(configKeys.VIP_BONUS_EXP) + if vipBonusExp > 0 and player:isVip() then + vipBonusExp = (vipBonusExp > 100 and 100) or vipBonusExp + baseRate = baseRate * (1 + (vipBonusExp / 100)) + player:sendTextMessage(MESSAGE_BOOSTED_CREATURE, "Normal base xp is: " .. baseRate .. "%, because you are VIP, bonus of " ..vipBonusExp .."%") + end + end + player:setBaseXpGain(baseRate) end local staminaBonus = player:getFinalBonusStamina()