This commit is contained in:
liwei1dao 2023-02-09 15:15:17 +08:00
commit e702895547
8 changed files with 262 additions and 28 deletions

View File

@ -37,7 +37,7 @@
},
"ips": "10.0.0.238:7891",
"debug": true,
"sid": "dfz"
"sid": "dfz01"
},
{
"index": 5,

View File

@ -539,6 +539,10 @@
20,
30
],
"generaltp": "500000"
"generaltp": {
"a": "item",
"t": "500000",
"n": 0
}
}
]

View File

@ -9,6 +9,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -31,6 +35,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -53,6 +61,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -75,6 +87,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -97,6 +113,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -119,6 +139,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -141,6 +165,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -163,6 +191,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -185,6 +217,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -207,6 +243,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -229,6 +269,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -251,6 +295,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -273,6 +321,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -295,6 +347,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -317,6 +373,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -339,6 +399,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -361,6 +425,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -383,6 +451,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -405,6 +477,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -427,6 +503,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -449,6 +529,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -471,6 +555,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -493,6 +581,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -515,6 +607,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -537,6 +633,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -559,6 +659,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -581,6 +685,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -603,6 +711,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -647,6 +759,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -669,6 +785,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -691,6 +811,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -713,6 +837,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -735,6 +863,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -757,6 +889,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -779,6 +915,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -801,6 +941,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -823,6 +967,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -845,6 +993,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -867,6 +1019,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -889,6 +1045,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -911,6 +1071,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -933,6 +1097,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -955,6 +1123,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -977,6 +1149,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -999,6 +1175,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1021,6 +1201,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1109,6 +1293,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1131,6 +1319,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1153,6 +1345,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1175,6 +1371,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1197,6 +1397,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1219,6 +1423,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1241,6 +1449,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1263,6 +1475,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1285,6 +1501,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1307,6 +1527,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",
@ -1329,6 +1553,10 @@
{
"key": 1,
"param": 1
},
{
"key": 2,
"param": 1100101
}
],
"optional": "",

View File

