添加getEntityAllEffects接口
This commit is contained in:
Vendored
+6
-6
@@ -1097,12 +1097,6 @@ interface Player {
|
||||
/** 方块对象 */
|
||||
block: Block
|
||||
): number;
|
||||
|
||||
/** (GMLIB)玩家是否拥有buff效果 */
|
||||
hasEffect(
|
||||
/** 效果ID */
|
||||
effectId: number
|
||||
): boolean;
|
||||
}
|
||||
|
||||
interface Entity {
|
||||
@@ -1162,6 +1156,12 @@ interface Entity {
|
||||
family: string
|
||||
): boolean;
|
||||
|
||||
/** (GMLIB)实体是否拥有buff效果 */
|
||||
hasEffect(
|
||||
/** 效果ID */
|
||||
effectId: number
|
||||
): boolean;
|
||||
|
||||
/** (GMLIB)获取buff信息 */
|
||||
getEffectInfo(
|
||||
/** 效果ID */
|
||||
|
||||
+11
-9
@@ -344,22 +344,24 @@ const GMLIB_API = {
|
||||
entityHasFamily: ll.import("GMLIB_API", "entityHasFamily"),
|
||||
/** 获取玩家破坏方块所需时间 @type {function(Player,Block):number} */
|
||||
getPlayerDestroyBlockProgress: ll.import("GMLIB_API", "getPlayerDestroyBlockProgress"),
|
||||
/** 获取玩家的buff是否显示 @type {function(Player,number):boolean} */
|
||||
/** 获取实体的buff是否显示 @type {function(Player,number):boolean} */
|
||||
getEntityEffectVisible: ll.import("GMLIB_API", "getEntityEffectVisible"),
|
||||
/** 获取玩家的buff持续时间 @type {function(Player,number):number} */
|
||||
/** 获取实体的buff持续时间 @type {function(Player,number):number} */
|
||||
getEntityEffectDuration: ll.import("GMLIB_API", "getEntityEffectDuration"),
|
||||
/** 获取玩家的buff简单模式下的持续时间 @type {function(Player,number):number} */
|
||||
/** 获取实体的buff简单模式下的持续时间 @type {function(Player,number):number} */
|
||||
getEntityEffectDurationEasy: ll.import("GMLIB_API", "getEntityEffectDuration"),
|
||||
/** 获取玩家的buff困难模式下的持续时间 @type {function(Player,number):number} */
|
||||
/** 获取实体的buff困难模式下的持续时间 @type {function(Player,number):number} */
|
||||
getEntityEffectDurationHard: ll.import("GMLIB_API", "getEntityEffectDurationHard"),
|
||||
/** 获取玩家的buff普通模式下的持续时间 @type {function(Player,number):number} */
|
||||
/** 获取实体的buff普通模式下的持续时间 @type {function(Player,number):number} */
|
||||
getEntityEffectDurationNormal: ll.import("GMLIB_API", "getEntityEffectDurationNormal"),
|
||||
/** 获取玩家的buff效果等级 @type {function(Player,number):number} */
|
||||
/** 获取实体的buff效果等级 @type {function(Player,number):number} */
|
||||
getEntityEffectAmplifier: ll.import("GMLIB_API", "getEntityEffectAmplifier"),
|
||||
/** 获取玩家的buff是否为信标给予 @type {function(Player,number):boolean} */
|
||||
/** 获取实体的buff是否为信标给予 @type {function(Player,number):boolean} */
|
||||
getEntityEffectAmbient: ll.import("GMLIB_API", "getEntityEffectAmbient"),
|
||||
/** 玩家是否拥有buff效果 @type {function(Player,number):boolean} */
|
||||
/** 实体是否拥有buff效果 @type {function(Player,number):boolean} */
|
||||
entityHasEffect: ll.import("GMLIB_API", "entityHasEffect"),
|
||||
/** 获取实体所有buff效果 @type {function(Entity):Array.<number>} */
|
||||
getEntityAllEffects: ll.import("GMLIB_API", "getEntityAllEffects"),
|
||||
/** 获取游戏难度 @type {function():number} */
|
||||
getGameDifficulty: ll.import("GMLIB_API", "getGameDifficulty"),
|
||||
/** 设置游戏难度 @type {function(difficulty):void} */
|
||||
@@ -2585,7 +2587,7 @@ LLSE_Player.prototype.getDestroyProgress =
|
||||
|
||||
LLSE_Entity.prototype.hasEffect =
|
||||
/**
|
||||
* 玩家是否拥有buff效果
|
||||
* 实体是否拥有buff效果
|
||||
* @param {number} effectId buff效果ID
|
||||
* @returns {boolean}
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#include "Global.h"
|
||||
#include <regex>
|
||||
#include <vector>
|
||||
|
||||
bool isInteger(const std::string& str) {
|
||||
std::regex pattern("^[+-]?\\d+$");
|
||||
@@ -935,6 +936,14 @@ void Export_Compatibility_API() {
|
||||
RemoteCall::exportAs("GMLIB_API", "entityHasEffect", [](Actor* entity, int effectId) -> int {
|
||||
return entity->hasEffect(*MobEffect::getById(effectId));
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "getEntityAllEffects", [](Actor* entity) -> std::vector<int> {
|
||||
auto effects = entity->getAllEffects();
|
||||
std::vector<int> results = {};
|
||||
for (auto effect : effects) {
|
||||
results.push_back((int)effect.mId);
|
||||
}
|
||||
return results;
|
||||
});
|
||||
RemoteCall::exportAs("GMLIB_API", "getGameDifficulty", []() -> int {
|
||||
if (auto level = ll::service::getLevel()) {
|
||||
return (int)level->getDifficulty();
|
||||
|
||||
Reference in New Issue
Block a user