diff options
Diffstat (limited to 'npc/functions/string.txt')
-rw-r--r-- | npc/functions/string.txt | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/npc/functions/string.txt b/npc/functions/string.txt deleted file mode 100644 index ef2e4c2a..00000000 --- a/npc/functions/string.txt +++ /dev/null @@ -1,196 +0,0 @@ -// safe string manipulation functions -// ** does not require PCRE - - -// str(<int>) -// returns whatever is passed, converted to string - -function script str { - return "" + getarg(0); -} - - - -// startswith("<string>", "<search>") -// returns true if <string> begins with <search> - -function script startswith { - return substr(getarg(0), 0, getstrlen(getarg(1)) - 1) == getarg(1); -} - - - -// endswith("<string>", "<search>") -// returns true if <string> ends with <search> - -function script endswith { - .@t = getstrlen(getarg(0)); // total length - .@n = getstrlen(getarg(1)); // substring length - return substr(getarg(0), .@t - .@n, .@t - 1) == getarg(1); -} - - - -// capitalize("<string>") -// returns <string> with its first letter capitalized - -function script capitalize { - return setchar(getarg(0), strtoupper(charat(getarg(0), 0)), 0); -} - - - -// titlecase("<string>" {, "<delimiter>" {, <camel>}}) -// returns <string> with the first letter of each word capitalized -// if <camel> is true, the string is joined in a camelCase fashion - -function script titlecase { - .@delimiter$ = getarg(1, " "); - .@c = getarg(2, 0); - explode(.@words$, getarg(0), .@delimiter$); - - for (.@i = (.@c ? 1 : 0); .@i < 255; ++.@i) - { - if (.@words$[.@i] == "") - { - break; - } - - .@words$[.@i] = setchar(.@words$[.@i], strtoupper(charat(.@words$[.@i], 0)), 0); - } - - return implode(.@words$, (.@c ? "" : .@delimiter$)); -} - - - -// camelcase("<string" {, "<delimiter>"}) - -function script camelcase { - return titlecase(getarg(0), getarg(1, " "), true); -} - - - -// zfill("<string>" {, <width> {, "<padding>"}}) -// returns <string> padded to the left with <padding> up to width - -function script zfill { - .@str$ = getarg(0); - .@width = getarg(1, 8); - .@padding$ = getarg(2, "0"); - - for (.@s = getstrlen(.@str$); .@s < .@width; ++.@s) - { - .@str$ = .@padding$ + .@str$; - } - - return .@str$; -} - - - -// format_number(<integer> {, "<separator>"}) -// formats a number properly - -function script format_number { - .@number$ = str(getarg(0)); - .@len = getstrlen(.@number$); - .@separator$ = getarg(1, ","); - - if (getargcount() < 2 && playerattached()) { - // get from user language - switch (Lang) { - case LANG_FR: .@separator$ = " "; break; // French - //case LANG_BR: .@separator$ = "."; break; // Portuguese - default: .@separator$ = ","; // English (default) - } - } - - for (.@i = .@len - 3; .@i > 0; .@i -= 3) { - .@number$ = insertchar(.@number$, .@separator$, .@i); - } - - return .@number$; -} - - - -// strip("<string>") -// removes spaces at the start and end - -function script strip { - .@s$ = getarg(0); - if (.@s$ == "") { - return ""; - } - .@start = 0; - .@end = getstrlen(.@s$) - 1; - for (.@i = .@start; .@i < .@end; .@i++) - { - if (charat(.@s$, .@i) != " ") { - break; - } else { - .@start++; - } - } - for (.@i = .@end; .@i >= .@start; .@i--) - { - if (charat(.@s$, .@i) != " ") { - break; - } else { - .@end--; - } - } - return substr(.@s$, .@start, .@end); -} - - - -// reverse("<string>") -// returns <string> reversed - -function script reverse { - .@str$ = getarg(0); - .@len = getstrlen(.@str$); - - for (.@i = 0; .@i < (.@len / 2); ++.@i) { - .@tmp$ = charat(.@str$, .@i); - .@str$ = setchar(.@str$, charat(.@str$, (.@len - 1 - .@i)), .@i); // a <= b - .@str$ = setchar(.@str$, .@tmp$, (.@len - 1 - .@i)); // b <= a - } - - return .@str$; -} - - - -// repeat("<string>", <multiplier>) -// repeats <string> many times and returns it - -function script repeat { - .@mul = getarg(1); - - for (.@i = 0; .@i < .@mul; ++.@i) { - .@str$ += getarg(0); - } - - return .@str$; -} - - - -// shuffle("<string>") -// returns <string> shuffled - -function script shuffle { - .@str$ = getarg(0); - - for (.@len = getstrlen(.@str$); .@len > 0; --.@len) { - .@rnd = rand(.@len); - .@out$ += charat(.@str$, .@rnd); - .@str$ = delchar(.@str$, .@rnd); - } - - return .@out$; -} |