From The Mana World
(~~~~)
 
m (Gumi moved page User:Meko/scripting/explode to User:Gumi/scripting/explode: Automatically moved page while renaming the user "Meko" to "Gumi")
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
The ''script_explode_str'' procedure (magic scripting) allows to easily get all arguments passed to a spell.


=== Code ===
{| class="wikitable"
|-
! magic-base.sex
|-
|
  (PROCEDURE script_explode_str (delimiter str varname maxparams)
    (FOR a 0 maxparams
        (BLOCK
            (IF (< (strlen str) 1) (BREAK))
            (SET arglen (strlen str))
            (SET argoffset
                (if_then_else
                    (contains_string str delimiter)
                    (strstr str delimiter)
                    arglen))
            (SET arg
                (if_then_else (== arglen argoffset)
                    str
                    (substr str 0 argoffset)))
            (set_script_str caster (+ (+ "@" varname) (+ a "$")) arg)
            (SET str
                (if_then_else
                    (> arglen (- argoffset 1))
                    (substr str (+ argoffset 1) arglen)
                    "")))))
|}
=== Example Usage ===
(CALL script_explode_str " " target "foo" 2)<br><br>
In the above example, the '''target''' string is split at every " " (space) and each argument is named foo'''X''' in which X is an integer ranging from 0 to 2.
If the '''target''' string is, let's say, "hello world !" this script will make 3 arguments: @foo0$ (hello), @foo1$ (world), @foo2$ (!).
These variables are then available for use in scripts or in the magic system itself (with get_script_variable)

Latest revision as of 19:42, 15 June 2020