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) }