环境准备
自定义面板制作需要 服务端与本地配合,用到如下脚本: HelperQuest.pas ExtendUIs.pas 同时,需要在RunMailQuest.pas 中开启自定义命令开关,否则无法生效 需要加上这句话才能生效。 HelperQuest.pas 需要引用 ExtendUIs.pas,如下图: 同时,ExtendUIs.pas 这个文件,需要拷贝到 CommonScripts 目录下
制作步骤
1、创建JSON:每个自定义面板,都需要配套一个json文件,json文件中,必不可少的需要包含 CM、Bg、Exit 三个元素。 其他内容元素看自己的写法,可以写到json里,也可以后期通过命令增加。 如下json案例:
- <div line="ZCMZ" data-language="javascript" class="ql-code-block">{</div><div line="pl8q" data-language="javascript" class="ql-code-block"> <span class="hljs-string">"panel"</span> : </div><div line="3Gzv" data-language="javascript" class="ql-code-block"> [ -- 这个必备,不能删 </div><div line="GInc" data-language="javascript" class="ql-code-block"> <span class="hljs-string">"CM:@loadcb"</span>, -- 这是通讯函数,写到extendUIs.<span class="hljs-property">pas</span>里的。也可以自己创建一个pas函数,单独放到commonscripts,但需要在helperquest里引用</div><div line="qMV0" data-language="javascript" class="ql-code-block"> <span class="hljs-string">"Bg:sz:15"</span>, -- 这是背景图,以及下面的自定义内容,可以根据面板需求写</div><div line="K0Xw" data-language="javascript" class="ql-code-block"> <span class="hljs-string">"Exit:sz:17:17:654:43"</span>, -- 这个是退出按钮,</div><div line="Zxin" data-language="javascript" class="ql-code-block"> <span class="hljs-string">"1:Img-name1:sz:6:511:182"</span>, -- 这个是一张图片的自定义,<span class="hljs-number">1</span> 表示显示,<span class="hljs-title class_">Img</span>表示元素类型,-name1 表示这个元素的名称。 可以根据这个元素名称去更新这个元素,或者隐藏这个元素。隐藏方式: <span class="hljs-title class_">PlayerNotice</span>(<span class="hljs-string">'CDTP:panelname=0:Img-name1'</span>,<span class="hljs-number">5</span>);</div><div line="fG0C" data-language="javascript" class="ql-code-block"> ]</div><div line="2h7C" data-language="javascript" class="ql-code-block">} </div>
复制代码
比如这样的json内容,存储为json文件,放到补丁中更新。比如存储为 “kuangbao.json”
2、实现服务端通讯函数:写到extendUIs.pas里的。也可以自己创建一个pas函数,单独放到commonscripts,但需要在helperquest里引用。 比如,此案例中,直接写到 extendUIs.pas 里:
- <div line="Djvj" data-language="fortran" class="ql-code-block">//对应客户端的通讯函数</div><div line="XRbE" data-language="fortran" class="ql-code-block"><span class="hljs-keyword">procedure</span> _loadcb;</div><div line="DLyd" data-language="fortran" class="ql-code-block">begin</div><div line="TT8I" data-language="fortran" class="ql-code-block"> This_Player.PlayerNotice(<span class="hljs-string">'客户端打开了一个窗口'</span>,<span class="hljs-number">5</span>);</div><div line="4CDD" data-language="fortran" class="ql-code-block"><span class="hljs-keyword">end</span>;</div>
复制代码
|