pet_home_server/src/server/game/mod/msg/Msg.go
2026-02-25 17:10:09 +08:00

203 lines
6.3 KiB
Go

package msg
import "server/game/mod/item"
type Msg struct {
Type int // 消息类型
To int // 接收者
From int // 发送者
Item []*item.Item // 物品
SendT int64 // 发送时间
End int64 // 过期时间
Extra interface{} //额外信息
Id int64
UniKey string // 回调监听唯一键值
H int //处理类型
HandleType int //处理类型
}
type VarData struct {
Key string
Value interface{}
SetType int // 操作类型 0 设置 1 增加 2 减少 3 覆盖
}
const (
VAR_OP_ADD = 1
VAR_OP_SUB = 2
VAR_OP_SET = 3
)
var MSG_ZERO_UPDATE = &Msg{Type: SERVER_ZERO_UPDATE}
var MSG_NOON_UPDATE = &Msg{Type: SERVER_NOON_UPDATE}
const (
MSG_TYPE_ONLINE = 0 // 在线消息
MSG_TYPE_OFFLINE = 1 // 离线消息
)
const (
HANDLE_MOD_PLAYER_MSG = 20001 // 玩家消息
HANDLE_MOD_CLUSTER_MSG = 20002 // 集群消息
HANDLE_MOD_PLAYER_LOGIN = 20003 // 玩家登录消息
HANDLE_MOD_COMSUME_MSG = 20004 // 消费消息
HANDLE_MOD_CLUSTER_SYNC = 20005 // 集群同步消息
HANDLE_MDO_PLAYER_LOGOUT = 20006 // 玩家登出消息
HANDLE_MOD_VAR_GET = 20007 // 获取变量
HANDLE_MOD_VAR_SET = 20008 // 设置变量
HANDLE_MOD_CATNIP_PARTNER = 20009 // 猫薄荷伙伴
HANDLE_MOD_USER_VAR_GET = 20010 // 获取玩家变量
HANDLE_MOD_USER_VAR_SET = 20011 // 设置玩家变量
HANDLE_MOD_REPLY_PLAYER_MSG = 20012 // 回复玩家消息
HANDLE_MDO_CHAMPSHIP_INRANK = 20013 // 锦标赛入榜
HANDLE_MOD_CHAMPSHIP_RANK_INFO = 20014 // 锦标赛排名信息
HANDLE_MOD_CHAMPSHIP_RANK_LIST = 20015 // 锦标赛排行榜
HANDLE_MOD_CHAMPSHIP_PRE_RANK = 20016 // 锦标赛上期排名
HANDLE_MOD_CHAMPSHIP_GROUP = 20017 // 锦标赛分组
HANDLE_MOD_DAILY_VAR_GET = 20018 // 获取变量
HANDLE_MOD_DAILY_VAR_SET = 20019 // 设置变量
)
const (
//好友操作
HANDLE_TYPE_APPLY = iota //申请好友
HANDLE_TYPE_DEL //删除好友
HANDLE_TYPE_SYNC //同步请求
HADNLE_TYPE_AGREE //同意好友
HANDLE_TYPE_REFUSE //拒绝申请
//卡牌操作
HANDLE_TYPE_REQ_CARD //请求卡牌
HANDLE_TYPE_AGREE_CARD //同意卡牌
HANDLE_TYPE_REG_CARD_REFUSE //拒绝请求卡牌
HANDLE_TYPE_REG_CARD_FINISH //请求卡牌已结束
HANDLE_TYPE_AGREE_CARD_FAIL //同意卡牌失败
HANDLE_TYPE_EX_CARD //置换卡牌
HANDLE_TYPE_SELECT_EX_CARD //选择置换卡牌
HANDLE_TYPE_ARGREE_EX_CARD //同意置换卡牌
HANDLE_TYPE_REFUSE_SELECT_CARD //B拒绝选择置换卡牌
HANDLE_TYPE_REFUSE_EX_CARD //A拒绝置换卡牌
HANDLE_TYPE_EX_CARD_SELECT_TIMEOUT //置换卡牌选择超时
HANDLE_TYPE_EX_CARD_TIMEOUT //置换卡牌超时
HANDLE_TYPE_SEND_CARD //赠送卡牌
HANDLE_TYPE_INVITE_FRIEND //邀请好友
HANDLE_TYPE_INVITE_ADD_FRIEND //自动添加好友
// 榜单操作
HANDLE_TYPE_RANK //榜单操作
HANDLE_TYPE_RANK_INFO //榜单信息
HANDLE_TYPE_RANK_NOTIFY //榜单信息
// 邮件操作
HANDLE_TYPE_MAIL //邮件操作
// 锦标赛
HANDLE_TYPE_CHAMPSHIP_GROUP //锦标赛分组操作
HANDLE_TYPE_CHAMPSHIP_INRANK //锦标赛入榜操作
HANDLE_TYPE_CHAMPSHIP_AI //锦标赛入榜操作
HANDLE_TYPE_CHAMPSHIP_NOTIFY //锦标赛排名变动通知
HANDLE_TYPE_CHAMPSHIP_ZERO //锦标赛0点更新
HANDLE_TYPE_CHAMPSHIP_NOTIFY2 //锦标赛0.30点通知
// 服务器变量
HANDLE_TYPE_VAR_GET //获取变量
HANDLE_TYPE_VAR_SET //设置变量
//server mod handle
SERVER_ZERO_UPDATE //zero update
HANDLE_TYPE_PLAYROOM_LOSE // playroom偷取物品
SERVER_NOON_UPDATE // 12点更新
FRIEND_TREASURE_HANDLE //好友宝藏操作
HANDLE_TYPE_MAIL_ADD //添加邮件
HANDLE_TYPE_MAIL_RELOAD //重新加载邮件
HANDLE_TYPE_HANDBOOK_COLLECTION //图鉴收集
HANDLE_TYPE_HANDBOOK_UPVOTE //图鉴收集时间线点赞
HANDLE_TYPE_SEND_CHARGE //赠送充值礼包
HANDLE_TYPE_CHARGE_RECEIVE //充值礼包领取
HANDLE_TYPE_WISHLIST_SEND // 发送愿望单请求
HANDLE_TYPE_WISHLIST_AGREE // 收到愿望单请求同意
HANDLE_TYPE_PLAYROOM_UPVOTE // 收到playroom点赞
HANDLE_TYPE_CHAMPSHIP_RESULT //锦标赛结果
HANDLE_TYPE_TREASURE_RESULT //宝藏结果
HANDLE_TYPE_FACEBOOK_UNBIND //facebook解绑
HANDLE_TYPE_VAR_USER_SET // 设置玩家数据
HANDLE_TYPE_VAR_USER_GET // 获取玩家数据
HANDLE_TYPE_PLAYROOM_KISS // playroom亲吻
HANDLE_TYPE_PLAYROOM_GAME // playroom游戏
HANDLE_TYPE_CATNIP_INVITE // 猫薄荷邀请
HANDLE_TYPE_CATNIP_AGREE // 猫薄荷同意邀请
HANDLE_TYPE_CATNIP_AGREE_DEL // 猫薄荷已同意邀请
HANDLE_TYPE_CATNIP_REFUSE // 猫薄荷拒绝邀请
HANDLE_TYPE_CATNIP_GROWTH // 猫薄荷成长
HANDLE_TYPE_CATNIP_LOCK // 猫薄荷游戏锁定
HANDLE_TYPE_VAR_EXPIRE_SET // 设置全服过期数据
HANDLE_TYPE_VAR_EXPIRE_GET // 获取全服过期数据
HANDLE_TYPE_FRIEND_GREETING_REPLY // 好友问候回复
HANDLE_TYPE_FRIEND_SPONSOER // 好友赞助体力
HANDLE_TYPE_CHAMPSHIP_LOGIN // 锦标赛登录
HANDLE_TYPE_CHAMPSHIP_RANK_INFO // 锦标赛排名信息
HANDLE_TYPE_SET_CATNIP_PARTNER // 设置猫薄荷伙伴
HANDLE_TYPE_CATNIP_SEND_EMOJI // 发送猫薄荷表情
HANDLE_TYPE_CHAMPSHIP_MY_RANK // 锦标赛我的排名
HANDLE_TYPE_LOGIN // 玩家登录处理
SERVER_PLAYER_SYNC_LOGOUT_MSG // 玩家处理完离线消息
)
const (
// 集群
CLUSTER_HANDSHAKE_1 = 10001 //握手1
CLUSTER_HANDSHAKE_2 = 10002 //握手2
CLUSTER_JOIN = 10003 //加入
CLUSTER_EXIT = 10004 //退出
CLUSTER_FRIEND_SYNC = 10005 //集群好友消息同步
)
func (m *Msg) Clone() *Msg {
return &Msg{
Type: m.Type,
To: m.To,
From: m.From,
Item: m.Item,
SendT: m.SendT,
End: m.End,
Extra: m.Extra,
Id: m.Id,
H: m.H,
UniKey: m.UniKey,
}
}
func (m *Msg) Reply(data interface{}) *Msg {
return &Msg{
Type: m.Type,
To: m.From,
Item: m.Item,
SendT: m.SendT,
End: m.End,
Extra: data,
Id: m.Id,
H: m.H,
UniKey: m.UniKey,
HandleType: HANDLE_MOD_REPLY_PLAYER_MSG,
}
}
func Handle(fun func(Msg) error, m Msg) error {
return fun(m)
}