插件自定义面板制作图文教程

环境准备

自定义面板制作需要服务端与本地配合,用到如下脚本:

HelperQuest.pas

ExtendUIs.pas

同时,需要在RunMailQuest.pas 中开启自定义命令开关,否则无法生效

插件自定义面板制作图文教程

需要加上这句话才能生效。

HelperQuest.pas 需要引用 ExtendUIs.pas,如下图:

插件自定义面板制作图文教程

同时,ExtendUIs.pas 这个文件,需要拷贝到 CommonScripts 目录下

制作步骤

1、创建JSON:每个自定义面板,都需要配套一个json文件,json文件中,必不可少的需要包含 CM、Bg、Exit 三个元素。 其他内容元素看自己的写法,可以写到json里,也可以后期通过命令增加。

如下json案例:

JavaScript

{
 “panel” :
[     — 这个必备,不能删
  “CM:@loadcb”,  — 这是通讯函数,写到extendUIs.pas里的。也可以自己创建一个pas函数,单独放到commonscripts,但需要在helperquest里引用
  “Bg:sz:15”,  — 这是背景图,以及下面的自定义内容,可以根据面板需求写
  “Exit:sz:17:17:654:43”,  — 这个是退出按钮,
  “1:Img-name1:sz:6:511:182”,  — 这个是一张图片的自定义,1 表示显示,Img表示元素类型,-name1 表示这个元素的名称。 可以根据这个元素名称去更新这个元素,或者隐藏这个元素。隐藏方式: PlayerNotice(‘CDTP:panelname=0:Img-name1’,5);
 ]
}

比如这样的json内容,存储为json文件,放到补丁中更新。比如存储为 “kuangbao.json”

2、实现服务端通讯函数:写到extendUIs.pas里的。也可以自己创建一个pas函数,单独放到commonscripts,但需要在helperquest里引用。

比如,此案例中,直接写到 extendUIs.pas 里:

Fortran

//对应客户端的通讯函数
procedure _loadcb;
begin
This_Player.PlayerNotice(‘客户端打开了一个窗口’,5);
end;

3、添加顶部按钮:修改 mainsetting.json 配置文件即可。

Fortran

“hiddenablePanels” : [
{
            “这个配置是坐标,不要删,用于调整伸缩区域位置” : 0,
            “startPos_x” : 250,
            “startPos_y” : 64,
            “space_x” : 75
        },
        {
            “key” : “link”,
            “line” : 1
        },
        {
            “key” : “btnPanelShop”,
            “line” : 1
        },
        {
            “jsonFile” : “kuangbao”,
            “jsonID” : “kb”,
“key” : “kuangbao”,
            “name” : “狂暴模式”,
            “desc” : “可以开启狂暴模式,增加属性”,
            “line” : 2
        }
    ],

对于自定义类按钮的添加,配置方式需要特别留意的参数如下:

jsonFIle 填写生成的自定义面板json文件名

jsonID 这个是面板id,非常重要,是用于通过服务端动态更新下发命令时的唯一标志,你可以理解为就是面板id名称

key 这个是面板icon文件名,默认放到 panel-icons 目录下

name 面板名称

desc 面板描述

line 表示显示在顶部第二行,1 表示第一行(默认)

4、动态刷新面板:支持通过服务端下发动态刷新面板内容,通常使用 PlayerNotice 即可。如下代码:

Fortran

//对应客户端的通讯函数
procedure _loadcb;
begin
This_Player.PlayerNotice(‘客户端打开了一个窗口’,5);
This_Player.PlayerNotice(‘CDTP:kb=1:Img-name1:sz:7:511:182’,5);
//把狂暴图片从 6 更新成 7
end;

CDTP 是消息头,表示更新动态面板的内容,kb 表示需要对哪个面板做更新

分享到:
赞(0)