本插件基于LiteLoaderScritEngine平台开发,请先确保已正确安装LiteLoaderBDS。
演示视频(油管):
使用方法:
*温馨提醒:不要下载打包版,暂时不支持哦。
安装:安装好ll和lxl,然后把这解压出来的的东西丢进plugins里。
配置:./plugins/FantasyMenu/Config/Config.json
[CODE lang="json" title="./plugins/FantasyMenu/Config/Config.json"]{
"Path": "./plugins/FantasyMenu/Config/", //从对象序列化过来的私有字段,没有实际作用
"Menu": "FantasyMenu", //暂时没用
"MenuBuilder": true, //是否开启菜单构建器
"AllowScript": true, //是否允许菜单运行脚本
"Home": "main.json", //主菜单的文件名
"Item": "minecraft:clock" //右键打开菜单的物品
}[/CODE]
配置菜单,小白建议使用菜单编辑器(/menubuilder):./plugins/FantasyMenu/Config/Form/
脚本配置:./plugins/FantasyMenu/Config/Form/
Q:不是有辣么多菜单插件吗,为啥还要发这个插件?
A:以往的菜单插件都是只能运行指令或者打开菜单,不支持更复杂的功能。Fantasy Menu支持基于lxl.eval()接口的代码执行功能,还支持基于lxl 5.3.0新增的“BaseLib基础库CJS系统支持”的脚本执行功能。
Q:我是小白,那些花里胡哨的功能我也不会用啊
A:Fantasy Menu开创了方便广大腐竹的游戏内在线菜单编辑器,输入/menubuilder即可使用,你甚至无需会写JSON。
Q:我要怎么使用你说的那些花哨的功能呢
A:对于code模式的按钮,直接在Execute写js代码就好了,代码中的“${xuid}”会自动换成点击按钮的玩家的xuid,也可以使用变量Player直接访问玩家对象;对于script模式的按钮,需要先编写一个导出一个叫“main”的函数的js文件,main的函数原型为:main(player, parent, args?:any),parent为按钮所在的菜单的表单对象。详细用法请参考附带的示例。
演示视频(油管):
使用方法:
*温馨提醒:不要下载打包版,暂时不支持哦。
安装:安装好ll和lxl,然后把这解压出来的的东西丢进plugins里。
配置:./plugins/FantasyMenu/Config/Config.json
[CODE lang="json" title="./plugins/FantasyMenu/Config/Config.json"]{
"Path": "./plugins/FantasyMenu/Config/", //从对象序列化过来的私有字段,没有实际作用
"Menu": "FantasyMenu", //暂时没用
"MenuBuilder": true, //是否开启菜单构建器
"AllowScript": true, //是否允许菜单运行脚本
"Home": "main.json", //主菜单的文件名
"Item": "minecraft:clock" //右键打开菜单的物品
}[/CODE]
配置菜单,小白建议使用菜单编辑器(/menubuilder):./plugins/FantasyMenu/Config/Form/
JSON:
{
"NeedOP": false,//是否需要operator权限
"Title": "[§2Menu§r]§l服务器菜单",//菜单标题
"Content": "§7====================§r§l主菜单§r§7====================",//文本内容
"Buttons": [
{
"Content": "获取菜单",//按钮显示文本
"Image": "textures/items/clock_item",//图骗URL(或资源包路径)
"onClick": {
"Type": "code",//执行模式(cmd, console-cmd, form, code, script)
/*
*cmd -- 指令
*console-cmd -- 也是指令,但会在后台执行,@s选择器以及${player}变量可以表示按下按钮的玩家
*form -- 打开另一个表单,可用于菜单间导航
*code -- JavaScript代码,运行于LXL环境
*script -- JavaScript脚本,同上,但是这里填脚本文件路径
*/
"Execute": "Player.giveItem(mc.newItem(\"minecraft:clock\",1));"//执行主体
}
},
{
"Content": "商城",
"Image": "textures/items/villagebell",
"onClick": {
"Type": "form",
"Execute": "Pages/ShoppingMall.json"
}
},
{
"Content": "领地系统",
"Image": "textures/ui/rating_screen",
"onClick": {
"Type": "cmd",
"Execute": "/land"
}
},
{
"Content": "传送系统",
"Image": "textures/items/map_locked",
"onClick": {
"Type": "form",
"Execute": "Pages/Teleport.json"
}
},
{
"Content": "个人系统",
"Image": "textures/ui/FriendsIcon",
"onClick": {
"Type": "form",
"Execute": "Pages/Me.json"
}
},
{
"NeedOP": true,
"Content": "OP菜单",
"Image": "textures/ui/anvil_icon",
"onClick": {
"Type": "form",
"Execute": "Pages/operator.json"
}
}
]
}
JavaScript:
"use strict";
exports.__esModule = true;
exports.main = void 0;
function main(player, parent) {
let form = mc.newCustomForm();
form.setTitle("[§2Home§r]§l设置Home");
form = form.addLabel("§7====================§r§l填写信息§r§7====================");
form = form.addInput("名称(不允许空格)", "填入Home名称(string)", "§ehome_1");
player.sendForm(form, (pl, input) => {
if (input != undefined) {
let home = input[1];
addHome(pl, home);
}
});
}
exports.main = main;
function addHome(pl, home) {
if (home != undefined && home!="") {
pl.runcmd("/home add " + home.replace(/^\s*/, ""));
} else {
pl.tell("名称不能为空!");
}
}
Q:不是有辣么多菜单插件吗,为啥还要发这个插件?
A:以往的菜单插件都是只能运行指令或者打开菜单,不支持更复杂的功能。Fantasy Menu支持基于lxl.eval()接口的代码执行功能,还支持基于lxl 5.3.0新增的“BaseLib基础库CJS系统支持”的脚本执行功能。
Q:我是小白,那些花里胡哨的功能我也不会用啊
A:Fantasy Menu开创了方便广大腐竹的游戏内在线菜单编辑器,输入/menubuilder即可使用,你甚至无需会写JSON。
Q:我要怎么使用你说的那些花哨的功能呢
A:对于code模式的按钮,直接在Execute写js代码就好了,代码中的“${xuid}”会自动换成点击按钮的玩家的xuid,也可以使用变量Player直接访问玩家对象;对于script模式的按钮,需要先编写一个导出一个叫“main”的函数的js文件,main的函数原型为:main(player, parent, args?:any),parent为按钮所在的菜单的表单对象。详细用法请参考附带的示例。