Jump to content
Sign in to follow this  
You need to play a total of 10 battles to post in this section.
tomato432

Mods APIに関する情報

1 comment in this topic

Recommended Posts

ST Coordinator
575 posts
5,403 battles

Mods APIとSDKに関する記事が出ていたので試しに訳してみましたが、以下に掲載している分以外は、訳に適さないメソッドやAPIのドキュメントでしたので、今回は冒頭の導入部分のみここに掲載しておきます。なので、私のこの投稿に関しては、訳というよりは、話題提供程度に読んでおいてください。

 

Source: ModsAPI How-To

 

このトピックでAPIを利用したmod制作の情報交換等していただけたらと思います。

 


通常状態にあるクライアントでは、modding APIは無効化されています。有効化するには、"PnFModsLoader.py"と名付けた空ファイルと"PnFMods"と名付けたフォルダを同じ場所に配置してください。

 

"PnFMods"フォルダの中に、自分で作成したmodを配置できます。もっとも単純な例では、"Main.py"ファイル一つのみで構成されたmodが構築可能です。

 

このシンプルなmodは"res_mods/<game version>/PnFMods/MyMod/Main.py"に配置されることになります。

 

Mods APIは、PythonとFlashの2つの部分から構成されています。それぞれ、Pythonの部分はMain.pyファイルをロードし、Flashの部分は用意されたMain.swfファイルをロードする役割を果たします。

 

このPythonとFlashの部分はゲームクライアント本体からは隔離されており、mod製作者は提供されるインターフェースを通じてデータのやり取りを行うことになります。

 

以下、シンプルなmodでデモンストレーションします。

 

ModsAPI Python HelloWorld

"res_mods / <version>"の下にフォルダ "PnFMods"と空ファイル"PnFModsLoader.py"を作成します。

フォルダ"PnFMods"の中に、  "HelloWorld"mod用のフォルダを作成します。

617QVpu.jpg

"HelloWorld"フォルダの中に"Main.py"と名付けた空ファイルを作成し、 テキストエディタ等で開いて以下を入力します。

API_VERSION = 'API_v1.0'

print 'Hello World!'

qqcuEIE.jpg

 

package
     
    public class Main extends ModBase
    {
        public function Main()
        {
            super();
        }
         
        override public function init():void
        {
            super.init();
        }
         
        override public function fini():void
        {
            super.fini();
        }
         
        override public function updateStage(width:Number, font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;border:0px;float:none;margin:0px;padding:0px;vertical-align:baseline;width:auto;color:rgb(51,102,153);background:none;">Number):void
        {
            super.updateStage(width, height);
        }
    }
}

 

以下にシンプルなFlash-modの例を示します。

 

package
     
    import flash.text.TextField;
    import flash.text.TextFormat;
     
    public class Main extends ModBase
    {
        private var tf:TextField = new TextField();
         
        public function Main()
        {
            super();
        }
         
        override public function init():void
        {
            super.init();
             
            var format:TextFormat = new TextFormat();
            format.size = 40;
            gameAPI.stage.addChild(tf);
            tf.defaultTextFormat = format;
            tf.text = "Hello World!";
            tf.textColor = 0xFF0000;
            tf.width = 250;
        }
         
        override public function fini():void
        {
            super.fini();
        }
         
        override public function updateStage(width:Number, font-family:Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace;border:0px;float:none;margin:0px;padding:0px;vertical-align:baseline;width:auto;color:rgb(51,102,153);background:none;">Number):void
        {
            super.updateStage(width, height);
        }
    }
}

 

クライアントを実行して動作を確認しましょう:

cd81082e2b6c0b474b21166f4e3d898a.png

おめでとうございます。ModsAPIを利用した最初のmodができました!

 

続き(露語)

Edited by tomato432

Share this post


Link to post
Share on other sites
Sign in to follow this  

×