From a1e7da023dc397a6c4fe8a0388b5cc8b63c9eaab Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 27 Jul 2023 15:50:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=AE=8C=E6=88=90=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E5=90=8E=E5=AF=BC=E8=87=B4=E5=BC=80=E5=90=AF=E7=9A=84?= =?UTF-8?q?=E4=BC=A0=E9=80=81=E9=97=A8=E5=8F=88=E5=85=B3=E9=97=AD=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/stonehenge/api_event.go | 39 ++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/modules/stonehenge/api_event.go b/modules/stonehenge/api_event.go index 34b3f7959..e95f04ca8 100644 --- a/modules/stonehenge/api_event.go +++ b/modules/stonehenge/api_event.go @@ -20,12 +20,13 @@ func (this *apiComp) EventCheck(session comm.IUserSession, req *pb.StonehengeEve func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq) (errdata *pb.ErrorData) { var ( - stone *pb.DBStonehenge - update map[string]interface{} - roomConf *cfg.GameStoneRoomData - err error - newEvent int32 // 是否有新的事件 - eventConf *cfg.GameStoneEventData + stone *pb.DBStonehenge + update map[string]interface{} + roomConf *cfg.GameStoneRoomData + err error + newEvent int32 // 是否有新的事件 + eventConf *cfg.GameStoneEventData + newEventConf *cfg.GameStoneEventData //新的事件配置 ) update = make(map[string]interface{}) if errdata = this.EventCheck(session, req); errdata != nil { @@ -51,10 +52,20 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq } update["stageID"] = stone.StageID if roomConf, err = this.module.configure.GetStoneRoomDataById(stone.Rooms.Roomid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } if eventConf, err = this.module.configure.GetStoneEventDataById(req.Eventid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } return } // 校验事件有后续事件 @@ -68,8 +79,24 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq for _, v := range roomConf.Condition { if v == eventConf.EventType { stone.Rooms.Complete = true + if newEventConf, err = this.module.configure.GetStoneEventDataById(req.Eventid); err != nil { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_ConfigNoFound, + Title: pb.ErrorCode_ConfigNoFound.ToString(), + Message: err.Error(), + } + return + } + for _, v := range roomConf.Condition { + if v == newEventConf.EventType { + stone.Rooms.Complete = false // 判断新的事件导致传送门关闭 + break + } + } + break } } + // 通过条件判断 update["rooms"] = stone.Rooms this.module.modelStonehenge.ChangeStonehengeData(session.GetUserId(), update)