【制作极其不易,白嫖请留下作者ID】
使用8个玩家变量+3个全局变量
全局变量
Backpack_spot:界面位置
Backpack_button:[暂时备用]
Backpack_i:索引变量
玩家变量
Backpack_open:按钮显示监测
Backpack_page:页面包含按钮
Backpack_button:按钮
Backpack_sensitivity:鼠标灵敏度
Backpack_orientation:鼠标角度
Backpack_i:暂存变量
Backpack_attribute:按钮属性
Backpack_selection:框选变量
- 界面位置:
自行设置:全局.Backpack_spot=矢量(0, 0, 0)
设置按钮:
全局.Backpack_i[1] = 基本按钮数量
全局.Backpack_i[2] = 进度条按钮数量
全局.Backpack_i[3] = 手柄按钮数量
全局.Backpack_i[4] = 键盘按钮数量
【以上按钮数量均取决于页面拥有的最多的数量】
在事件玩家.Backpack_button数组中设置按钮:
设置页面:
自行设置页面子程序:图中已举例子
事件玩家.Backpack_page = 数组(基本按钮, 基本按钮, 基本按钮, ……);
[该页面拥有的所有按钮]
【注意:因减少优化,请将基本按钮的按钮ID与page索引保持一致】(该条作废,详细请看文章结尾)
eg:事件玩家.Backpack_page=数组(无, 事件玩家Backpack_button[1], 事件玩家.Backpack_button[2])
(若没有调用按钮请留无)
事件玩家.Backpack_page[进度条按钮ID + 全局.Backpack_i[1]] = 事件玩家.Backpack_button[按钮ID];
事件玩家.Backpack_page[框选按钮ID + 全局.Backpack_i[1] + 全局.Backpack_i[2]] = 事件玩家.Backpack_button[按钮ID];
}
特殊按钮的调用皆为逐一调用
- 一般按钮[基本按钮]:
功能:鼠标在选区内符合相应条件,就执行相应动作[不需要刷新页面]
用法:Backpack_button[按钮ID] = 数组(自定义字符串("按钮名称"), 颜色(默认颜色), 颜色(待选颜色), 矢量(按钮位置), 矢量(选取左上角位置), 矢量(选取右下角位置));
如果为死按钮,请将button[按钮id][4]与button[按钮id][5]设置为数字0
- 变量按钮[基本按钮]:
功能:自定义字符串带有变化变量的一般按钮
用法:Backpack_button[按钮ID] = 数组(自定义字符串("按钮名称"), 颜色(默认颜色), 颜色(待选颜色), 矢量(按钮位置), 矢量(选取左上角位置), 矢量(选取右下角位置));
【请在按钮动作执行完后,加上两条规则(图中已给样例)进行刷新】
- 拖拽按钮[基本按钮]:
用法:Backpack_i[0]=按钮ID
Backpack_i[1]=可以被拖拽按钮ID数组
【被拖拽按钮都建议设置成拖拽按钮】
- 属性按钮[基本按钮]
用法:事件玩家.Backpack_attribute = 事件玩家.Backpack_button[按钮ID]:
button[按钮id][6]=数组(属性1,,属性2,属性3)
【所有基础按钮均可与合并功能】
- 进度条按钮[特殊按钮]
用法:Backpack_button[按钮ID] = 数组(自定义字符串("按钮名称"), 颜色(文本颜色), 颜色(进度条颜色), 矢量(按钮位置), 矢量(选取左上角位置), 矢量(选取右下角位置));
自行修改Backpack_page变量后全局.Backpack_i[1]+进度条按钮ID(这里的进度条ID是指该进度条按钮在所有进度条按钮中排序)和Backpack_button[按钮id]
进度条内的值为button[按钮id][6]
【如果要修改请自行另建变量然后导入变量,修改变量后,再重新赋值button】
- 框选按钮[特殊按钮]
用法:Backpack_button[按钮ID] = 数组(矢量(选取左上角位置), 矢量(选取右下角位置),颜色(框选颜色),框选权重);
自行修改Backpack_button[按钮id]
Backpack_button[按钮][7]=可以被框选按钮选中的权重
案例中只提供了删除功能,若想要另定制规则,请联系作者#5524
- 手柄按钮[特殊按钮]
用法:Backpack_button[按钮ID] = 数组(矢量(按钮位置), 矢量(选取左上角位置),矢量(选取右下角位置),按钮移动半径,颜色(按钮颜色),颜色(背景颜色));
【因考虑优化page子程序内需加入一个跳过条件和Backpack_handle[手柄按钮ID]】
自行修改Backpack_button[按钮id]与Backpack_handle[手柄按钮ID]
反馈方向为:方向(事件玩家.Backpack_button[按钮ID][0], 矢量(0,4 + -1*事件玩家.Backpack_sensitivity\ * (垂直朝向角度(事件玩家) - 事件玩家.Backpack_orientation[1]), 事件玩家.Backpack_sensitivity * (水平朝向角度(事件玩家) - 事件玩家.Backpack_orientation[0])) + 全局.Backpack_spot)
【由于负载限制,手柄按钮没法做得太精确(就是在环内移动)】
- 键盘按钮[特殊按钮]
用法:Backpack_button[按钮ID] = 数组(自定义字符串("按钮名称"),矢量(按钮位置), 按钮(键盘按钮),颜色(基本颜色),颜色(按中颜色));
自行修改Backpack_button[按钮id]
按钮移动位置的方法:
事件玩家button[按钮ID][3] +=矢量(0, 0, 0);
事件玩家button[按钮ID][4] +=矢量(0, 0, 0);
事件玩家button[按钮ID][5] +=矢量(0, 0, 0);
工坊代码为:
动作
{
事件玩家.Backpack_button[0] = 数组(事件玩家.Backpack_button[0][0], 事件玩家.Backpack_button[0][1], 事件玩家.Backpack_button[0][2], 事件玩家.Backpack_button[0][3] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][4] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][5] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][6], 事件玩家.Backpack_button[0][7]);
}
框选按钮:
动作
{
事件玩家.Backpack_button[0] = 数组(事件玩家.Backpack_button[0][0] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][1] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][2], 事件玩家.Backpack_button[0][3]);
}
手柄按钮:
动作
{
事件玩家.Backpack_button[0] = 数组(事件玩家.Backpack_button[0][0] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][1] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][2] + 矢量(0, 0, 0), 事件玩家.Backpack_button[0][3], 事件玩家.Backpack_button[0][4], 事件玩家.Backpack_button[0][5], 事件玩家.Backpack_button[0][6]);
}
注意:任何按钮的实行功能条件的中的数组包含条件中的button索引请与button索引保持一致,最末尾的一大串代码的条件中page的索引请与page中button所在page的索引保持一致,例如:
条件
{
数组包含(事件玩家.Backpack_page, 事件玩家.Backpack_button[10]) == 真;
(Y方向分量(事件玩家.Backpack_page[0][4]) >= 4 + -1 * 事件玩家.Backpack_sensitivity * (垂直朝向角度(事件玩家) - 事件玩家.Backpack_orientation[1]) && Y方向分量(
事件玩家.Backpack_page[0][5]) <= 4 + -1 * 事件玩家.Backpack_sensitivity * (垂直朝向角度(事件玩家) - 事件玩家.Backpack_orientation[1]) && Z方向分量(
事件玩家.Backpack_page[0][4]) >= 事件玩家.Backpack_sensitivity * (水平朝向角度(事件玩家) - 事件玩家.Backpack_orientation[0]) && Z方向分量(
事件玩家.Backpack_page[0][5]) <= 事件玩家.Backpack_sensitivity * (水平朝向角度(事件玩家) - 事件玩家.Backpack_orientation[0])) == 真;
}
动作
{
事件玩家.Backpack_page = 数组(事件玩家.Backpack_button[10], 事件玩家.Backpack_button[11], 事件玩家.Backpack_button[12], 事件玩家.Backpack_button[13],
事件玩家.Backpack_button[14], 事件玩家.Backpack_button[15], 事件玩家.Backpack_button[16], 事件玩家.Backpack_button[17],
事件玩家.Backpack_button[18]);
}