Need a formula [MATH]

substance

New Member
Reaction score
34
I'm changing a texttag's transparency based off the remaining time of a timer. The timer is a 20 second timer and the LESS time remaing the MORE visible the texttag should be.

So, for example if there is 1 second left on the timer then the transparency of the texttag should be at 255. If there is 20 seconds remaining on the timer then the transparency of the texttag should be 0.
 

WindexGlow

New Member
Reaction score
54
Loop 1-20
Set real_varible = real varible + 12.75
Display to all players the messenge "Test" with real_varible transperancy for 1 second
wait 1 second



That should work. It's pretty easy, just divide the number you want to end up with, and the time it takes to get there.

Distance / time = answer (distance in this occasion is your total value)
 

substance

New Member
Reaction score
34
Uhhh, maybe the answer is written somewhere in your post and I'm too mentally strained to see it but ill explain what im doing more specifically because I think you mis-understood me.

This line is in a function that is being run every second, I tried diving by 12.75 but that obviously doesnt work :
JASS:
call SetTextTagColor(SomeTextTag,255,255,255, TimerGetRemaining(SomeTimer)  / 12.75)
 

elmstfreddie

The Finglonger
Reaction score
203
Multiply by 12.75 not divide.
Nvm, that would achieve the opposite of what you want. lol.

JASS:
local integer array Transparency
local integer index = 1
loop
    exitwhen index > 20
    set Transparency[index] = index * 12.75
    set index = index + 1
endloop
loop
call SetTextTagColor(SomeTextTag,255,255,255, Transparency[TimerGetRemaining(SomeTimer)])

K that should work :p
 

WindexGlow

New Member
Reaction score
54
Sigh.................................

Code:
Actions
    For each (Integer A) from 1 to 20, do (Actions)
        Loop - Actions
            Set realvaribletype = (realvaribletype + 12.75)
            Floating Text - Create floating text that reads Your messenge here.... at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and realvaribletype% transparency
            Wait 1.00 seconds
            Floating Text - Destroy (Last created floating text)


It leaks, it can mess up if you make other floating texts when this is going off.
 

substance

New Member
Reaction score
34
Multiply by 12.75 not divide.
Nvm, that would achieve the opposite of what you want. lol.

JASS:
local integer array Transparency
local integer index = 1
loop
    exitwhen index > 20
    set Transparency[index] = index * 12.75
    set index = index + 1
endloop
loop
call SetTextTagColor(SomeTextTag,255,255,255, Transparency[TimerGetRemaining(SomeTimer)])

K that should work :p

lol that's the same thing as
JASS:
call SetTextTagColor(SomeTextTag,255,255,255, TimerGetRemaining(SomeTimer)  * 12.75)
(which doesnt work)
 

elmstfreddie

The Finglonger
Reaction score
203
lol that's the same thing as
JASS:
call SetTextTagColor(SomeTextTag,255,255,255, TimerGetRemaining(SomeTimer)  * 12.75)
(which doesnt work)

Blech because I was stupid and was tired.
lol

JASS:
local integer array Transparency
local integer index = 20
loop
    exitwhen index <= 0
    set Transparency[index] = 255 - (12.75 * index)
    set index = index - 1
endloop
call SetTextTagColor(SomeTextTag,255,255,255, Transparency[TimerGetRemaining(SomeTimer)])


should work.


Nvm you solved.
Please note I am tired like the last time I posted here. lol
 

AceHart

Your Friendly Neighborhood Admin
Reaction score
1,495
> it's destroying your sanity.

Assuming there was any to begin with... :p


Anyway, the GUI action and the JASS action don't work the same way.

GUI goes from 0 (fully visible) to 100 (invisible),
whereas JASS goes from 255 (fully visible) to 0 (invisible).

So, with "TimerGetElapsed(Timer) * 12.75", the more time passes, the more visible it gets.
 

SerraAvenger

Cuz I can
Reaction score
234
yes you can divide ; 255 / (remaining time + 0.01 )

that + 1 is just to make sure that you don't divide by 0 - JASS doesn't like that

note that this ain't a linear function, so... the nearer you come to 0:00, the faster it will get visible.

Or you can do other basic formulas...
Like logarithm , sqroots, and such stuff to get the graph you want.

EDIT: You are right, it takes 100 - transparency; not transparency - thus / will decrease visibility
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top