diff --git a/modules/entertainment/room.go b/modules/entertainment/room.go index 64a4e2cba..13dff5998 100644 --- a/modules/entertainment/room.go +++ b/modules/entertainment/room.go @@ -472,6 +472,7 @@ func (this *Room) ReceiveMessage(session comm.IUserSession, stype string, msg pr func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) { var ( atno []*pb.UserAtno + consumeexp int32 winindex int32 res []*cfg.Gameatn lostPlayer *pb.PlayerData // 输的玩家 @@ -510,6 +511,7 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) { if v.A == "attr" && v.T == "consumeexp" { list.Consumeexp += int32(v.N*pro) / 1000 winScore = int32(v.N*pro) / 1000 + consumeexp += winScore update["consumeexp"] = list.Consumeexp winner.Consumeexp = list.Consumeexp if list.Consumeexp > list.Maxconsumeexp { // 写最高积分 @@ -520,6 +522,7 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) { list.Maxsocre = winner.Score update["maxsocre"] = list.Maxsocre } + } else { res = append(res, v) } @@ -527,6 +530,13 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) { if errdata, atno = this.module.DispenseAtno(this.szSession[winindex], res, true); errdata != nil { return } + if consumeexp > 0 { + atno = append(atno, &pb.UserAtno{ + A: "attr", + T: "consumeexp", + N: consumeexp, + }) + } this.szSession[winindex].Push() } @@ -746,20 +756,18 @@ func (this *Room) LianShengAdd(liansheng int32) (permillage int32) { result []*cfg.GameConsumeTxtData err error ) + if result, err = this.module.configure.getLianShengReward(); err == nil { - for pos, v := range result { - if len(result) > pos+1 { - if result[pos+1].Winningstreak >= liansheng { // 下一等级小于当前值 - permillage = result[pos].Rewarddata - return - } - } else { - permillage = v.Rewarddata + for i := len(result) - 1; i >= 0; i-- { + if liansheng >= result[i].Winningstreak { + permillage = result[i].Winningstreak + break } } - } - if permillage == 0 { - permillage = 1 + + if permillage == 0 { + permillage = 1000 + } } return } diff --git a/modules/mail/module.go b/modules/mail/module.go index 204e5afdf..8ebd5c0d7 100644 --- a/modules/mail/module.go +++ b/modules/mail/module.go @@ -78,7 +78,9 @@ func (this *Mail) SendNewMail(mail *pb.DBMailData, uid ...string) bool { mail.ObjId = primitive.NewObjectID().Hex() mail.Check = false mail.Reward = true - + mail.Uid = id + mail.CreateTime = uint64(configure.Now().Unix()) + mail.DueTime = uint64(configure.Now().Unix()) + 30*24*3600 if len(mail.GetItems()) > 0 { mail.Reward = false } diff --git a/modules/moonlv/module.go b/modules/moonlv/module.go index ba27c5d46..dd87175b9 100644 --- a/modules/moonlv/module.go +++ b/modules/moonlv/module.go @@ -114,5 +114,7 @@ func (this *Moonlv) GMCreateMoonlv(session comm.IUserSession, lv int32) { if lv <= 0 { return } - this.modelMoonlv.modifyMoonlvList(session.GetUserId(), map[string]interface{}{"lv": lv}) + if _, err := this.modelMoonlv.module.configure.GetMoonLvConf(lv + 1); err == nil { + this.modelMoonlv.modifyMoonlvList(session.GetUserId(), map[string]interface{}{"cid": lv + 1}) + } } diff --git a/modules/pagoda/api_cyclechallengeover.go b/modules/pagoda/api_cyclechallengeover.go index dfb0b9162..9978093b9 100644 --- a/modules/pagoda/api_cyclechallengeover.go +++ b/modules/pagoda/api_cyclechallengeover.go @@ -128,6 +128,9 @@ func (this *apiComp) ChallengeCycleOver(session comm.IUserSession, req *pb.Pagod if err == nil { db.Uinfo = comm.GetUserBaseInfo(user) } + db.Data[conf.Floors] = &pb.CycleData{ + Consttime: costTime, + } db.Data[conf.Floors].Line = &pb.LineData{ Leadpos: Leadpos, Line: szLine, diff --git a/modules/plunder/api_challengeover.go b/modules/plunder/api_challengeover.go index 0a0e73378..20726ba52 100644 --- a/modules/plunder/api_challengeover.go +++ b/modules/plunder/api_challengeover.go @@ -118,7 +118,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PlunderCha return } lock, err = this.module.modelLand.landMutexLock(list.Landid) - lock.Lock() + err = lock.Lock() if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, diff --git a/modules/plunder/api_getlist.go b/modules/plunder/api_getlist.go index c0767fd2c..16ff7cf9e 100644 --- a/modules/plunder/api_getlist.go +++ b/modules/plunder/api_getlist.go @@ -1,6 +1,7 @@ package plunder import ( + "errors" "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/core" @@ -32,10 +33,22 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.PlunderGetListRe } update = make(map[string]interface{}) if list, err = this.module.modelPlunder.getPlunderData(session); err != nil { - errdata = &pb.ErrorData{ - Code: pb.ErrorCode_DBError, - Message: err.Error(), + var customErr = new(comm.CustomError) + if errors.As(err, &customErr) { + code := customErr.Code + errdata = &pb.ErrorData{ + Code: code, + Title: code.ToString(), + Message: err.Error(), + } + } else { + errdata = &pb.ErrorData{ + Code: pb.ErrorCode_DBError, + Title: pb.ErrorCode_DBError.ToString(), + Message: err.Error(), + } } + return } diff --git a/modules/plunder/api_pvpchallenge.go b/modules/plunder/api_pvpchallenge.go index 94eeb8ea0..1ab18baea 100644 --- a/modules/plunder/api_pvpchallenge.go +++ b/modules/plunder/api_pvpchallenge.go @@ -67,7 +67,7 @@ func (this *apiComp) PvpChallenge(session comm.IUserSession, req *pb.PlunderPvpC } lock, err = this.module.modelLand.landMutexLock(list.Landid) - lock.Lock() + err = lock.Lock() if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, diff --git a/modules/plunder/api_pvpchallengeover.go b/modules/plunder/api_pvpchallengeover.go index 59dcee661..351b4b262 100644 --- a/modules/plunder/api_pvpchallengeover.go +++ b/modules/plunder/api_pvpchallengeover.go @@ -47,7 +47,7 @@ func (this *apiComp) PvpChallengeOver(session comm.IUserSession, req *pb.Plunder return } lock, err = this.module.modelLand.landMutexLock(list.Landid) - lock.Lock() + err = lock.Lock() if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, diff --git a/modules/plunder/api_reach.go b/modules/plunder/api_reach.go index 99a6804da..72b3fdad6 100644 --- a/modules/plunder/api_reach.go +++ b/modules/plunder/api_reach.go @@ -47,7 +47,7 @@ func (this *apiComp) Reach(session comm.IUserSession, req *pb.PlunderReachReq) ( return } lock, err = this.module.modelLand.landMutexLock(list.Landid) - lock.Lock() + err = lock.Lock() if err != nil { errdata = &pb.ErrorData{ Code: pb.ErrorCode_DBError, @@ -111,14 +111,18 @@ func (this *apiComp) Reach(session comm.IUserSession, req *pb.PlunderReachReq) ( this.module.ModuleUser.AddUserHidenum(session, conf.Hidenum) } else { res = append(res, conf.Exreward...) // 高级奖励 + if !bPlunder { // 没有被掠夺 + res = append(res, conf.Keepreward...) + list.Score += conf.Numitem.N + land.Score[session.GetUserId()] = list.Score + this.module.ModuleUser.AddUserHidenum(session, conf.Hidenum) + } } - if !bPlunder { // 掠夺成功 - res = append(res, conf.Keepreward...) - } + if errdata, atno = this.module.DispenseAtno(session, res, true); errdata != nil { return } - if bExReward { + if bExReward && !bPlunder { // 高级运输且没用被掠夺 if conf.Numitem.N > 0 { atno = append(atno, &pb.UserAtno{ A: conf.Numitem.A, diff --git a/modules/plunder/model_plunder.go b/modules/plunder/model_plunder.go index 867034ab0..a230d82df 100644 --- a/modules/plunder/model_plunder.go +++ b/modules/plunder/model_plunder.go @@ -1,7 +1,6 @@ package plunder import ( - "fmt" "go_dreamfactory/comm" "go_dreamfactory/lego/core" "go_dreamfactory/lego/sys/mgo" @@ -77,7 +76,8 @@ func (this *modelPlunder) getPlunderData(session comm.IUserSession) (info *pb.DB return } if user.Name == "" { // 临时处理没创角不让进 后面走功能开启配置 - err = fmt.Errorf("getPlunderData need create ") + //err = fmt.Errorf("getPlunderData need create") + err = comm.NewCustomError(pb.ErrorCode_RoleNeedCreated) return } info = &pb.DBPlunder{