notification功能开发

This commit is contained in:
hahwu 2026-02-26 10:25:15 +08:00
parent 41ee2e48d4
commit 2c8af266b7

View File

@ -13,9 +13,13 @@ const (
NOTIFY_TYPE_PETROOM_GAME = 2
)
/*
对方来petroom游戏的通知
每天最多通知3次
*/
func NotifyPetroomGame(PlayerId int) {
PlayerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(PlayerId)
if PlayerSimpleData == nil {
if !checkLogout(PlayerSimpleData) {
return
}
count, last := GetPetroomGameNotification(PlayerId)
@ -33,9 +37,13 @@ func NotifyPetroomGame(PlayerId int) {
SetPetroomGameNotification(PlayerId, count+1)
}
/*
好友申请通知
好友申请累计两次
*/
func NotifyFriendApply(PlayerId, FriendId int) {
PlayerSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(PlayerId)
if PlayerSimpleData == nil {
if !checkLogout(PlayerSimpleData) {
return
}
FriendSimpleData := G_GameLogicPtr.GetSimplePlayerByUid(FriendId)
@ -52,3 +60,25 @@ func NotifyFriendApply(PlayerId, FriendId int) {
GoUtil.NotifyPlayer(GoUtil.Int(PlayerSimpleData.Account), NOTIFY_TYPE_FRIEND_APPLY, title, fmt.Sprintf(info, FriendSimpleData.Name))
SetFriendApplyNotification(PlayerId, count+1)
}
/*
玩家需处于离线状态
玩家离线时间少于10分钟时不发送消息
若用户已连续7天未登入游戏不再发送通知
*/
func checkLogout(PlayerSimpleData *PlayerSimpleData) bool {
if PlayerSimpleData == nil {
return false
}
if PlayerSimpleData.Loginout == 0 {
return false
}
now := GoUtil.Now()
if now-PlayerSimpleData.Loginout > 7*24*3600 {
return false
}
if now-PlayerSimpleData.Loginout < 600 {
return false
}
return true
}