package stonehenge import ( "go_dreamfactory/comm" "go_dreamfactory/pb" ) //参数校验 func (this *apiComp) ResetBuffCheck(session comm.IUserSession, req *pb.StonehengeResetBuffReq) (errdata *pb.ErrorData) { return } // 结算房间 func (this *apiComp) ResetBuff(session comm.IUserSession, req *pb.StonehengeResetBuffReq) (errdata *pb.ErrorData) { var ( stone *pb.DBStonehenge update map[string]interface{} err error ) update = make(map[string]interface{}) if errdata = this.ResetBuffCheck(session, req); errdata != nil { return } if stone, err = this.module.modelStonehenge.GetStonehengeData(session.GetUserId()); err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, Title: pb.ErrorCode_DBError.String(), Message: err.Error(), } return } // 检查特权 if stone.Rooms.Resetcount == 0 { for _, v := range stone.Privilege { if v == pb.StonehengePrivilege_StonehengePrivilege_7 { //随机buff三选一事件,新增重置功能 if eventConf, err := this.module.configure.GetStoneEventDataById(req.Eventid); err != nil { //if p, err := this.module.configure.getGameStonePrivilegeData(int32(v)); err != nil { for _, v := range stone.Addweight { // 这个map 目前只会存在一条数据 ownerbuff := make(map[int32]struct{}, 0) for k := range stone.Userbuff { ownerbuff[k] = struct{}{} } stone.Rooms.Selectbuff = this.module.configure.GetBuffGroupDataByLottery(eventConf.Value1, v, ownerbuff) stone.Rooms.Resetcount += 1 // 更新数据 update["rooms"] = stone.Rooms this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update) session.SendMsg(string(this.module.GetType()), "resetbuff", &pb.StonehengeResetBuffResp{ Selectbuff: stone.Rooms.Selectbuff, }) return } } break } } } errdata = &pb.ErrorData{ Code: pb.ErrorCode_StonehengebuffResetErr, Title: pb.ErrorCode_StonehengebuffResetErr.String(), } return }