Warcraft III resources & community, 2003–2006 · archived

Degrade

not rated
Submitted by vjeuxFunctions0 downloads
Make a gradiant text.
3 first integers are RGB Values of the 1st char's color
3 last integers are RGB Values of the last char's color

Need I2Hexa function

Source

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

Comments

0

No comments.