diff options
author | Emistry <Equinox1991@gmail.com> | 2015-07-15 01:09:05 +0800 |
---|---|---|
committer | Emistry <Equinox1991@gmail.com> | 2015-07-15 01:09:05 +0800 |
commit | ebfc9c3f8d740414b13fff86bad44d077d7ae81e (patch) | |
tree | 05ff15b40fd2ce19fee066f49b20137760f083d5 /npc/other | |
parent | 55fc59def74c002835ae301065455d1f1d982f19 (diff) | |
download | hercules-ebfc9c3f8d740414b13fff86bad44d077d7ae81e.tar.gz hercules-ebfc9c3f8d740414b13fff86bad44d077d7ae81e.tar.bz2 hercules-ebfc9c3f8d740414b13fff86bad44d077d7ae81e.tar.xz hercules-ebfc9c3f8d740414b13fff86bad44d077d7ae81e.zip |
Follow up d93ed2a26dab220632d523caea0358d33dda7051
Returns a number with commas based on precision of digits and custom
separator.
-- callfunc "F_InsertComma",<number>{,<precision>,<separator>}
Examples:
callfunc("F_InsertComma",7777777{,<precision>,<separator>}) // returns
"7,777,777"
callfunc("F_InsertComma",1000000000,3,","}) // returns
"1,000,000,000"
callfunc("F_InsertComma",1000000000,3,"_"}) // returns
"1_000_000_000"
callfunc("F_InsertComma",1000000000,4) // returns "10,0000,0000"
Diffstat (limited to 'npc/other')
-rw-r--r-- | npc/other/Global_Functions.txt | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/npc/other/Global_Functions.txt b/npc/other/Global_Functions.txt index 0475ff0a8..b88fa647a 100644 --- a/npc/other/Global_Functions.txt +++ b/npc/other/Global_Functions.txt @@ -39,22 +39,36 @@ //= 2.16 Added F_GetWeaponType, and F_GetArmorType. [L0ne_W0lf] //= 2.17 Renamed 'F_RandMes' to 'F_Rand'. [Euphy] //= 2.18 Removed useless 'getJobName' function. [Euphy] +//= 2.19 Improved 'F_InsertComma' function. [Emistry] //============================================================ ////////////////////////////////////////////////////////////////////////////////// -// Returns a number with commas between every three digits. -// -- callfunc "F_InsertComma",<number> +// Returns a number with commas based on precision of digits and custom separator. +// -- callfunc "F_InsertComma",<number>{,<precision>,<separator>} // Examples: -// callfunc("F_InsertComma",7777777) // returns "7,777,777" +// callfunc("F_InsertComma",7777777{,<precision>,<separator>}) // returns "7,777,777" +// callfunc("F_InsertComma",1000000000,3,","}) // returns "1,000,000,000" +// callfunc("F_InsertComma",1000000000,3,"_"}) // returns "1_000_000_000" +// callfunc("F_InsertComma",1000000000,4) // returns "10,0000,0000" ////////////////////////////////////////////////////////////////////////////////// function script F_InsertComma { - set .@str$, getarg(0); - for (set .@i,getstrlen(.@str$)-3; .@i>0; set .@i,.@i-3) - set .@str$, insertchar(.@str$,",",.@i); + .@value = getarg(0); + .@precision = getarg(1,3); + .@separator$ = getarg( 2,"," ); + + .@str$ = ""+.@value; + .@is_negative = ( .@value < 0 ); + + .@length = getstrlen( .@str$ ) - .@precision - .@is_negative; + while ( .@length > 0 ) { + .@str$ = insertchar( .@str$, .@separator$ , ( .@length + .@is_negative ) ); + .@length -= .@precision; + } return .@str$; } + ////////////////////////////////////////////////////////////////////////////////// // Function that clears job quest variables ////////////////////////////////////////////////////////////////////////////////// |