上传巨石秘境

This commit is contained in:
liwei 2023-08-10 18:28:29 +08:00
parent 3369da15e5
commit 93e5b0c64f
8 changed files with 105 additions and 20 deletions

View File

@ -0,0 +1,38 @@
package stonehenge
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *apiComp) ActivateTalentCheck(session comm.IUserSession, req *pb.StonehengeActivateTalentReq) (errdata *pb.ErrorData) {
return
}
func (this *apiComp) ActivateTalent(session comm.IUserSession, req *pb.StonehengeActivateTalentReq) (errdata *pb.ErrorData) {
var (
stone *pb.DBStonehenge
err error
)
if errdata = this.ActivateTalentCheck(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
}
session.SendMsg(string(this.module.GetType()), "activatetalent", &pb.StonehengeActivateTalentResp{
Node: req.Node,
Talent: stone.Talent,
Talentproperty: stone.Talentproperty,
Privilege: stone.Privilege,
})
return
}

View File

@ -39,7 +39,14 @@ func (this *apiComp) Battle(session comm.IUserSession, req *pb.StonehengeBattleR
return
}
// 事件校验
stone = this.module.modelStonehenge.GetStonehengeData(session.GetUserId())
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 v, ok := stone.Rooms.Eventid[req.Eventid]; !ok || v == true { // 不存在该事件
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,

View File

@ -47,7 +47,14 @@ func (this *apiComp) EnterLevel(session comm.IUserSession, req *pb.StonehengeEnt
}
portal = confStage.RoomGroup
this.module.Debugf("%v", confStage)
stone = this.module.modelStonehenge.GetStonehengeData(session.GetUserId())
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 len(stone.Hero) != 0 || len(stone.Addweight) != 0 {
errdata = &pb.ErrorData{

View File

@ -35,7 +35,14 @@ func (this *apiComp) Event(session comm.IUserSession, req *pb.StonehengeEventReq
return
}
stone = this.module.modelStonehenge.GetStonehengeData(session.GetUserId())
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 v, ok := stone.Rooms.Eventid[req.Eventid]; !ok || v == true { // 不存在该事件
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,

View File

@ -16,13 +16,21 @@ func (this *apiComp) Finish(session comm.IUserSession, req *pb.StonehengeFinishR
var (
stone *pb.DBStonehenge
update map[string]interface{}
err error
)
update = make(map[string]interface{})
if errdata = this.FinishCheck(session, req); errdata != nil {
return
}
stone = this.module.modelStonehenge.GetStonehengeData(session.GetUserId())
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
}
stone.StageID = 0
update["stageID"] = stone.StageID

View File

@ -16,11 +16,19 @@ func (this *apiComp) GetListCheck(session comm.IUserSession, req *pb.StonehengeG
func (this *apiComp) GetList(session comm.IUserSession, req *pb.StonehengeGetListReq) (errdata *pb.ErrorData) {
var (
stone *pb.DBStonehenge
err error
)
if errdata = this.GetListCheck(session, req); errdata != nil {
return
}
stone = this.module.modelStonehenge.GetStonehengeData(session.GetUserId())
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 configure.Now().Unix() >= stone.Etime {
update := make(map[string]interface{})

View File

@ -32,7 +32,14 @@ func (this *apiComp) GotoRoom(session comm.IUserSession, req *pb.StonehengeGotoR
if errdata = this.GotoRoomCheck(session, req); errdata != nil {
return
}
stone = this.module.modelStonehenge.GetStonehengeData(session.GetUserId())
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 != nil {

View File

@ -50,21 +50,24 @@ func (this *MStonehenge) Start() (err error) {
return
}
func (this *MStonehenge) GetStonehengeData(uid string) *pb.DBStonehenge {
stone := &pb.DBStonehenge{}
if err := this.Get(uid, stone); err != nil && mgo.MongodbNil == err { // 创建一条初始的数据
stone.Id = primitive.NewObjectID().Hex()
stone.Uid = uid
stone.Rooms = nil // 注意初始房间为空
stone.Userbuff = make(map[int32]int32, 0)
stone.Reward = make(map[int32]bool, 0)
stone.Addweight = make(map[int32]int32, 0)
stone.Etime = utils.WeekIntervalTime()
stone.Hero = make(map[string]*pb.BattleRole)
this.Add(uid, stone)
func (this *MStonehenge) GetStonehengeData(uid string) (info *pb.DBStonehenge, err error) {
info = &pb.DBStonehenge{}
if err = this.Get(uid, info); err != nil && mgo.MongodbNil != err { // 创建一条初始的数据
return
}
return stone
if mgo.MongodbNil == err {
info = &pb.DBStonehenge{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
Userbuff: make(map[int32]int32),
Reward: make(map[int32]bool),
Addweight: make(map[int32]int32),
Etime: utils.WeekIntervalTime(),
Hero: make(map[string]*pb.BattleRole),
}
err = this.Add(uid, info)
}
return
}
// 修改石阵信息