45 lines
2.0 KiB
Plaintext
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);
|
|
}
|
|
} |