This function converts an int to a float of the same value.
The integer to convert into a float.
This function coverts an integer to a float of the same value, so that converting 123 to a float would yield 123.00.
Since the internal size of a float (3.4028183957828877e+38) is larger than an integer (2147483647) there will be no precision loss in this conversion.
Testing revealed that the least significant digit was being approximated in numbers approaching the Integer maximum (2147483647) and Minimum (-2147483647).
The results are as follows:
2147483647 = 2147483648.00
2147482647 = 2147482624.00
2147473647 = 2147473664.00
2147383647 = 2147383680.00
2146483647 = 2146483584.00
2137483647 = 2137483648.00
2047483647 = 2047483648.00
1147483647 = 1147483648.00
147483647 = 147483648.00
47483647 = 47483648.00
Note that since this occurs only with very large numbers being converted (Ten Million and Beyond) this should not be an issue with most scripts.
// This is then the duration of a regeneration effect applied to the PC
// Go oldies!
// Declare who is clicking on us
object oClicker = GetClickingObject();
// Get their age
int nAge = GetAge(oClicker);
// Convert to float, which can be used as some form of time
float fAge = IntToFloat(nAge);
// Heals 1HP each 1 second, for an amount of seconds equal to
// the persons age
effect eRegen = EffectRegenerate(5, 1.0);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRegen, oClicker, fAge);
author: Charles Feduke, editor: Jasperre, additional contributor(s): Lilac Soul