星空晶体 发表于 2024-9-22 13:25:57

[SAPI][server-ui]如何在游戏里通过某个方法在另一个菜单添加按钮

如题,本人对Script API不熟练

YiShengJun 发表于 2024-9-22 15:45:30

希望你详细描述一下需求

指令凋灵 发表于 2024-9-22 22:49:12

本帖最后由 指令凋灵 于 2024-9-25 22:57 编辑

如果是在另一个sapi的ui里可以整一个数组,在里面加上ui,然后遍历数组添加ui

示例:
var buttonList = [];
function testUI(player){
let ui = new ActionFormData();
ui.title("");
ui.body("");
ui.button("添加按钮");
for(let i = 0; i < buttonList.length; i++){
    ui.button(buttonList);
}
ui.show(player).then((r)=>{
    if(r.selection === 0){
      buttonList.push("test" + buttonList.length + 1);
    }
});
}

zhj123456ddsh 发表于 2024-9-23 06:40:44

以下内容 ai 所做,仅供参考!
要在游戏中通过 SAPI server-ui 在另一个菜单添加按钮,你可以考虑以下步骤:

一、了解游戏架构和 SAPI 的接口

1. 研究游戏的开发文档或相关资源,确定 SAPI server-ui 提供的接口和方法。这可能包括查找与菜单操作和按钮添加相关的函数或事件。

二、确定目标菜单和添加位置

1. 识别你想要在其中添加按钮的目标菜单。了解该菜单的结构和布局,以便确定合适的位置添加按钮。

三、使用合适的方法添加按钮

1. 根据 SAPI 的接口,找到可以用于添加按钮的方法。这可能涉及调用特定的函数或触发特定的事件。
2. 准备按钮的属性和行为。确定按钮的标签、图标、点击事件等属性,并将其传递给添加按钮的方法。
3. 在游戏代码中调用相应的方法,传入目标菜单和按钮的属性,以实现在目标菜单中添加按钮的操作。

例如,假设 SAPI 提供了一个名为  addButtonToMenu  的方法,你可以这样使用它:

javascript
复制
const targetMenu = getTargetMenu(); // 获取目标菜单对象
const buttonProperties = {
label: 'New Button',
icon: 'icon.png',
onClick: function() {
    // 按钮点击时的行为
}
};

sapi.addButtonToMenu(targetMenu, buttonProperties);
 

请注意,以上代码仅为示例,实际的实现方式可能因游戏和 SAPI 的具体情况而异。你需要根据游戏的开发环境和 SAPI 的文档来调整代码。

另外,在进行游戏开发时,确保对代码进行充分的测试,以确保按钮的添加和行为符合预期。如果可能的话,可以参考游戏的社区论坛或开发者资源,以获取更多关于使用 SAPI server-ui 添加按钮的具体指导和示例。

Sakarwei 发表于 2024-9-24 12:56:28

我的想法是,eval执行。
js可用eval函数将字符串当成js代码执行,大概是 eval("【JS】")。

那么,我个人*猜测*可以用模板代码生成目标代码并执行。用字符串模板代码写菜单项目,要加的时候加上目标再运行就可以。

我还没有研究过他们的文档,但我相信有更多更好的答案。
页: [1]
查看完整版本: [SAPI][server-ui]如何在游戏里通过某个方法在另一个菜单添加按钮