This commit is contained in:
liwei1dao 2024-02-19 11:49:41 +08:00
commit d6b7440331
10 changed files with 58 additions and 26 deletions

View File

@ -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
permillage = 1000
}
}
return
}

View File

@ -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
}

View File

@ -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})
}
}

View File

@ -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,

View File

@ -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,

View File

@ -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 {
var customErr = new(comm.CustomError)
if errors.As(err, &customErr) {
code := customErr.Code
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DBError,
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
}

View File

@ -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,

View File

@ -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,

View File

@ -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 { // 掠夺成功
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 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,

View File

@ -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{