Compare commits

..

No commits in common. "12383a1e20a6a7deadafd55c0723a3f896927dfe" and "5c37af3fe1c4515a79dd04e92865227c6e0b6815" have entirely different histories.

14 changed files with 1292 additions and 1768 deletions

View File

@ -77,29 +77,3 @@
:<08><><18><EFBFBD><E998BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>俛樗(<28><EFBFBD>%0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P :<08><><18><EFBFBD><E998BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>俛樗(<28><EFBFBD>%0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P
;<08><><18><E99B89><E285A4><EFBFBD><EFBFBD> <20><><EFBFBD>(<28>蓁〆0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P ;<08><><18><E99B89><E285A4><EFBFBD><EFBFBD> <20><><EFBFBD>(<28>蓁〆0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P
;<08><><18>跡球<E8B7A1><E79083><EFBFBD><EFBFBD> <20><EFBFBD><E58784>:(<28><><EFBFBD><EFBFBD><EFBFBD>0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P ;<08><><18>跡球<E8B7A1><E79083><EFBFBD><EFBFBD> <20><EFBFBD><E58784>:(<28><><EFBFBD><EFBFBD><EFBFBD>0d8<64>@<40><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H璞<48><E7929E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P
ÑÛ·€›îÀ–± €ÚÄ XÈ` ÝŒ
ÒÛ·€ŽÎ€áë €„¯_XÈ`À¤ÿ
ÓÛ·€Æ†<C386>€åšw €”ëÜ`À¶üš
ÔÛ·€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
᩸€›îÀ–± €ÚÄ XÈ` ÝŒ
⩸€ŽÎ€áë €„¯_XÈ`À¤ÿ
㩸€Æ†<C386>€åšw €”ëÜ`À¶üš
䩸€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
ñ÷¸€›îÀ–± €ÚÄ XÈ` ÝŒ
ò÷¸€ŽÎ€áë €„¯_XÈ`À¤ÿ
ó÷¸€Æ†<C386>€åšw €”ëÜ`À¶üš
ô÷¸€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
<08>ƹ€›îÀ–± €„¯_XÈ` ÝŒ
‚ƹ€Æ†<C386>€åšw €”ëÜ`À¶üš
ƒÆ¹€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
‘”º€›îÀ–± €„¯_XÈ` ÝŒ
’”º€Æ†<C386>€åšw €”ëÜ`À¶üš
“”º€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
¡âº€›îÀ–± €ÚÄ XÈ` ÝŒ
¢âº€ŽÎ€áë €„¯_XÈ`À¤ÿ
£âº€Æ†<C386>€åšw €”ëÜ`À¶üš
¤âº€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ
±°»€›îÀ–± €ÚÄ XÈ` ÝŒ
²°»€ŽÎ€áë €„¯_XÈ`À¤ÿ
³°»€Æ†<C386>€åšw €”ëÜ`À¶üš
´°»€Œ<E282AC>ž€Êµî €¨Ö¹`€íøµ

View File

@ -857,214 +857,6 @@
"LowerOdds": -100, "LowerOdds": -100,
"LowerOddsMax": -800, "LowerOddsMax": -800,
"ProfitRate": 20 "ProfitRate": 20
},
{
"Id": 3010001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3010002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3010003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3010004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3020001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3020002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3020003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3020004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3030001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3030002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3030003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3030004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3040001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3040002,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3040003,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3050001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3050002,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3050003,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3060001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3060002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3060003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3060004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
},
{
"Id": 3070001,
"InitValue": 6000000,
"LowerLimit": 5000000,
"UpperLimit": 20000000,
"CtrlRate": 200,
"InitNovicValue": 6500000
},
{
"Id": 3070002,
"InitValue": 60000000,
"LowerLimit": 50000000,
"UpperLimit": 200000000,
"CtrlRate": 200,
"InitNovicValue": 65000000
},
{
"Id": 3070003,
"InitValue": 300000000,
"LowerLimit": 250000000,
"UpperLimit": 1000000000,
"CtrlRate": 200,
"InitNovicValue": 325000000
},
{
"Id": 3070004,
"InitValue": 600000000,
"LowerLimit": 500000000,
"UpperLimit": 2000000000,
"CtrlRate": 200,
"InitNovicValue": 650000000
} }
] ]
} }

