ModsAPI的操作方法


ModsAPI的操作方法

在正常的情况下,modsapi将无法使用。要启用他,你必须在客户端的模组文件夹下创建一个空文件“PnFModsLoader.py”和“PnFMods”文件夹。
在 PNFMODS文件夹下储存你需要的插件。在最简单的情况下,插件可以仅由“Main.py”一个文件构成。
结果是,最简单的插件可能有以下部分构成“<游戏目录> / res_mods / <版本号> /PnFMods/MyMod/Main.py”。
ModsAPI由两部分组成python和flash。Python的部分负责加载Main.py和部分flash的main.swf。
在游戏客户端外单独工作的python和flash,要负责发送和接收各种由游戏端口提供的数据。
我们将通过一个简单的插件来理解。

ModsAPI-Python中的HelloWorld

在“res_mods / <版本号>”文件夹下创建一个新文件“PnFModsLoader.py”和一个空文件夹“PnFMods”。在“PnFMods”文件夹下为我们的“HelloWorld”创建文件夹。

现在在该文件夹下创建一个空文件“Main.py”,并使用任何编辑器打开它并写入以下内容:

API_VERSION = &#039;API_v1.0&#039;
 
print &#039;Hello World!&#039;

运行游戏客户端,等待其加载,然后将其关闭,打开文件“python.log”,你将会看到类似以下内容:

[S] [2016_09_09 22:35:51] [NUT] PlayersAccountsSystem.inContext
[S] [2016_09_09 22:35:51] [ModsAPI] 1 mods found, loading...
[S] [2016_09_09 22:35:51] Hello World!
[S] [2016_09_09 22:35:51] [ModsAPI] Loading mods completed


ModsAPI-Flash中的HelloWorld

对于flash部分实现的方式,我们需要flash IDE,例如“Adobe Creative Cloud Animate CC”

新建一个ActionScript 3.0项目

下载最新版本的ModsSDK并添加到IDE的外部SWC库中


接下来在我们的项目中创建一个”类”,并对其进行各种修改,如下图所示

这是一段创建空白区域的代码

package
{
    import lesta.api.ModBase;
 
    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, height:Number):void
        {
            super.updateStage(width, height);
        }
    }
}

我们来写一个简单的flash Mods

package
{
    import lesta.api.ModBase;
 
    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, height:Number):void
        {
            super.updateStage(width, height);
        }
    }
}

“发布swf”,命名为main.swf,放入”PnFMods”文件夹中,运行游戏客户端,并检查其是否工作

share to:

转载请署名来源

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。