go_dreamfactory/modules/stonehenge/api_resetbuff.go

68 lines
2.0 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
}