ecs/servers/game/handler/player_achievement.go

68 lines
2.8 KiB
Go
Raw Normal View History

2025-06-04 18:17:39 +08:00
package handler
//func (this *PlayerHandler) AchievementGetReward(player *logic.Player, msg *net.Message) {
// var req = new(proto.MsgAchievementGetRewardReq)
// var err = msg.Read(req)
// if err != nil {
// this.logger.Error("Read message failed, ", err)
// _ = player.TipNotice(proto.ErrParameterError)
// return
// }
//
// if req.Id == 0 {
// this.logger.Error("Parameter error, req.Id == 0")
// _ = player.TipNotice(proto.ErrParameterError)
// return
// }
//
// var achievementTable = this.tables.Achievement.Get(int(req.Id))
// if achievementTable == nil {
// this.logger.Error("Parameter or data tables error, Table 'Achievement' was not found, Id: ", req.Id)
// _ = player.TipNotice(proto.ErrDataTablesError)
// return
// }
//
// var key = util.Compose2uint32(uint32(achievementTable.AchievementType), uint32(achievementTable.ExtraNum))
// var achievement = player.Achievement[key]
// if achievement == nil {
// this.logger.Errorf("Achievement of player not found, AchievementType: %d, ExtraNum; %d, key: %d", achievementTable.AchievementType, achievementTable.ExtraNum, key)
// _ = player.TipNotice(proto.ErrAchievementNotFound)
// return
// }
//
// var rewardStatus = achievement.Statuses[req.Id]
// switch proto.RewardStatus(rewardStatus) {
// case proto.RewardStatusUnable:
// this.logger.Errorf("Achievement reward unable, Id: %d, status: %d", req.Id, rewardStatus)
// _ = player.TipNotice(proto.ErrAchievementNotCompleted)
// return
// case proto.RewardStatusCanGet:
// var rewardList []*proto.ItemPair
// for i := range achievementTable.ItemList {
// _ = player.AddItem(uint32(achievementTable.ItemList[i]), uint32(achievementTable.NumList[i]), logic.LogTypeItemObtainByAchievement)
// rewardList = append(rewardList, &proto.ItemPair{ItemId: uint32(achievementTable.ItemList[i]), ItemNum: uint32(achievementTable.NumList[i])})
// }
//
// _ = player.Send(proto.ModIdAchievement, proto.MsgIdAchievementGetReward, &proto.MsgAchievementGetRewardAck{
// MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList},
// })
//
// achievement.Statuses[req.Id] = uint32(proto.RewardStatusHasGot)
// player.SaveField(fmt.Sprintf("achievement.%d.statuses.%d", achievement.Key, req.Id), uint32(proto.RewardStatusHasGot))
//
// _ = player.Send(proto.ModIdAchievement, proto.MsgIdAchievementChange, &proto.MsgAchievementChangeListAck{
// MsgAchievementListAck: proto.MsgAchievementListAck{
// List: []*proto.Achievement{achievement.BuildMsgAchievement()},
// },
// })
// case proto.RewardStatusHasGot:
// this.logger.Errorf("Achievement reward has got, Id: %d, status: %d", req.Id, rewardStatus)
// _ = player.TipNotice(proto.ErrRewardHasGot)
// return
// default:
// this.logger.Errorf("Achievement unknown reward status, Id: %d, status: %d", req.Id, rewardStatus)
// _ = player.TipNotice(proto.ErrServerError)
// return
// }
//}