This commit is contained in:
wh_zcy 2023-01-29 10:51:29 +08:00
commit 68687d5338
9 changed files with 79 additions and 75 deletions

View File

@ -48,8 +48,6 @@ type (
//查询用户卡片数量
QueryHeroAmount(uId string, heroCfgId string) (amount uint32)
//创建指定数量
CreateRepeatHero(session IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, code pb.ErrorCode)
// 批量创建英雄
CreateRepeatHeros(session IUserSession, heros map[string]int32, bPush bool) (hero *pb.DBHero, code pb.ErrorCode)
// 获取英雄
@ -156,7 +154,7 @@ type (
IReddot
}
IMline interface {
ModifyMlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode)
ModifyMlineDataByNanduID(session IUserSession, id int32) (code pb.ErrorCode)
/// 查询章节ID
GetUsermLineData(uid string, chapterType int32) (chapterId int32)
///红点

View File

@ -24,7 +24,7 @@ import (
9bingo:season,10 赛季塔层数
10bingo:viking // 解锁维京所有难度
11bingo:hunting // 解锁狩猎所有难度
12bingo:mainline,1,101 // 难度 id
12bingo:mainline,11001 // 难度 id
13bingo:moon,1 // 触发月之秘境
14bingo:arena,100 // 设置竞技场用户积分
15bingo:sociatyexp,100 // 设置工会经验

View File

@ -194,8 +194,8 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
this.Debug("使用bingo命令:uid = %s ",
log.Field{Key: "uid", Value: session.GetUserId()},
log.Field{Key: "0", Value: datas[0]})
} else if len(datas) == 3 && (datas[0] == "mainline") {
module1, err := this.service.GetModule(comm.ModuleMainline)
} else if len(datas) == 2 && (datas[0] == "mainline") {
module1, err := this.service.GetModule(comm.ModuleMline)
if err != nil {
return
}
@ -204,12 +204,8 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC
code = pb.ErrorCode_ReqParameterError
return
}
num2, err := strconv.Atoi(datas[2])
if err != nil {
code = pb.ErrorCode_ReqParameterError
return
}
code = module1.(comm.IMainline).ModifyMainlineDataByNanduID(session.GetUserId(), int32(num1), int32(num2))
code = module1.(comm.IMline).ModifyMlineDataByNanduID(session, int32(num1))
this.Debug("使用bingo命令",
log.Field{Key: "uid", Value: session.GetUserId()},

View File

@ -276,12 +276,33 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
update["totalcount"] = heroRecord.Totalcount
update["daycount"] = heroRecord.Daycount
this.module.modelRecord.ChangeHeroRecord(session.GetUserId(), update)
szNewCards := make([]*cfg.Gameatn, 0)
for _, heroId := range szCards {
bFind := false
_mapAddHero[heroId]++
for _, v := range szNewCards {
if v.T == heroId {
v.N++
bFind = true
break
}
}
if !bFind {
res := &cfg.Gameatn{
A: "hero",
T: heroId,
N: 1,
}
szNewCards = append(szNewCards, res)
}
}
_, code = this.module.CreateRepeatHeros(session, _mapAddHero, true)
// 获得新卡
if code = this.module.DispenseRes(session, szNewCards, true); code != pb.ErrorCode_Success {
this.module.Errorf("err:%v,create heros:%v,uid,%s", code, szNewCards, session.GetUserId())
code = pb.ErrorCode_HeroCreate // 创建新英雄失败
}
///英雄招募 【玩家名称】在招募中获得了【英雄名称】!
this.module.SendChatMsg(session, _mapAddHero, szCards)

View File

@ -3,6 +3,7 @@ package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils"
"google.golang.org/protobuf/proto"
@ -74,12 +75,14 @@ func (this *apiComp) Fusion(session comm.IUserSession, req *pb.HeroFusionReq) (c
}
// 获得新卡
var new map[string]int32
new = make(map[string]int32)
new[conf.Hero] = 1
if _, err := this.module.CreateRepeatHeros(session, new, false); err != pb.ErrorCode_Success {
res := &cfg.Gameatn{
A: "hero",
T: conf.Hero,
N: 1,
}
if code = this.module.DispenseRes(session, []*cfg.Gameatn{res}, false); code != pb.ErrorCode_Success {
this.module.Errorf("err:%v,create hero:%s,uid,%ss", err, conf.Hero, session.GetUserId())
this.module.Errorf("err:%v,create hero:%s,uid,%ss", code, conf.Hero, session.GetUserId())
code = pb.ErrorCode_HeroCreate // 创建新英雄失败
}
session.SendMsg(string(this.module.GetType()), HeroFusionResp, &pb.HeroFusionResp{Heroid: conf.Hero})

View File

@ -76,7 +76,7 @@ func (this *Hero) Start() (err error) {
}
//创建单个叠加英雄
func (this *Hero) CreateRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, code pb.ErrorCode) {
func (this *Hero) createRepeatHero(session comm.IUserSession, heroCfgId string, num int32) (hero *pb.DBHero, code pb.ErrorCode) {
var err error
hero, err = this.modelHero.createHeroOverlying(session.GetUserId(), heroCfgId, num)
if err == nil {
@ -272,7 +272,7 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]
if num == 0 { // 数量为0 不做处理
continue
}
if hero, code = this.CreateRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success {
if hero, code = this.createRepeatHero(session, heroCfgId, num); code != pb.ErrorCode_Success {
this.Errorf("create hero %s failed", heroCfgId)
return
}

View File

@ -42,16 +42,16 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MlineChallenge
}
}
if curChapter == nil { // 校验是不是新的数据
preStage := this.module.configure.GetPreMainChapter(req.StageId) // 新章节数据校验
preStageConf := this.module.configure.GetMainStageConf(preStage)
if stageConf == nil { // 配置文件校验
//preStage := this.module.configure.GetMainStageConf(stageConf.Previoustage) // 新章节数据校验
preStageConf := this.module.configure.GetMainStageConf(stageConf.Previoustage)
if preStageConf == nil { // 配置文件校验
code = pb.ErrorCode_MainlineNotFindChapter
return
}
for _, v := range list {
if preStageConf.CaptainId == v.ChapterId { // 有上一章节数据
if _, ok := v.Star[v.StageId]; ok {
if preStageConf.Chapterid == v.ChapterId { // 有上一章节数据
if _, ok := v.Star[preStageConf.Id]; ok {
newData := &pb.DBMline{
Id: primitive.NewObjectID().Hex(),
Uid: session.GetUserId(),
@ -62,22 +62,22 @@ func (this *apiComp) Challenge(session comm.IUserSession, req *pb.MlineChallenge
Award: map[int32]bool{},
Ps: map[int32]int32{},
}
curChapter = newData
this.module.modelMline.addNewChapter(session.GetUserId(), newData)
break
}
}
}
}
if curChapter == nil {
code = pb.ErrorCode_MainlineNotFindChapter
return
}
if v1, ok := curChapter.Ps[req.StageId]; ok && v1 == 0 {
if v, ok := curChapter.Ps[req.StageId]; ok && v > 0 {
if v != 0 { // 扣1点
if code = this.module.ConsumeRes(session, stageConf.PsMg, true); code != pb.ErrorCode_Success { // 扣1点
return
}
if code = this.module.ConsumeRes(session, stageConf.PsMg, true); code != pb.ErrorCode_Success { // 扣1点
return
}
} else {
for _, v := range stageConf.PsConsume {
if v.A == "attr" && v.T == "ps" {

View File

@ -140,24 +140,3 @@ func (this *configureComp) GetAllStageByChapterID(chapterID int32) (stage []int3
}
return
}
// gm 专用
func (this *configureComp) GetGMChapter(chapterID, itype int32) (d map[int32][]int32) {
// var d map[int32][]int32
d = make(map[int32][]int32, 0)
if v, err := this.GetConfigure(game_mainstage); err == nil {
if configure, ok := v.(*cfg.GameMainStage); ok {
for _, v1 := range configure.GetDataList() {
if v1.Episodetype == itype && v1.Id <= chapterID {
//chapter = append(chapter, v1.Id)
stage := this.GetAllStageByChapterID(v1.Id)
if len(stage) > 0 {
d[v1.Id] = stage
}
}
}
}
}
return
}

View File

@ -90,37 +90,44 @@ func (this *Mline) CheckPoint(uid string) bool {
}
// 参数 难度 + 章节id
func (this *Mline) ModifyMlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode) {
func (this *Mline) ModifyMlineDataByNanduID(session comm.IUserSession, id int32) (code pb.ErrorCode) {
var del []string
list, err := this.modelMline.getMainlineList(uid)
list, err := this.modelMline.getMainlineList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
for _, v := range list {
if v.CType == nandu {
del = append(del, v.Id)
}
del = append(del, v.Id)
}
// 清除
this.modelMline.cleanChapterDataById(uid, del...)
d := this.configure.GetGMChapter(id, nandu)
for k, v := range d {
newData := &pb.DBMline{
Id: primitive.NewObjectID().Hex(),
Uid: uid,
CType: nandu,
ChapterId: k,
StageId: 0,
Star: map[int32]int32{},
Award: map[int32]bool{},
Ps: map[int32]int32{},
}
for _, v1 := range v {
newData.Star[v1] = 3 // gm 全给3星
}
this.modelMline.addNewChapter(uid, newData)
this.modelMline.cleanChapterDataById(session.GetUserId(), del...)
connf := this.configure.GetMainStageConf(id)
if connf == nil {
return
}
_data := this.configure.GetAllChapterID()
for _, v := range _data {
if v <= connf.Chapterid {
newData := &pb.DBMline{
Id: primitive.NewObjectID().Hex(),
Uid: session.GetUserId(),
CType: connf.Episodetype,
ChapterId: v,
StageId: id,
Star: map[int32]int32{},
Award: map[int32]bool{},
Ps: map[int32]int32{},
}
stageConf := this.configure.GetAllStageByChapterID(v)
for _, v := range stageConf {
newData.Star[v] = 3
}
this.modelMline.addNewChapter(session.GetUserId(), newData)
}
}
return
}
func (this *Mline) GetUsermLineData(uid string, chapterType int32) (chapterId int32) {