@ -90,7 +90,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable"] = heroRecord.Drawcount
szStar = append(szStar, star)
@ -106,7 +106,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable"] = heroRecord.Drawcount
szStar = append(szStar, star)
@ -130,7 +130,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
if heroRecord.Inevitable == 0 && heroRecord.Drawcount > iStart && heroRecord.Drawcount < iEnd && iEnd >= iStart {
n, _ := rand.Int(rand.Reader, big.NewInt(int64(iEnd-iStart)))
if n.Int64() < 1 { // 抽中
starIndex = star
starIndex = star - 3
heroRecord.Inevitable = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
@ -151,7 +151,7 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
}
// 保底情况
if heroRecord.Drawcount == iEnd && heroRecord.Inevitable == 0 {
starIndex = star
starIndex = star - 3
heroRecord.Inevitable1 = heroRecord.Drawcount
update["inevitable1"] = heroRecord.Drawcount
szStar = append(szStar, star)
@ -173,28 +173,28 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
}
heroRecord.Star4++ // 4星保底数量+1
heroRecord.Star5++ // 5星保底数量+1
if starIndex == 4 {
if starIndex == 1 {
heroRecord.Star4 = 0
star4Max++
} else if starIndex == 5 {
} else if starIndex == 2 {
star5Max++
heroRecord.Star5 = 0
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max { // 达到10连抽最大(4,5星)数量 直接给三星
starIndex = 3
starIndex = 0
} else {
// 普通卡池保底
if cfgDraw.DrawFloorStar4 <= heroRecord.Star4 {
heroRecord.Star4 = 0
starIndex = 4
starIndex = 1
}
if cfgDraw.DrawFloorStar5 <= heroRecord.Star5 {
heroRecord.Star5 = 0
starIndex = 5
starIndex = 2
}
}
szStar = append(szStar, starIndex)
szStar = append(szStar, starIndex+3)
if len(szStar) >= int(req.DrawCount) {
break
}
@ -252,13 +252,13 @@ func (this *apiComp) DrawCard(session comm.IUserSession, req *pb.HeroDrawCardReq
starWeight := []int32{cfgDraw.CampPoolStar3, cfgDraw.CampPoolStar4, cfgDraw.CampPoolStar5}
starIndex := this.module.modelHero.GetRandW(starWeight)
if starIndex == 4 {
if starIndex == 1 {
star4Max++
} else if starIndex == 5 {
} else if starIndex == 2 {
star5Max++
}
if star4Max >= cfgDraw.Draw10Star4Max || star5Max >= cfgDraw.Draw10Star5Max {
starIndex = 3
starIndex = 0
}
szStar = append(szStar, starIndex)
if len(szStar) >= int(req.DrawCount) {

View File

@ -87,23 +87,21 @@ func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLe
// 消耗指定的天赋点数
t := this.module.configure.GetHeroTalentBoxItem(talent.HeroId)
if t != "" && talentConf.Point > 0 {
curItemCount := int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), t))
if curItemCount < talentConf.Point { // 如果数量不够 则取找其他物品替代
leftCount := talentConf.Point - curItemCount // 需要其他物品的数量
generaltp := this.module.configure.GetGlobalConf().Generaltp
otherCount := int32(this.module.ModuleItems.QueryItemAmount(session.GetUserId(), generaltp))
if leftCount <= otherCount { // 其他物品够扣
point := &cfg.Gameatn{
A: "item",
T: generaltp,
fp := &cfg.Gameatn{
A: generaltp.A,
T: generaltp.T,
N: leftCount,
}
res = append(res, point)
} else { // 其他替代的道具也不足 直接返回
if code = this.module.CheckRes(session, []*cfg.Gameatn{fp}); code != pb.ErrorCode_Success {
code = pb.ErrorCode_ItemsNoEnough
return
}
res = append(res, fp)
} else {
point := &cfg.Gameatn{
A: "item",

View File

@ -624,7 +624,7 @@ func (this *ModelHero) GetRandW(sz []int32) int32 {
for i, v := range sz {
_tmpW += int64(v)
if n.Int64() < _tmpW {
return int32(i) + 3
return int32(i)
}
}
}

View File

@ -103,8 +103,10 @@ func (this *User) GetUser(uid string) (user *pb.DBUser) {
if this.IsCross() {
user, err = this.getRemoteUser(uid)
if err != nil {
this.Errorln("查询远程玩家信息", err)
return nil
}
this.Debug("查询远程玩家信息", log.Field{Key: "uid", Value: uid}, log.Field{Key: "user", Value: user})
} else {
user = this.modelUser.GetUser(uid)
}
@ -129,6 +131,7 @@ func (this *User) getRemoteUser(uid string) (*pb.DBUser, error) {
if err := this.getUserFromRemoteDb(uid, reply); err != nil {
return nil, err
}
this.Debug("远程用户", log.Field{Key: "uid", Value: uid}, log.Field{Key: "user", Value: reply})
return reply, nil
}
@ -556,6 +559,7 @@ func (this *User) getUserFromRemoteDb(uid string, rsp *pb.DBUser) error {
model := db.NewDBModel(comm.TableUser, 0, conn)
if err := model.Get(uid, rsp); err != nil {
this.Errorln(err)
return err
}
return nil

View File

@ -174,7 +174,7 @@ type GameGlobalData struct {
RotateAngle float32
RotateDizzyTime float32
Moonshopmoney []int32
Generaltp string
Generaltp *Gameatn
}
const TypeId_GameGlobalData = 477542761
@ -737,7 +737,7 @@ func (_v *GameGlobalData)Deserialize(_buf map[string]interface{}) (err error) {
}
}
{ var _ok_ bool; if _v.Generaltp, _ok_ = _buf["generaltp"].(string); !_ok_ { err = errors.New("generaltp error"); return } }
{ var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _buf["generaltp"].(map[string]interface{}); !_ok_ { err = errors.New("generaltp error"); return }; if _v.Generaltp, err = DeserializeGameatn(_x_); err != nil { return } }
return
}