diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/constants.md | 7 | ||||
-rw-r--r-- | doc/script_commands.txt | 27 |
2 files changed, 29 insertions, 5 deletions
diff --git a/doc/constants.md b/doc/constants.md index a64d75152..ead85314d 100644 --- a/doc/constants.md +++ b/doc/constants.md @@ -4302,6 +4302,13 @@ - `QINFO_HOMUN_TYPE`: 6 - `QINFO_QUEST`: 7 +### function types + +- `FUNCTION_IS_COMMAND`: 1 +- `FUNCTION_IS_GLOBAL`: 2 +- `FUNCTION_IS_LOCAL`: 3 +- `FUNCTION_IS_LABEL`: 4 + ### Renewal - `RENEWAL`: 1 diff --git a/doc/script_commands.txt b/doc/script_commands.txt index 414a72924..c5c58b991 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -1976,18 +1976,35 @@ prontera,150,150,0 script TestNPC 123,{ *is_function("<function name>") -This command checks whether a function exists. -It returns 1 if function is found, or 0 if it isn't. +This command checks whether or not a function exists and returns its type. +Returns false if it cannot be found. + +return values: + + FUNCTION_IS_COMMAND - built-in script command (eg: mes, select, ...) + FUNCTION_IS_GLOBAL - user-defined global function (callable with callfunc) + FUNCTION_IS_LOCAL - user-defined local function + FUNCTION_IS_LABEL - user-defined label function (callable with callsub) Example: - function script try { + function script func1 { dothat(); } - script test FAKE_NPC,{ - .@try = is_function("try"); // 1 - .@not = is_function("notafunction"); // 0 + function func2 { + do_something(); + } + + func3: + end; + + is_function("func1"); // FUNCTION_IS_GLOBAL + is_function("func2"); // FUNCTION_IS_LOCAL + is_function("func3"); // FUNCTION_IS_LABEL + is_function("select"); // FUNCTION_IS_COMMAND + is_function("invalid"); // false } --------------------------------------- |