添加getEntityAllEffects接口

This commit is contained in:
子沐呀
2024-08-01 21:23:33 +08:00
Unverified
parent 2f987b1c93
commit 4857867821
3 changed files with 26 additions and 15 deletions
+6 -6
View File
@@ -1097,12 +1097,6 @@ interface Player {
/** 方块对象 */ /** 方块对象 */
block: Block block: Block
): number; ): number;
/** (GMLIB)玩家是否拥有buff效果 */
hasEffect(
/** 效果ID */
effectId: number
): boolean;
} }
interface Entity { interface Entity {
@@ -1162,6 +1156,12 @@ interface Entity {
family: string family: string
): boolean; ): boolean;
/** (GMLIB)实体是否拥有buff效果 */
hasEffect(
/** 效果ID */
effectId: number
): boolean;
/** (GMLIB)获取buff信息 */ /** (GMLIB)获取buff信息 */
getEffectInfo( getEffectInfo(
/** 效果ID */ /** 效果ID */
+11 -9
View File
@@ -344,22 +344,24 @@ const GMLIB_API = {
entityHasFamily: ll.import("GMLIB_API", "entityHasFamily"), entityHasFamily: ll.import("GMLIB_API", "entityHasFamily"),
/** 获取玩家破坏方块所需时间 @type {function(Player,Block):number} */ /** 获取玩家破坏方块所需时间 @type {function(Player,Block):number} */
getPlayerDestroyBlockProgress: ll.import("GMLIB_API", "getPlayerDestroyBlockProgress"), getPlayerDestroyBlockProgress: ll.import("GMLIB_API", "getPlayerDestroyBlockProgress"),
/** 获取玩家的buff是否显示 @type {function(Player,number):boolean} */ /** 获取实体的buff是否显示 @type {function(Player,number):boolean} */
getEntityEffectVisible: ll.import("GMLIB_API", "getEntityEffectVisible"), getEntityEffectVisible: ll.import("GMLIB_API", "getEntityEffectVisible"),
/** 获取玩家的buff持续时间 @type {function(Player,number):number} */ /** 获取实体的buff持续时间 @type {function(Player,number):number} */
getEntityEffectDuration: ll.import("GMLIB_API", "getEntityEffectDuration"), getEntityEffectDuration: ll.import("GMLIB_API", "getEntityEffectDuration"),
/** 获取玩家的buff简单模式下的持续时间 @type {function(Player,number):number} */ /** 获取实体的buff简单模式下的持续时间 @type {function(Player,number):number} */
getEntityEffectDurationEasy: ll.import("GMLIB_API", "getEntityEffectDuration"), getEntityEffectDurationEasy: ll.import("GMLIB_API", "getEntityEffectDuration"),
/** 获取玩家的buff困难模式下的持续时间 @type {function(Player,number):number} */ /** 获取实体的buff困难模式下的持续时间 @type {function(Player,number):number} */
getEntityEffectDurationHard: ll.import("GMLIB_API", "getEntityEffectDurationHard"), getEntityEffectDurationHard: ll.import("GMLIB_API", "getEntityEffectDurationHard"),
/** 获取玩家的buff普通模式下的持续时间 @type {function(Player,number):number} */ /** 获取实体的buff普通模式下的持续时间 @type {function(Player,number):number} */
getEntityEffectDurationNormal: ll.import("GMLIB_API", "getEntityEffectDurationNormal"), getEntityEffectDurationNormal: ll.import("GMLIB_API", "getEntityEffectDurationNormal"),
/** 获取玩家的buff效果等级 @type {function(Player,number):number} */ /** 获取实体的buff效果等级 @type {function(Player,number):number} */
getEntityEffectAmplifier: ll.import("GMLIB_API", "getEntityEffectAmplifier"), getEntityEffectAmplifier: ll.import("GMLIB_API", "getEntityEffectAmplifier"),
/** 获取玩家的buff是否为信标给予 @type {function(Player,number):boolean} */ /** 获取实体的buff是否为信标给予 @type {function(Player,number):boolean} */
getEntityEffectAmbient: ll.import("GMLIB_API", "getEntityEffectAmbient"), getEntityEffectAmbient: ll.import("GMLIB_API", "getEntityEffectAmbient"),
/** 玩家是否拥有buff效果 @type {function(Player,number):boolean} */ /** 实体是否拥有buff效果 @type {function(Player,number):boolean} */
entityHasEffect: ll.import("GMLIB_API", "entityHasEffect"), entityHasEffect: ll.import("GMLIB_API", "entityHasEffect"),
/** 获取实体所有buff效果 @type {function(Entity):Array.<number>} */
getEntityAllEffects: ll.import("GMLIB_API", "getEntityAllEffects"),
/** 获取游戏难度 @type {function():number} */ /** 获取游戏难度 @type {function():number} */
getGameDifficulty: ll.import("GMLIB_API", "getGameDifficulty"), getGameDifficulty: ll.import("GMLIB_API", "getGameDifficulty"),
/** 设置游戏难度 @type {function(difficulty):void} */ /** 设置游戏难度 @type {function(difficulty):void} */
@@ -2585,7 +2587,7 @@ LLSE_Player.prototype.getDestroyProgress =
LLSE_Entity.prototype.hasEffect = LLSE_Entity.prototype.hasEffect =
/** /**
* 玩家是否拥有buff效果 * 实体是否拥有buff效果
* @param {number} effectId buff效果ID * @param {number} effectId buff效果ID
* @returns {boolean} * @returns {boolean}
*/ */
+9
View File
@@ -1,5 +1,6 @@
#include "Global.h" #include "Global.h"
#include <regex> #include <regex>
#include <vector>
bool isInteger(const std::string& str) { bool isInteger(const std::string& str) {
std::regex pattern("^[+-]?\\d+$"); std::regex pattern("^[+-]?\\d+$");
@@ -935,6 +936,14 @@ void Export_Compatibility_API() {
RemoteCall::exportAs("GMLIB_API", "entityHasEffect", [](Actor* entity, int effectId) -> int { RemoteCall::exportAs("GMLIB_API", "entityHasEffect", [](Actor* entity, int effectId) -> int {
return entity->hasEffect(*MobEffect::getById(effectId)); 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 { RemoteCall::exportAs("GMLIB_API", "getGameDifficulty", []() -> int {
if (auto level = ll::service::getLevel()) { if (auto level = ll::service::getLevel()) {
return (int)level->getDifficulty(); return (int)level->getDifficulty();