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); } }