Merge branch 'dev' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
8a25ca7d2d
@ -46,6 +46,7 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.EntertainGetList
|
|||||||
}
|
}
|
||||||
this.module.model.modifyEntertainmList(session.GetUserId(), update)
|
this.module.model.modifyEntertainmList(session.GetUserId(), update)
|
||||||
}
|
}
|
||||||
|
|
||||||
session.SendMsg(string(this.module.GetType()), "getlist", &pb.EntertainGetListResp{
|
session.SendMsg(string(this.module.GetType()), "getlist", &pb.EntertainGetListResp{
|
||||||
Data: list,
|
Data: list,
|
||||||
})
|
})
|
||||||
|
@ -14,7 +14,6 @@ func (this *apiComp) RankCheck(session comm.IUserSession, req *pb.EntertainRankR
|
|||||||
// /排行榜获取
|
// /排行榜获取
|
||||||
func (this *apiComp) Rank(session comm.IUserSession, req *pb.EntertainRankReq) (errdata *pb.ErrorData) {
|
func (this *apiComp) Rank(session comm.IUserSession, req *pb.EntertainRankReq) (errdata *pb.ErrorData) {
|
||||||
var (
|
var (
|
||||||
info *pb.XxlPlayer
|
|
||||||
uids []string
|
uids []string
|
||||||
ranks []*pb.DBXXLData
|
ranks []*pb.DBXXLData
|
||||||
players []*pb.XxlPlayer
|
players []*pb.XxlPlayer
|
||||||
@ -24,14 +23,7 @@ func (this *apiComp) Rank(session comm.IUserSession, req *pb.EntertainRankReq) (
|
|||||||
if errdata = this.RankCheck(session, req); errdata != nil {
|
if errdata = this.RankCheck(session, req); errdata != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if info, err = this.module.model.queryXxlPlayer(session.GetUserId()); err != nil {
|
|
||||||
errdata = &pb.ErrorData{
|
|
||||||
Code: pb.ErrorCode_DBError,
|
|
||||||
Title: pb.ErrorCode_DBError.ToString(),
|
|
||||||
Message: err.Error(),
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
if uids, err = this.module.modelRank.queryRankUser(); err != nil {
|
if uids, err = this.module.modelRank.queryRankUser(); err != nil {
|
||||||
errdata = &pb.ErrorData{
|
errdata = &pb.ErrorData{
|
||||||
Code: pb.ErrorCode_DBError,
|
Code: pb.ErrorCode_DBError,
|
||||||
@ -58,9 +50,6 @@ func (this *apiComp) Rank(session comm.IUserSession, req *pb.EntertainRankReq) (
|
|||||||
Consumeexp: v.Consumeexp,
|
Consumeexp: v.Consumeexp,
|
||||||
Maxsocre: v.Maxsocre,
|
Maxsocre: v.Maxsocre,
|
||||||
}
|
}
|
||||||
if session.GetUserId() == v.Uinfo.Uid && info.Rank != rank {
|
|
||||||
info.Rank = rank
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
session.SendMsg(string(this.module.GetType()), "rank", &pb.EntertainRankResp{Players: players})
|
session.SendMsg(string(this.module.GetType()), "rank", &pb.EntertainRankResp{Players: players})
|
||||||
return
|
return
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
package entertainment
|
package entertainment
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
|
||||||
"fmt"
|
|
||||||
"go_dreamfactory/comm"
|
"go_dreamfactory/comm"
|
||||||
"go_dreamfactory/lego/core"
|
"go_dreamfactory/lego/core"
|
||||||
"go_dreamfactory/lego/sys/mgo"
|
"go_dreamfactory/lego/sys/mgo"
|
||||||
"go_dreamfactory/modules"
|
"go_dreamfactory/modules"
|
||||||
"go_dreamfactory/pb"
|
"go_dreamfactory/pb"
|
||||||
"go_dreamfactory/sys/db"
|
|
||||||
"go_dreamfactory/utils"
|
"go_dreamfactory/utils"
|
||||||
|
|
||||||
"go.mongodb.org/mongo-driver/bson/primitive"
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
||||||
@ -58,29 +55,15 @@ func (this *modelComp) queryXxlPlayer(uId string) (rst *pb.XxlPlayer, err error)
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) {
|
func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) {
|
||||||
var (
|
|
||||||
dbModel *db.DBModel
|
|
||||||
)
|
|
||||||
result = &pb.DBXXLData{
|
result = &pb.DBXXLData{
|
||||||
|
|
||||||
Reward: map[int32]int32{},
|
Reward: map[int32]int32{},
|
||||||
Card: map[string]int32{},
|
Card: map[string]int32{},
|
||||||
Skill: map[int32]int32{},
|
Skill: map[int32]int32{},
|
||||||
}
|
}
|
||||||
if db.IsCross() {
|
|
||||||
if tag, _, b := utils.UIdSplit(uid); b {
|
err = this.Get(uid, result)
|
||||||
if conn, err := db.ServerDBConn(tag); err == nil {
|
|
||||||
dbModel = db.NewDBModel(comm.TableEntertainm, conn)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
err = errors.New(fmt.Sprintf("split uid err: %s", uid))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if dbModel == nil {
|
|
||||||
err = this.Get(uid, result)
|
|
||||||
} else {
|
|
||||||
err = dbModel.Get(uid, result)
|
|
||||||
}
|
|
||||||
|
|
||||||
if mongo.ErrNoDocuments == err { // 没有数据直接创建新的数据
|
if mongo.ErrNoDocuments == err { // 没有数据直接创建新的数据
|
||||||
result.Id = primitive.NewObjectID().Hex()
|
result.Id = primitive.NewObjectID().Hex()
|
||||||
@ -98,29 +81,11 @@ func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err
|
|||||||
for _, v := range this.module.configure.GetInitGameConsumeSkill() {
|
for _, v := range this.module.configure.GetInitGameConsumeSkill() {
|
||||||
result.Skill[v] = 1
|
result.Skill[v] = 1
|
||||||
}
|
}
|
||||||
if dbModel == nil {
|
err = this.Add(uid, result)
|
||||||
err = this.Add(uid, result)
|
|
||||||
} else {
|
|
||||||
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 {
|
||||||
var (
|
return this.Change(uid, data)
|
||||||
err error
|
|
||||||
)
|
|
||||||
if db.IsCross() {
|
|
||||||
if tag, _, b := utils.UIdSplit(uid); b {
|
|
||||||
if conn, err := db.ServerDBConn(tag); err == nil {
|
|
||||||
dbModel := db.NewDBModel(comm.TableEntertainm, conn)
|
|
||||||
err = dbModel.Change(uid, data)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
err = this.Change(uid, data)
|
|
||||||
}
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,9 @@ func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
|
|||||||
menbersCmd []*redis.IntCmd = make([]*redis.IntCmd, len(users))
|
menbersCmd []*redis.IntCmd = make([]*redis.IntCmd, len(users))
|
||||||
rank int64
|
rank int64
|
||||||
)
|
)
|
||||||
|
if len(users) == 0 {
|
||||||
|
return
|
||||||
|
}
|
||||||
menbers = make([]*redis.Z, len(users))
|
menbers = make([]*redis.Z, len(users))
|
||||||
for i, v := range users {
|
for i, v := range users {
|
||||||
menbers[i] = &redis.Z{Score: float64(v.Consumeexp), Member: v.Uinfo.Uid}
|
menbers[i] = &redis.Z{Score: float64(v.Consumeexp), Member: v.Uinfo.Uid}
|
||||||
|
@ -541,6 +541,7 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
res []*cfg.Gameatn
|
res []*cfg.Gameatn
|
||||||
lostPlayer *pb.PlayerData // 输的玩家
|
lostPlayer *pb.PlayerData // 输的玩家
|
||||||
box *pb.BoxData // 是否可以获得宝箱奖励
|
box *pb.BoxData // 是否可以获得宝箱奖励
|
||||||
|
pl []*pb.XxlPlayer
|
||||||
)
|
)
|
||||||
if winner == nil {
|
if winner == nil {
|
||||||
if this.player1.Score < this.player2.Score {
|
if this.player1.Score < this.player2.Score {
|
||||||
@ -571,6 +572,13 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
list.Consumeexp += v.N
|
list.Consumeexp += v.N
|
||||||
update["consumeexp"] = list.Consumeexp
|
update["consumeexp"] = list.Consumeexp
|
||||||
winner.Consumeexp = list.Consumeexp
|
winner.Consumeexp = list.Consumeexp
|
||||||
|
if list.Consumeexp > list.Maxconsumeexp { // 写最高积分
|
||||||
|
list.Maxconsumeexp = list.Consumeexp
|
||||||
|
update["maxconsumeexp"] = list.Maxconsumeexp
|
||||||
|
}
|
||||||
|
if list.Maxsocre < winner.Score {
|
||||||
|
update["maxsocre"] = list.Maxsocre
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
res = append(res, v)
|
res = append(res, v)
|
||||||
}
|
}
|
||||||
@ -597,6 +605,25 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.module.model.modifyEntertainmList(winner.Userinfo.Uid, update)
|
this.module.model.modifyEntertainmList(winner.Userinfo.Uid, update)
|
||||||
|
if user, err := this.module.ModuleUser.GetUser(winner.Userinfo.Uid); err == nil {
|
||||||
|
p := &pb.XxlPlayer{
|
||||||
|
Uinfo: &pb.BaseUserInfo{
|
||||||
|
Uid: user.Uid,
|
||||||
|
Sid: user.Sid,
|
||||||
|
Name: user.Name,
|
||||||
|
Gender: user.Gender,
|
||||||
|
Skin: user.CurSkin,
|
||||||
|
Aframe: user.Curaframe,
|
||||||
|
Title: user.Curtitle,
|
||||||
|
Lv: user.Lv,
|
||||||
|
},
|
||||||
|
Maxconsumeexp: list.Maxconsumeexp,
|
||||||
|
Consumeexp: list.Consumeexp,
|
||||||
|
Maxsocre: list.Maxsocre,
|
||||||
|
}
|
||||||
|
pl = append(pl, p)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if lostPlayer.Userinfo.Uid != "999" {
|
if lostPlayer.Userinfo.Uid != "999" {
|
||||||
if conf, err := this.module.configure.GetGameConsumeHero(lostPlayer.Cardid); err == nil {
|
if conf, err := this.module.configure.GetGameConsumeHero(lostPlayer.Cardid); err == nil {
|
||||||
@ -625,13 +652,36 @@ func (this *Room) GameOver(winner *pb.PlayerData) (errdata *pb.ErrorData) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if list.Maxsocre < winner.Score { // 单局最大积分
|
||||||
|
update["maxsocre"] = list.Maxsocre
|
||||||
|
}
|
||||||
if len(update) > 0 {
|
if len(update) > 0 {
|
||||||
this.module.model.modifyEntertainmList(lostPlayer.Userinfo.Uid, update)
|
this.module.model.modifyEntertainmList(lostPlayer.Userinfo.Uid, update)
|
||||||
}
|
}
|
||||||
|
if user, err := this.module.ModuleUser.GetUser(winner.Userinfo.Uid); err == nil {
|
||||||
|
p := &pb.XxlPlayer{
|
||||||
|
Uinfo: &pb.BaseUserInfo{
|
||||||
|
Uid: user.Uid,
|
||||||
|
Sid: user.Sid,
|
||||||
|
Name: user.Name,
|
||||||
|
Gender: user.Gender,
|
||||||
|
Skin: user.CurSkin,
|
||||||
|
Aframe: user.Curaframe,
|
||||||
|
Title: user.Curtitle,
|
||||||
|
Lv: user.Lv,
|
||||||
|
},
|
||||||
|
Maxconsumeexp: list.Maxconsumeexp,
|
||||||
|
Consumeexp: list.Consumeexp,
|
||||||
|
Maxsocre: list.Maxsocre,
|
||||||
|
}
|
||||||
|
pl = append(pl, p)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新排行榜数据
|
||||||
|
this.module.modelRank.updateXxlRank(pl...)
|
||||||
// 修改房间状态
|
// 修改房间状态
|
||||||
this.Status = 2
|
this.Status = 2
|
||||||
this.module.SendMsgSyncToSession(string(this.module.GetType()), "gameover", &pb.EntertainGameOverPush{
|
this.module.SendMsgSyncToSession(string(this.module.GetType()), "gameover", &pb.EntertainGameOverPush{
|
||||||
|
Loading…
Reference in New Issue
Block a user