Files
DP-S_Script/示例项目/交易邮件播报/交易邮件播报.nut
2026-04-16 16:27:53 +08:00

126 lines
6.0 KiB
Plaintext

function _Dps_JYYJBB_Main_() {
Cb_History_ItemUp_Func["交易邮件播报"] <- function(SUser, args) {
local reason = args[18];
if (reason == "1") {
local pvfitem = PvfItem.GetNameById(args[15].tointeger());
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(14);
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
LoginMsgObj.PutColorString(SUser.GetCharacName(), [255, 0, 0]);
LoginMsgObj.PutColorString("]", [255, 255, 0]);
LoginMsgObj.PutColorString("获得", [255, 255, 0]);
LoginMsgObj.PutColorString("[" + args[20] + "]", [255, 255, 0]);
LoginMsgObj.PutColorString("交易的道具", [255, 255, 0]);
LoginMsgObj.PutColorString(pvfitem, [255, 255, 0]);
LoginMsgObj.PutColorString(args[17] + "个", [255, 255, 0]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
}
}
Cb_History_MoneyUp_Func["交易邮件播报"] <- function(SUser, args) {
local reason = args[16];
if (reason == "1") {
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(14);
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
LoginMsgObj.PutColorString(SUser.GetCharacName(), [255, 0, 0]);
LoginMsgObj.PutColorString("]", [255, 255, 0]);
LoginMsgObj.PutColorString("获得", [255, 255, 0]);
LoginMsgObj.PutColorString("[" + getFirstBracketContent(args[17]) + "]", [255, 255, 0]);
LoginMsgObj.PutColorString("交易的", [255, 255, 0]);
LoginMsgObj.PutColorString(args[15], [255, 255, 0]);
LoginMsgObj.PutColorString("金币", [255, 255, 0]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
}
}
Cb_MailBox11_Send_Leave_Func["交易邮件播报"] <- function(args) {
local jewelSocketID = NativePointer(args[0]).readPointer();
local SUser = User(jewelSocketID);
local name = SUser.GetCharacName();
local receive_name = NativePointer(args[1]).add(17).readUtf8String();
local send_gold_count = NativePointer(args[1]).add(46).readU32();
local send_item_id = NativePointer(args[1]).add(57).readU32();
local send_item_count = NativePointer(args[1]).add(61).readU32(); //发送道具数量
local item_name;
if (send_item_id > 0) {
item_name = PvfItem.GetNameById(send_item_id);
}
// 发送世界公告播报
if (send_gold_count > 0 && send_item_id > 0) {
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(14);
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
LoginMsgObj.PutColorString("]", [255, 255, 0]);
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
LoginMsgObj.PutColorString("发送了", [255, 255, 0]);
LoginMsgObj.PutColorString("金币*" + send_gold_count, [255, 170, 0]);
LoginMsgObj.PutColorString("和", [255, 255, 0]);
LoginMsgObj.PutColorString(send_item_count + "个", [255, 255, 0]);
LoginMsgObj.PutColorString(item_name, [255, 255, 0]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
} else if (send_gold_count > 0) {
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(14);
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
LoginMsgObj.PutColorString("]", [255, 255, 0]);
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
LoginMsgObj.PutColorString("发送了", [255, 255, 0]);
LoginMsgObj.PutColorString("金币*" + send_gold_count, [255, 170, 0]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
} else if (send_item_id > 0) {
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(14);
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
LoginMsgObj.PutColorString("]", [255, 255, 0]);
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
LoginMsgObj.PutColorString("发送了", [255, 255, 0]);
LoginMsgObj.PutColorString(send_item_count + "个", [255, 255, 0]);
LoginMsgObj.PutColorString(item_name, [255, 255, 0]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
} else {
local LoginMsgObj = AdMsg();
LoginMsgObj.PutType(14);
LoginMsgObj.PutColorString("玩家[", [255, 255, 0]);
LoginMsgObj.PutColorString(SUser.GetCharacName(), [0, 255, 0]);
LoginMsgObj.PutColorString("]", [255, 255, 0]);
LoginMsgObj.PutColorString("刚刚通过邮件向", [255, 255, 0]);
LoginMsgObj.PutColorString("[" + receive_name + "]", [0, 255, 0]);
LoginMsgObj.PutColorString("发送了一封邮件", [255, 255, 0]);
LoginMsgObj.Finalize();
World.SendAll(LoginMsgObj.MakePack());
LoginMsgObj.Delete();
}
}
}
function getFirstBracketContent(str) {
local startPos = str.find("(");
if (startPos == null) return null;
local endPos = str.find(")", startPos + 1);
if (endPos == null) return null;
// 提取括号内的内容(不包括括号本身)
return str.slice(startPos + 1, endPos);
}