globals
integer array XP
endglobals
function YourFunc takes unit u, integer percent returns nothing
local integer i = GetHeroLevel(u)
call SetHeroXP(u, XP<i> + ((XP[i+1] - XP<i>) * (percent / 100)), false)
endfunction
function Init takes nothing returns nothing
local integer i = 2
set XP[1] = 0
loop
exitwhen i > 10 // Your max level
set XP<i> = XP[i-1] + (i * 100) + 100
set i = i + 1
endloop
endfunction </i></i></i>
library SetExp initializer Init
globals
private integer array XP
endglobals
function YourFunc takes unit u, integer percent returns nothing
local integer i = GetHeroLevel(u)
call SetHeroXP(u, XP<i> + ((XP[i+1] - XP<i>)* (percent / 100)), false)
endfunction
private function Init takes nothing returns nothing
local integer i = 2
set XP[1] = 0
loop
exitwhen i > 10 // Your max level
set XP<i> = XP[i-1] + (i * 100) + 100
set i = i + 1
endloop
endfunction
endlibrary</i></i></i>