function Degrade takes string Chaine, integer DRed, integer DGreen, integer DBlue, integer FRed, integer FGreen, integer FBlue returns string
local integer array Degrade_CouleurDeFin
local integer array Degrade_CouleurDeDebut
local string Tempi = ""
set Degrade_CouleurDeDebut[1] = DRed
set Degrade_CouleurDeDebut[2] = DGreen
set Degrade_CouleurDeDebut[3] = DBlue
set Degrade_CouleurDeFin[1] = FRed
set Degrade_CouleurDeFin[2] = FGreen
set Degrade_CouleurDeFin[3] = FBlue
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = 3
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set Degrade_CouleurDeFin[GetForLoopIndexA()] = ( ( Degrade_CouleurDeFin[GetForLoopIndexA()] - Degrade_CouleurDeDebut[GetForLoopIndexA()] ) / StringLength( Chaine ) )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
set bj_forLoopAIndex = 1
set bj_forLoopAIndexEnd = StringLength( Chaine )
loop
exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
set Tempi = ( Tempi + "|cFF" )
set bj_forLoopBIndex = 1
set bj_forLoopBIndexEnd = 3
loop
exitwhen bj_forLoopBIndex > bj_forLoopBIndexEnd
set Tempi = ( Tempi + I2Hexa(Degrade_CouleurDeDebut[GetForLoopIndexB()]) )
set bj_forLoopBIndex = bj_forLoopBIndex + 1
endloop
set Tempi = ( Tempi + ( SubStringBJ(Chaine, GetForLoopIndexA(), GetForLoopIndexA()) + "|r" ) )
set Degrade_CouleurDeDebut[1] = ( Degrade_CouleurDeDebut[1] + Degrade_CouleurDeFin[1] )
set Degrade_CouleurDeDebut[2] = ( Degrade_CouleurDeDebut[2] + Degrade_CouleurDeFin[2] )
set Degrade_CouleurDeDebut[3] = ( Degrade_CouleurDeDebut[3] + Degrade_CouleurDeFin[3] )
set bj_forLoopAIndex = bj_forLoopAIndex + 1
endloop
return Tempi
endfunction