Files
DP-S_Script/示例项目/心悦播报/心悦播报.nut
2026-04-16 16:27:53 +08:00

45 lines
2.0 KiB
Plaintext

function _Dps_LoginByXY_Main_() {
Cb_reach_game_world_Func.LoginByXy <- function(SUser) {
local Config = GlobalConfig.Get("心悦播报配置_Nangua.json");
local quest = SUser.GetQuest(); // 获取任务对象
local WongWork_CQuestClear = NativePointer(quest).add(4);
local highestRank = 0;
local highestRankConfig = null;
foreach(taskConfig in Config["心悦播报配置"]["任务等级配置"]) {
local isCleared = _LoginBynangua.isClearedQuest(WongWork_CQuestClear.C_Object, taskConfig["任务ID"]);
if (isCleared && taskConfig["心悦等级"] > highestRank) {
highestRank = taskConfig["心悦等级"];
highestRankConfig = taskConfig;
}
}
local config = Config["心悦播报配置"]["心悦会员登录播报"];
if (highestRank > 0 && config["开关(true为开启,false为关闭)"]) {
Timer.SetTimeOut(function(SUser, config, highestRankConfig) {
_LoginBynangua.VIP_LoginBynangua(SUser, config, highestRankConfig);
}, 1, SUser, config, highestRankConfig);
}
}
}
//心悦会员登录播报
class _LoginBynangua {
function VIP_LoginBynangua(SUser, config, rankConfig) {
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(config["信息播报发送位置"]);
if (config["信息播报发送位置"] != 14) {
LoginMsgObj.PutString(" ");
}
LoginMsgObj.PutImoticon(rankConfig["图标"]);
LoginMsgObj.PutColorString(config["标题"], rankConfig["文本颜色"]);
LoginMsgObj.PutColorString("<" + rankConfig["心悦等级"] + ">", rankConfig["心悦等级颜色"]);
LoginMsgObj.PutColorString("[" + SUser.GetCharacName() + "]", rankConfig["角色名字颜色"]);
LoginMsgObj.PutColorString(config["结尾信息内容"], rankConfig["文本颜色"]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
}
function isClearedQuest(C_Object, questID) {
return Sq_CallFunc(S_Ptr("0x808BAE0"), "bool", ["pointer", "int"], C_Object, questID);
}
}