#include <a_samp>
#include <fixes>
forward bool:FormatIntWithDelimiters(value, outstr[], delimiter = '.', size = sizeof(outstr));
main()
{
static const nums[] =
{
500,
1_000,
10_000,
100_000,
1_000_000,
cellmax
};
new str_num[64];
for (new i = 0; i < sizeof(nums); i++)
{
FormatIntWithDelimiters(nums[i], str_num);
printf("str_num: %s", str_num
); str_num[0] = '\0';
}
}
stock bool:FormatIntWithDelimiters(value, outstr[], delimiter = '.', size = sizeof(outstr))
{
static delimiter_string[2] = { '\0', '\0' };
static len;
delimiter_string[0] = delimiter;
if (value != cellmin)
format(outstr
, size
, "%d", value
); else
outstr
[0] = '\0', strcat(outstr
, "-2147483648", size
); switch (len - _:(value < 0))
{
case 10:
{
if (len + 3 >= size)
return false;
format(outstr
, size
, "%.*s%s%s", len
- 3, outstr
, delimiter_string
, outstr
[len
- 3]); format(outstr
, size
, "%.*s%s%s", len
- 6, outstr
, delimiter_string
, outstr
[len
- 6]); format(outstr
, size
, "%.*s%s%s", len
- 9, outstr
, delimiter_string
, outstr
[len
- 9]); }
case 7..9:
{
if (len + 2 >= size)
return false;
format(outstr
, size
, "%.*s%s%s", len
- 3, outstr
, delimiter_string
, outstr
[len
- 3]); format(outstr
, size
, "%.*s%s%s", len
- 6, outstr
, delimiter_string
, outstr
[len
- 6]); }
case 4..6:
{
if (len + 1 >= size)
return false;
format(outstr
, size
, "%.*s%s%s", len
- 3, outstr
, delimiter_string
, outstr
[len
- 3]); }
}
return true;
}