160 lines
4.2 KiB
Lua
160 lines
4.2 KiB
Lua
------------------------------------------------
|
||
-- 作者: 陈锡涵
|
||
-- 日期: 2020-7-29
|
||
-- 文件: PresentSystem.lua
|
||
-- 模块: PresentSystem
|
||
-- 描述: 礼物赠送系统
|
||
------------------------------------------------
|
||
local PresentSystem = {
|
||
SendData = nil,
|
||
RecData = nil
|
||
}
|
||
|
||
function PresentSystem:Initialize()
|
||
|
||
end
|
||
|
||
function PresentSystem:UnInitialize()
|
||
self.SendData = nil;
|
||
self.RecData = nil;
|
||
end
|
||
|
||
-- 是否有可赠送的道具
|
||
function PresentSystem:IsHavePresent()
|
||
local _isHave = false;
|
||
local _func = function(k, v)
|
||
if GameCenter.ItemContianerSystem:GetItemCountFromCfgId(v.Id) > 0 then
|
||
_isHave = true;
|
||
return true;
|
||
end
|
||
end
|
||
DataConfig.DataItemGift:ForeachCanBreak(_func)
|
||
return _isHave;
|
||
end
|
||
|
||
function PresentSystem:IsRedpoint()
|
||
return self:GetNotReadPresentCount() > 0;
|
||
end
|
||
|
||
function PresentSystem:GetNotReadPresentCount()
|
||
local _count = 0;
|
||
if self.RecData then
|
||
for i = 1, #self.RecData do
|
||
if self.RecData[i].readStatus == 0 then
|
||
_count = _count + 1;
|
||
end
|
||
end
|
||
end
|
||
return _count;
|
||
end
|
||
|
||
-- 赠送好友礼物是否成功返回
|
||
function PresentSystem:ReqReadGiftLog(ids)
|
||
local _req = ReqMsg.MSG_Player.ReqReadGiftLog:New();
|
||
_req.ids = ids;
|
||
_req:Send();
|
||
end
|
||
|
||
-- 赠送好友礼物是否成功返回
|
||
function PresentSystem:ResSendGift(msg)
|
||
if msg.result == 0 then
|
||
if not self.SendData then
|
||
self.SendData = {}
|
||
end
|
||
if msg.log and #msg.log > 0 then
|
||
for i = 1, #msg.log do
|
||
table.insert(self.SendData, msg.log[i])
|
||
end
|
||
end
|
||
end
|
||
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_SENDGIFT_RESULT, msg)
|
||
end
|
||
|
||
-- required int32 type = 1; //0发送,1接收
|
||
-- repeated GiftLog recordList = 2; //日志列表
|
||
-- 接收及赠送日志返回
|
||
function PresentSystem:ResGetGiftLog(msg)
|
||
local _list = msg.recordList or {}
|
||
local _cnt = #_list
|
||
|
||
if msg.type == 0 then
|
||
self.SendData = msg.recordList;
|
||
elseif msg.type == 1 then
|
||
self.RecData = msg.recordList;
|
||
end
|
||
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_SENDGIFT_LOG_UPDATE)
|
||
end
|
||
|
||
-- 新的接收礼物日志
|
||
function PresentSystem:ResNewGiftLog(msg)
|
||
if not self.RecData then
|
||
self.RecData = {}
|
||
end
|
||
if msg.log and #msg.log > 0 then
|
||
for i = 1, #msg.log do
|
||
table.insert(self.RecData, msg.log[i])
|
||
end
|
||
end
|
||
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_SENDGIFT_LOG_UPDATE)
|
||
end
|
||
|
||
-- 读取返回
|
||
function PresentSystem:ResReadGiftLog(msg)
|
||
if self.RecData and msg.ids and #msg.ids > 0 then
|
||
for i = 1, #msg.ids do
|
||
for j = 1, #self.RecData do
|
||
if msg.ids[i] == self.RecData[j].id then
|
||
self.RecData[j].readStatus = 1;
|
||
end
|
||
end
|
||
end
|
||
end
|
||
GameCenter.PushFixEvent(LogicLuaEventDefine.EID_EVENT_SENDGIFT_LOG_UPDATE)
|
||
end
|
||
|
||
return PresentSystem
|
||
|
||
-- message Gift {
|
||
-- required int32 giftId = 1;//item.gift表中的id
|
||
-- required int32 giftNumber = 2;
|
||
-- }
|
||
|
||
-- message ReqSendGift {
|
||
-- enum MsgID { eMsgID = 105241; };
|
||
-- required int32 type = 1;
|
||
-- required int64 roleId = 2;//要赠送的玩家id
|
||
-- required bool force = 3;//true表示强制赠送,false表示不强制赠送
|
||
-- repeated Gift gifts = 4;
|
||
-- }
|
||
|
||
-- message ResSendGift {
|
||
-- enum MsgID { eMsgID = 105141; };
|
||
-- required int32 result = 1;//0表示赠送成功,1表示我不是对方好友
|
||
-- }
|
||
|
||
-- message GiftLog {
|
||
-- required int64 id = 1; //id
|
||
-- required int32 type = 2; //0发送,1接收
|
||
-- required string sender = 3; //发送者
|
||
-- required string receiver = 4; //接收者
|
||
-- required int32 itemId = 5; //物品id
|
||
-- required int32 num = 6; //数量
|
||
-- required int32 time = 7; //发送时间
|
||
-- required int32 readStatus = 8; //读取状态
|
||
-- }
|
||
|
||
-- message ReqGetGiftLog {
|
||
-- enum MsgID { eMsgID = 105242; };
|
||
-- required int32 type = 1; //0发送,1接收
|
||
-- }
|
||
|
||
-- message ReqReadGiftLog {
|
||
-- enum MsgID { eMsgID = 105245; };
|
||
-- repeated int64 ids = 1; //读取接收礼物的id列表
|
||
-- }
|
||
|
||
-- message ResNewGiftLog {
|
||
-- enum MsgID { eMsgID = 105146; };
|
||
-- required GiftLog log = 1; //新增赠送日志
|
||
-- }
|