68 lines
2.8 KiB
Go
68 lines
2.8 KiB
Go
![]() |
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
|
||
|
// }
|
||
|
//}
|