View File

@ -1,5 +1,5 @@
6с├т├у├ж├в├"║█ю└= 6у├ж├вс├т"║█ю└=
.Ù†Ú†Û†؆"¡<>À„= .Ù†Ú†Û†؆"¡<>À„=
Wс├ы├ш├ь├з├т├у├ж├в" ║█─╜Б Wь├ы├т├у├в├ш├с├ж├з" ║█─╜Б
]з├с├т├у├ь├ы├ж├в├ш├э"╒█Т ]в├ь├ы├з├э├с├т├у├ж├ш"╒█Т

Binary file not shown.

View File

@ -427,7 +427,7 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
//水池设置 //水池设置
coinPoolSetting := base.CoinPoolMgr.GetCoinPoolSetting(sceneEx.Platform, sceneEx.GetGameFreeId(), sceneEx.GroupId) coinPoolSetting := base.CoinPoolMgr.GetCoinPoolSetting(sceneEx.Platform, sceneEx.GetGameFreeId(), sceneEx.GroupId)
//baseRate := coinPoolSetting.GetBaseRate() //基础赔率 //baseRate := coinPoolSetting.GetBaseRate() //基础赔率
ctroRate := coinPoolSetting.GetCtrlRate() //调节赔率 暗税系数 ctroRate := 500 //调节赔率 暗税系数
//if baseRate >= 10000 || baseRate <= 0 || ctroRate < 0 || ctroRate >= 1000 || baseRate+ctroRate > 9900 { //if baseRate >= 10000 || baseRate <= 0 || ctroRate < 0 || ctroRate >= 1000 || baseRate+ctroRate > 9900 {
// logger.Logger.Warnf("AvengersErrorBaseRate [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, baseRate, ctroRate) // logger.Logger.Warnf("AvengersErrorBaseRate [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, baseRate, ctroRate)
// baseRate = 9700 // baseRate = 9700
@ -437,14 +437,14 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
jackpotRate := ctroRate //奖池系数 jackpotRate := ctroRate //奖池系数
logger.Logger.Tracef("AvengersRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate) logger.Logger.Tracef("AvengersRates [%v][%v][%v][%v][%v]", sceneEx.GetGameFreeId(), playerEx.SnId, playerEx.spinID, taxRate, ctroRate)
playerEx.IsFNovice(sceneEx.KeyGameId) //playerEx.IsFNovice(sceneEx.KeyGameId)
isFoolPlayer := playerEx.IsFoolPlayer[sceneEx.KeyGameId] isFoolPlayer := false
var gamePoolCoin int64 var gamePoolCoin int64
if isFoolPlayer { //if isFoolPlayer {
gamePoolCoin = base.CoinPoolMgr.GetNoviceCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额 // gamePoolCoin = base.CoinPoolMgr.GetNoviceCoinPool(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} else { //} else {
gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额 gamePoolCoin = base.CoinPoolMgr.GetCoin(sceneEx.GetGameFreeId(), sceneEx.Platform, sceneEx.GroupId) // 当前水池金额
} //}
prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额 prizeFund := gamePoolCoin - sceneEx.jackpot.VirtualJK // 除去奖池的水池剩余金额
// 奖池参数 // 奖池参数
@ -462,7 +462,7 @@ func (this *SceneStateAvengersStart) OnPlayerOp(s *base.Scene, p *base.Player, o
//p.Statics(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, -totalBetValue, true) //p.Statics(sceneEx.KeyGameId, sceneEx.KeyGamefreeId, -totalBetValue, true)
if !p.IsRob && !sceneEx.Testing { if !p.IsRob && !sceneEx.Testing {
// 推送金币 // 推送金币
sceneEx.PushCoinPool(prizeFundAdd, isFoolPlayer) sceneEx.PushCoinPool(prizeFundAdd, false)
//base.CoinPoolMgr.PushCoin(sceneEx.GetGameFreeId(), sceneEx.GroupId, sceneEx.Platform, int64(float64(totalBetValue)*(float64(10000-ctroRate)/10000.0))) //base.CoinPoolMgr.PushCoin(sceneEx.GetGameFreeId(), sceneEx.GroupId, sceneEx.Platform, int64(float64(totalBetValue)*(float64(10000-ctroRate)/10000.0)))
} }

View File

@ -31,7 +31,6 @@ const (
var CoinPoolMgr = &CoinPoolManager{ var CoinPoolMgr = &CoinPoolManager{
CoinPool: new(sync.Map), CoinPool: new(sync.Map),
ProfitPool: new(sync.Map), ProfitPool: new(sync.Map),
NoviceCoinPool: new(sync.Map),
CoinPoolSetting: make(map[string]*webapi.CoinPoolSetting), CoinPoolSetting: make(map[string]*webapi.CoinPoolSetting),
curRunTime: make(map[string]int64), curRunTime: make(map[string]int64),
publicPond: new(sync.Map), publicPond: new(sync.Map),
@ -56,9 +55,6 @@ type CoinPoolManager struct {
//收益池 //收益池
ProfitPoolDBKey string ProfitPoolDBKey string
ProfitPool *sync.Map ProfitPool *sync.Map
//新手池
NoviceCoinPoolDBKey string
NoviceCoinPool *sync.Map
dirty bool dirty bool
@ -182,20 +178,6 @@ func (this *CoinPoolManager) getCoinPoolCoin(key string) int64 {
return poolCoin return poolCoin
} }
// 获取调控池水位
func (this *CoinPoolManager) getNoviceCoinPoolCoin(key string) int64 {
poolValue, ok := this.NoviceCoinPool.Load(key)
if !ok {
return 0
}
poolCoin, ok := poolValue.(int64)
if !ok {
logger.Logger.Errorf("Error type convert in coinpoolmanager GetNoviceCoin:%v-%v", key, poolValue)
return 0
}
return poolCoin
}
// 减少调控池水位 // 减少调控池水位
// 返回当前水位 // 返回当前水位
func (this *CoinPoolManager) popCoin(key string, coin int64) (bool, int64) { func (this *CoinPoolManager) popCoin(key string, coin int64) (bool, int64) {
@ -228,38 +210,6 @@ func (this *CoinPoolManager) popCoin(key string, coin int64) (bool, int64) {
return true, curValue return true, curValue
} }
// 减少调控池水位
// 返回当前水位
func (this *CoinPoolManager) popNoviceCoin(key string, coin int64) (bool, int64) {
if this.getCoinPoolSetting(key).GetSwitch() == 1 {
return false, 0
}
poolValue, ok := this.NoviceCoinPool.Load(key)
if !ok {
return false, 0
}
poolCoin, ok := poolValue.(int64)
if !ok {
logger.Logger.Errorf("Error type convert in coinpoolmanager popNoviceCoin:%v-%v", key, poolValue)
return false, 0
}
//if poolCoin < coin {
// return false
//}
curValue := poolCoin - coin
if curValue < -99999999 {
curValue = -99999999
}
this.NoviceCoinPool.Store(key, curValue)
this.dirty = true
logger.Logger.Infof("$$$$$$$$新手金币池 %v 取出 %v 金币,现有金币 %v.$$$$$$$$", key, coin, curValue)
return true, curValue
}
// 增加调控池水位 // 增加调控池水位
// 返回当前水位 // 返回当前水位
func (this *CoinPoolManager) pushCoin(key string, coin int64) int64 { func (this *CoinPoolManager) pushCoin(key string, coin int64) int64 {
@ -286,32 +236,6 @@ func (this *CoinPoolManager) pushCoin(key string, coin int64) int64 {
return poolCoin return poolCoin
} }
// 增加调控池水位
// 返回当前水位
func (this *CoinPoolManager) pushNoviceCoin(key string, coin int64) int64 {
if this.getCoinPoolSetting(key).GetSwitch() == 1 {
return 0
}
poolValue, ok := this.NoviceCoinPool.Load(key)
if !ok {
this.NoviceCoinPool.Store(key, coin)
this.dirty = true
logger.Logger.Infof("$$$$$$$$新手金币池 %v 放入 %v 金币,现有金币 %v.$$$$$$$$", key, coin, coin)
return coin
}
poolCoin, ok := poolValue.(int64)
if !ok {
logger.Logger.Errorf("NoviceCoin pool push error type value:%v-%v", key, poolValue)
return 0
}
poolCoin += coin
this.NoviceCoinPool.Store(key, poolCoin)
this.dirty = true
logger.Logger.Infof("$$$$$$$$新手金币池 %v 放入 %v 金币,现有金币 %v.$$$$$$$$", key, coin, poolCoin)
return poolCoin
}
// PopCoin 减少调控池水位 // PopCoin 减少调控池水位
func (this *CoinPoolManager) PopCoin(gameFreeId, groupId int32, platform string, coin int64) bool { func (this *CoinPoolManager) PopCoin(gameFreeId, groupId int32, platform string, coin int64) bool {
if coin == 0 { if coin == 0 {
@ -415,15 +339,7 @@ func (this *CoinPoolManager) UpdateCoinPoolSetting(setting *webapi.CoinPoolSetti
if initValue != 0 { //初始化水池 if initValue != 0 { //初始化水池
_, ok := this.CoinPool.Load(key) _, ok := this.CoinPool.Load(key)
if !ok { if !ok {
this.pushCoin(key, initValue) this.pushCoin(key, int64(initValue))
}
}
// 新手调控池初始化
initValue = setting.GetInitNoviceValue()
if initValue != 0 { //初始化水池
_, ok := this.NoviceCoinPool.Load(key)
if !ok {
this.pushNoviceCoin(key, initValue)
} }
} }
} }
@ -563,18 +479,6 @@ func (this *CoinPoolManager) Init() {
} else { } else {
logger.Logger.Error("Unmarshal coin pool error:", err) logger.Logger.Error("Unmarshal coin pool error:", err)
} }
// 新手调控池
this.NoviceCoinPoolDBKey = fmt.Sprintf("NoviceCoinPoolManager_Srv%v", common.GetSelfSrvId())
data = model.GetStrKVGameData(this.NoviceCoinPoolDBKey)
noviceCoinPool := make(map[string]int64)
err = json.Unmarshal([]byte(data), &noviceCoinPool)
if err == nil {
for key, value := range noviceCoinPool {
this.NoviceCoinPool.Store(key, value)
}
} else {
logger.Logger.Error("Unmarshal novice coin pool error:", err)
}
// 收益池 // 收益池
this.ProfitPoolDBKey = fmt.Sprintf("ProfitPoolManager_Srv%v", common.GetSelfSrvId()) this.ProfitPoolDBKey = fmt.Sprintf("ProfitPoolManager_Srv%v", common.GetSelfSrvId())
data = model.GetStrKVGameData(this.ProfitPoolDBKey) data = model.GetStrKVGameData(this.ProfitPoolDBKey)
@ -621,24 +525,6 @@ func (this *CoinPoolManager) Save(asyn bool) {
} else { } else {
logger.Logger.Error("Marshal coin pool error:", err) logger.Logger.Error("Marshal coin pool error:", err)
} }
// 新手调控池
coinPool = make(map[string]int64)
this.NoviceCoinPool.Range(func(key, value interface{}) bool {
coinPool[key.(string)] = value.(int64)
return true
})
buff, err = json.Marshal(coinPool)
if err == nil {
if asyn {
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
return model.UptStrKVGameData(this.NoviceCoinPoolDBKey, string(buff))
}), nil, "UptStrKVGameData").Start()
} else {
model.UptStrKVGameData(this.NoviceCoinPoolDBKey, string(buff))
}
} else {
logger.Logger.Error("Marshal novice coin pool error:", err)
}
// 收益池 // 收益池
profitPool := make(map[string]int64) profitPool := make(map[string]int64)
this.ProfitPool.Range(func(key, value interface{}) bool { this.ProfitPool.Range(func(key, value interface{}) bool {
@ -734,80 +620,29 @@ func (this *CoinPoolManager) GetCoinPoolStatesByPlatform(platform string, games
return return
} }
func (this *CoinPoolManager) pushCoinNovice(key string, coin int64) {
}
func (this *CoinPoolManager) popCoinNovice(key string, coin int64) {
}
// PushCoinNovice 增加新手池水位 // PushCoinNovice 增加新手池水位
func (this *CoinPoolManager) PushCoinNovice(gameFreeId, groupId int32, platform string, coin int64) { func (this *CoinPoolManager) PushCoinNovice(gameFreeId, groupId int32, platform string, coin int64) {
if coin == 0 { if coin == 0 {
return return
} }
key := this.GenKey(gameFreeId, platform, groupId) key := this.GenKey(gameFreeId, platform, groupId)
poolVal := coin this.pushCoinNovice(key, coin)
if coin > 0 { //处理收益池
setting := this.getCoinPoolSetting(key)
if setting != nil && setting.GetSwitch() == 0 {
rate := this.GetProfitRate(setting)
if rate != 0 { //负值也生效???
profit := coin * int64(rate) / 1000
this.AddProfitPool(key, profit)
poolVal = coin - profit
}
}
}
this.pushNoviceCoin(key, poolVal)
return
} }
// PopCoinNovice 减少新手池水位 // PopCoinNovice 减少新手池水位
func (this *CoinPoolManager) PopCoinNovice(gameFreeId, groupId int32, platform string, coin int64) bool { func (this *CoinPoolManager) PopCoinNovice(gameFreeId, groupId int32, platform string, coin int64) {
if coin == 0 {
return true
}
key := this.GenKey(gameFreeId, platform, groupId)
poolVal := coin
if coin < 0 { //负值为收益
setting := this.getCoinPoolSetting(key)
if setting != nil && setting.GetSwitch() == 0 {
rate := this.GetProfitRate(setting)
if rate != 0 { //负值也生效???
profit := coin * int64(rate) / 1000
this.AddProfitPool(key, -profit)
poolVal = coin - profit
}
}
}
ok, _ := this.popNoviceCoin(key, poolVal)
if ok {
dbGameFree := srvdata.PBDB_GameFreeMgr.GetData(gameFreeId)
if dbGameFree != nil && dbGameFree.GetSceneType() != -1 { //非试玩场
//保存数据
//this.ReportCoinPoolRecEvent(gameFreeId, groupId, platform, -coin, curPoolVal, false)
setting := this.GetCoinPoolSetting(platform, gameFreeId, groupId)
if setting != nil {
poolValue, ok := this.NoviceCoinPool.Load(key)
if ok {
poolCoin, ok := poolValue.(int64)
if ok {
if int64(setting.GetLowerLimit()) > poolCoin {
WarningCoinPool(Warning_CoinPoolLow, gameFreeId)
}
if poolCoin < 0 {
WarningCoinPool(Warning_CoinPoolZero, gameFreeId)
}
}
}
}
}
return true
}
return false
} }
// GetNoviceCoin 获取新手池水位 // GetNoviceCoin 获取新手池水位
func (this *CoinPoolManager) GetNoviceCoin(gameFreeId int32, platform string, groupId int32) int64 { func (this *CoinPoolManager) GetNoviceCoin(gameFreeId int32, platform string, groupId int32) int64 {
key := this.GenKey(gameFreeId, platform, groupId) return 0
return this.getNoviceCoinPoolCoin(key)
} }
// IsMaxOutHaveEnough 判定是否满足出分,out 为负值是出分,正值为收分 // IsMaxOutHaveEnough 判定是否满足出分,out 为负值是出分,正值为收分

View File

@ -34,8 +34,6 @@ type CoinPoolSetting struct {
LowerOdds int32 // 下线初始概率 LowerOdds int32 // 下线初始概率
LowerOddsMax int32 // 下线最大概率 LowerOddsMax int32 // 下线最大概率
ProfitRate int32 // 收益抽取比例 ProfitRate int32 // 收益抽取比例
CtrlRate int32 // 调节赔率
InitNoviceValue int64 // 新手初始库存值
// 扩展参数 // 扩展参数
ResetTime int64 // 重置时间 ResetTime int64 // 重置时间
UptTime time.Time // 更新时间 UptTime time.Time // 更新时间
@ -59,8 +57,6 @@ func NewCoinPoolSetting(platform string, groupId, gamefreeid, srverId int32, db
cl.ProfitRate = db.ProfitRate cl.ProfitRate = db.ProfitRate
cl.ResetTime = time.Now().Unix() cl.ResetTime = time.Now().Unix()
cl.UptTime = time.Now() cl.UptTime = time.Now()
cl.CtrlRate = db.CtrlRate
cl.InitNoviceValue = db.InitNovicValue
return cl return cl
} }

File diff suppressed because it is too large Load Diff

View File

@ -681,10 +681,6 @@ message DB_GameCoinPool {
int32 ProfitRate = 10; int32 ProfitRate = 10;
int32 CtrlRate = 11;
int64 InitNovicValue = 12;
} }
message DB_GameCoinPoolArray { message DB_GameCoinPoolArray {

File diff suppressed because it is too large Load Diff

View File

@ -268,12 +268,12 @@ message CoinPoolSetting{
int32 LowerOdds = 11; // 线 int32 LowerOdds = 11; // 线
int32 LowerOddsMax = 12; // 线 int32 LowerOddsMax = 12; // 线
int32 ProfitRate = 13;// int32 ProfitRate = 13;//
//
int64 ResetTime = 14; // int64 ResetTime = 14; //
int32 Switch =15; // 0 1 int32 Switch =15; // 0 1
//
int64 CoinValue = 16; // int64 CoinValue = 16; //
int64 ProfitPool = 17; // int64 ProfitPool = 17; //
int32 CtrlRate = 18; //
int64 InitNoviceValue = 19; //
} }
// //
message MessageInfo { message MessageInfo {

View File

@ -5168,34 +5168,6 @@ func AgcConvertDB_GameCoinPool(fi,fo string) {
if len(row.Cells)<12+1{
break
}
temp, _ = strconv.ParseInt(row.Cells[12].String(), 10, 32)
data.CtrlRate = int32(temp)
if len(row.Cells)<13+1{
break
}
temp, _ = strconv.ParseInt(row.Cells[13].String(), 10, 64)
data.InitNovicValue = int64(temp)
break break
} }

View File

@ -277,8 +277,6 @@ func (this *GameSession) DetectCoinPoolSetting(platform string, gamefreeid, grou
LowerOdds: data.LowerOdds, LowerOdds: data.LowerOdds,
LowerOddsMax: data.LowerOddsMax, LowerOddsMax: data.LowerOddsMax,
ProfitRate: data.ProfitRate, ProfitRate: data.ProfitRate,
CtrlRate: data.CtrlRate,
InitNoviceValue: data.InitNoviceValue,
ResetTime: data.ResetTime, ResetTime: data.ResetTime,
Switch: data.Switch, Switch: data.Switch,
} }

Binary file not shown.