diff --git a/src/server/game/gm_handler.go b/src/server/game/gm_handler.go index 036915a0..97c5dba8 100644 --- a/src/server/game/gm_handler.go +++ b/src/server/game/gm_handler.go @@ -446,7 +446,7 @@ func ReqGmCommand_(player *Player, Command string) error { db.RedisDelKey(fmt.Sprintf("%s_%s", RANK_COUNTRY_USER, conf.Server.CountryCode)) case "addFriendStar": FriendTreasureMod := player.PlayMod.getFriendTreasureMod() - FriendTreasureMod.AddStar(200) + FriendTreasureMod.AddStar(200, player.GetOrderFactor()) case "comfortOrder": BaseMod := player.PlayMod.getBaseMod() BaseMod.LogoutTime = GoUtil.Now() - 7*86400 diff --git a/src/server/game/mod/friend_treasure.go/friend_treasure.go b/src/server/game/mod/friend_treasure.go/friend_treasure.go index 05209023..984a5cd3 100644 --- a/src/server/game/mod/friend_treasure.go/friend_treasure.go +++ b/src/server/game/mod/friend_treasure.go/friend_treasure.go @@ -56,8 +56,9 @@ func (f *FriendTreasureMod) InitGame(List []*msg.TreasureInfo, List2 []int32) { } // 增加星级 -func (f *FriendTreasureMod) AddStar(Star int) { - f.Star = min(200, f.Star+Star) +func (f *FriendTreasureMod) AddStar(star, factor int) { + limit := GoUtil.FormatStarItemNum(200, factor) + f.Star = min(limit, f.Star+star) } // 翻牌 diff --git a/src/server/game/register_network_func.go b/src/server/game/register_network_func.go index daf9d0e6..02c58626 100644 --- a/src/server/game/register_network_func.go +++ b/src/server/game/register_network_func.go @@ -437,7 +437,7 @@ func ReqRewardOrder(player *Player, buf []byte) error { player.HandleInChampshipRank() } FriendTreasureMod := player.PlayMod.getFriendTreasureMod() - FriendTreasureMod.AddStar(Star / 20) + FriendTreasureMod.AddStar(Star/20, player.GetOrderFactor()) player.PushClientRes(FriendTreasureMod.NotifyStar()) // 限时事件增加进度 LimitedTimeEventMod.AddProgress(player.GetPlayerBaseMod().GetLevel()) diff --git a/src/server/game_util/GoUtil.go b/src/server/game_util/GoUtil.go index 114e5a21..1f28a10a 100644 --- a/src/server/game_util/GoUtil.go +++ b/src/server/game_util/GoUtil.go @@ -727,9 +727,13 @@ func GetGeoInfo(ip string) (string, string, error) { func FormatStarItem(items []*item.Item, factor int) []*item.Item { for _, v := range items { if v.Id == item.ITEM_STAR_ID { - Num := math.Round(float64(v.Num) * float64(factor) / 100) - v.Num = int(Num) / 5 * 5 + v.Num = FormatStarItemNum(v.Num, factor) } } return items } + +func FormatStarItemNum(num, factor int) int { + Num := math.Round(float64(num) * float64(factor) / 100) + return int(Num) / 5 * 5 +}