ShadowInTheD
Active Member
- Reaction score
- 12
The function below is supposed to convert an integer value into base 70 and show it to the player that types in the value (atleast for now). I have two questions regarding this.
1. Does the trigger actually DO what I want, or did I do it completely wrong?
2. If I call it in a completely different trigger, will it display?
As a completely off question that I still need, is there a native function or something that will break a loop immediately?
1. Does the trigger actually DO what I want, or did I do it completely wrong?
2. If I call it in a completely different trigger, will it display?
JASS:
function Decimal2Base70 takes integer i returns string
local string Alphabet = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!@#$%^&*"
local string Base70String
local integer tracker = i
local integer tracker2
local integer loopinteger
local integer check = 0
local integer StringInteger = 1
loop
exitwhen check < 0
if i/Pow(70,check) < 1 then
set check = -5
set loopinteger = check - 1
endif
set check = check + 1
endloop
loop
exitwhen loopinteger < 0
set tracker = ModuloInteger(tracker,R2I(Pow(70.0,I2R(loopinteger))))
set tracker2 = i - (70*tracker)
set Base70String = SubString(Base70String,StringInteger,StringInteger)+SubString(Alphabet,tracker2,tracker2)
set tracker = tracker2
set StringInteger=StringInteger+1
set loopinteger = loopinteger-1
endloop
call DisplayTextToPlayer(GetTriggerPlayer(),0,0,"Base 70:" + Base70String)
endfunction
As a completely off question that I still need, is there a native function or something that will break a loop immediately?