diff --git a/logic/controller/fight_pvp_king.go b/logic/controller/fight_pvp_king.go index 359f3d8c5..25b673a24 100644 --- a/logic/controller/fight_pvp_king.go +++ b/logic/controller/fight_pvp_king.go @@ -22,8 +22,13 @@ func (h Controller) PetMelee(data *fight.StartPetWarInboundInfo, c *player.Playe if foi.WinnerId == c.GetInfo().UserID { c.Info.MessWin += 1 + c.MessWin(true) + p.MessWin(false) + } else { p.GetInfo().MessWin += 1 + p.MessWin(true) + c.MessWin(false) } } diff --git a/logic/controller/pet_收集计划.go b/logic/controller/pet_收集计划.go index a81850262..87164c235 100644 --- a/logic/controller/pet_收集计划.go +++ b/logic/controller/pet_收集计划.go @@ -26,6 +26,15 @@ func (h Controller) IsCollect( return false }) + _, ok := lo.Find([]uint32{1, 2, 3, 4, 301}, func(item uint32) bool { + return data.Type == item + }) + if ok { + res := c.Info.GetTask(1335 + int(data.Type)) //第一期 + if res == model.Completed { + result.IsCom = 1 + } + } return result, 0 } diff --git a/logic/controller/user_info.go b/logic/controller/user_info.go index 8026b4284..208c2d223 100644 --- a/logic/controller/user_info.go +++ b/logic/controller/user_info.go @@ -15,8 +15,13 @@ import ( // 返回: 模拟用户信息及错误码 func (h Controller) GetUserSimInfo(data *user.SimUserInfoInboundInfo, player *player.Player) (result *user.SimUserInfoOutboundInfo, err errorcode.ErrorCode) { result = &user.SimUserInfoOutboundInfo{} + t, ok := player.GetSpace().UserInfo.Load(data.UserId) + if ok { + copier.Copy(result, t) + } else { + copier.Copy(result, player.Service.Info.Person(data.UserId).Data) + } - copier.Copy(result, player.Service.Info.Person(data.UserId).Data) return result, 0 } diff --git a/logic/service/common/playeri.go b/logic/service/common/playeri.go index 17fb03313..cc91a4e4f 100644 --- a/logic/service/common/playeri.go +++ b/logic/service/common/playeri.go @@ -15,6 +15,7 @@ type PlayerI interface { InvitePlayer(PlayerI) SetFightC(FightI) QuitFight() + MessWin(bool) CanFight() bool SendPackCmd(uint32, any) } diff --git a/logic/service/pet/BargeList.go b/logic/service/pet/BargeList.go index 6d1449e8e..555f5bece 100644 --- a/logic/service/pet/BargeList.go +++ b/logic/service/pet/BargeList.go @@ -1,6 +1,8 @@ package pet -import "blazing/logic/service/common" +import ( + "blazing/logic/service/common" +) // PetBargeListInboundInfo 对应Java的PetBargeListInboundInfo,实现InboundMessage接口 type PetBargeListInboundInfo struct { @@ -47,3 +49,7 @@ type C2S_PET_EVOLVTION struct { type C2S_2608 struct { Head common.TomeeHeader `cmd:"2608" struc:"skip"` } +type S2C_50006 struct { + ItemID uint32 + Count uint32 +} diff --git a/logic/service/player/ai.go b/logic/service/player/ai.go index eb58640e3..a2f48c3cd 100644 --- a/logic/service/player/ai.go +++ b/logic/service/player/ai.go @@ -20,6 +20,10 @@ func (f *AI_player) SendPack(b []byte) error { } +func (f *AI_player) MessWin(b bool) { + +} + func (f *AI_player) SendPackCmd(_ uint32, _ any) { //fmt.Println("战斗结束") diff --git a/logic/service/player/cmd.go b/logic/service/player/cmd.go index 866da6fa0..7dd910d18 100644 --- a/logic/service/player/cmd.go +++ b/logic/service/player/cmd.go @@ -2,9 +2,37 @@ package player import ( "blazing/logic/service/common" + "blazing/logic/service/pet" + "blazing/modules/config/service" ) func (p *Player) SendPackCmd(cmd uint32, b any) { p.SendPack(common.NewTomeeHeader(cmd, p.Info.UserID).Pack(b)) } +func (p *Player) MessWin(win bool) { + var getcony uint32 + _, ok := p.Service.Talk.Cheak(p.Info.MapID, 5000) + if ok { + //更新次数 + config := service.NewTalkConfigService().GetCache(5000) + + //service.NewItemService().GetItemCount(config.ItemID) + + for _, itemID := range config.ItemIDS { + iteminfo := service.NewItemService().GetItem(itemID) + if win { + getcony = uint32(iteminfo.ItemMaxCount) + } else { + getcony = uint32(iteminfo.ItemMinCount) + + } + p.ItemAdd(iteminfo.ItemID, int64(getcony)) + } + p.Service.Talk.Update(5000) + } + p.SendPackCmd(50006, &pet.S2C_50006{ + ItemID: 3, + Count: getcony, + }) +} diff --git a/modules/config/service/item.go b/modules/config/service/item.go index 31e994ac4..64da1a386 100644 --- a/modules/config/service/item.go +++ b/modules/config/service/item.go @@ -13,8 +13,14 @@ type ItemService struct { *cool.Service } -//实现物品数量的获取 +// 实现物品数量的获取 +func (s *ItemService) GetItem(id uint32) *model.ItemGift { + var item *model.ItemGift + dbm(s.Model).Where("id", id).Scan(&item) + + return item +} func (s *ItemService) GetItemCount(id uint32) data.ItemInfo { var item model.ItemGift var res data.ItemInfo diff --git a/modules/player/service/info.go b/modules/player/service/info.go index 07d843ad5..85e0a225a 100644 --- a/modules/player/service/info.go +++ b/modules/player/service/info.go @@ -56,8 +56,7 @@ func (s *InfoService) Reg(nick string, color uint32) *model.PlayerInfo { } func (s *InfoService) Person(userid uint32) (out *model.Player) { - - s.dbm_fix(s.Model).Scan(&out) + cool.DBM(s.Model).Where("player_id", userid).Scan(&out) return diff --git a/modules/player/service/talk.go b/modules/player/service/talk.go index 3b0a143b5..864cd8525 100644 --- a/modules/player/service/talk.go +++ b/modules/player/service/talk.go @@ -41,11 +41,11 @@ func (s *TalkService) Cheak(mapid uint32, flag int) (int, bool) { m1.Save(talks) return int(talks.Count), true } - - if uint32(mapid) != config.NewTalkConfigService().GetCache(flag).MapID { + c := config.NewTalkConfigService().GetCache(flag) + if uint32(mapid) != c.MapID { return 0, false //没在地图 } - if talks.Count >= config.NewTalkConfigService().GetCache(flag).DailyCollectCount { + if talks.Count >= c.DailyCollectCount { return 0, false } return int(talks.Count), true //int(config.MaxDailyCnt - talks.Count)