トップ > MAP作成 > トリガーエディタ > Jass Script > Jass講座 > function
functionとは関数を指す。Jass Scriptでは、戻り値を持つ関数も持たない関数もすべてfunctionで定義される。 複数回行う処理をひとつのfunctionにまとめておけば便利。普通、これをどんどん作っていく。 Jass NewGenの導入が前提です。導入せずとも利用できる内容も一部ありますが、あったほうが断然有利です。 使い方functionは、以下のように定義される。 function HelloWorld takes nothing returns nothing call DisplayTextToPlayer(GetLocalPlayer(),0,0,"Hello, world!") endfunction 定義された関数は、以下のようにしていつでも呼び出すことができる。 call HelloWorld() 注意点カスタムスクリプトで作成されたJass Scriptは、最終的にひとつのテキストファイルにまとめられる。 このとき、テキストの下部で定義したfunctionは、それより上部でcallすることができない。 以下のスクリプトの場合、エラーが出る。 function initGame takes nothing returns nothing call CantCallMe() endfunction function CantCallMe takes nothing returns nothing //この関数は initGame より下流に位置するので、 //initGame内から call することはできない。 //この例のように記載すると、MAP保存時にエラーが出て、保存できない。 endfunction ひとつのページ内であれば注意して防げる問題ではあるが、複数のページにわたって呼び出されることのある function を作成する場合は、MAP保存時にどのページが上にくるかによってエラーが出るかどうかが変わる。 複数のページで利用する関数を定義する場合は、library を利用すると便利。 引数takes 〜 returns の間に、変数型 '変数名', 変数型 '変数名', .... の書式で記入する。 記入例: function HelloWorldtoPlayer takes player whichPlayer returns nothing call DisplayTextToPlayer(whichPlayer,0,0,"Hello, world!") endfunction 戻り値returns 〜 に、変数型で記入。returnの位置で関数の処理は終了し、指定された形を返す。 例: function GetMessage takes nothing returns string return "Hello, world!" endfunction function HelloWorldtoPlayer takes player whichPlayer returns nothing call DisplayTextToPlayer(whichPlayer,0,0,GetMessage()) endfunction |