三消获取守护者关联卡片资源
This commit is contained in:
parent
e3873e4f6e
commit
b867c54c4e
@ -37,15 +37,15 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "43003",
|
"key": "44003",
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"herocolor": 1,
|
"herocolor": 1,
|
||||||
"herotitel": {
|
"herotitel": {
|
||||||
"key": "consume_consume_hero_herotitel_02",
|
"key": "consume_consume_hero_herotitel_02",
|
||||||
"text": "酒吧新人"
|
"text": "酒吧新人"
|
||||||
},
|
},
|
||||||
"hero": 43003,
|
"hero": 44003,
|
||||||
"img": "tx_js_43003",
|
"img": "tx_js_44003",
|
||||||
"intr": {
|
"intr": {
|
||||||
"key": "consume_consume_hero_intr_02",
|
"key": "consume_consume_hero_intr_02",
|
||||||
"text": "匹诺曹的毒苹果酒吧桌游卡"
|
"text": "匹诺曹的毒苹果酒吧桌游卡"
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -3563,7 +3563,7 @@
|
|||||||
"MaxEmitTimes": 0,
|
"MaxEmitTimes": 0,
|
||||||
"MaxEmitTimesInRound": 0,
|
"MaxEmitTimesInRound": 0,
|
||||||
"Callback": [
|
"Callback": [
|
||||||
124008121
|
224008114
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
"go_dreamfactory/sys/configure"
|
"go_dreamfactory/sys/configure"
|
||||||
|
"go_dreamfactory/sys/db"
|
||||||
"go_dreamfactory/utils"
|
"go_dreamfactory/utils"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@ -41,13 +42,25 @@ func (this *modelComp) queryPlayers(uIds []string) (result []*pb.DBXXLData, err
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) {
|
func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) {
|
||||||
|
var (
|
||||||
|
conn *db.DBConn
|
||||||
|
dbModel *db.DBModel
|
||||||
|
)
|
||||||
|
if db.IsCross() {
|
||||||
|
dbModel = this.DBModel
|
||||||
|
} else {
|
||||||
|
if conn, err = db.Cross(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
dbModel = db.NewDBModelByExpired(db.CrossTag(), this.TableName, conn)
|
||||||
|
}
|
||||||
|
|
||||||
result = &pb.DBXXLData{
|
result = &pb.DBXXLData{
|
||||||
Card: map[string]int32{},
|
Card: map[string]int32{},
|
||||||
Skill: map[string]int32{},
|
Skill: map[string]int32{},
|
||||||
}
|
}
|
||||||
|
|
||||||
err = this.Get(uid, result)
|
err = dbModel.Get(uid, result)
|
||||||
|
|
||||||
if mongo.ErrNoDocuments == err { // 没有数据直接创建新的数据
|
if mongo.ErrNoDocuments == err { // 没有数据直接创建新的数据
|
||||||
result.Id = primitive.NewObjectID().Hex()
|
result.Id = primitive.NewObjectID().Hex()
|
||||||
@ -83,11 +96,25 @@ func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err
|
|||||||
Lv: user.Lv,
|
Lv: user.Lv,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
err = this.Add(uid, result)
|
err = dbModel.Add(uid, result)
|
||||||
}
|
}
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//支持本服数据变更操作
|
||||||
func (this *modelComp) modifyEntertainmList(uid string, data map[string]interface{}) error {
|
func (this *modelComp) modifyEntertainmList(uid string, data map[string]interface{}) error {
|
||||||
return this.Change(uid, data)
|
var (
|
||||||
|
conn *db.DBConn
|
||||||
|
dbModel *db.DBModel
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
if db.IsCross() {
|
||||||
|
dbModel = this.DBModel
|
||||||
|
} else {
|
||||||
|
if conn, err = db.Cross(); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
dbModel = db.NewDBModelByExpired(db.CrossTag(), this.TableName, conn)
|
||||||
|
}
|
||||||
|
return dbModel.Change(uid, data)
|
||||||
}
|
}
|
||||||
|
@ -71,23 +71,20 @@ func (this *Entertainment) Start() (err error) {
|
|||||||
func (this *Entertainment) AddXxlCard(session comm.IUserSession, cards map[string]int32, bPush bool) (errdata *pb.ErrorData) {
|
func (this *Entertainment) AddXxlCard(session comm.IUserSession, cards map[string]int32, bPush bool) (errdata *pb.ErrorData) {
|
||||||
|
|
||||||
var (
|
var (
|
||||||
result *pb.DBXXLData
|
result *pb.DBXXLData
|
||||||
err error
|
err error
|
||||||
|
curCards map[string]int32 // 过滤不存在的资源
|
||||||
)
|
)
|
||||||
for k := range cards {
|
curCards = make(map[string]int32, 0)
|
||||||
if _, err := this.model.module.configure.GetGameConsumeHero(k); err != nil {
|
for k, v := range cards {
|
||||||
errdata = &pb.ErrorData{
|
if _, err := this.model.module.configure.GetGameConsumeHero(k); err == nil {
|
||||||
Code: pb.ErrorCode_ConfigNoFound,
|
curCards[k] = v
|
||||||
Title: pb.ErrorCode_ConfigNoFound.ToString(),
|
|
||||||
Message: err.Error(),
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if result, err = this.model.getEntertainmList(session.GetUserId()); err != nil {
|
if result, err = this.model.getEntertainmList(session.GetUserId()); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for k, v := range cards {
|
for k, v := range curCards {
|
||||||
result.Card[k] += v
|
result.Card[k] += v
|
||||||
}
|
}
|
||||||
this.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{
|
this.model.modifyEntertainmList(session.GetUserId(), map[string]interface{}{
|
||||||
|
@ -282,11 +282,17 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
res [][]*cfg.Gameatn
|
res [][]*cfg.Gameatn
|
||||||
add []*pb.DBHero
|
add []*pb.DBHero
|
||||||
allres []*cfg.Gameatn
|
allres []*cfg.Gameatn
|
||||||
|
bImitate bool
|
||||||
)
|
)
|
||||||
if res, add, err = this.module.modelHero.ImitateHeros(session, szCards, req.DrawType); err == nil {
|
if req.DrawType == 1 {
|
||||||
|
bImitate = true
|
||||||
|
} else {
|
||||||
|
bImitate = false
|
||||||
|
}
|
||||||
|
if res, add, err = this.module.modelHero.ImitateHeros(session, szCards, bImitate); err == nil {
|
||||||
for _, v := range res {
|
for _, v := range res {
|
||||||
var atno []*pb.UserAtno
|
var atno []*pb.UserAtno
|
||||||
for _, v1 := range v {
|
for _, v1 := range v {
|
||||||
|
@ -61,7 +61,7 @@ func (this *apiComp) SelectCard(session comm.IUserSession, req *pb.HeroSelectCar
|
|||||||
add []*pb.DBHero
|
add []*pb.DBHero
|
||||||
allres []*cfg.Gameatn
|
allres []*cfg.Gameatn
|
||||||
)
|
)
|
||||||
if res, add, err = this.module.modelHero.ImitateHeros(session, curSzCard, 2); err == nil {
|
if res, add, err = this.module.modelHero.ImitateHeros(session, curSzCard, false); err == nil {
|
||||||
for _, v := range res {
|
for _, v := range res {
|
||||||
var atno []*pb.UserAtno
|
var atno []*pb.UserAtno
|
||||||
for _, v1 := range v {
|
for _, v1 := range v {
|
||||||
|
@ -888,9 +888,12 @@ func (this *ModelHero) CheckDrawCardRes(session comm.IUserSession, drawConf *cfg
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 模拟获得英雄
|
// 模拟获得英雄 (bImitate : true 表示模拟获得 并不发英雄)
|
||||||
func (this *ModelHero) ImitateHeros(session comm.IUserSession, cids []string, itype int32) (addres [][]*cfg.Gameatn, add []*pb.DBHero, err error) {
|
func (this *ModelHero) ImitateHeros(session comm.IUserSession, cids []string, bImitate bool) (addres [][]*cfg.Gameatn, add []*pb.DBHero, err error) {
|
||||||
|
var (
|
||||||
|
szCard map[string]int32
|
||||||
|
)
|
||||||
|
szCard = make(map[string]int32)
|
||||||
heros := make([]*pb.DBHero, 0)
|
heros := make([]*pb.DBHero, 0)
|
||||||
uid := session.GetUserId()
|
uid := session.GetUserId()
|
||||||
list := this.module.ModuleTools.GetGlobalConf().Moonshopmoney
|
list := this.module.ModuleTools.GetGlobalConf().Moonshopmoney
|
||||||
@ -922,7 +925,7 @@ func (this *ModelHero) ImitateHeros(session comm.IUserSession, cids []string, it
|
|||||||
this.module.Errorf("not found hero configID:%s", heroCfgId)
|
this.module.Errorf("not found hero configID:%s", heroCfgId)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
szCard[heroCfgId] += 1 //统计卡片数量
|
||||||
for _, obj := range heros {
|
for _, obj := range heros {
|
||||||
if obj.HeroID == heroCfgId {
|
if obj.HeroID == heroCfgId {
|
||||||
hero = obj
|
hero = obj
|
||||||
@ -937,7 +940,7 @@ func (this *ModelHero) ImitateHeros(session comm.IUserSession, cids []string, it
|
|||||||
}
|
}
|
||||||
|
|
||||||
if bFirst { // 没有当前英雄
|
if bFirst { // 没有当前英雄
|
||||||
if itype == 1 {
|
if bImitate {
|
||||||
hero = this.InitHero(uid, heroCfgId)
|
hero = this.InitHero(uid, heroCfgId)
|
||||||
} else {
|
} else {
|
||||||
hero, err = this.initHeroOverlying(uid, heroCfgId, 1)
|
hero, err = this.initHeroOverlying(uid, heroCfgId, 1)
|
||||||
@ -1001,5 +1004,12 @@ func (this *ModelHero) ImitateHeros(session comm.IUserSession, cids []string, it
|
|||||||
addres = append(addres, res)
|
addres = append(addres, res)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !bImitate { // 获得三消卡片资源数据
|
||||||
|
go this.module.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
|
||||||
|
|
||||||
|
this.module.ModuleEntertain.AddXxlCard(session, szCard, true)
|
||||||
|
|
||||||
|
})
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -246,6 +246,9 @@ func (this *Hero) CreateRepeatHeros(session comm.IUserSession, heros map[string]
|
|||||||
go this.moduleFetter.AddHerosFetterData(session.GetUserId(), szAddHero)
|
go this.moduleFetter.AddHerosFetterData(session.GetUserId(), szAddHero)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
go this.AsynHandleSession(session.Clone(), func(session comm.IUserSession) {
|
||||||
|
this.ModuleEntertain.AddXxlCard(session, heros, bPush)
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@ type GameSkillAfteratkData struct {
|
|||||||
Order string
|
Order string
|
||||||
Limit int32
|
Limit int32
|
||||||
ExecuteCnt int32
|
ExecuteCnt int32
|
||||||
|
TriggerAnim string
|
||||||
Type int32
|
Type int32
|
||||||
Argu []int32
|
Argu []int32
|
||||||
FollowSK []int32
|
FollowSK []int32
|
||||||
@ -57,6 +58,7 @@ func (_v *GameSkillAfteratkData)Deserialize(_buf map[string]interface{}) (err er
|
|||||||
{ var _ok_ bool; if _v.Order, _ok_ = _buf["Order"].(string); !_ok_ { err = errors.New("Order error"); return } }
|
{ var _ok_ bool; if _v.Order, _ok_ = _buf["Order"].(string); !_ok_ { err = errors.New("Order error"); return } }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Limit"].(float64); !_ok_ { err = errors.New("Limit error"); return }; _v.Limit = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Limit"].(float64); !_ok_ { err = errors.New("Limit error"); return }; _v.Limit = int32(_tempNum_) }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ExecuteCnt"].(float64); !_ok_ { err = errors.New("ExecuteCnt error"); return }; _v.ExecuteCnt = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["ExecuteCnt"].(float64); !_ok_ { err = errors.New("ExecuteCnt error"); return }; _v.ExecuteCnt = int32(_tempNum_) }
|
||||||
|
{ var _ok_ bool; if _v.TriggerAnim, _ok_ = _buf["TriggerAnim"].(string); !_ok_ { err = errors.New("TriggerAnim error"); return } }
|
||||||
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Type"].(float64); !_ok_ { err = errors.New("Type error"); return }; _v.Type = int32(_tempNum_) }
|
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Type"].(float64); !_ok_ { err = errors.New("Type error"); return }; _v.Type = int32(_tempNum_) }
|
||||||
{
|
{
|
||||||
var _arr_ []interface{}
|
var _arr_ []interface{}
|
||||||
|
Loading…
Reference in New Issue
Block a user