diff --git a/src/server/game/game_type.go b/src/server/game/game_type.go index 23171816..df0a844c 100644 --- a/src/server/game/game_type.go +++ b/src/server/game/game_type.go @@ -2,7 +2,9 @@ package game import ( "encoding/gob" + "server/game/mod/card" "server/game/mod/friend" + "server/game/mod/item" limitedTimeEvent "server/game/mod/limited_time_event" "server/game/mod/msg" proto "server/msg" @@ -125,4 +127,8 @@ func init() { gob.Register(CRank{}) gob.Register(&proto.ResChampshipRank{}) gob.Register(&proto.ResChampshipPreRank{}) + gob.Register(card.CardInfo{}) + gob.Register(item.Item{}) + gob.Register([]*item.Item{}) // 注册 []*item.Item 类型 + gob.Register(friend.ReplyInfo{}) } diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 115a0cde..8f6f457c 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -513,6 +513,7 @@ func ReqGmCommand_(player *Player, Command string) error { BaseMod.Uid = player.M_DwUin BaseMod.NickName = player.PlayMod.getBaseMod().NickName BaseMod.LoginTime = GoUtil.Now() + BaseMod.AddCode = fmt.Sprintf("MMM-%s-%s", "156", GoUtil.UniqueStringFromInt(int(BaseMod.Uid))) // deep copy p1.PlayMod.mod_list to avoid sharing internal pointers var modCopy PlayerModList var buf bytes.Buffer diff --git a/src/server/game/message_mgr.go b/src/server/game/message_mgr.go index 845096cf..f2da29e9 100644 --- a/src/server/game/message_mgr.go +++ b/src/server/game/message_mgr.go @@ -622,9 +622,9 @@ func GetUserData(PlayerId int64, Key string) (*msg.Msg, error) { }) } -func GetServerData(Key string) (*msg.Msg, error) { - return SendMsgToCenterSync(&msg.Msg{ - HandleType: msg.HANDLE_MOD_VAR_GET, - Extra: msg.VarData{Key: Key}, - }) -} +// func GetServerData(Key string) (*msg.Msg, error) { +// return SendMsgToCenterSync(&msg.Msg{ +// HandleType: msg.HANDLE_MOD_VAR_GET, +// Extra: msg.VarData{Key: Key}, +// }) +// } diff --git a/src/server/game/mod/friend/Friend.go b/src/server/game/mod/friend/Friend.go index fe69b2a6..2bb2c8f5 100644 --- a/src/server/game/mod/friend/Friend.go +++ b/src/server/game/mod/friend/Friend.go @@ -219,6 +219,11 @@ func (f *FriendMod) SetNpc(id int) error { if !friendCfg.IsNpcFriend(id) { return fmt.Errorf("not npc friend") } + for _, v := range f.Npc { + if v == id { + return fmt.Errorf("npc already exist") + } + } f.Npc = append(f.Npc, id) return nil } diff --git a/src/server/game/var.go b/src/server/game/var.go index 61046939..72b51563 100644 --- a/src/server/game/var.go +++ b/src/server/game/var.go @@ -22,7 +22,7 @@ func (p *Player) GetVarData(key string) interface{} { cache := &VarExpireData{} err := LoadCacheVarData(key, cache) if err != nil { - log.Error("GetVarData err : %s", err) + log.Error("GetVarData err : %s, key: %s", err, key) return nil } return cache.D @@ -30,9 +30,9 @@ func (p *Player) GetVarData(key string) interface{} { func (p *Player) GetUserVarData(key string) interface{} { cache := map[string]*VarExpireData{} - err := LoadCacheVarData(GoUtil.GetVarKey(int(p.M_DwUin)), cache) + err := LoadCacheVarData(GoUtil.GetVarKey(int(p.M_DwUin)), &cache) if err != nil { - log.Error("GetVarData err : %s", err) + log.Error("GetUserVarData err : %s, key: %s", err, key) return nil } data, ok := cache[key] @@ -42,14 +42,14 @@ func (p *Player) GetUserVarData(key string) interface{} { return data.D } -func GetServerVarData(key string) interface{} { - data, err := GetServerData(key) - if err != nil { - log.Error("GetServerVarData err : %s", err) - return nil - } - return data.Extra -} +// func GetServerVarData(key string) interface{} { +// data, err := GetServerData(key) +// if err != nil { +// log.Error("GetServerVarData err : %s", err) +// return nil +// } +// return data.Extra +// } func (p *Player) OpVarDataAsync(key string, value interface{}, opType int) { SendMsgToCenterAsync(&msg.Msg{