cleanup:清除无用插件

This commit is contained in:
lizhuoyuan 2025-01-03 14:24:15 +08:00
parent b35aef6a5f
commit 937e5fdf49

View File

@ -1,7 +1,6 @@
/// <reference path="../runtime.d.ts" />
var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
{
"init": function () {
"init": function () {
console.log("插件编写测试");
@ -19,68 +18,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
// 可以在任何地方如afterXXX或自定义脚本事件调用函数方法为 core.plugin.xxx();
// 从V2.6开始插件中用this.XXX方式定义的函数也会被转发到core中详见文档-脚本-函数的转发。
},
"drawLight": function () {
// 绘制灯光/漆黑层效果。调用方式 core.plugin.drawLight(...)
// 【参数说明】
// name必填要绘制到的画布名可以是一个系统画布或者是个自定义画布如果不存在则创建
// color可选只能是一个0~1之间的数为不透明度的值。不填则默认为0.9。
// lights可选一个数组定义了每个独立的灯光。
// 其中每一项是三元组 [x,y,r] x和y分别为该灯光的横纵坐标r为该灯光的半径。
// lightDec可选0到1之间光从多少百分比才开始衰减在此范围内保持全亮不设置默认为0。
// 比如lightDec为0.5代表每个灯光部分内圈50%的范围全亮50%以后才开始快速衰减。
// 【调用样例】
// core.plugin.drawLight('curtain'); // 在curtain层绘制全图不透明度0.9,等价于更改画面色调为[0,0,0,0.9]。
// core.plugin.drawLight('ui', 0.95, [[25,11,46]]); // 在ui层绘制全图不透明度0.95,其中在(25,11)点存在一个半径为46的灯光效果。
// core.plugin.drawLight('test', 0.2, [[25,11,46,0.1]]); // 创建一个test图层不透明度0.2,其中在(25,11)点存在一个半径为46的灯光效果灯光中心不透明度0.1。
// core.plugin.drawLight('test2', 0.9, [[25,11,46],[105,121,88],[301,221,106]]); // 创建test2图层且存在三个灯光效果分别是中心(25,11)半径46中心(105,121)半径88中心(301,221)半径106。
// core.plugin.drawLight('xxx', 0.3, [[25,11,46],[105,121,88,0.2]], 0.4); // 存在两个灯光效果它们在内圈40%范围内保持全亮40%后才开始衰减。
this.drawLight = function (name, color, lights, lightDec) {
// 清空色调层也可以修改成其它层比如animate/weather层或者用自己创建的canvas
var ctx = core.getContextByName(name);
if (ctx == null) {
if (typeof name == 'string')
ctx = core.createCanvas(name, 0, 0, core.__PIXELS__, core.__PIXELS__, 98);
else return;
}
ctx.mozImageSmoothingEnabled = false;
ctx.webkitImageSmoothingEnabled = false;
ctx.msImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = false;
core.clearMap(name);
// 绘制色调层,默认不透明度
if (color == null) color = 0.9;
ctx.fillStyle = "rgba(0,0,0," + color + ")";
ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
lightDec = core.clamp(lightDec, 0, 1);
// 绘制每个灯光效果
ctx.globalCompositeOperation = 'destination-out';
lights.forEach(function (light) {
// 坐标,半径,中心不透明度
var x = light[0],
y = light[1],
r = light[2];
// 计算衰减距离
var decDistance = parseInt(r * lightDec);
// 正方形区域的直径和左上角坐标
var grd = ctx.createRadialGradient(x, y, decDistance, x, y, r);
grd.addColorStop(0, "rgba(0,0,0,1)");
grd.addColorStop(1, "rgba(0,0,0,0)");
ctx.beginPath();
ctx.fillStyle = grd;
ctx.arc(x, y, r, 0, 2 * Math.PI);
ctx.fill();
});
ctx.globalCompositeOperation = 'source-over';
// 可以在任何地方如afterXXX或自定义脚本事件调用函数方法为 core.plugin.xxx();
}
},
"shop": function () {
"shop": function () {
// 【全局商店】相关的功能
//
// 打开一个全局商店
@ -275,7 +213,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
return false;
}, 60);
},
"removeMap": function () {
"removeMap": function () {
// 高层塔砍层插件,删除后不会存入存档,不可浏览地图也不可飞到。
// 推荐用法:
// 对于超高层或分区域塔当在1区时将2区以后的地图删除1区结束时恢复2区进二区时删除1区地图以此类推
@ -362,7 +300,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
});
}
},
"fiveLayers": function () {
"fiveLayers": function () {
// 是否启用五图层增加背景2层和前景2层 将__enable置为true即会启用启用后请保存后刷新编辑器
// 背景层2将会覆盖背景层 被事件层覆盖 前景层2将会覆盖前景层
// 另外 请注意加入两个新图层 会让大地图的性能降低一些
@ -516,7 +454,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
};
}
},
"itemShop": function () {
"itemShop": function () {
// 道具商店相关的插件
// 可在全塔属性-全局商店中使用「道具商店」事件块进行编辑(如果找不到可以在入口方块中找)
@ -822,7 +760,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
}
},
"enemyLevel": function () {
"enemyLevel": function () {
// 此插件将提供怪物手册中的怪物境界显示
// 使用此插件需要先给每个怪物定义境界,方法如下:
// 点击怪物的【配置表格】,找到“【怪物】相关的表格配置”,然后在【名称】仿照增加境界定义:
@ -910,39 +848,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
},
"dynamicHp": function () {
// 此插件允许人物血量动态进行变化
// 原作Fux2老黄鸡
// 是否开启本插件,默认禁用;将此改成 true 将启用本插件。
var __enable = false;
if (!__enable) return;
var speed = 0.05; // 动态血量变化速度,越大越快。
var _currentHp = null;
var _lastStatus = null;
var _check = function () {
if (_lastStatus != core.status.hero) {
_lastStatus = core.status.hero;
_currentHp = core.status.hero.hp;
}
}
core.registerAnimationFrame('dynamicHp', true, function () {
_check();
if (core.status.hero.hp != _currentHp) {
var dis = (_currentHp - core.status.hero.hp) * speed;
if (Math.abs(dis) < 2) {
_currentHp = core.status.hero.hp;
} else {
_currentHp -= dis;
}
core.setStatusBarInnerHTML('hp', _currentHp);
}
});
},
"multiHeros": function () {
"multiHeros": function () {
// 多角色插件
// Step 1: 启用本插件
// Step 2: 定义每个新的角色各项初始数据(参见下方注释)
@ -1088,145 +994,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.setFlag("heroId", toHeroId); // 保存切换到的角色ID
}
},
"itemCategory": function () {
// 物品分类插件。此插件允许你对消耗道具和永久道具进行分类,比如标记「宝物类」「剧情道具」「药品」等等。
// 使用方法:
// 1. 启用本插件
// 2. 在下方数组中定义全部的物品分类类型
// 3. 点击道具的【配置表格】,找到“【道具】相关的表格配置”,然后在【道具描述】之后仿照增加道具的分类:
/*
"category": {
"_leaf": true,
"_type": "textarea",
"_string": true,
"_data": "道具分类"
},
*/
// 你也可以选择使用下拉框的方式定义每个道具的分类写法参见上面的cls
// 然后刷新编辑器,就可以对每个物品进行分类了
// 是否开启本插件,默认禁用;将此改成 true 将启用本插件。
var __enable = false;
if (!__enable) return;
// 在这里定义所有的道具分类类型,一行一个
var categories = [
"宝物类",
"辅助类",
"技能类",
"剧情道具",
"增益道具",
];
// 当前选中的道具类别
var currentCategory = null;
// 重写 core.ui._drawToolbox 以绘制分类类别
var _drawToolbox = core.ui._drawToolbox;
core.ui._drawToolbox = function (index) {
_drawToolbox.call(this, index);
core.setTextAlign('ui', 'left');
core.fillText('ui', '类别[E]' + (currentCategory || "全部"), 15, this.PIXEL - 13);
}
// 获得所有应该在道具栏显示的某个类型道具
core.ui.getToolboxItems = function (cls) {
// 检查类别
return Object.keys(core.status.hero.items[cls])
.filter(function (id) {
return !core.material.items[id].hideInToolbox &&
(currentCategory == null || core.material.items[id].category == currentCategory);
}).sort();
}
// 注入道具栏的点击事件(点击类别)
var _clickToolbox = core.actions._clickToolbox;
core.actions._clickToolbox = function (x, y) {
if (x >= 0 && x <= this.HSIZE - 4 && y == this.LAST) {
drawToolboxCategory();
return;
}
return _clickToolbox.call(core.actions, x, y);
}
// 注入道具栏的按键事件E键
var _keyUpToolbox = core.actions._keyUpToolbox;
core.actions._keyUpToolbox = function (keyCode) {
if (keyCode == 69) {
// 按E键则打开分类类别选择
drawToolboxCategory();
return;
}
return _keyUpToolbox.call(core.actions, keyCode);
}
// ------ 以下为选择道具分类的相关代码 ------ //
// 关闭窗口时清除分类选择项
var _closePanel = core.ui.closePanel;
core.ui.closePanel = function () {
currentCategory = null;
_closePanel.call(core.ui);
}
// 弹出菜单以选择具体哪个分类
// 直接使用 core.drawChoices 进行绘制
var drawToolboxCategory = function () {
if (core.status.event.id != 'toolbox') return;
var selection = categories.indexOf(currentCategory) + 1;
core.ui.closePanel();
core.status.event.id = 'toolbox-category';
core.status.event.selection = selection;
core.lockControl();
// 给第一项插入「全部」
core.drawChoices('请选择道具类别', ["全部"].concat(categories));
}
// 选择某一项
var _selectCategory = function (index) {
core.ui.closePanel();
if (index <= 0 || index > categories.length) currentCategory = null;
else currentCategory = categories[index - 1];
core.openToolbox();
}
var _clickToolBoxCategory = function (x, y) {
if (!core.status.lockControl || core.status.event.id != 'toolbox-category') return false;
if (x < core.actions.CHOICES_LEFT || x > core.actions.CHOICES_RIGHT) return false;
var choices = core.status.event.ui.choices;
var topIndex = core.actions._getChoicesTopIndex(choices.length);
if (y >= topIndex && y < topIndex + choices.length) {
_selectCategory(y - topIndex);
}
return true;
}
// 注入点击事件
core.registerAction('onclick', 'toolbox-category', _clickToolBoxCategory, 100);
// 注入光标跟随事件
core.registerAction('onmove', 'toolbox-category', function (x, y) {
if (!core.status.lockControl || core.status.event.id != 'toolbox-category') return false;
core.actions._onMoveChoices(x, y);
return true;
}, 100);
// 注入键盘光标事件
core.registerAction('keyDown', 'toolbox-category', function (keyCode) {
if (!core.status.lockControl || core.status.event.id != 'toolbox-category') return false;
core.actions._keyDownChoices(keyCode);
return true;
}, 100);
// 注入键盘按键事件
core.registerAction('keyUp', 'toolbox-category', function (keyCode) {
if (!core.status.lockControl || core.status.event.id != 'toolbox-category') return false;
core.actions._selectChoices(core.status.event.ui.choices.length, keyCode, _clickToolBoxCategory);
return true;
}, 100);
},
"heroFourFrames": function () {
"heroFourFrames": function () {
// 样板的勇士/跟随者移动时只使用2、4两帧观感较差。本插件可以将四帧全用上。
// 是否启用本插件
@ -1279,7 +1047,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
return false;
}
},
"startCanvas": function () {
"startCanvas": function () {
// 使用本插件可以将自绘的标题界面居中。仅在【标题开启事件化】后才有效。
// 由于一些技术性的原因,标题界面事件化无法应用到覆盖状态栏的整个界面。
// 这是一个较为妥协的插件,会在自绘标题界面时隐藏状态栏、工具栏和边框,并将画布进行居中。
@ -1364,5 +1132,17 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 =
core.plugin._resetTitleCanvas();
_loadData.call(core.control, data, callback);
}
}
},
"advancedAnimation": function () {
// 在此增加新插件
},
"drawItemDetail": function () {
// 在此增加新插件
},
"autoGet": function () {
// 在此增加新插件
}
}