From 30f32e1da01a969faa1f6cf485eef7743324e754 Mon Sep 17 00:00:00 2001 From: hahwu <31872165+hahwu@users.noreply.github.com> Date: Fri, 6 Feb 2026 17:39:27 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=9E=B6=E6=9E=84=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=91=E6=8F=90=E5=8D=87=E4=BB=A3=E7=A0=81=E8=B4=A8=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/server/conf/decorate/decorate_cfg.go | 59 ++++++++++++------- src/server/conf/emoji/emoji_cfg.go | 4 ++ src/server/conf/endless/endless_cfg.go | 10 +++- src/server/conf/face/face_cfg.go | 20 +++++-- src/server/conf/friend/friend_cfg.go | 6 +- .../conf/guess_color/guess_color_cfg.go | 10 +++- src/server/conf/guide/guide_cfg.go | 2 +- src/server/conf/guide_task/guide_task_cfg.go | 20 +++++-- .../conf/guide_task/guide_task_cfg_test.go | 51 ---------------- src/server/conf/handbook/handbook_cfg.go | 2 +- src/server/conf/invite/invite_cfg.go | 3 +- src/server/conf/item/Item_cfg.go | 21 ++++--- .../limited_time_event_cfg.go | 52 ++++++++-------- src/server/game/mod/activity/activity.go | 31 +++++----- src/server/game/mod/avatar/Avatar.go | 11 +++- src/server/game/mod/base/Base.go | 20 +++---- 16 files changed, 168 insertions(+), 154 deletions(-) delete mode 100644 src/server/conf/guide_task/guide_task_cfg_test.go diff --git a/src/server/conf/decorate/decorate_cfg.go b/src/server/conf/decorate/decorate_cfg.go index 11766583..557189f0 100644 --- a/src/server/conf/decorate/decorate_cfg.go +++ b/src/server/conf/decorate/decorate_cfg.go @@ -25,7 +25,7 @@ func init() { func GetStarCost(AreaId, SortId int) int { data, err := gamedata.GetData(DECORATE_COST) if err != nil { - log.Debug("DecorateCost GetStarCost not found") + log.Debug("GetStarCost err:%v, AreaId=%d, SortId=%d", err, AreaId, SortId) return 0 } for _, v := range data { @@ -39,7 +39,7 @@ func GetStarCost(AreaId, SortId int) int { func GetAreaId(id int) int { value, err := gamedata.GetDataByIntKey("DecorateCost", id) if err != nil { - log.Debug("DecorateCost GetAreaId id:%v not found", id) + log.Debug("GetAreaId err:%v, id=%d", err, id) return 0 } return gamedata.GetIntValue(value, "AreaId") @@ -48,12 +48,16 @@ func GetAreaId(id int) int { func GetNextAreaId(AreaId, SortId int) int { data, err := gamedata.GetData(DECORATE_COST) if err != nil { - log.Debug("DecorateCost GetStarCost not found") + log.Debug("GetNextAreaId err:%v, AreaId=%d, SortId=%d", err, AreaId, SortId) return 0 } for k, v := range data { if gamedata.GetIntValue(v, "AreaId") == AreaId && gamedata.GetIntValue(v, "SortId") == SortId { - UnionKey, _ := strconv.Atoi(k) + UnionKey, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetNextAreaId parse key err:%v, key=%s", err, k) + return 0 + } nextId := UnionKey + 1 AreaId = GetAreaId(nextId) return AreaId @@ -65,10 +69,10 @@ func GetNextAreaId(AreaId, SortId int) int { func GetAllSortIdByAreaId(AreaId int) []int { data, err := gamedata.GetData(DECORATE_COST) if err != nil { - log.Debug("DecorateCost GetAllSortIdByAreaId not found") + log.Debug("GetAllSortIdByAreaId err:%v, AreaId=%d", err, AreaId) return nil } - var SortIdList []int + SortIdList := make([]int, 0, len(data)/5) for _, v := range data { if gamedata.GetIntValue(v, "AreaId") == AreaId { Sort := gamedata.GetIntValue(v, "SortId") @@ -84,7 +88,7 @@ func GetAllSortIdByAreaId(AreaId int) []int { func GetProgressReward(Scene, Lv int) []*item.Item { value, err := gamedata.GetData(INDOOR_PROGRESS) if err != nil { - log.Debug("IndoorProgress GetProgressReward not found") + log.Debug("GetProgressReward err:%v, Scene=%d, Lv=%d", err, Scene, Lv) return nil } for _, v := range value { @@ -98,7 +102,7 @@ func GetProgressReward(Scene, Lv int) []*item.Item { func GetDecoarteReward(Scene int, Lv int) []*item.Item { value, err := gamedata.GetData(INDOOR_PROGRESS) if err != nil { - log.Debug("IndoorProgress GetDecoarteReward not found") + log.Debug("GetDecoarteReward err:%v, Scene=%d, Lv=%d", err, Scene, Lv) return nil } for _, v := range value { @@ -112,7 +116,7 @@ func GetDecoarteReward(Scene int, Lv int) []*item.Item { func GetAreaReward(AreaId int) []*item.Item { value, err := gamedata.GetDataByIntKey(DECORATE_AREA, AreaId) if err != nil { - log.Debug("IndoorProgress GetDecoarteReward not found") + log.Debug("GetAreaReward err:%v, AreaId=%d", err, AreaId) return nil } return gamedata.GetItemList(value, "Items") @@ -132,7 +136,7 @@ func GetOneKeyDecorateUnlockLv() int { func GetDecorateAddEnergy() int { data, err := gamedata.GetDataByKey(DECORATE_CONST, "AddEnergy") if err != nil { - log.Debug("GetDecorateAddEnergy not found") + log.Debug("GetDecorateAddEnergy err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -141,7 +145,7 @@ func GetDecorateAddEnergy() int { func GetAreaPerPExp(AreaId int) int { data, err := gamedata.GetDataByIntKey(DECORATE_AREA, AreaId) if err != nil { - log.Debug("DecorateArea GetAreaPerPExp not found AreaId:%v", AreaId) + log.Debug("GetAreaPerPExp err:%v, AreaId=%d", err, AreaId) return 0 } return gamedata.GetIntValue(data, "PerPExp") @@ -150,7 +154,7 @@ func GetAreaPerPExp(AreaId int) int { func GetDecoratePExp(AreaId, SortId int) int { data, err := gamedata.GetData(DECORATE_COST) if err != nil { - log.Debug("DecorateArea GetDecoratePExp not found") + log.Debug("GetDecoratePExp err:%v, AreaId=%d, SortId=%d", err, AreaId, SortId) return 0 } for _, v := range data { @@ -164,14 +168,18 @@ func GetDecoratePExp(AreaId, SortId int) int { func GetAllPartId() []int { data, err := gamedata.GetDataByKey(DECORATE_CONST, "AllPartId") if err != nil { - log.Debug("DecorateCost GetAllPartId not found") - return []int{1505, 1515, 1525, 1535} + log.Debug("GetAllPartId err:%v", err) + return nil } - var PartIdList []int str := gamedata.GetStringValue(data, "Value") r1 := strings.Split(str, "|") + PartIdList := make([]int, 0, len(r1)) for _, v := range r1 { - id, _ := strconv.Atoi(v) + id, err := strconv.Atoi(v) + if err != nil { + log.Debug("GetAllPartId parse id err:%v, v=%s", err, v) + continue + } PartIdList = append(PartIdList, id) } return PartIdList @@ -180,12 +188,16 @@ func GetAllPartId() []int { func GetIdBySenceAndLv(Sence, Lv int) int { data, err := gamedata.GetData(INDOOR_PROGRESS) if err != nil { - log.Debug("DecorateArea GetIdBySenceAndLv not found") + log.Debug("GetIdBySenceAndLv err:%v, Sence=%d, Lv=%d", err, Sence, Lv) return 0 } for k, v := range data { if gamedata.GetIntValue(v, "Scene") == Sence && gamedata.GetIntValue(v, "Lv") == Lv { - id, _ := strconv.Atoi(k) + id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetIdBySenceAndLv parse id err:%v, key=%s", err, k) + return 0 + } return id } } @@ -195,16 +207,20 @@ func GetIdBySenceAndLv(Sence, Lv int) int { func GetPartNumByAreaId(AreaId int) map[int]int { data, err := gamedata.GetData(INDOOR_PROGRESS) if err != nil { - log.Debug("DecorateArea GetPartNumByAreaId not found AreaId:%v", AreaId) + log.Debug("GetPartNumByAreaId err:%v, AreaId=%d", err, AreaId) return nil } - res := make(map[int]int) + res := make(map[int]int, len(data)) for k, v := range data { Sence := gamedata.GetIntValue(v, "Scene") if Sence != AreaId { continue } - id, _ := strconv.Atoi(k) + id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetPartNumByAreaId parse id err:%v, key=%s", err, k) + continue + } PartNum := gamedata.GetIntValue(v, "Part") if PartNum == 0 { continue @@ -217,6 +233,7 @@ func GetPartNumByAreaId(AreaId int) map[int]int { func GetAreaIdByIndoorId(IndoorId int) int { data, err := gamedata.GetDataByIntKey(INDOOR_PROGRESS, IndoorId) if err != nil { + log.Debug("GetAreaIdByIndoorId err:%v, IndoorId=%d", err, IndoorId) return 0 } return gamedata.GetIntValue(data, "Scene") diff --git a/src/server/conf/emoji/emoji_cfg.go b/src/server/conf/emoji/emoji_cfg.go index d1a72f6b..9cf06c73 100644 --- a/src/server/conf/emoji/emoji_cfg.go +++ b/src/server/conf/emoji/emoji_cfg.go @@ -3,6 +3,7 @@ package emojiCfg import ( GoUtil "server/game_util" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" ) const ( @@ -16,6 +17,7 @@ func init() { func GetInitList() []int { data, err := gamedata.GetData(CFG_EMOJI) if err != nil { + log.Debug("GetInitList err:%v", err) return nil } ret := make([]int, 0, len(data)) @@ -31,6 +33,7 @@ func GetInitList() []int { func GetAllList() []int { data, err := gamedata.GetData(CFG_EMOJI) if err != nil { + log.Debug("GetAllList err:%v", err) return nil } ret := make([]int, 0, len(data)) @@ -43,6 +46,7 @@ func GetAllList() []int { func GetEmojiName(Id int) string { data, err := gamedata.GetDataByIntKey(CFG_EMOJI, Id) if err != nil { + log.Debug("GetEmojiName err:%v, Id=%d", err, Id) return "" } return gamedata.GetStringValue(data, "Name") diff --git a/src/server/conf/endless/endless_cfg.go b/src/server/conf/endless/endless_cfg.go index ae73d4de..de77c022 100644 --- a/src/server/conf/endless/endless_cfg.go +++ b/src/server/conf/endless/endless_cfg.go @@ -3,6 +3,7 @@ package endlessCfg import ( "server/game/mod/item" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" ) const ( @@ -18,6 +19,7 @@ func init() { func GetEnergy(Money float64) float64 { data, err := gamedata.GetData(CFG_ENDLESS) if err != nil { + log.Debug("GetEnergy err:%v, Money=%.2f", err, Money) return 0 } for _, v := range data { @@ -31,6 +33,7 @@ func GetEnergy(Money float64) float64 { func NextMoney(Money float64) float64 { data, err := gamedata.GetData(CFG_ENDLESS) if err != nil { + log.Debug("NextMoney err:%v, Money=%.2f", err, Money) return 0 } for _, v := range data { @@ -44,6 +47,7 @@ func NextMoney(Money float64) float64 { func GetChargeId(Money float64) int { data, err := gamedata.GetData(CFG_ENDLESS) if err != nil { + log.Debug("GetChargeId err:%v, Money=%.2f", err, Money) return 0 } for _, v := range data { @@ -57,6 +61,7 @@ func GetChargeId(Money float64) int { func GetPerEnergy(Id int) float64 { data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT) if err != nil { + log.Debug("GetPerEnergy err:%v, Id=%d", err, Id) return 0 } for _, v := range data { @@ -70,9 +75,10 @@ func GetPerEnergy(Id int) float64 { func GetItemId(Energy float64, Type, Lv int) []int { data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT) if err != nil { + log.Debug("GetItemId err:%v, Energy=%.2f, Type=%d, Lv=%d", err, Energy, Type, Lv) return nil } - var ItemId []int + ItemId := make([]int, 0, len(data)) for _, v := range data { if Lv >= gamedata.GetIntValue(v, "Lv") && Energy >= gamedata.GetFloatValue(v, "Energy") && Type != gamedata.GetIntValue(v, "Type") && gamedata.GetIntValue(v, "ItemId") != item.ITEM_ENERGY_ID { ItemId = append(ItemId, gamedata.GetIntValue(v, "ItemId")) @@ -84,6 +90,7 @@ func GetItemId(Energy float64, Type, Lv int) []int { func GetType(ItemId int) int { data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT) if err != nil { + log.Debug("GetType err:%v, ItemId=%d", err, ItemId) return 0 } for _, v := range data { @@ -97,6 +104,7 @@ func GetType(ItemId int) int { func GetEnergyByItemId(ItemId int) float64 { data, err := gamedata.GetData(CFG_ENDLESS_JACKPOT) if err != nil { + log.Debug("GetEnergyByItemId err:%v, ItemId=%d", err, ItemId) return 0 } for _, v := range data { diff --git a/src/server/conf/face/face_cfg.go b/src/server/conf/face/face_cfg.go index 1fff0cf7..c662a969 100644 --- a/src/server/conf/face/face_cfg.go +++ b/src/server/conf/face/face_cfg.go @@ -17,15 +17,19 @@ func init() { func GetInitList() []int { data, err := gamedata.GetData(CFG_FACE) if err != nil { - log.Debug("GetInitList err: %v", err) + log.Debug("GetInitList err:%v", err) return nil } r := make([]int, 0, len(data)) for k, v := range data { IsInit := gamedata.GetIntValue(v, "Init") if IsInit == 1 { - k, _ := strconv.Atoi(k) - r = append(r, k) + id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetInitList parse id err:%v, key=%s", err, k) + continue + } + r = append(r, id) } } return r @@ -34,7 +38,7 @@ func GetInitList() []int { func CheckExist(Id int) bool { data, err := gamedata.GetData(CFG_FACE) if err != nil { - log.Debug("CheckExist err: %v", err) + log.Debug("CheckExist err:%v, Id=%d", err, Id) return false } _, ok := data[strconv.Itoa(Id)] @@ -44,12 +48,16 @@ func CheckExist(Id int) bool { func GetAllId() []int { data, err := gamedata.GetData(CFG_FACE) if err != nil { - log.Debug("GetAllId err: %v", err) + log.Debug("GetAllId err:%v", err) return nil } r := make([]int, 0, len(data)) for k := range data { - Id, _ := strconv.Atoi(k) + Id, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetAllId parse id err:%v, key=%s", err, k) + continue + } r = append(r, Id) } return r diff --git a/src/server/conf/friend/friend_cfg.go b/src/server/conf/friend/friend_cfg.go index 187ff260..4ebf3f2c 100644 --- a/src/server/conf/friend/friend_cfg.go +++ b/src/server/conf/friend/friend_cfg.go @@ -1,6 +1,9 @@ package friendCfg -import "server/gamedata" +import ( + "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" +) const ( CFG_NPC_FRIENDS = "NPCFriends" @@ -13,6 +16,7 @@ func init() { func IsNpcFriend(Id int) bool { _, err := gamedata.GetDataByIntKey(CFG_NPC_FRIENDS, Id) if err != nil { + log.Debug("IsNpcFriend err:%v, Id=%d", err, Id) return false } return true diff --git a/src/server/conf/guess_color/guess_color_cfg.go b/src/server/conf/guess_color/guess_color_cfg.go index 872622a0..5c81464f 100644 --- a/src/server/conf/guess_color/guess_color_cfg.go +++ b/src/server/conf/guess_color/guess_color_cfg.go @@ -4,6 +4,7 @@ import ( "server/game/mod/item" GoUtil "server/game_util" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" "strings" ) @@ -20,11 +21,12 @@ func init() { func GetFirstPass(Id int) map[int]int { data, err := gamedata.GetDataByIntKey(CFG_GUESS_COLOR_TEMPLATE, Id) if err != nil { + log.Debug("GetFirstPass err:%v, Id=%d", err, Id) return nil } str := gamedata.GetStringValue(data, "FirstPass") arr := strings.Split(str, "|") - ret := make(map[int]int) + ret := make(map[int]int, len(arr)) for k, v := range arr { ret[k+1] = GoUtil.Int(v) } @@ -34,6 +36,7 @@ func GetFirstPass(Id int) map[int]int { func GetLoseItem(Id int) []*item.Item { data, err := gamedata.GetDataByIntKey(CFG_GUESS_COLOR_TEMPLATE, Id) if err != nil { + log.Debug("GetLoseItem err:%v, Id=%d", err, Id) return nil } return gamedata.GetItemList(data, "ItemCost") @@ -42,6 +45,7 @@ func GetLoseItem(Id int) []*item.Item { func GetFirstItem(Id int) []*item.Item { data, err := gamedata.GetDataByIntKey(CFG_GUESS_COLOR_TEMPLATE, Id) if err != nil { + log.Debug("GetFirstItem err:%v, Id=%d", err, Id) return nil } return gamedata.GetItemList(data, "FirstItem") @@ -50,6 +54,7 @@ func GetFirstItem(Id int) []*item.Item { func GetActivityItemId(Id int) int { data, err := gamedata.GetDataByIntKey(CFG_GUESS_COLOR_TEMPLATE, Id) if err != nil { + log.Debug("GetActivityItemId err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "ItemId") @@ -58,6 +63,7 @@ func GetActivityItemId(Id int) int { func GetRewardItem(Id int, Type int) []*item.Item { data, err := gamedata.GetData(CFG_GUESS_COLOR_REWARD) if err != nil { + log.Debug("GetRewardItem err:%v, Id=%d, Type=%d", err, Id, Type) return nil } for k, v := range data { @@ -76,6 +82,7 @@ func GetRewardItem(Id int, Type int) []*item.Item { func GetPassNum(Id int) int { data, err := gamedata.GetData(CFG_GUESS_COLOR_REWARD) if err != nil { + log.Debug("GetPassNum err:%v, Id=%d", err, Id) return 0 } for k, v := range data { @@ -91,6 +98,7 @@ func GetPassNum(Id int) int { func GetWinTime(Id int) int { data, err := gamedata.GetData(CFG_GUESS_COLOR_REWARD) if err != nil { + log.Debug("GetWinTime err:%v, Id=%d", err, Id) return 0 } for k, v := range data { diff --git a/src/server/conf/guide/guide_cfg.go b/src/server/conf/guide/guide_cfg.go index 3ff8d0ac..94295437 100644 --- a/src/server/conf/guide/guide_cfg.go +++ b/src/server/conf/guide/guide_cfg.go @@ -17,7 +17,7 @@ func init() { func GetGuideReward(Id int) ([]*item.Item, int) { data, err := gamedata.GetDataByIntKey(GUIDE_REWARD, Id) if err != nil { - log.Debug("GuildCfg GetGuildReward Id:%v not found", Id) + log.Debug("GetGuideReward err:%v, Id=%d", err, Id) return nil, 0 } return item.ParseItem(gamedata.GetValue(data, "Items")), gamedata.GetIntValue(data, "Num") diff --git a/src/server/conf/guide_task/guide_task_cfg.go b/src/server/conf/guide_task/guide_task_cfg.go index c0158042..f563d911 100644 --- a/src/server/conf/guide_task/guide_task_cfg.go +++ b/src/server/conf/guide_task/guide_task_cfg.go @@ -23,6 +23,7 @@ func init() { func GetTaskRewardById(Id int) []*item.Item { data, err := gamedata.GetDataByIntKey(GUIDE_TASK_TASK, Id) if err != nil { + log.Debug("GetTaskRewardById err:%v, Id=%d", err, Id) return nil } return gamedata.GetItemList(data, "Items") @@ -31,6 +32,7 @@ func GetTaskRewardById(Id int) []*item.Item { func GetTaskById(Id int) string { data, err := gamedata.GetDataByIntKey(GUIDE_TASK_TASK, Id) if err != nil { + log.Debug("GetTaskById err:%v, Id=%d", err, Id) return "" } return gamedata.GetStringValue(data, "Task") @@ -39,6 +41,7 @@ func GetTaskById(Id int) string { func GetTaskActive(Id int) int { data, err := gamedata.GetDataByIntKey(GUIDE_TASK_TASK, Id) if err != nil { + log.Debug("GetTaskActive err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Active") @@ -46,6 +49,7 @@ func GetTaskActive(Id int) int { func GetUnlock(Id int) int { data, err := gamedata.GetDataByIntKey(GUIDE_TASK_TASK, Id) if err != nil { + log.Debug("GetUnlock err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Unlock") @@ -54,6 +58,7 @@ func GetUnlock(Id int) int { func GetActiveReward(Id int) ([]*item.Item, int) { data, err := gamedata.GetDataByIntKey(GUIDE_TASK_ACTIVE, Id) if err != nil { + log.Debug("GetActiveReward err:%v, Id=%d", err, Id) return nil, 0 } return gamedata.GetItemList(data, "Items"), gamedata.GetIntValue(data, "Active") @@ -61,6 +66,7 @@ func GetActiveReward(Id int) ([]*item.Item, int) { func GetActiveReward2(reward []int, Active int) []*item.Item { data, err := gamedata.GetData(GUIDE_TASK_ACTIVE) if err != nil { + log.Debug("GetActiveReward2 err:%v, Active=%d", err, Active) return nil } for k, v := range data { @@ -79,6 +85,7 @@ func GetActiveReward2(reward []int, Active int) []*item.Item { func GetUnlockLv() int { data, err := gamedata.GetDataByKey(GUIDE_TASK_CONST, "UnlockLv") if err != nil { + log.Debug("GetUnlockLv err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -87,20 +94,25 @@ func GetUnlockLv() int { func GetDays() int { data, err := gamedata.GetDataByKey(GUIDE_TASK_CONST, "Days") if err != nil { + log.Debug("GetDays err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") } func GetTaskList(Lv int) map[int]string { - r := make(map[int]string) data, err := gamedata.GetData(GUIDE_TASK_TASK) if err != nil { - log.Debug("GetTaskList get data nil") - return r + log.Debug("GetTaskList err:%v, Lv=%d", err, Lv) + return nil } + r := make(map[int]string, len(data)) for k, v := range data { - k1, _ := strconv.Atoi(k) + k1, err := strconv.Atoi(k) + if err != nil { + log.Debug("GetTaskList parse id err:%v, key=%s", err, k) + continue + } r[k1] = gamedata.GetStringValue(v, "Task") } return r diff --git a/src/server/conf/guide_task/guide_task_cfg_test.go b/src/server/conf/guide_task/guide_task_cfg_test.go deleted file mode 100644 index 156e5b60..00000000 --- a/src/server/conf/guide_task/guide_task_cfg_test.go +++ /dev/null @@ -1,51 +0,0 @@ -package GuideTaskCfg - -import ( - "fmt" - "testing" -) - -func TestGuideTaskCfg_NoPanic(t *testing.T) { - ids := []int{-1, 0, 1, 999999} - for _, id := range ids { - t.Run(fmt.Sprintf("Id=%d", id), func(t *testing.T) { - defer func() { - if r := recover(); r != nil { - t.Fatalf("unexpected panic: %v", r) - } - }() - _ = GetTaskRewardById(id) - _ = GetTaskActive(id) - _, _ = GetActiveReward(id) - }) - } - _ = GetUnlockLv() - _ = GetDays() -} - -// 以下 Example 用于文档与编译校验(无固定输出校验) - -func ExampleGetTaskRewardById() { - _ = GetTaskRewardById(1) - // Output: -} - -func ExampleGetTaskActive() { - _ = GetTaskActive(1) - // Output: -} - -func ExampleGetActiveReward() { - _, _ = GetActiveReward(1) - // Output: -} - -func ExampleGetUnlockLv() { - _ = GetUnlockLv() - // Output: -} - -func ExampleGetDays() { - _ = GetDays() - // Output: -} diff --git a/src/server/conf/handbook/handbook_cfg.go b/src/server/conf/handbook/handbook_cfg.go index d60c0819..76ddc5f6 100644 --- a/src/server/conf/handbook/handbook_cfg.go +++ b/src/server/conf/handbook/handbook_cfg.go @@ -19,7 +19,7 @@ func init() { func GetHandbookReward(Type string) []*item.Item { data, err := gamedata.GetDataByKey(CFG_HANDBOOK, Type) if err != nil { - log.Debug("GetHandbookReward err:%v", err) + log.Debug("GetHandbookReward err:%v, Type=%s", err, Type) return nil } return gamedata.GetItemList(data, "Items") diff --git a/src/server/conf/invite/invite_cfg.go b/src/server/conf/invite/invite_cfg.go index 76255d8e..da10eeb0 100644 --- a/src/server/conf/invite/invite_cfg.go +++ b/src/server/conf/invite/invite_cfg.go @@ -3,6 +3,7 @@ package inviteCfg import ( "server/game/mod/item" "server/gamedata" + "server/pkg/github.com/name5566/leaf/log" ) const ( @@ -16,8 +17,8 @@ func init() { func GetInviteReward(index int) (int, []*item.Item) { data, err := gamedata.GetDataByIntKey(CFG_INVITE, index) if err != nil { + log.Debug("GetInviteReward err:%v, index=%d", err, index) return 0, nil } return gamedata.GetIntValue(data, "Need"), gamedata.GetItemList(data, "Items") - } diff --git a/src/server/conf/item/Item_cfg.go b/src/server/conf/item/Item_cfg.go index c3f21ad6..11bf1e03 100644 --- a/src/server/conf/item/Item_cfg.go +++ b/src/server/conf/item/Item_cfg.go @@ -18,7 +18,7 @@ func init() { func GetItemType(Id int) int { data, err := gamedata.GetDataByIntKey(CFG_NAME, Id) if err != nil { - log.Debug("ItemCfg GetItemType Id:%v not found", Id) + log.Debug("GetItemType err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "IType") @@ -27,7 +27,7 @@ func GetItemType(Id int) int { func GetItemEffect(Id int) int { data, err := gamedata.GetDataByIntKey(CFG_NAME, Id) if err != nil { - log.Debug("ItemCfg GetItemEffect Id:%v not found", Id) + log.Debug("GetItemEffect err:%v, Id=%d", err, Id) return 0 } return gamedata.GetIntValue(data, "Effect") @@ -36,14 +36,18 @@ func GetItemEffect(Id int) int { func GetItemEffectList(Id int) []int { data, err := gamedata.GetDataByIntKey(CFG_NAME, Id) if err != nil { - log.Debug("ItemCfg GetItemEffect Id:%v not found", Id) - return []int{} + log.Debug("GetItemEffectList err:%v, Id=%d", err, Id) + return nil } - var res []int str := gamedata.GetStringValue(data, "Effect") a := strings.Split(str, ",") + res := make([]int, 0, len(a)) for _, v := range a { - b, _ := strconv.Atoi(v) + b, err := strconv.Atoi(v) + if err != nil { + log.Debug("GetItemEffectList parse err:%v, v=%s", err, v) + continue + } res = append(res, b) } return res @@ -52,8 +56,9 @@ func GetItemEffectList(Id int) []int { func GetItemName(Id int) (string, string) { data, err := gamedata.GetDataByIntKey(CFG_NAME, Id) if err != nil { - log.Debug("ItemCfg GetItemName Id:%v not found", Id) + log.Debug("GetItemName err:%v, Id=%d", err, Id) return "", "" } - return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, gamedata.GetStringValue(data, "Name")), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, gamedata.GetStringValue(data, "Name")) + name := gamedata.GetStringValue(data, "Name") + return languageCfg.GetLanguage(msg.LANG_TYPE_LANG_CN, name), languageCfg.GetLanguage(msg.LANG_TYPE_LANG_EN, name) } diff --git a/src/server/conf/limited_time_event/limited_time_event_cfg.go b/src/server/conf/limited_time_event/limited_time_event_cfg.go index 0ed53d9d..b410aa4d 100644 --- a/src/server/conf/limited_time_event/limited_time_event_cfg.go +++ b/src/server/conf/limited_time_event/limited_time_event_cfg.go @@ -54,7 +54,7 @@ func GetLimitedTimeEventCfg() []*gamedata.LimitedTimeEventData { func GetEventName(Id int) string { data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT, Id) if err != nil { - log.Debug("GetEventName err:%v", err) + log.Debug("GetEventName err:%v, Id=%d", err, Id) return "" } return gamedata.GetStringValue(data, "Name") @@ -64,7 +64,7 @@ func GetEventName(Id int) string { func GetMeteorAdd(ChessLv int) int { data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_METEOR, ChessLv) if err != nil { - log.Debug("GetMeteorAdd err:%v", err) + log.Debug("GetMeteorAdd err:%v, ChessLv=%d", err, ChessLv) return 0 } return gamedata.GetIntValue(data, "Add") @@ -74,7 +74,7 @@ func GetMeteorAdd(ChessLv int) int { func GetChestReward(Star int) []*item.Item { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_CHEST) if err != nil { - log.Debug("GetChestReward err:%v", err) + log.Debug("GetChestReward err:%v, Star=%d", err, Star) return nil } @@ -93,7 +93,7 @@ func GetChestReward(Star int) []*item.Item { func GetSuperOrderReward(energy int) []*item.Item { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_ORDER) if err != nil { - log.Debug("GetSuperOrderReward err:%v", err) + log.Debug("GetSuperOrderReward err:%v, energy=%d", err, energy) return nil } star := energy @@ -111,7 +111,7 @@ func GetSuperOrderReward(energy int) []*item.Item { func GetSceneDashReward(Sence, Progress int) (int, []*item.Item) { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_SENCE) if err != nil { - log.Debug("GetSceneDashReward err:%v", err) + log.Debug("GetSceneDashReward err:%v, Sence=%d, Progress=%d", err, Sence, Progress) return 0, nil } for k, v := range data { @@ -124,12 +124,12 @@ func GetSceneDashReward(Sence, Progress int) (int, []*item.Item) { // 获取场景冲刺奖池 func GetSenceJackpotProb() map[int]int { - r := make(map[int]int) data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_SENCE_JACKPOT) if err != nil { - log.Debug("GetSenceJackpotReward err:%v", err) + log.Debug("GetSenceJackpotProb err:%v", err) return nil } + r := make(map[int]int, len(data)) for k, v := range data { Id := GoUtil.Int(k) r[Id] = gamedata.GetIntValue(v, "Prob") @@ -141,7 +141,7 @@ func GetSenceJackpotProb() map[int]int { func GetSenceJackpotReward(Id int) []*item.Item { data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_SENCE_JACKPOT, Id) if err != nil { - log.Debug("GetSenceJackpotReward err:%v", err) + log.Debug("GetSenceJackpotReward err:%v, Id=%d", err, Id) return nil } return gamedata.GetItemList(data, "Items") @@ -151,7 +151,7 @@ func GetSenceJackpotReward(Id int) []*item.Item { func GetFastProduceReward(Energy int) []*item.Item { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_FAST) if err != nil { - log.Debug("GetSceneDashReward err:%v", err) + log.Debug("GetFastProduceReward err:%v, Energy=%d", err, Energy) return nil } if len(data) == 0 { @@ -181,7 +181,7 @@ func GetFastProduceMaxTimes() int { Max := 0 data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_FAST) if err != nil { - log.Debug("GetSceneDashReward err:%v", err) + log.Debug("GetFastProduceMaxTimes err:%v", err) return 0 } for _, v := range data { @@ -194,7 +194,7 @@ func GetFastProduceMaxTimes() int { func GetProgressMax(Lv, Num int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_BONUS) if err != nil { - log.Debug("GetProgressMax err:%v", err) + log.Debug("GetProgressMax err:%v, Lv=%d, Num=%d", err, Lv, Num) return 0 } for _, v := range data { @@ -216,7 +216,7 @@ func GetProgressMax(Lv, Num int) int { func GetBonusLv(Lv int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_BONUS) if err != nil { - log.Debug("GetProgressMax err:%v", err) + log.Debug("GetBonusLv err:%v, Lv=%d", err, Lv) return 0 } for k, v := range data { @@ -233,10 +233,10 @@ func GetBonusLv(Lv int) int { func GetProgressRewardRand(Lv int) map[int]int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_JACKPOT) if err != nil { - log.Debug("GetProgressRewardRand err:%v", err) + log.Debug("GetProgressRewardRand err:%v, Lv=%d", err, Lv) return nil } - r := make(map[int]int) + r := make(map[int]int, len(data)) for k, v := range data { if Lv >= gamedata.GetIntValue(v, "BonusLv") { Id := GoUtil.Int(k) @@ -249,7 +249,7 @@ func GetProgressRewardRand(Lv int) map[int]int { func GetJackpotIdByType(Type int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_JACKPOT) if err != nil { - log.Debug("GetJackpotIdByType err:%v", err) + log.Debug("GetJackpotIdByType err:%v, Type=%d", err, Type) return 0 } for k, v := range data { @@ -265,7 +265,7 @@ func GetJackpotIdByType(Type int) int { func GetProgressSelectNum(Lv int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_BONUS) if err != nil { - log.Debug("GetProgressMax err:%v", err) + log.Debug("GetProgressSelectNum err:%v, Lv=%d", err, Lv) return 0 } for _, v := range data { @@ -282,7 +282,7 @@ func GetProgressSelectNum(Lv int) int { func GetProgressReward(RewardId int) []*item.Item { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_JACKPOT) if err != nil { - log.Debug("GetProgressReward err:%v", err) + log.Debug("GetProgressReward err:%v, RewardId=%d", err, RewardId) return nil } for k, v := range data { @@ -298,7 +298,7 @@ func GetProgressReward(RewardId int) []*item.Item { func GetProgressRewardType(RewardId int) int { data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_JACKPOT, RewardId) if err != nil { - log.Debug("GetProgressReward err:%v", err) + log.Debug("GetProgressRewardType err:%v, RewardId=%d", err, RewardId) return 0 } return gamedata.GetIntValue(data, "Type") @@ -334,7 +334,7 @@ func GetFirstEvent() int { func GetFastCD() int { data, err := gamedata.GetDataByKey(CFG_LIMITED_TIME_EVENT_CONST, "Fast_Cd") if err != nil { - log.Debug("GetFirstEvent err:%v", err) + log.Debug("GetFastCD err:%v", err) return 0 } return gamedata.GetIntValue(data, "Value") @@ -366,7 +366,7 @@ func GetThiefProb() int { } value := gamedata.GetStringValue(data, "Value") a1 := strings.Split(value, "|") - prob := make(map[int]int) + prob := make(map[int]int, len(a1)) for _, v := range a1 { a2 := strings.Split(v, ":") prob[GoUtil.Int(a2[0])] = GoUtil.Int(a2[1]) @@ -379,7 +379,7 @@ func GetThiefProb() int { func GetMoneyCat(Id int) (float64, int) { data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_MONEY, Id) if err != nil { - log.Debug("GetMul err:%v", err) + log.Debug("GetMoneyCat err:%v, Id=%d", err, Id) return 0.0, 0 } return gamedata.GetFloatValue(data, "Mul"), gamedata.GetIntValue(data, "Cd") @@ -388,7 +388,7 @@ func GetMoneyCat(Id int) (float64, int) { func GetMoneyCatMax() int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_MONEY) if err != nil { - log.Debug("GetMul err:%v", err) + log.Debug("GetMoneyCatMax err:%v", err) return 0 } return len(data) @@ -397,7 +397,7 @@ func GetMoneyCatMax() int { func GetLuckyCatMaxEarning(Remain int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_LUCKY) if err != nil { - log.Debug("GetMul err:%v", err) + log.Debug("GetLuckyCatMaxEarning err:%v, Remain=%d", err, Remain) return 0 } type d struct { @@ -424,7 +424,7 @@ func GetLuckyCatMaxEarning(Remain int) int { func GetCatTrickType(Duartion int) int { data, err := gamedata.GetData(CFG_LIMITED_TIME_EVENT_CAT_TRICK) if err != nil { - log.Debug("GetCatTrick err:%v", err) + log.Debug("GetCatTrickType err:%v, Duartion=%d", err, Duartion) return 1 } for k, v := range data { @@ -439,7 +439,7 @@ func GetCatTrickType(Duartion int) int { func GetCatTrickDiamond(Type int) (int, int) { data, err := gamedata.GetDataByIntKey(CFG_LIMITED_TIME_EVENT_CAT_TRICK, Type) if err != nil { - log.Debug("GetCatTrickDiamond err:%v", err) + log.Debug("GetCatTrickDiamond err:%v, Type=%d", err, Type) return 0, 0 } return gamedata.GetIntValue(data, "Diamond"), gamedata.GetIntValue(data, "Energy") @@ -448,7 +448,7 @@ func GetCatTrickDiamond(Type int) (int, int) { func GetDecorateOffDiscount(AreaId, StepId int) int { data, err := gamedata.GetData(CFG_LIMTTED_TIME_EVENT_DECORATE_OFF) if err != nil { - log.Debug("GetDecorateOffDiscount err:%v", err) + log.Debug("GetDecorateOffDiscount err:%v, AreaId=%d, StepId=%d", err, AreaId, StepId) return 100 } for _, v := range data { diff --git a/src/server/game/mod/activity/activity.go b/src/server/game/mod/activity/activity.go index d9a28039..93eaf692 100644 --- a/src/server/game/mod/activity/activity.go +++ b/src/server/game/mod/activity/activity.go @@ -66,26 +66,26 @@ func (a *Activity) getGIftVar(key int) *Gift { if Var == nil { Var = &Gift{} a.SetVar(key, Var) + return Var.(*Gift) } - return Var.(*Gift) + gift, ok := Var.(*Gift) + if !ok { + // 类型不匹配,重置为新的 Gift 对象 + gift = &Gift{} + a.SetVar(key, gift) + } + return gift } func (a *Activity) GetActivityStatus(data *gamedata.ActivityData) int { - switch data.AType { - case ACT_ATYPE_NORMAL: + if data.AType == ACT_ATYPE_NORMAL { return ACT_STATUS_START - case ACT_ATYPE_LIMIT_GIFT: + } + + if data.AType == ACT_ATYPE_LIMIT_GIFT { + Var := a.getGIftVar(data.Id) switch data.Type { - case ACT_TYPE_ADD_GIFT: - Var := a.getGIftVar(data.Id) - if Var.Reward { - return ACT_STATUS_NOT_START - } - if Var.Buy { - return ACT_STATUS_END - } - case ACT_TYPE_SUPER_GIFT: - Var := a.getGIftVar(data.Id) + case ACT_TYPE_ADD_GIFT, ACT_TYPE_SUPER_GIFT: if Var.Reward { return ACT_STATUS_NOT_START } @@ -93,13 +93,12 @@ func (a *Activity) GetActivityStatus(data *gamedata.ActivityData) int { return ACT_STATUS_END } default: - Var := a.getGIftVar(data.Id) if Var.Buy { return ACT_STATUS_NOT_START } } - } + return ACT_STATUS_START } diff --git a/src/server/game/mod/avatar/Avatar.go b/src/server/game/mod/avatar/Avatar.go index 34b73c3b..3083c196 100644 --- a/src/server/game/mod/avatar/Avatar.go +++ b/src/server/game/mod/avatar/Avatar.go @@ -28,8 +28,8 @@ func (f *AvatarMod) Login(RegisterTime int64) { func (a *AvatarMod) InitData() { now := GoUtil.Now() if a.List == nil { - a.List = make(map[int]*Avatar) InitId := avatarCfg.GetInitList() + a.List = make(map[int]*Avatar, len(InitId)) for _, v := range InitId { a.List[v] = &Avatar{ AddTime: now, @@ -59,16 +59,21 @@ func (a *AvatarMod) Unlock(Id, Time int) error { v.Ts += int64(Time) return nil } + now := GoUtil.Now() + ts := int64(0) + if Time > 0 { + ts = now + int64(Time) + } a.List[Id] = &Avatar{ - Ts: now + int64(Time), + Ts: ts, AddTime: now, } return nil } func (a *AvatarMod) BackData() []*msg.AvatarInfo { - l := make([]*msg.AvatarInfo, 0) + l := make([]*msg.AvatarInfo, 0, len(a.List)) for k, v := range a.List { l = append(l, &msg.AvatarInfo{ Id: int32(k), diff --git a/src/server/game/mod/base/Base.go b/src/server/game/mod/base/Base.go index 5bd68e39..a070b12c 100644 --- a/src/server/game/mod/base/Base.go +++ b/src/server/game/mod/base/Base.go @@ -61,7 +61,6 @@ func (b *Base) InitData(Uid int, Ip string) { if b.NickName == "" { b.NickName = fmt.Sprintf("Player_%d", Uid) } - } func (b *Base) Login() int64 { @@ -69,9 +68,9 @@ func (b *Base) Login() int64 { if !GoUtil.IsSameDay(b.LoginTime, Now) { b.LoginDay += 1 } - logoutDuration := Now - b.LogoutTime - if b.LogoutTime == 0 { - logoutDuration = 0 + logoutDuration := int64(0) + if b.LogoutTime != 0 { + logoutDuration = Now - b.LogoutTime } b.LoginTime = Now b.LogoutTime = 0 @@ -195,7 +194,6 @@ func (b *Base) SetExp(Exp int) { func (b *Base) SetEnergy(Energy int) { b.Energy = Energy - } func (b *Base) SetStar(Star int) { @@ -227,10 +225,6 @@ func (b *Base) SetLang(lang msg.LANG_TYPE) { } func (b *Base) BuyEnergy(Energy int) ([]*item.Item, int, int) { - // if !b.IsFirstBuy { - // b.IsFirstBuy = true - // return []*item.Item{{Id: item.ITEM_ENERGY_ID, Num: 100}}, 100, 0 - // } b.EnergyBuy += 1 Mul := baseCfg.GetEnergyByMul(b.EnergyBuy) Diamond := int(float64(Energy) / Mul) @@ -274,6 +268,10 @@ func (b *Base) GetEnergyByAD() ([]*item.Item, error) { func (b *Base) FormatEnergyMul(Energy int) { for { + if b.EnergyMul <= 0 { + b.EnergyMul = 0 + return + } EnergyLimit := baseCfg.GetLimitEnergyMul(b.Level) if EnergyLimit == 0 { return @@ -282,10 +280,6 @@ func (b *Base) FormatEnergyMul(Energy int) { return } b.EnergyMul-- - if b.EnergyMul < 0 { - b.EnergyMul = 0 - return - } } }