Compare commits

..

No commits in common. "2f3fa1d73935e9e998cdd30b1789aa349aeeb9cf" and "efb440d6a99c1747b1c9ca54dacb700014ed6606" have entirely different histories.

97 changed files with 3545 additions and 1954 deletions

View File

@ -56,22 +56,22 @@ func (this *SSTransmitHandler) Process(s *netlib.Session, packetid int, data int
if transmitPack, ok := data.(*server.SSTransmit); ok { if transmitPack, ok := data.(*server.SSTransmit); ok {
pd := transmitPack.GetPacketData() pd := transmitPack.GetPacketData()
sid := transmitPack.GetSessionId() sid := transmitPack.GetSessionId()
packetId, packet, err := netlib.UnmarshalPacket(pd) packetid, packet, err := netlib.UnmarshalPacket(pd)
if err == nil { if err == nil {
h := GetHandler(packetId) h := GetHandler(packetid)
if h != nil { if h != nil {
utils.DumpStackIfPanic(fmt.Sprintf("SSTransmitHandler.Process error, packetId:%v", packetId)) utils.DumpStackIfPanic(fmt.Sprintf("SSTransmitHandler.Process error, packetid:%v", packetid))
watch := profile.TimeStatisticMgr.WatchStart(fmt.Sprintf("/action/packet:%v", packetId), profile.TIME_ELEMENT_ACTION) watch := profile.TimeStatisticMgr.WatchStart(fmt.Sprintf("/action/packet:%v", packetid), profile.TIME_ELEMENT_ACTION)
err := h.Process(s, packetId, packet, sid) err := h.Process(s, packetid, packet, sid)
if watch != nil { if watch != nil {
watch.Stop() watch.Stop()
} }
if err != nil { if err != nil {
logger.Logger.Tracef("Packet [%d] error: %v", packetId, err) logger.Logger.Tracef("Packet [%d] error:", packetid, err)
} }
return err return err
} else { } else {
logger.Logger.Tracef("Packet %v not find handler.", packetId) logger.Logger.Tracef("Packet %v not find handler.", packetid)
} }
} else { } else {
logger.Logger.Trace("SSTransmitHandler process err:", err) logger.Logger.Trace("SSTransmitHandler process err:", err)

View File

@ -6,7 +6,7 @@ import (
"time" "time"
) )
//牌序- 2, A, K, Q, J,10, 9, 8, 7, 6, 5, 4, 3 //牌序- 2, A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3
//红桃- 51,50,49,48,47,46,45,44,43,42,41,40,39 //红桃- 51,50,49,48,47,46,45,44,43,42,41,40,39
//方片- 38,37,36,35,34,33,32,31,30,29,28,27,26 //方片- 38,37,36,35,34,33,32,31,30,29,28,27,26
//梅花- 25,24,23,22,21,20,19,18,17,16,15,14,13 //梅花- 25,24,23,22,21,20,19,18,17,16,15,14,13

View File

@ -149,7 +149,7 @@ func (this *CSFishTargetPacketFactory) CreatePacket() interface{} {
if player == nil { if player == nil {
logger.Logger.Warn("CSFishViewHandler robot == nil") logger.Logger.Warn("CSFishViewHandler robot == nil")
return nil return nil
//player = base.PlayerMgrSington.GetOnlinePlayer(sid) //player = base.PlayerMgrSington.GetPlayer(sid)
} }
if player == nil { if player == nil {
logger.Logger.Warn("CSFishViewHandler p == nil") logger.Logger.Warn("CSFishViewHandler p == nil")
@ -260,7 +260,7 @@ func (this *CSFishFirePranaPacketFactory) CreatePacket() interface{} {
/*func (this *CSFishFirePranaHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { /*func (this *CSFishFirePranaHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSFishFirePranaHandler Process recv ", data) logger.Logger.Trace("CSFishFirePranaHandler Process recv ", data)
if msg, ok := data.(*fishing_proto.CSFirePrana); ok { if msg, ok := data.(*fishing_proto.CSFirePrana); ok {
player := base.PlayerMgrSington.GetOnlinePlayer(sid) player := base.PlayerMgrSington.GetPlayer(sid)
if player == nil { if player == nil {
logger.Logger.Warn("CSFishFirePranaHandler p == nil") logger.Logger.Warn("CSFishFirePranaHandler p == nil")
return nil return nil

View File

@ -18,19 +18,16 @@ func DataToCli(response any) interface{} {
} }
sort.Slice(Response.BetChangeList, func(i, j int) bool { return Response.BetChangeList[i] < Response.BetChangeList[j] }) sort.Slice(Response.BetChangeList, func(i, j int) bool { return Response.BetChangeList[i] < Response.BetChangeList[j] })
sort.Slice(Response.BetLevels, func(i, j int) bool { return Response.BetLevels[i] < Response.BetLevels[j] }) sort.Slice(Response.BetLevels, func(i, j int) bool { return Response.BetLevels[i] < Response.BetLevels[j] })
sort.Slice(Response.BaseBets, func(i, j int) bool { return Response.BaseBets[i] < Response.BaseBets[j] })
sort.Slice(BetSizes, func(i, j int) bool { return BetSizes[i] < BetSizes[j] }) sort.Slice(BetSizes, func(i, j int) bool { return BetSizes[i] < BetSizes[j] })
tableInfo.BetConfig = BetConfig{ tableInfo.BetConfig = BetConfig{
BetChangeList: Response.BetChangeList, BetChangeList: Response.BetChangeList,
BetSize: BetSizes, BetSize: BetSizes,
BaseBet: Response.BaseBets,
BetLevel: Response.BetLevels, BetLevel: Response.BetLevels,
BetLines: Response.BetLines, BetLines: Response.BetLines,
BetType: 1, BetType: 1,
BetSizeIndex: Response.BetSizeIndex, BetSizeIndex: Response.BetSizeIndex,
BetLevelIndex: Response.BetLevelIndex, BetLevelIndex: Response.BetLevelIndex,
BetLineIndex: Response.BetLineIndex, BetLineIndex: Response.BetLineIndex,
BaseBetIndex: Response.BaseBetIndex,
} }
tableInfo.Coin = float64(Response.Coin) / CoinRate tableInfo.Coin = float64(Response.Coin) / CoinRate
////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////

View File

@ -47,12 +47,10 @@ type BetConfig struct {
BetSize []float64 `json:"bet_size"` //单注 BetSize []float64 `json:"bet_size"` //单注
BetLevel []int64 `json:"bet_level"` //下注线数 BetLevel []int64 `json:"bet_level"` //下注线数
BetLines []int64 `json:"bet_lines"` //可选线数 BetLines []int64 `json:"bet_lines"` //可选线数
BaseBet []int64 `json:"base_bet"` //下注基数
BetType int `json:"bet_type"` //total计算方式 1.显示成Lines betSize*betLevel*lines lines BetType int `json:"bet_type"` //total计算方式 1.显示成Lines betSize*betLevel*lines lines
BetSizeIndex int64 `json:"bet_size_index"` //选中的单注下标 BetSizeIndex int64 `json:"bet_size_index"` //选中的单注下标
BetLevelIndex int64 `json:"bet_level_index"` //选中的等级下标 BetLevelIndex int64 `json:"bet_level_index"` //选中的等级下标
BetLineIndex int64 `json:"bet_line_index"` //选中的线数下标 BetLineIndex int64 `json:"bet_line_index"` //选中的线数下标
BaseBetIndex int64 `json:"base_bet_index"` //选中的下注基数下标
} }
type TableInfo struct { type TableInfo struct {
SpinResult GameEnd `json:"spin_result"` SpinResult GameEnd `json:"spin_result"`

Binary file not shown.

View File

@ -134,8 +134,7 @@ func init() {
CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{ CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{
0: { 0: {
Index: 0, Index: 0,
BetLine: 1, BetLine: 10,
BaseBet: 10,
}, },
} }
@ -195,129 +194,6 @@ func init() {
}, },
} }
CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{
1: {
Index: 1,
ItemID: 1,
Value: 10,
IsMid: false,
},
2: {
Index: 2,
ItemID: 2,
Value: 5,
IsMid: false,
},
3: {
Index: 3,
ItemID: 3,
Value: 1,
IsMid: false,
},
4: {
Index: 4,
ItemID: 4,
Value: 0.5,
IsMid: false,
},
5: {
Index: 5,
ItemID: 5,
Value: 0.1,
IsMid: false,
},
6: {
Index: 6,
ItemID: 6,
Value: 1,
IsMid: true,
},
7: {
Index: 7,
ItemID: 7,
Value: 1,
IsMid: true,
},
8: {
Index: 8,
ItemID: 8,
Value: 1,
IsMid: true,
},
9: {
Index: 9,
ItemID: 9,
Value: 1,
IsMid: true,
},
10: {
Index: 10,
ItemID: 10,
Value: 2,
IsMid: true,
},
11: {
Index: 11,
ItemID: 11,
Value: 3,
IsMid: true,
},
12: {
Index: 12,
ItemID: 12,
Value: 5,
IsMid: true,
},
13: {
Index: 13,
ItemID: 13,
Value: 10,
IsMid: true,
},
14: {
Index: 14,
ItemID: 14,
Value: 15,
IsMid: true,
},
15: {
Index: 15,
ItemID: 15,
Value: 20,
IsMid: true,
},
16: {
Index: 16,
ItemID: 16,
Value: 30,
IsMid: true,
},
17: {
Index: 17,
ItemID: 17,
Value: 40,
IsMid: true,
},
18: {
Index: 18,
ItemID: 18,
Value: 50,
IsMid: true,
},
19: {
Index: 19,
ItemID: 19,
Value: 100,
IsMid: true,
},
200: {
Index: 200,
ItemID: 200,
Value: 0,
IsMid: true,
},
}
CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{ CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{
1: { 1: {
ID: 1, ID: 1,
@ -592,7 +468,7 @@ func init() {
CashManiaSymbol = map[int64]*structs.CashManiaSymbol{ CashManiaSymbol = map[int64]*structs.CashManiaSymbol{
1: { 1: {
ID: 1, ID: 1,
Name: "10倍", Name: "100倍",
IsWild: false, IsWild: false,
Group: []int64{1}, Group: []int64{1},
PayRate: []int64{0, 0, 100}, PayRate: []int64{0, 0, 100},

View File

@ -174,7 +174,6 @@ func init() {
0: { 0: {
Index: 0, Index: 0,
BetLine: 5, BetLine: 5,
BaseBet: 1,
}, },
} }

View File

@ -135,7 +135,6 @@ func init() {
0: { 0: {
Index: 0, Index: 0,
BetLine: 5, BetLine: 5,
BaseBet: 1,
}, },
} }

View File

@ -10,79 +10,79 @@ func init() {
FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{ FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{
0: { 0: {
Index: 0, Index: 0,
BetChangeList: 300000, BetChangeList: 0.3,
BetSizeIndex: 0, BetSizeIndex: 0,
BetLevelIndex: 0, BetLevelIndex: 0,
}, },
1: { 1: {
Index: 1, Index: 1,
BetChangeList: 600000, BetChangeList: 0.6,
BetSizeIndex: 0, BetSizeIndex: 0,
BetLevelIndex: 1, BetLevelIndex: 1,
}, },
2: { 2: {
Index: 2, Index: 2,
BetChangeList: 900000, BetChangeList: 0.9,
BetSizeIndex: 0, BetSizeIndex: 0,
BetLevelIndex: 2, BetLevelIndex: 2,
}, },
3: { 3: {
Index: 3, Index: 3,
BetChangeList: 1000000, BetChangeList: 1,
BetSizeIndex: 1, BetSizeIndex: 1,
BetLevelIndex: 0, BetLevelIndex: 0,
}, },
4: { 4: {
Index: 4, Index: 4,
BetChangeList: 1500000, BetChangeList: 1.5,
BetSizeIndex: 0, BetSizeIndex: 0,
BetLevelIndex: 4, BetLevelIndex: 4,
}, },
5: { 5: {
Index: 5, Index: 5,
BetChangeList: 3000000, BetChangeList: 3,
BetSizeIndex: 0, BetSizeIndex: 0,
BetLevelIndex: 9, BetLevelIndex: 9,
}, },
6: { 6: {
Index: 6, Index: 6,
BetChangeList: 5000000, BetChangeList: 5,
BetSizeIndex: 1, BetSizeIndex: 1,
BetLevelIndex: 4, BetLevelIndex: 4,
}, },
7: { 7: {
Index: 7, Index: 7,
BetChangeList: 9000000, BetChangeList: 9,
BetSizeIndex: 3, BetSizeIndex: 3,
BetLevelIndex: 0, BetLevelIndex: 0,
}, },
8: { 8: {
Index: 8, Index: 8,
BetChangeList: 10000000, BetChangeList: 10,
BetSizeIndex: 1, BetSizeIndex: 1,
BetLevelIndex: 9, BetLevelIndex: 9,
}, },
9: { 9: {
Index: 9, Index: 9,
BetChangeList: 15000000, BetChangeList: 15,
BetSizeIndex: 2, BetSizeIndex: 2,
BetLevelIndex: 4, BetLevelIndex: 4,
}, },
10: { 10: {
Index: 10, Index: 10,
BetChangeList: 30000000, BetChangeList: 30,
BetSizeIndex: 2, BetSizeIndex: 2,
BetLevelIndex: 9, BetLevelIndex: 9,
}, },
11: { 11: {
Index: 11, Index: 11,
BetChangeList: 45000000, BetChangeList: 45,
BetSizeIndex: 3, BetSizeIndex: 3,
BetLevelIndex: 4, BetLevelIndex: 4,
}, },
12: { 12: {
Index: 12, Index: 12,
BetChangeList: 90000000, BetChangeList: 90,
BetSizeIndex: 3, BetSizeIndex: 3,
BetLevelIndex: 9, BetLevelIndex: 9,
}, },
@ -135,26 +135,25 @@ func init() {
0: { 0: {
Index: 0, Index: 0,
BetLine: 10, BetLine: 10,
BaseBet: 1,
}, },
} }
FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{ FortuneOxBetBetSize = map[int64]*structs.FortuneOxBetBetSize{
0: { 0: {
Index: 0, Index: 0,
BetSize: 300000000, BetSize: 300,
}, },
1: { 1: {
Index: 1, Index: 1,
BetSize: 1000000000, BetSize: 1000,
}, },
2: { 2: {
Index: 2, Index: 2,
BetSize: 3000000000, BetSize: 3000,
}, },
3: { 3: {
Index: 3, Index: 3,
BetSize: 9000000000, BetSize: 9000,
}, },
} }

View File

@ -135,7 +135,6 @@ func init() {
0: { 0: {
Index: 0, Index: 0,
BetLine: 10, BetLine: 10,
BaseBet: 1,
}, },
} }

View File

@ -135,7 +135,6 @@ func init() {
0: { 0: {
Index: 0, Index: 0,
BetLine: 5, BetLine: 5,
BaseBet: 1,
}, },
} }

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,6 @@ var (
CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{} CashManiaBetBetSize = map[int64]*structs.CashManiaBetBetSize{}
CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{} CashManiaBetFirstBet = map[int64]*structs.CashManiaBetFirstBet{}
CashManiaFormation = []*structs.CashManiaFormation{} CashManiaFormation = []*structs.CashManiaFormation{}
CashManiaItemInfo = map[int64]*structs.CashManiaItemInfo{}
CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{} CashManiaMapRTPMode = map[int64]*structs.CashManiaMapRTPMode{}
CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{} CashManiaMidItemInfo = map[int64]*structs.CashManiaMidItemInfo{}
CashManiaOthers = []*structs.CashManiaOthers{} CashManiaOthers = []*structs.CashManiaOthers{}
@ -120,6 +119,46 @@ var (
FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{} FortuneTigerSuperStackWeight = []*structs.FortuneTigerSuperStackWeight{}
FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{} FortuneTigerSymbolBetRatio = []*structs.FortuneTigerSymbolBetRatio{}
FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{} FortuneTigerSymbol = map[int64]*structs.FortuneTigerSymbol{}
GateofOlympusBetBetChangeList = map[int64]*structs.GateofOlympusBetBetChangeList{}
GateofOlympusBetBetLevel = map[int64]*structs.GateofOlympusBetBetLevel{}
GateofOlympusBetBetLine = map[int64]*structs.GateofOlympusBetBetLine{}
GateofOlympusBetBetSize = map[int64]*structs.GateofOlympusBetBetSize{}
GateofOlympusBetFirstBet = map[int64]*structs.GateofOlympusBetFirstBet{}
GateofOlympusFormation = []*structs.GateofOlympusFormation{}
GateofOlympusMapRTPMode = map[int64]*structs.GateofOlympusMapRTPMode{}
GateofOlympusMultiplier = []*structs.GateofOlympusMultiplier{}
GateofOlympusMultiplierKeyID = map[int64]*structs.GateofOlympusMultiplierKeyID{}
GateofOlympusReelBaseSpin1Range = [][]int64{}
GateofOlympusReelBaseSpin1Reel = [][]int64{}
GateofOlympusReelBaseSpin1Weight = [][]float64{}
GateofOlympusReelBaseSpin2Range = [][]int64{}
GateofOlympusReelBaseSpin2Reel = [][]int64{}
GateofOlympusReelBaseSpin2Weight = [][]float64{}
GateofOlympusReelBaseSpin3Range = [][]int64{}
GateofOlympusReelBaseSpin3Reel = [][]int64{}
GateofOlympusReelBaseSpin3Weight = [][]float64{}
GateofOlympusReelBaseSpin7Range = [][]int64{}
GateofOlympusReelBaseSpin7Reel = [][]int64{}
GateofOlympusReelBaseSpin7Weight = [][]float64{}
GateofOlympusReelBaseSpin8Range = [][]int64{}
GateofOlympusReelBaseSpin8Reel = [][]int64{}
GateofOlympusReelBaseSpin8Weight = [][]float64{}
GateofOlympusReelBaseSpinRange = [][]int64{}
GateofOlympusReelBaseSpinReel = [][]int64{}
GateofOlympusReelBaseSpinWeight = [][]float64{}
GateofOlympusReelChoose = []*structs.GateofOlympusReelChoose{}
GateofOlympusReelFreeSpin4Range = [][]int64{}
GateofOlympusReelFreeSpin4Reel = [][]int64{}
GateofOlympusReelFreeSpin4Weight = [][]float64{}
GateofOlympusReelFreeSpin5Range = [][]int64{}
GateofOlympusReelFreeSpin5Reel = [][]int64{}
GateofOlympusReelFreeSpin5Weight = [][]float64{}
GateofOlympusReelFreeSpinRange = [][]int64{}
GateofOlympusReelFreeSpinReel = [][]int64{}
GateofOlympusReelFreeSpinWeight = [][]float64{}
GateofOlympusScatter = map[int64]*structs.GateofOlympusScatter{}
GateofOlympusSymbolBetRatio = []*structs.GateofOlympusSymbolBetRatio{}
GateofOlympusSymbol = map[int64]*structs.GateofOlympusSymbol{}
MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{} MatrixFeaturesForm15X1TypeA = []*structs.MatrixFeaturesForm15X1TypeA{}
MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{} MatrixFeaturesForm19X1TypeA = []*structs.MatrixFeaturesForm19X1TypeA{}
MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{} MatrixFeaturesForm20X1TypeA = []*structs.MatrixFeaturesForm20X1TypeA{}

View File

@ -69,7 +69,6 @@ func StoragesLoading(data map[string]string) {
Load(data, "Base.CashMania/Bet.BetSize", &base.CashManiaBetBetSize) Load(data, "Base.CashMania/Bet.BetSize", &base.CashManiaBetBetSize)
Load(data, "Base.CashMania/Bet.FirstBet", &base.CashManiaBetFirstBet) Load(data, "Base.CashMania/Bet.FirstBet", &base.CashManiaBetFirstBet)
Load(data, "Base.CashMania/Formation.Default", &base.CashManiaFormation) Load(data, "Base.CashMania/Formation.Default", &base.CashManiaFormation)
Load(data, "Base.CashMania/ItemInfo.Default", &base.CashManiaItemInfo)
Load(data, "Base.CashMania/Map.RTPMode", &base.CashManiaMapRTPMode) Load(data, "Base.CashMania/Map.RTPMode", &base.CashManiaMapRTPMode)
Load(data, "Base.CashMania/MidItemInfo.Default", &base.CashManiaMidItemInfo) Load(data, "Base.CashMania/MidItemInfo.Default", &base.CashManiaMidItemInfo)
Load(data, "Base.CashMania/Others.Default", &base.CashManiaOthers) Load(data, "Base.CashMania/Others.Default", &base.CashManiaOthers)
@ -179,6 +178,46 @@ func StoragesLoading(data map[string]string) {
Load(data, "Base.FortuneTiger/SuperStack.Weight", &base.FortuneTigerSuperStackWeight) Load(data, "Base.FortuneTiger/SuperStack.Weight", &base.FortuneTigerSuperStackWeight)
Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio) Load(data, "Base.FortuneTiger/Symbol.BetRatio", &base.FortuneTigerSymbolBetRatio)
Load(data, "Base.FortuneTiger/Symbol.Default", &base.FortuneTigerSymbol) Load(data, "Base.FortuneTiger/Symbol.Default", &base.FortuneTigerSymbol)
Load(data, "Base.GateofOlympus/Bet.BetChangeList", &base.GateofOlympusBetBetChangeList)
Load(data, "Base.GateofOlympus/Bet.BetLevel", &base.GateofOlympusBetBetLevel)
Load(data, "Base.GateofOlympus/Bet.BetLine", &base.GateofOlympusBetBetLine)
Load(data, "Base.GateofOlympus/Bet.BetSize", &base.GateofOlympusBetBetSize)
Load(data, "Base.GateofOlympus/Bet.FirstBet", &base.GateofOlympusBetFirstBet)
Load(data, "Base.GateofOlympus/Formation.Default", &base.GateofOlympusFormation)
Load(data, "Base.GateofOlympus/Map.RTPMode", &base.GateofOlympusMapRTPMode)
Load(data, "Base.GateofOlympus/Multiplier.Default", &base.GateofOlympusMultiplier)
Load(data, "Base.GateofOlympus/Multiplier.Default/ID", &base.GateofOlympusMultiplierKeyID)
Load(data, "Base.GateofOlympus/ReelBaseSpin1.Range", &base.GateofOlympusReelBaseSpin1Range)
Load(data, "Base.GateofOlympus/ReelBaseSpin1.Reel", &base.GateofOlympusReelBaseSpin1Reel)
Load(data, "Base.GateofOlympus/ReelBaseSpin1.Weight", &base.GateofOlympusReelBaseSpin1Weight)
Load(data, "Base.GateofOlympus/ReelBaseSpin2.Range", &base.GateofOlympusReelBaseSpin2Range)
Load(data, "Base.GateofOlympus/ReelBaseSpin2.Reel", &base.GateofOlympusReelBaseSpin2Reel)
Load(data, "Base.GateofOlympus/ReelBaseSpin2.Weight", &base.GateofOlympusReelBaseSpin2Weight)
Load(data, "Base.GateofOlympus/ReelBaseSpin3.Range", &base.GateofOlympusReelBaseSpin3Range)
Load(data, "Base.GateofOlympus/ReelBaseSpin3.Reel", &base.GateofOlympusReelBaseSpin3Reel)
Load(data, "Base.GateofOlympus/ReelBaseSpin3.Weight", &base.GateofOlympusReelBaseSpin3Weight)
Load(data, "Base.GateofOlympus/ReelBaseSpin7.Range", &base.GateofOlympusReelBaseSpin7Range)
Load(data, "Base.GateofOlympus/ReelBaseSpin7.Reel", &base.GateofOlympusReelBaseSpin7Reel)
Load(data, "Base.GateofOlympus/ReelBaseSpin7.Weight", &base.GateofOlympusReelBaseSpin7Weight)
Load(data, "Base.GateofOlympus/ReelBaseSpin8.Range", &base.GateofOlympusReelBaseSpin8Range)
Load(data, "Base.GateofOlympus/ReelBaseSpin8.Reel", &base.GateofOlympusReelBaseSpin8Reel)
Load(data, "Base.GateofOlympus/ReelBaseSpin8.Weight", &base.GateofOlympusReelBaseSpin8Weight)
Load(data, "Base.GateofOlympus/ReelBaseSpin.Range", &base.GateofOlympusReelBaseSpinRange)
Load(data, "Base.GateofOlympus/ReelBaseSpin.Reel", &base.GateofOlympusReelBaseSpinReel)
Load(data, "Base.GateofOlympus/ReelBaseSpin.Weight", &base.GateofOlympusReelBaseSpinWeight)
Load(data, "Base.GateofOlympus/ReelChoose.Default", &base.GateofOlympusReelChoose)
Load(data, "Base.GateofOlympus/ReelFreeSpin4.Range", &base.GateofOlympusReelFreeSpin4Range)
Load(data, "Base.GateofOlympus/ReelFreeSpin4.Reel", &base.GateofOlympusReelFreeSpin4Reel)
Load(data, "Base.GateofOlympus/ReelFreeSpin4.Weight", &base.GateofOlympusReelFreeSpin4Weight)
Load(data, "Base.GateofOlympus/ReelFreeSpin5.Range", &base.GateofOlympusReelFreeSpin5Range)
Load(data, "Base.GateofOlympus/ReelFreeSpin5.Reel", &base.GateofOlympusReelFreeSpin5Reel)
Load(data, "Base.GateofOlympus/ReelFreeSpin5.Weight", &base.GateofOlympusReelFreeSpin5Weight)
Load(data, "Base.GateofOlympus/ReelFreeSpin.Range", &base.GateofOlympusReelFreeSpinRange)
Load(data, "Base.GateofOlympus/ReelFreeSpin.Reel", &base.GateofOlympusReelFreeSpinReel)
Load(data, "Base.GateofOlympus/ReelFreeSpin.Weight", &base.GateofOlympusReelFreeSpinWeight)
Load(data, "Base.GateofOlympus/Scatter.Default", &base.GateofOlympusScatter)
Load(data, "Base.GateofOlympus/Symbol.BetRatio", &base.GateofOlympusSymbolBetRatio)
Load(data, "Base.GateofOlympus/Symbol.Default", &base.GateofOlympusSymbol)
Load(data, "Base.Matrix/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA) Load(data, "Base.Matrix/FeaturesForm15X1TypeA.Default", &base.MatrixFeaturesForm15X1TypeA)
Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA) Load(data, "Base.Matrix/FeaturesForm19X1TypeA.Default", &base.MatrixFeaturesForm19X1TypeA)
Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA) Load(data, "Base.Matrix/FeaturesForm20X1TypeA.Default", &base.MatrixFeaturesForm20X1TypeA)
@ -291,7 +330,6 @@ func StoragesMapping() {
Set("Base", "CashMania/Bet", "BetSize", base.CashManiaBetBetSize) Set("Base", "CashMania/Bet", "BetSize", base.CashManiaBetBetSize)
Set("Base", "CashMania/Bet", "FirstBet", base.CashManiaBetFirstBet) Set("Base", "CashMania/Bet", "FirstBet", base.CashManiaBetFirstBet)
Set("Base", "CashMania/Formation", "Default", base.CashManiaFormation) Set("Base", "CashMania/Formation", "Default", base.CashManiaFormation)
Set("Base", "CashMania/ItemInfo", "Default", base.CashManiaItemInfo)
Set("Base", "CashMania/Map", "RTPMode", base.CashManiaMapRTPMode) Set("Base", "CashMania/Map", "RTPMode", base.CashManiaMapRTPMode)
Set("Base", "CashMania/MidItemInfo", "Default", base.CashManiaMidItemInfo) Set("Base", "CashMania/MidItemInfo", "Default", base.CashManiaMidItemInfo)
Set("Base", "CashMania/Others", "Default", base.CashManiaOthers) Set("Base", "CashMania/Others", "Default", base.CashManiaOthers)
@ -401,6 +439,46 @@ func StoragesMapping() {
Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight) Set("Base", "FortuneTiger/SuperStack", "Weight", base.FortuneTigerSuperStackWeight)
Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio) Set("Base", "FortuneTiger/Symbol", "BetRatio", base.FortuneTigerSymbolBetRatio)
Set("Base", "FortuneTiger/Symbol", "Default", base.FortuneTigerSymbol) Set("Base", "FortuneTiger/Symbol", "Default", base.FortuneTigerSymbol)
Set("Base", "GateofOlympus/Bet", "BetChangeList", base.GateofOlympusBetBetChangeList)
Set("Base", "GateofOlympus/Bet", "BetLevel", base.GateofOlympusBetBetLevel)
Set("Base", "GateofOlympus/Bet", "BetLine", base.GateofOlympusBetBetLine)
Set("Base", "GateofOlympus/Bet", "BetSize", base.GateofOlympusBetBetSize)
Set("Base", "GateofOlympus/Bet", "FirstBet", base.GateofOlympusBetFirstBet)
Set("Base", "GateofOlympus/Formation", "Default", base.GateofOlympusFormation)
Set("Base", "GateofOlympus/Map", "RTPMode", base.GateofOlympusMapRTPMode)
Set("Base", "GateofOlympus/Multiplier", "Default", base.GateofOlympusMultiplier)
Set("Base", "GateofOlympus/Multiplier", "Default/ID", base.GateofOlympusMultiplierKeyID)
Set("Base", "GateofOlympus/ReelBaseSpin1", "Range", base.GateofOlympusReelBaseSpin1Range)
Set("Base", "GateofOlympus/ReelBaseSpin1", "Reel", base.GateofOlympusReelBaseSpin1Reel)
Set("Base", "GateofOlympus/ReelBaseSpin1", "Weight", base.GateofOlympusReelBaseSpin1Weight)
Set("Base", "GateofOlympus/ReelBaseSpin2", "Range", base.GateofOlympusReelBaseSpin2Range)
Set("Base", "GateofOlympus/ReelBaseSpin2", "Reel", base.GateofOlympusReelBaseSpin2Reel)
Set("Base", "GateofOlympus/ReelBaseSpin2", "Weight", base.GateofOlympusReelBaseSpin2Weight)
Set("Base", "GateofOlympus/ReelBaseSpin3", "Range", base.GateofOlympusReelBaseSpin3Range)
Set("Base", "GateofOlympus/ReelBaseSpin3", "Reel", base.GateofOlympusReelBaseSpin3Reel)
Set("Base", "GateofOlympus/ReelBaseSpin3", "Weight", base.GateofOlympusReelBaseSpin3Weight)
Set("Base", "GateofOlympus/ReelBaseSpin7", "Range", base.GateofOlympusReelBaseSpin7Range)
Set("Base", "GateofOlympus/ReelBaseSpin7", "Reel", base.GateofOlympusReelBaseSpin7Reel)
Set("Base", "GateofOlympus/ReelBaseSpin7", "Weight", base.GateofOlympusReelBaseSpin7Weight)
Set("Base", "GateofOlympus/ReelBaseSpin8", "Range", base.GateofOlympusReelBaseSpin8Range)
Set("Base", "GateofOlympus/ReelBaseSpin8", "Reel", base.GateofOlympusReelBaseSpin8Reel)
Set("Base", "GateofOlympus/ReelBaseSpin8", "Weight", base.GateofOlympusReelBaseSpin8Weight)
Set("Base", "GateofOlympus/ReelBaseSpin", "Range", base.GateofOlympusReelBaseSpinRange)
Set("Base", "GateofOlympus/ReelBaseSpin", "Reel", base.GateofOlympusReelBaseSpinReel)
Set("Base", "GateofOlympus/ReelBaseSpin", "Weight", base.GateofOlympusReelBaseSpinWeight)
Set("Base", "GateofOlympus/ReelChoose", "Default", base.GateofOlympusReelChoose)
Set("Base", "GateofOlympus/ReelFreeSpin4", "Range", base.GateofOlympusReelFreeSpin4Range)
Set("Base", "GateofOlympus/ReelFreeSpin4", "Reel", base.GateofOlympusReelFreeSpin4Reel)
Set("Base", "GateofOlympus/ReelFreeSpin4", "Weight", base.GateofOlympusReelFreeSpin4Weight)
Set("Base", "GateofOlympus/ReelFreeSpin5", "Range", base.GateofOlympusReelFreeSpin5Range)
Set("Base", "GateofOlympus/ReelFreeSpin5", "Reel", base.GateofOlympusReelFreeSpin5Reel)
Set("Base", "GateofOlympus/ReelFreeSpin5", "Weight", base.GateofOlympusReelFreeSpin5Weight)
Set("Base", "GateofOlympus/ReelFreeSpin", "Range", base.GateofOlympusReelFreeSpinRange)
Set("Base", "GateofOlympus/ReelFreeSpin", "Reel", base.GateofOlympusReelFreeSpinReel)
Set("Base", "GateofOlympus/ReelFreeSpin", "Weight", base.GateofOlympusReelFreeSpinWeight)
Set("Base", "GateofOlympus/Scatter", "Default", base.GateofOlympusScatter)
Set("Base", "GateofOlympus/Symbol", "BetRatio", base.GateofOlympusSymbolBetRatio)
Set("Base", "GateofOlympus/Symbol", "Default", base.GateofOlympusSymbol)
Set("Base", "Matrix/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA) Set("Base", "Matrix/FeaturesForm15X1TypeA", "Default", base.MatrixFeaturesForm15X1TypeA)
Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA) Set("Base", "Matrix/FeaturesForm19X1TypeA", "Default", base.MatrixFeaturesForm19X1TypeA)
Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA) Set("Base", "Matrix/FeaturesForm20X1TypeA", "Default", base.MatrixFeaturesForm20X1TypeA)
@ -540,6 +618,12 @@ func LinksMapping() {
Link("FortuneTiger/ReelBaseSpin", "Weight/1", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/1", "FortuneTiger/ReelBaseSpin", "Weight")
Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/2", "FortuneTiger/ReelBaseSpin", "Weight")
Link("FortuneTiger/ReelBaseSpin", "Weight/3", "FortuneTiger/ReelBaseSpin", "Weight") Link("FortuneTiger/ReelBaseSpin", "Weight/3", "FortuneTiger/ReelBaseSpin", "Weight")
Link("GatesOfOlympus/MatrixSameForm5X6TypeA", "Default", "Matrix/SameForm5X6TypeA", "Default")
Link("GatesOfOlympus/MatrixSameForm5X6TypeB", "Default", "Matrix/SameForm5X6TypeB", "Default")
Link("GatesOfOlympus/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default")
Link("GatesOfOlympus/ReelBaseSpin1", "Weight/1", "GatesOfOlympus/ReelBaseSpin1", "Weight")
Link("GatesOfOlympus/ReelBaseSpin1", "Weight/2", "GatesOfOlympus/ReelBaseSpin1", "Weight")
Link("GatesOfOlympus/ReelBaseSpin1", "Weight/3", "GatesOfOlympus/ReelBaseSpin1", "Weight")
Link("Test/MatrixLine1Form3X3TypeA", "Default", "Matrix/Line1Form3X3TypeA", "Default") Link("Test/MatrixLine1Form3X3TypeA", "Default", "Matrix/Line1Form3X3TypeA", "Default")
Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default") Link("Test/PrizeModel", "Default", "PrizeModel/PrizeModelTypeB", "Default")
Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight") Link("Test/ReelBaseSpin", "Weight/1", "Test/ReelBaseSpin", "Weight")

View File

@ -44,83 +44,75 @@ func NewBigRat(s string) *big.Rat {
type ( type (
// BetChangeList comment // BetChangeList comment
BetChangeList struct { BetChangeList struct {
Index int64 Index int64
BetChangeList float64 BetChangeList float64
BetSizeIndex int64 BetSizeIndex int64
BetLevelIndex int64 BetLevelIndex int64
} }
// BetLevel comment // BetLevel comment
BetLevel struct { BetLevel struct {
Index int64 Index int64
BetLevel int64 BetLevel int64
} }
// BetLine comment // BetLine comment
BetLine struct { BetLine struct {
Index int64 Index int64
BetLine int64 BetLine int64
BaseBet int64
} }
// BetSize comment // BetSize comment
BetSize struct { BetSize struct {
Index int64 Index int64
BetSize int64 BetSize int64
} }
// CashManiaItemInfo comment
CashManiaItemInfo struct {
Index int64
ItemID int64
Value float64
IsMid bool
}
// CashManiaMidItemInfo comment // CashManiaMidItemInfo comment
CashManiaMidItemInfo struct { CashManiaMidItemInfo struct {
Index int64 Index int64
ItemID int64 ItemID int64
Multi int64 Multi int64
FreeSpinCount int64 FreeSpinCount int64
} }
// CashManiaOthers comment // CashManiaOthers comment
CashManiaOthers struct { CashManiaOthers struct {
BaseWinPro float64 BaseWinPro float64
FreeWinPro float64 FreeWinPro float64
MaxWin int64 MaxWin int64
WinNudgePro float64 WinNudgePro float64
WinRespinPro float64 WinRespinPro float64
NoWinNudgePro float64 NoWinNudgePro float64
NoWinRespinPro float64 NoWinRespinPro float64
} }
// CashManiaRandomItemWeight comment // CashManiaRandomItemWeight comment
CashManiaRandomItemWeight struct { CashManiaRandomItemWeight struct {
ID int64 ID int64
ItemID int64 ItemID int64
BaseWeight float64 BaseWeight float64
FreeWeight float64 FreeWeight float64
} }
// FirstBet comment // FirstBet comment
FirstBet struct { FirstBet struct {
Index int64 Index int64
BetSizeIndex int64 BetSizeIndex int64
BetLevelIndex int64 BetLevelIndex int64
} }
// Formation comment // Formation comment
Formation struct { Formation struct {
SpinType int64 SpinType int64
NodeType string NodeType string
ID int64 ID int64
SeqID int64 SeqID int64
Reel string Reel string
Matrix string Matrix string
Symbol string Symbol string
FirstInitMethod int64 FirstInitMethod int64
OtherInitMethod int64 OtherInitMethod int64
FirstInitSymbols []int64 FirstInitSymbols []int64
OtherInitSymbols []int64 OtherInitSymbols []int64
} }
// FortuneDragonBaseMultiplier comment // FortuneDragonBaseMultiplier comment
FortuneDragonBaseMultiplier struct { FortuneDragonBaseMultiplier struct {
WinRateMin float64 WinRateMin float64
WinRateMax float64 WinRateMax float64
ItemIds []int64 ItemIds []int64
MultiplierWeights []int64 MultiplierWeights []int64
} }
// FortuneDragonFreeMultiplier comment // FortuneDragonFreeMultiplier comment
@ -131,113 +123,126 @@ type (
// FortuneDragonFreeMultiplierCount comment // FortuneDragonFreeMultiplierCount comment
FortuneDragonFreeMultiplierCount struct { FortuneDragonFreeMultiplierCount struct {
MultiplierCount int64 MultiplierCount int64
Weight int64 Weight int64
} }
// FortuneDragonOthers comment // FortuneDragonOthers comment
FortuneDragonOthers struct { FortuneDragonOthers struct {
FreespinTriggerPro float64 FreespinTriggerPro float64
FreeSpinCount int64 FreeSpinCount int64
MaxWin int64 MaxWin int64
SureWinFreespinTriggerPro float64 SureWinFreespinTriggerPro float64
SureWinBetMultiplier int64 SureWinBetMultiplier int64
} }
// FortuneMouseOthers comment // FortuneMouseOthers comment
FortuneMouseOthers struct { FortuneMouseOthers struct {
RespinTriggerPro float64 RespinTriggerPro float64
MaxWin int64 MaxWin int64
ExtraWin int64 ExtraWin int64
} }
// FortuneOxOthers comment // FortuneOxOthers comment
FortuneOxOthers struct { FortuneOxOthers struct {
RespinTriggerPro float64 RespinTriggerPro float64
Multiplier int64 Multiplier int64
MaxWin int64 MaxWin int64
} }
// FortuneRabbitCashPrizeWeight comment // FortuneRabbitCashPrizeWeight comment
FortuneRabbitCashPrizeWeight struct { FortuneRabbitCashPrizeWeight struct {
ID int64 ID int64
PrizeValue float64 PrizeValue float64
Weight float64 Weight float64
NoWinWeight float64 NoWinWeight float64
} }
// FortuneRabbitForceCashCountWeight comment // FortuneRabbitForceCashCountWeight comment
FortuneRabbitForceCashCountWeight struct { FortuneRabbitForceCashCountWeight struct {
ID int64 ID int64
Count int64 Count int64
Weight float64 Weight float64
} }
// FortuneRabbitOthers comment // FortuneRabbitOthers comment
FortuneRabbitOthers struct { FortuneRabbitOthers struct {
FreespinTriggerPro float64 FreespinTriggerPro float64
FreeSpinCount int64 FreeSpinCount int64
MaxWin int64 MaxWin int64
}
// GateofOlympusMultiplier comment
GateofOlympusMultiplier struct {
Multiple int64
ID int64
Weights []int64
}
// GateofOlympusReelChoose comment
GateofOlympusReelChoose struct {
ID int64
IsFreeSpin bool
NodeType string
Weights []int64
} }
// JackpotPrize comment // JackpotPrize comment
JackpotPrize struct { JackpotPrize struct {
PrizeType int64 PrizeType int64
PipeIn int64 PipeIn int64
StartPoint int64 StartPoint int64
IsRolling bool IsRolling bool
RollingTime int64 RollingTime int64
ReducePercent int64 ReducePercent int64
JackpotLimitByTotalBet int64 JackpotLimitByTotalBet int64
} }
// MapRTPMode comment // MapRTPMode comment
MapRTPMode struct { MapRTPMode struct {
ID int64 ID int64
TypeWeight map[int64]*MapRTPModeTypeWeight TypeWeight map[int64]*MapRTPModeTypeWeight
Desc string Desc string
Rtp float64 Rtp float64
} }
// MapRTPModeTypeWeight comment // MapRTPModeTypeWeight comment
MapRTPModeTypeWeight struct { MapRTPModeTypeWeight struct {
ID int64 ID int64
Weight int64 Weight int64
} }
// Matrix comment // Matrix comment
Matrix struct { Matrix struct {
Type string Type string
LinkType int64 LinkType int64
Direction int64 Direction int64
LineCount int64 LineCount int64
Lines [][]int64 Lines [][]int64
Form []int64 Form []int64
} }
// OptAuthenticate comment // OptAuthenticate comment
OptAuthenticate struct { OptAuthenticate struct {
Flag string Flag string
Order int64 Order int64
ValidValues []string ValidValues []string
InvalidValues []string InvalidValues []string
} }
// OptGroup comment // OptGroup comment
OptGroup struct { OptGroup struct {
ID int64 ID int64
Batch int64 Batch int64
IsNewPlayer bool IsNewPlayer bool
StartTime string StartTime string
EndTime string EndTime string
Affect []int64 Affect []int64
Weight []int64 Weight []int64
} }
// PrizeModel comment // PrizeModel comment
PrizeModel struct { PrizeModel struct {
ID int64 ID int64
AniType string AniType string
MinMultiple int64 MinMultiple int64
MaxMultiple int64 MaxMultiple int64
} }
// Scatter comment // Scatter comment
Scatter struct { Scatter struct {
ScatterCount int64 ScatterCount int64
FreeSpinBouts int64 FreeSpinBouts int64
FreeSpinExtraBouts int64 FreeSpinExtraBouts int64
BasePayrate int64 BasePayrate int64
FreePayrate int64 FreePayrate int64
} }
// ScatterFreeChoose comment // ScatterFreeChoose comment
ScatterFreeChoose struct { ScatterFreeChoose struct {
ID int64 ID int64
FreeSpinTimes int64 FreeSpinTimes int64
TouchTimesMin int64 TouchTimesMin int64
TouchTimesMax int64 TouchTimesMax int64
@ -245,43 +250,38 @@ type (
// SimulatorFSMultiLevel comment // SimulatorFSMultiLevel comment
SimulatorFSMultiLevel struct { SimulatorFSMultiLevel struct {
Level int64 Level int64
Min int64 Min int64
Max int64 Max int64
} }
// SuperStackWeight comment // SuperStackWeight comment
SuperStackWeight struct { SuperStackWeight struct {
ID int64 ID int64
ItemID int64 ItemID int64
Weight float64 Weight float64
} }
// Symbol comment // Symbol comment
Symbol struct { Symbol struct {
ID int64 ID int64
Name string Name string
IsWild bool IsWild bool
Group []int64 Group []int64
PayRate []int64 PayRate []int64
ClientOrder int64 ClientOrder int64
ClientDsc string ClientDsc string
} }
// SymbolBetRatio comment // SymbolBetRatio comment
SymbolBetRatio struct { SymbolBetRatio struct {
BetRatio float64 BetRatio float64
} }
// TestBetBetLine comment
TestBetBetLine struct {
Index int64
BetLine int64
}
// TestRandomWeight comment // TestRandomWeight comment
TestRandomWeight struct { TestRandomWeight struct {
ID int64 ID int64
Time float64 Time float64
Weight float64 Weight float64
} }
// Text comment // Text comment
Text struct { Text struct {
Type string Type string
Texts []*TextTexts Texts []*TextTexts
} }
// TextTexts comment // TextTexts comment
@ -291,25 +291,25 @@ type (
} }
// Vector comment // Vector comment
Vector struct { Vector struct {
Choice int64 Choice int64
Ratio float64 Ratio float64
Vector []int64 Vector []int64
Procedure string Procedure string
} }
// VectorDemand comment // VectorDemand comment
VectorDemand struct { VectorDemand struct {
Choice int64 Choice int64
MinRatio float64 MinRatio float64
MaxRatio float64 MaxRatio float64
Procedure string Procedure string
Count int64 Count int64
} }
// VectorForceWin comment // VectorForceWin comment
VectorForceWin struct { VectorForceWin struct {
Choice int64 Choice int64
MinRatio float64 MinRatio float64
MaxRatio float64 MaxRatio float64
Weight float64 Weight float64
} }
// CashManiaBetBetChangeList comment // CashManiaBetBetChangeList comment
CashManiaBetBetChangeList = BetChangeList CashManiaBetBetChangeList = BetChangeList
@ -521,6 +521,42 @@ type (
// FortuneTigerSymbolBetRatio comment // FortuneTigerSymbolBetRatio comment
FortuneTigerSymbolBetRatio = SymbolBetRatio FortuneTigerSymbolBetRatio = SymbolBetRatio
// GateofOlympusBetBetChangeList comment
GateofOlympusBetBetChangeList = BetChangeList
// GateofOlympusBetBetLevel comment
GateofOlympusBetBetLevel = BetLevel
// GateofOlympusBetBetLine comment
GateofOlympusBetBetLine = BetLine
// GateofOlympusBetBetSize comment
GateofOlympusBetBetSize = BetSize
// GateofOlympusBetFirstBet comment
GateofOlympusBetFirstBet = FirstBet
// GateofOlympusFormation comment
GateofOlympusFormation = Formation
// GateofOlympusMapRTPMode comment
GateofOlympusMapRTPMode = MapRTPMode
// GateofOlympusMapRTPModeTypeWeight comment
GateofOlympusMapRTPModeTypeWeight = MapRTPModeTypeWeight
// GateofOlympusMultiplierKeyID comment
GateofOlympusMultiplierKeyID = GateofOlympusMultiplier
// GateofOlympusScatter comment
GateofOlympusScatter = Scatter
// GateofOlympusSymbol comment
GateofOlympusSymbol = Symbol
// GateofOlympusSymbolBetRatio comment
GateofOlympusSymbolBetRatio = SymbolBetRatio
// MatrixFeaturesForm15X1TypeA comment // MatrixFeaturesForm15X1TypeA comment
MatrixFeaturesForm15X1TypeA = Matrix MatrixFeaturesForm15X1TypeA = Matrix
@ -791,6 +827,9 @@ type (
// TestBetBetLevel comment // TestBetBetLevel comment
TestBetBetLevel = BetLevel TestBetBetLevel = BetLevel
// TestBetBetLine comment
TestBetBetLine = BetLine
// TestBetBetSize comment // TestBetBetSize comment
TestBetBetSize = BetSize TestBetBetSize = BetSize
@ -811,5 +850,4 @@ type (
// TestSymbolBetRatio comment // TestSymbolBetRatio comment
TestSymbolBetRatio = SymbolBetRatio TestSymbolBetRatio = SymbolBetRatio
) )

View File

@ -73,12 +73,4 @@ type SpinLock struct {
Prize [][]float64 `json:"pe,omitempty"` Prize [][]float64 `json:"pe,omitempty"`
//OXSpecial //OXSpecial
NewSuperStack []int64 `json:"nss,omitempty"` NewSuperStack []int64 `json:"nss,omitempty"`
//CashMania
FeatureType int `json:"feature_type,omitempty"` //0.无特性 1.nudge 2.respin
NudgeDirection int `json:"nudge_direction,omitempty"` //1.上 2.下
FreeSpinItemId int64 `json:"free_item_id,omitempty"`
Multiple int64 `json:"multiple,omitempty"` //倍乘倍数
Irv [][]float64 `json:"irv,omitempty"`
Frv [][]float64 `json:"frv,omitempty"`
} }

View File

@ -34,7 +34,7 @@ func (n *MachineDesc) Sheet(excel string, sheet string) interface{} {
return n.DataSet.GetMachineSheet(n.Theme, excel, sheet, 0) return n.DataSet.GetMachineSheet(n.Theme, excel, sheet, 0)
} }
func (n *MachineDesc) GetLineBet(betSizeIndex, betLevelIndex, betLineIndex int64) int64 { func (n *MachineDesc) GetLineBet(betSizeIndex int64, betLevelIndex int64) int64 {
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize) betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
if !ok { if !ok {
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetSize")) panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetSize"))
@ -55,17 +55,7 @@ func (n *MachineDesc) GetLineBet(betSizeIndex, betLevelIndex, betLineIndex int64
panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLevel", betLevelIndex)) panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLevel", betLevelIndex))
} }
betLineRows, ok := n.Sheet("Bet", "BetLine").(map[int64]*structs.BetLine) return betSizeRow.BetSize * betLevelRow.BetLevel
if !ok {
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BetLine"))
}
betLineRow, ok := betLineRows[betLineIndex]
if !ok {
panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLine", betLineIndex))
}
return betSizeRow.BetSize * betLevelRow.BetLevel * betLineRow.BaseBet
} }
func (n *MachineDesc) BetSizes() []int64 { func (n *MachineDesc) BetSizes() []int64 {
betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize) betSizeRows, ok := n.Sheet("Bet", "BetSize").(map[int64]*structs.BetSize)
@ -100,17 +90,6 @@ func (n *MachineDesc) BetLines() []int64 {
} }
return lists return lists
} }
func (n *MachineDesc) BaseBets() []int64 {
baseBetRows, ok := n.Sheet("Bet", "BetLine").(map[int64]*structs.BetLine)
if !ok {
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "BaseBet"))
}
var lists []int64
for _, list := range baseBetRows {
lists = append(lists, list.BaseBet)
}
return lists
}
func (n *MachineDesc) BetChangeList() []float64 { func (n *MachineDesc) BetChangeList() []float64 {
betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList) betChangeListRows, ok := n.Sheet("Bet", "BetChangeList").(map[int64]*structs.BetChangeList)
if !ok { if !ok {

View File

@ -281,11 +281,11 @@ func (e *Entity) CalcWinType(multi float64) int64 {
} }
func (e *Entity) GetLineBetByType(nodeType string) int64 { func (e *Entity) GetLineBetByType(nodeType string) int64 {
return e.MachineDesc.GetLineBet(e.NodeTree.Act.BetSizeIndex, e.NodeTree.Act.BetLevelIndex, e.NodeTree.Act.BetLineIndex) return e.MachineDesc.GetLineBet(e.NodeTree.Act.BetSizeIndex, e.NodeTree.Act.BetLevelIndex)
} }
func (e *Entity) GetMinLineBet(nodeType string) int64 { func (e *Entity) GetMinLineBet(nodeType string) int64 {
return e.MachineDesc.GetLineBet(1, 1, 1) return e.MachineDesc.GetLineBet(1, 1)
} }
func (e *Entity) SetBetCoin(betCoin player.DecCoin) { func (e *Entity) SetBetCoin(betCoin player.DecCoin) {

View File

@ -46,7 +46,6 @@ func (sm *SlotsMgr) Enter(s *base.SlotsSession, gameId int64) (*cli.SlotsEnterRe
BetSizes: m.BetSizes(), BetSizes: m.BetSizes(),
BetLevels: m.BetLevels(), BetLevels: m.BetLevels(),
BetLines: m.BetLines(), BetLines: m.BetLines(),
BaseBets: m.BaseBets(),
BetChangeList: m.BetChangeList(), BetChangeList: m.BetChangeList(),
} }

View File

@ -42,7 +42,6 @@ type Spinner interface {
BetSizes() []int64 BetSizes() []int64
BetLevels() []int64 BetLevels() []int64
BetLines() []int64 BetLines() []int64
BaseBets() []int64
BetChangeList() []float64 BetChangeList() []float64
Choice() int64 Choice() int64

View File

@ -39,9 +39,6 @@ func (m *Machine) BetLevels() []int64 {
func (m *Machine) BetLines() []int64 { func (m *Machine) BetLines() []int64 {
return m.MachineDesc.BetLines() return m.MachineDesc.BetLines()
} }
func (m *Machine) BaseBets() []int64 {
return m.MachineDesc.BaseBets()
}
func (m *Machine) BetChangeList() []float64 { func (m *Machine) BetChangeList() []float64 {
return m.MachineDesc.BetChangeList() return m.MachineDesc.BetChangeList()
} }

View File

@ -29,21 +29,8 @@ type CustomRespin struct {
// 本次的symbol // 本次的symbol
ItemId int64 ItemId int64
} }
type CustomFortune struct { type CustomFortune struct {
ForceRound int64 `json:"fr"` //第n次 ForceRound int64 `json:"fr"` //第n次
FeatureType int `json:"feature_type"` //0.无特性 1.nudge 2.respin
NudgeDirection int `json:"nudge_direction"` //1.上 2.下
FreeSpinItemId int64 `json:"free_item_id"`
Multiple int64 `json:"multiple"` //倍乘倍数
FreeStatus int `json:"fs"`
FreeSpinNum int64 `json:"fsn"` //剩余freespin
FreeNumMax int64 `json:"fnm"` //总次数
FreeNumTrigger int64 `json:"fnt"` //新增freespin
} }
// Theme is called to get feature theme // Theme is called to get feature theme
@ -57,8 +44,8 @@ func (p *PluginBase) Customs() []interface{} {
&CustomMidInfo{}, &CustomMidInfo{},
&CustomNudge{}, &CustomNudge{},
&CustomRespin{}, &CustomRespin{},
&CustomFortune{}, &Special{},
&Special{}) &CustomFortune{})
} }
// OnStepBegin is called on initializing a step // OnStepBegin is called on initializing a step
@ -71,9 +58,6 @@ func (p *PluginBase) BeforeDisplay(m intf.Master) {
case key.BaseSpin: case key.BaseSpin:
p.changeItem(m, false) p.changeItem(m, false)
case key.FreeSpin: case key.FreeSpin:
Fortune := getCustomFortune(m)
Fortune.FreeStatus = 0
Fortune.FreeNumTrigger = 0
p.changeItem(m, true) p.changeItem(m, true)
} }
@ -83,15 +67,9 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
isFreeSpin := m.Cursor().GetType() == key.FreeSpin isFreeSpin := m.Cursor().GetType() == key.FreeSpin
cursorFormation := m.CursorFormation() cursorFormation := m.CursorFormation()
symbols := cursorFormation.GetSymbols() symbols := cursorFormation.GetSymbols()
Fortune := getCustomFortune(m)
Fortune.FeatureType = WU
if m.Bool("Nudge") { if m.Bool("Nudge") {
Fortune.FeatureType = Nudge
//todo 如果当前是nudge //todo 如果当前是nudge
if m.Bool("NudgeDown") { if m.Bool("NudgeDown") {
Fortune.NudgeDirection = Nudge_Down
symbols[9] = symbols[8] symbols[9] = symbols[8]
symbols[8] = symbols[7] symbols[8] = symbols[7]
symbols[7] = symbols[6] symbols[7] = symbols[6]
@ -99,7 +77,6 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
symbols[5] = Descx(m).RandomMidItems(isFreeSpin, 1)[0] symbols[5] = Descx(m).RandomMidItems(isFreeSpin, 1)[0]
m.Remove("NudgeDown") m.Remove("NudgeDown")
} else if m.Bool("NudgeUp") { } else if m.Bool("NudgeUp") {
Fortune.NudgeDirection = Nudge_Up
symbols[5] = symbols[6] symbols[5] = symbols[6]
symbols[6] = symbols[7] symbols[6] = symbols[7]
symbols[7] = symbols[8] symbols[7] = symbols[8]
@ -109,7 +86,6 @@ func (p *PluginBase) AfterDisplay(m intf.Master) {
} }
m.Remove("Nudge") m.Remove("Nudge")
} else if m.Bool("Respin") { } else if m.Bool("Respin") {
Fortune.FeatureType = Respin
//todo 如果当前是respin //todo 如果当前是respin
if m.Int64("respinsymbols") > 0 { if m.Int64("respinsymbols") > 0 {
symbols[2] = m.Int64("respinsymbols") symbols[2] = m.Int64("respinsymbols")
@ -133,14 +109,6 @@ func (p *PluginBase) AfterSpin(m intf.Master) {
p.checkMid(m, false) p.checkMid(m, false)
case key.FreeSpin: case key.FreeSpin:
p.checkMid(m, true) p.checkMid(m, true)
Fortune := getCustomFortune(m)
if Fortune.FreeSpinNum > 0 {
if Fortune.FreeSpinNum == 1 {
Fortune.FreeStatus = 3
}
Fortune.FreeSpinNum--
//logx.Errorf("这里是哇哇哇 Trigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", Fortune.FreeNumTrigger, Fortune.FreeNumMax, Fortune.FreeSpinNum)
}
} }
} }
@ -165,24 +133,26 @@ func (p *PluginBase) Nudge(m intf.Master, symbols []int64) {
} }
} }
// 获取特性数据
func (p *PluginBase) getCustomFortune(m intf.Master) *CustomFortune {
customFortune := new(CustomFortune)
if len(m.CursorCustoms(customFortune)) == 0 {
m.AddCursorFeature(customFortune)
}
return m.CursorCustom(customFortune).(*CustomFortune)
}
func (p *PluginBase) changeItem(m intf.Master, isFreeSpin bool) { func (p *PluginBase) changeItem(m intf.Master, isFreeSpin bool) {
curFormation := m.CursorFormation() curFormation := m.CursorFormation()
symbols := curFormation.GetSymbols() symbols := curFormation.GetSymbols()
isWin := Descx(m).CheckWin(isFreeSpin) isWin := Descx(m).CheckWin(isFreeSpin)
//todo ceshi
//isWin = true
if isFreeSpin { if isFreeSpin {
Fortune := getCustomFortune(m) Fortune := p.getCustomFortune(m)
if Fortune.ForceRound == m.GetProgressValue() { if Fortune.ForceRound == m.GetProgressValue() {
isWin = true isWin = true
} }
} }
isNudge, isReSpin := Descx(m).GetNudgeAndReSpin(isWin) isNudge, isReSpin := Descx(m).GetNudgeAndReSpin(isWin)
//todo ceshi
//isNudge = true
//isReSpin = true
if isWin { if isWin {
itemId := Descx(m).GetWinItem(isFreeSpin) itemId := Descx(m).GetWinItem(isFreeSpin)
symbols[2] = itemId symbols[2] = itemId
@ -297,35 +267,13 @@ func (p *PluginBase) checkMid(m intf.Master, isFreeSpin bool) {
FreeSpinCount: freeSpinCount, FreeSpinCount: freeSpinCount,
}).SetWin(win * (multi - 1)) }).SetWin(win * (multi - 1))
Fortune := getCustomFortune(m)
Fortune.Multiple = multi
//Fortune.MultipleWin = win * (multi - 1)
Fortune.FreeSpinItemId = symbols[7]
if freeSpinCount > 0 { if freeSpinCount > 0 {
customFortune := getCustomFortune(m)
if isFreeSpin { if isFreeSpin {
//logx.Errorf("----ReTrigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
customFortune.FreeStatus = 2
customFortune.FreeNumTrigger = freeSpinCount
customFortune.FreeNumMax += freeSpinCount
customFortune.FreeSpinNum += freeSpinCount
//logx.Errorf("----2ReTrigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
m.AddProgress(freeSpinCount) m.AddProgress(freeSpinCount)
//m.AddCursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum) m.AddCursorFeature(&generic.CustomExtraFreeSpin{ExtraTimes: freeSpinCount}).SetLifetime(1)
m.CursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum)
} else { } else {
//logx.Errorf("11Trigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
customFortune.FreeStatus = 1
customFortune.FreeNumTrigger = freeSpinCount
customFortune.FreeNumMax += freeSpinCount
customFortune.FreeSpinNum = freeSpinCount
ForceRound := m.Randx().Int63n(freeSpinCount) ForceRound := m.Randx().Int63n(freeSpinCount)
customFortune.ForceRound = ForceRound m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, freeSpinCount).GetID(), &CustomFortune{ForceRound: ForceRound})
//logx.Errorf("1111111Trigger[%v] FreeNumMax[%v] FreeSpinNum[%v]", customFortune.FreeNumTrigger, customFortune.FreeNumMax, customFortune.FreeSpinNum)
m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, freeSpinCount).GetID(), customFortune).SetLifetime(freeSpinCount)
} }
} }
} }

View File

@ -2,25 +2,6 @@ package cashmania
import "mongo.games.com/game/gamesrv/slotspkg/slots/intf" import "mongo.games.com/game/gamesrv/slotspkg/slots/intf"
const (
WU int = iota
Nudge
Respin
)
const (
Nudge_WU int = iota
Nudge_Up
Nudge_Down
)
// 获取特性数据
func getCustomFortune(m intf.Master) *CustomFortune {
customFortune := new(CustomFortune)
if len(m.CursorCustoms(customFortune)) == 0 {
m.AddCursorFeature(customFortune)
}
return m.CursorCustom(customFortune).(*CustomFortune)
}
func (p *PluginBase) RandomItemsByMid(m intf.Master, isFreeSpin bool, symbols []int64, poss ...int) { func (p *PluginBase) RandomItemsByMid(m intf.Master, isFreeSpin bool, symbols []int64, poss ...int) {
items := Descx(m).RandomMidItems(isFreeSpin, len(poss)) items := Descx(m).RandomMidItems(isFreeSpin, len(poss))
for i, pos := range poss { for i, pos := range poss {

View File

@ -19,14 +19,6 @@ func Descx(m intf.Master) *descx {
NodeDesc: m.Desc(), NodeDesc: m.Desc(),
} }
} }
func (n descx) GetItemInfo() map[int64]*structs.CashManiaItemInfo {
sheet := n.DefaultSheet("ItemInfo")
rows, ok := sheet.(map[int64]*structs.CashManiaItemInfo)
if !ok {
panic(errors.ConfigTypeError.ErrorWith(n.Theme, "CashMania", "S_ItemInfo"))
}
return rows
}
// 判断是否触发respin // 判断是否触发respin
func (n descx) CheckWin(isFreeSpin bool) bool { func (n descx) CheckWin(isFreeSpin bool) bool {

View File

@ -2,7 +2,6 @@ package cashmania
var Plugins = []interface{}{ var Plugins = []interface{}{
&PluginBase{}, &PluginBase{},
&PluginSpecial{},
} }
var SimulatorPlugins = []interface{}{ var SimulatorPlugins = []interface{}{

View File

@ -17,17 +17,6 @@ func (p *PluginSpecial) Theme() string {
// Special // Special
type Special struct { type Special struct {
FreeStatus int `json:"fs"`
FreeSpinNum int64 `json:"fsn"` //剩余freespin
FreeNumMax int64 `json:"fnm"` //总次数
FreeNumTrigger int64 `json:"fnt"` //新增freespin
FeatureType int `json:"feature_type"` //0.无特性 1.nudge 2.respin
NudgeDirection int `json:"nudge_direction"` //1.上 2.下
FreeSpinItemId int64 `json:"free_item_id"`
Multiple int64 `json:"multiple"` //倍乘倍数
Irv [][]float64 `json:"irv"`
Frv [][]float64 `json:"frv"`
} }
// 获取特性数据 // 获取特性数据
@ -39,56 +28,5 @@ func (p *PluginSpecial) getCustomSpecial(m intf.Master) *Special {
return m.CursorCustom(customSpecial).(*Special) return m.CursorCustom(customSpecial).(*Special)
} }
func (p *PluginSpecial) AfterSpin(m intf.Master) { func (p *PluginSpecial) AfterSpin(m intf.Master) {
Fortune := getCustomFortune(m)
sp := p.getCustomSpecial(m)
sp.FeatureType = Fortune.FeatureType
sp.NudgeDirection = Fortune.NudgeDirection
sp.FreeStatus = Fortune.FreeStatus
sp.FreeSpinNum = Fortune.FreeSpinNum
sp.FreeNumMax = Fortune.FreeNumMax
sp.FreeNumTrigger = Fortune.FreeNumTrigger
sp.FreeSpinItemId = Fortune.FreeSpinItemId
sp.Multiple = Fortune.Multiple
itemInfo := Descx(m).GetItemInfo()
displaySymbols := m.CursorFormation().GetReelFormattedDisplaySymbols()
var irv = copyMatrix(displaySymbols)
for i, symbol := range displaySymbols {
for i2, i3 := range symbol {
if itemInfo[i3].IsMid {
irv[i][i2] = itemInfo[i3].Value
} else {
irv[i][i2] = itemInfo[i3].Value * float64(m.Bet()) / 10000
}
}
}
sp.Irv = irv
finalSymbols := m.CursorFormation().GetMatrixFormattedFinalSymbols()
var frv = copyMatrix(finalSymbols)
for i, symbol := range finalSymbols {
for i2, i3 := range symbol {
if itemInfo[i3].IsMid {
frv[i][i2] = itemInfo[i3].Value
} else {
frv[i][i2] = itemInfo[i3].Value * float64(m.Bet()) / 10000
}
}
}
sp.Frv = frv
} }
func copyMatrix(mat [][]int64) [][]float64 {
if mat == nil {
return nil
}
var newMat [][]float64
for _, row := range mat {
var r []float64
for _, val := range row {
r = append(r, 0*float64(val))
}
newMat = append(newMat, r)
}
return newMat
}

View File

@ -12,12 +12,10 @@ type SlotsEnterResponse struct {
BetSizeIndex int64 BetSizeIndex int64
BetLevelIndex int64 BetLevelIndex int64
BetLineIndex int64 BetLineIndex int64
BaseBetIndex int64
BetChangeList []float64 BetChangeList []float64
BetSizes []int64 BetSizes []int64
BetLevels []int64 BetLevels []int64
BetLines []int64 BetLines []int64
BaseBets []int64
} }
type SlotsPlayRequest struct { type SlotsPlayRequest struct {
Theme string Theme string

View File

@ -92,7 +92,6 @@ type GameParam struct {
CloseCustomRoomCreate bool // 关闭自定义房间创建 CloseCustomRoomCreate bool // 关闭自定义房间创建
ClientVersion int32 // 客户端版本号 ClientVersion int32 // 客户端版本号
ClientVersionChannel []string // 客户端版本号包渠道 ClientVersionChannel []string // 客户端版本号包渠道
SwapShopUrl string // 交换商城地址
} }
var GameParamPath = "../data/gameparam.json" var GameParamPath = "../data/gameparam.json"
@ -238,7 +237,4 @@ func InitGameParam() {
if GameParamData.AdminPassword == "" { if GameParamData.AdminPassword == "" {
GameParamData.AdminPassword = "fjslowopcserg" GameParamData.AdminPassword = "fjslowopcserg"
} }
if GameParamData.SwapShopUrl == "" {
GameParamData.SwapShopUrl = "https://user.hinasakimiu.com/login"
}
} }

File diff suppressed because it is too large Load Diff

View File

@ -240,8 +240,6 @@ enum PlayerPacketID {
PACKET_SCPopUpWindowConfig = 2849; // PACKET_SCPopUpWindowConfig = 2849; //
PACKET_CSUpdateGuide = 2850; // PACKET_CSUpdateGuide = 2850; //
PACKET_SCUpdateGuide = 2851; // PACKET_SCUpdateGuide = 2851; //
PACKET_CSGetSwapShopInfo = 2852; //
PACKET_SCGetSwapShopInfo = 2853; //
} }
// //
@ -1442,12 +1440,3 @@ message PopUpWindowInfo{
int32 OpenStatus = 4;//1- 0- int32 OpenStatus = 4;//1- 0-
int32 Weight = 5;// int32 Weight = 5;//
} }
//
// PACKET_CSGetSwapShopInfo
message CSGetSwapShopInfo{
}
// PACKET_SCGetSwapShopInfo
message SCGetSwapShopInfo{
string Url = 1;
}

View File

@ -1,136 +0,0 @@
package balancequeue
import (
"fmt"
"strings"
)
// 平衡队列
type Element interface {
BalanceQueueHandler()
}
type elementWrapper struct {
F func()
}
func (e *elementWrapper) BalanceQueueHandler() {
e.F()
}
func ElementWrapper(f func()) Element {
return &elementWrapper{F: f}
}
type group struct {
Array []Element
queuePos int
}
type groupArray struct {
queue []*group
}
type BalanceQueue struct {
index int // 循环索引
groups []*group // 固定的分组长度不变每次Update触发一个分组
tables []*groupArray
pool map[Element]*group
}
// New 创建一个平衡队列
// groupNumber 分组数量
func New(groupNumber int) *BalanceQueue {
ret := &BalanceQueue{
groups: make([]*group, groupNumber),
tables: make([]*groupArray, 10), // 本身会自动扩容,初始值不是很重要
pool: make(map[Element]*group),
}
for i := 0; i < len(ret.tables); i++ {
ret.tables[i] = &groupArray{}
}
// 初始化平衡数组所有平衡队列容量为0
for i := 0; i < len(ret.groups); i++ {
ret.groups[i] = &group{queuePos: i}
ret.tables[0].queue = append(ret.tables[0].queue, ret.groups[i])
}
return ret
}
func (q *BalanceQueue) String() string {
buf := strings.Builder{}
buf.WriteString("BalanceQueue:\n")
buf.WriteString(fmt.Sprintf("分组数量: %v\n", len(q.groups)))
for k, v := range q.tables {
buf.WriteString(fmt.Sprintf("元素数量%v: 组数量%v ==>", k, len(v.queue)))
for _, vv := range v.queue {
buf.WriteString(fmt.Sprintf("%v ", len(vv.Array)))
}
buf.WriteString("\n")
}
return buf.String()
}
func (q *BalanceQueue) Update() {
if q.index == len(q.groups) {
q.index = 0
}
for _, v := range q.groups[q.index].Array {
v.BalanceQueueHandler()
}
q.index++
}
func (q *BalanceQueue) Push(e Element) {
if e == nil {
return
}
if _, ok := q.pool[e]; ok {
return
}
for k, v := range q.tables {
size := len(v.queue)
if size == 0 {
continue
}
arr := v.queue[size-1]
if k+1 >= len(q.tables) {
q.tables = append(q.tables, &groupArray{})
}
q.tables[k+1].queue = append(q.tables[k+1].queue, arr)
q.tables[k].queue = v.queue[:size-1]
arr.queuePos = len(q.tables[k+1].queue) - 1
arr.Array = append(arr.Array, e)
q.pool[e] = arr
return
}
return
}
func (q *BalanceQueue) Pop(e Element) {
group, ok := q.pool[e]
if !ok {
return
}
delete(q.pool, e)
count := len(group.Array)
for i := 0; i < count; i++ {
if group.Array[i] == e {
group.Array[i] = group.Array[count-1]
group.Array = group.Array[:count-1]
bqPos := group.queuePos
queCount := len(q.tables[count].queue)
q.tables[count].queue[bqPos] = q.tables[count].queue[queCount-1]
q.tables[count].queue[bqPos].queuePos = bqPos
q.tables[count].queue = q.tables[count].queue[:queCount-1]
q.tables[count-1].queue = append(q.tables[count-1].queue, group)
group.queuePos = len(q.tables[count-1].queue) - 1
return
}
}
}

View File

@ -1,40 +0,0 @@
package balancequeue
import (
"fmt"
"math/rand"
"testing"
"time"
)
type A struct {
Name string
}
func (a *A) BalanceQueueHandler() {
}
func TestOne(t *testing.T) {
q := New(5)
var es []Element
go func() {
for {
q.Update()
fmt.Println(q)
time.Sleep(time.Second)
e := &A{Name: fmt.Sprint(time.Now().Unix())}
es = append(es, e)
q.Push(e)
if rand.Intn(10) > 5 && len(es) >= 2 {
for _, v := range es[:2] {
q.Pop(v)
}
es = es[2:]
}
}
}()
time.Sleep(time.Minute)
}

View File

@ -24,7 +24,7 @@ import (
func CSBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSBagInfoHandler Process recv ", data) logger.Logger.Trace("CSBagInfoHandler Process recv ", data)
if msg, ok := data.(*bag.CSBagInfo); ok { if msg, ok := data.(*bag.CSBagInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSBagInfoHandler p == nil") logger.Logger.Warn("CSBagInfoHandler p == nil")
return nil return nil
@ -62,7 +62,7 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSUpBagInfoHandler p == nil") logger.Logger.Warn("CSUpBagInfoHandler p == nil")
return nil return nil
@ -463,7 +463,7 @@ func CSExchangeList(s *netlib.Session, packetid int, data interface{}, sid int64
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -508,7 +508,7 @@ func CSPropExchange(s *netlib.Session, packetid int, data interface{}, sid int64
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -605,7 +605,7 @@ func CSDollChange(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -654,7 +654,7 @@ func CSDollChange(s *netlib.Session, packetid int, data interface{}, sid int64)
// 兑换娃娃记录 // 兑换娃娃记录
func CSDollChangeLog(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSDollChangeLog(s *netlib.Session, packetid int, data interface{}, sid int64) error {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }

View File

@ -18,7 +18,7 @@ import (
func CSChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSChatMsgHandler Process recv ", data) logger.Logger.Trace("CSChatMsgHandler Process recv ", data)
if msg, ok := data.(*chat.CSChatMsg); ok { if msg, ok := data.(*chat.CSChatMsg); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSChatMsgHandler p == nil") logger.Logger.Warn("CSChatMsgHandler p == nil")
return nil return nil
@ -107,7 +107,7 @@ func CSChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int
func CSGetChatLogHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSGetChatLogHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetChatLogHandler Process recv ", data) logger.Logger.Trace("CSGetChatLogHandler Process recv ", data)
if msg, ok := data.(*chat.CSGetChatLog); ok { if msg, ok := data.(*chat.CSGetChatLog); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSGetChatLogHandler p == nil") logger.Logger.Warn("CSGetChatLogHandler p == nil")
return nil return nil
@ -265,7 +265,7 @@ func CSGetChatLogHandler(s *netlib.Session, packetid int, data interface{}, sid
func CSReadChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSReadChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSReadChatMsgHandler Process recv ", data) logger.Logger.Trace("CSReadChatMsgHandler Process recv ", data)
if msg, ok := data.(*chat.CSReadChatMsg); ok { if msg, ok := data.(*chat.CSReadChatMsg); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSReadChatMsgHandler p == nil") logger.Logger.Warn("CSReadChatMsgHandler p == nil")
return nil return nil
@ -288,7 +288,7 @@ func CSReadChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid
func CSShieldMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSShieldMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSShieldMsgHandler Process recv ", data) logger.Logger.Trace("CSShieldMsgHandler Process recv ", data)
if msg, ok := data.(*chat.CSShieldMsg); ok { if msg, ok := data.(*chat.CSShieldMsg); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSShieldMsgHandler p == nil") logger.Logger.Warn("CSShieldMsgHandler p == nil")
return nil return nil

View File

@ -22,7 +22,7 @@ func (this *CSCoinSceneGetPlayerNumPacketFactory) CreatePacket() interface{} {
func (this *CSCoinSceneGetPlayerNumHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSCoinSceneGetPlayerNumHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSCoinSceneGetPlayerNumHandler Process recv ", data) logger.Logger.Trace("CSCoinSceneGetPlayerNumHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSCoinSceneGetPlayerNum); ok { if msg, ok := data.(*gamehall.CSCoinSceneGetPlayerNum); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil { if p != nil {
nums := CoinSceneMgrSingleton.GetPlayerNums(p, msg.GetGameId(), msg.GetGameModel()) nums := CoinSceneMgrSingleton.GetPlayerNums(p, msg.GetGameId(), msg.GetGameModel())
pack := &gamehall.SCCoinSceneGetPlayerNum{ pack := &gamehall.SCCoinSceneGetPlayerNum{
@ -48,7 +48,7 @@ func (this *CSCoinSceneGetPlayerNumHandler) Process(s *netlib.Session, packetid
//func (this *CSCoinSceneOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSCoinSceneOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSCoinSceneOpHandler Process recv ", data) // logger.Logger.Trace("CSCoinSceneOpHandler Process recv ", data)
// if msg, ok := data.(*gamehall.CSCoinSceneOp); ok { // if msg, ok := data.(*gamehall.CSCoinSceneOp); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p != nil { // if p != nil {
// var ret gamehall.OpResultCode // var ret gamehall.OpResultCode
// pack := &gamehall.SCCoinSceneOp{ // pack := &gamehall.SCCoinSceneOp{
@ -271,7 +271,7 @@ func (this *CSCoinSceneGetPlayerNumHandler) Process(s *netlib.Session, packetid
//func (this *CSCoinSceneListRoomHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSCoinSceneListRoomHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSCoinSceneListRoomHandler Process recv ", data) // logger.Logger.Trace("CSCoinSceneListRoomHandler Process recv ", data)
// if msg, ok := data.(*gamehall.CSCoinSceneListRoom); ok { // if msg, ok := data.(*gamehall.CSCoinSceneListRoom); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p != nil { // if p != nil {
// if !CoinSceneMgrSingleton.ListRooms(p, msg.GetId()) { // 场次id // if !CoinSceneMgrSingleton.ListRooms(p, msg.GetId()) { // 场次id
// pack := &gamehall.SCCoinSceneListRoom{ // pack := &gamehall.SCCoinSceneListRoom{

View File

@ -15,7 +15,6 @@ import (
"mongo.games.com/game/model" "mongo.games.com/game/model"
"mongo.games.com/game/proto" "mongo.games.com/game/proto"
"mongo.games.com/game/protocol/friend" "mongo.games.com/game/protocol/friend"
"mongo.games.com/game/protocol/welfare"
"mongo.games.com/game/srvdata" "mongo.games.com/game/srvdata"
) )
@ -33,7 +32,7 @@ func (this *CSFriendListPacketFactory) CreatePacket() interface{} {
func (this *CSFriendListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSFriendListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSFriendListHandler Process recv ", data) logger.Logger.Trace("CSFriendListHandler Process recv ", data)
if msg, ok := data.(*friend.CSFriendList); ok { if msg, ok := data.(*friend.CSFriendList); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSFriendListHandler p == nil") logger.Logger.Warn("CSFriendListHandler p == nil")
return nil return nil
@ -151,7 +150,7 @@ func (this *CSFriendOpPacketFactory) CreatePacket() interface{} {
func (this *CSFriendOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSFriendOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSFriendOpHandler Process recv ", data) logger.Logger.Trace("CSFriendOpHandler Process recv ", data)
if msg, ok := data.(*friend.CSFriendOp); ok { if msg, ok := data.(*friend.CSFriendOp); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSFriendOpHandler p == nil") logger.Logger.Warn("CSFriendOpHandler p == nil")
return nil return nil
@ -226,7 +225,7 @@ func (this *CSQueryPlayerGameLogPacketFactory) CreatePacket() interface{} {
func (this *CSQueryPlayerGameLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSQueryPlayerGameLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSQueryPlayerGameLogHandler Process recv ", data) logger.Logger.Trace("CSQueryPlayerGameLogHandler Process recv ", data)
if msg, ok := data.(*friend.CSQueryPlayerGameLog); ok { if msg, ok := data.(*friend.CSQueryPlayerGameLog); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSQueryPlayerGameLogHandler p == nil") logger.Logger.Warn("CSQueryPlayerGameLogHandler p == nil")
return nil return nil
@ -279,7 +278,7 @@ func (this *CSInviteFriendPacketFactory) CreatePacket() interface{} {
func (this *CSInviteFriendHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSInviteFriendHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSInviteFriendHandler Process recv ", data) logger.Logger.Trace("CSInviteFriendHandler Process recv ", data)
if msg, ok := data.(*friend.CSInviteFriend); ok { if msg, ok := data.(*friend.CSInviteFriend); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSInviteFriendHandler p == nil") logger.Logger.Warn("CSInviteFriendHandler p == nil")
return nil return nil
@ -397,7 +396,7 @@ func (this *CSInviteFriendOpPacketFactory) CreatePacket() interface{} {
func (this *CSInviteFriendOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSInviteFriendOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSInviteFriendOpHandler Process recv ", data) logger.Logger.Trace("CSInviteFriendOpHandler Process recv ", data)
if msg, ok := data.(*friend.CSInviteFriendOp); ok { if msg, ok := data.(*friend.CSInviteFriendOp); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSInviteFriendOpHandler p == nil") logger.Logger.Warn("CSInviteFriendOpHandler p == nil")
return nil return nil
@ -597,35 +596,11 @@ func (this *CSFuzzyQueryPlayerPacketFactory) CreatePacket() interface{} {
func (this *CSFuzzyQueryPlayerHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSFuzzyQueryPlayerHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSFuzzyQueryPlayerHandler Process recv ", data) logger.Logger.Trace("CSFuzzyQueryPlayerHandler Process recv ", data)
if msg, ok := data.(*friend.CSFuzzyQueryPlayer); ok { if msg, ok := data.(*friend.CSFuzzyQueryPlayer); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSFuzzyQueryPlayerHandler p == nil") logger.Logger.Warn("CSFuzzyQueryPlayerHandler p == nil")
return nil return nil
} }
pack2 := &welfare.NotifyLotteryAward{
Info: &welfare.LotteryInfo{
Id: 45,
StartTs: time.Now().Unix(),
Index: int32(5),
Award: []*welfare.PropInfo{
{
ItemId: 100001,
ItemNum: 100,
},
},
SnId: p.SnId,
Name: p.Name,
RoleId: p.Roles.ModId,
Price: 1000,
WinCode: "123456",
},
}
// 广播中奖结果
PlayerMgrSington.BroadcastMessageToPlatform(p.Platform, int(welfare.SPacketID_PACKET_NotifyLotteryAward), pack2)
logger.Logger.Tracef("广播中奖信息: %v", pack2)
queryContent := msg.GetQueryContent() queryContent := msg.GetQueryContent()
if utf8.RuneCountInString(queryContent) < 3 { if utf8.RuneCountInString(queryContent) < 3 {
return nil return nil

View File

@ -37,7 +37,7 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -212,7 +212,7 @@ func (this *CSReturnRoomPacketFactory) CreatePacket() interface{} {
func (this *CSReturnRoomHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSReturnRoomHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSReturnRoomHandler Process recv ", data) logger.Logger.Trace("CSReturnRoomHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSReturnRoom); ok { if msg, ok := data.(*gamehall.CSReturnRoom); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -297,7 +297,7 @@ func (this *CSQueryRoomInfoHandler) Process(s *netlib.Session, packetid int, dat
func (this *CSQueryRoomInfoHandler) ProcessLocalGame(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSQueryRoomInfoHandler) ProcessLocalGame(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSQueryRoomInfoHandler Process recv ProcessLocalGame", data) logger.Logger.Trace("CSQueryRoomInfoHandler Process recv ProcessLocalGame", data)
if msg, ok := data.(*gamehall.CSQueryRoomInfo); ok { if msg, ok := data.(*gamehall.CSQueryRoomInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSQueryRoomInfoHandler p == nil") logger.Logger.Warn("CSQueryRoomInfoHandler p == nil")
return nil return nil
@ -370,7 +370,7 @@ func (this *CSGetGameConfigPacketFactory) CreatePacket() interface{} {
func (this *CSGetGameConfigHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetGameConfigHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetGameConfigHandler Process recv ", data) logger.Logger.Trace("CSGetGameConfigHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSGetGameConfig); ok { if msg, ok := data.(*gamehall.CSGetGameConfig); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSGetGameConfigHandler p == nil") logger.Logger.Warn("CSGetGameConfigHandler p == nil")
return nil return nil
@ -433,7 +433,7 @@ func (this *CSEnterGameHandler) ProcessLocal(s *netlib.Session, packetid int, da
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -546,7 +546,7 @@ func (this *CSEnterGameHandler) ProcessNormal(s *netlib.Session, packetid int, d
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -685,7 +685,7 @@ func (this *CSQuitGamePacketFactory) CreatePacket() interface{} {
func (this *CSQuitGameHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSQuitGameHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSQuitGameHandler Process recv ", data) logger.Logger.Trace("CSQuitGameHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSQuitGame); ok { if msg, ok := data.(*gamehall.CSQuitGame); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil { if p != nil {
var ret gamehall.OpResultCode_Game var ret gamehall.OpResultCode_Game
pack := &gamehall.SCQuitGame{ pack := &gamehall.SCQuitGame{
@ -746,7 +746,7 @@ func (this *CSCreateRoomHandler) ProcessLocalGame(s *netlib.Session, packetid in
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -939,7 +939,7 @@ func (this *CSAudienceSitPacketFactory) CreatePacket() interface{} {
func (this *CSAudienceSitHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSAudienceSitHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSAudienceSitHandler Process recv ", data) logger.Logger.Trace("CSAudienceSitHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSAudienceSit); ok { if msg, ok := data.(*gamehall.CSAudienceSit); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSAudienceSitHandler p == nil") logger.Logger.Warn("CSAudienceSitHandler p == nil")
return nil return nil
@ -998,7 +998,7 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSRecordAndNoticeHandler p == nil") logger.Logger.Warn("CSRecordAndNoticeHandler p == nil")
return nil return nil
@ -1085,7 +1085,7 @@ func CSAudienceEnterRoomHandler(s *netlib.Session, packetId int, data interface{
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1171,7 +1171,7 @@ func CSRoomConfigHandler(s *netlib.Session, packetId int, data interface{}, sid
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1189,7 +1189,7 @@ func CSCreatePrivateRoomHandler(s *netlib.Session, packetId int, data interface{
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1375,7 +1375,7 @@ func CSGetPrivateRoomListHandler(s *netlib.Session, packetId int, data interface
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1398,12 +1398,6 @@ func CSGetPrivateRoomListHandler(s *netlib.Session, packetId int, data interface
Channel: []string{p.LastChannel}, Channel: []string{p.LastChannel},
}) })
for _, v := range scenes { for _, v := range scenes {
// 隐藏关闭的房间
cfg := PlatformMgrSingleton.GetConfig(p.Platform).RoomConfig[v.CustomParam.GetRoomConfigId()]
if cfg == nil || cfg.GetOn() != common.On {
continue
}
needPassword := 0 needPassword := 0
if v.GetPassword() != "" { if v.GetPassword() != "" {
needPassword = 1 needPassword = 1
@ -1464,7 +1458,7 @@ func CSTouchTypeHandler(s *netlib.Session, packetId int, data interface{}, sid i
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1481,7 +1475,7 @@ func CSRoomRecruitHandler(s *netlib.Session, packetId int, data interface{}, sid
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1511,7 +1505,7 @@ func CSInviteJoinRoomHandler(s *netlib.Session, packetId int, data interface{},
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }

View File

@ -24,7 +24,7 @@ func (this *CSHundredSceneGetPlayerNumPacketFactory) CreatePacket() interface{}
func (this *CSHundredSceneGetPlayerNumHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSHundredSceneGetPlayerNumHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSHundredSceneGetPlayerNumHandler Process recv ", data) logger.Logger.Trace("CSHundredSceneGetPlayerNumHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSHundredSceneGetPlayerNum); ok { if msg, ok := data.(*gamehall.CSHundredSceneGetPlayerNum); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil { if p != nil {
nums := HundredSceneMgrSingleton.GetPlayerNums(p, msg.GetGameId(), msg.GetGameModel()) nums := HundredSceneMgrSingleton.GetPlayerNums(p, msg.GetGameId(), msg.GetGameModel())
pack := &gamehall.SCHundredSceneGetPlayerNum{ pack := &gamehall.SCHundredSceneGetPlayerNum{
@ -52,7 +52,7 @@ func (this *CSHundredSceneOpPacketFactory) CreatePacket() interface{} {
func (this *CSHundredSceneOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSHundredSceneOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSHundredSceneOpHandler Process recv ", data) logger.Logger.Trace("CSHundredSceneOpHandler Process recv ", data)
if msg, ok := data.(*gamehall.CSHundredSceneOp); ok { if msg, ok := data.(*gamehall.CSHundredSceneOp); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil { if p != nil {
var ret gamehall.OpResultCode_Hundred var ret gamehall.OpResultCode_Hundred
pack := &gamehall.SCHundredSceneOp{ pack := &gamehall.SCHundredSceneOp{

View File

@ -379,7 +379,7 @@ func (this *CSPlatFormPacketFactory) CreatePacket() interface{} {
func (this *CSPlatFormHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlatFormHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlatFormHandler Process recv ", data) logger.Logger.Trace("CSPlatFormHandler Process recv ", data)
if _, ok := data.(*login_proto.CSPlatFormConfig); ok { if _, ok := data.(*login_proto.CSPlatFormConfig); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlatFormHandler p == nil") logger.Logger.Warn("CSPlatFormHandler p == nil")
return nil return nil
@ -453,7 +453,7 @@ func (this *CSPlatFormHandler) Process(s *netlib.Session, packetid int, data int
//func (this *CSBulletionInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSBulletionInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSBulletionInfoHandler Process recv ", data) // logger.Logger.Trace("CSBulletionInfoHandler Process recv ", data)
// if msg, ok := data.(*login_proto.CSBulletionInfo); ok { // if msg, ok := data.(*login_proto.CSBulletionInfo); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Trace("CSBulletionInfoHandler p == nil ") // logger.Logger.Trace("CSBulletionInfoHandler p == nil ")
// return nil // return nil
@ -500,7 +500,7 @@ func (this *CSPlatFormHandler) Process(s *netlib.Session, packetid int, data int
//func (this *CSCustomerInfoListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSCustomerInfoListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSCustomerInfoListHandler Process recv ", data) // logger.Logger.Trace("CSCustomerInfoListHandler Process recv ", data)
// if _, ok := data.(*login_proto.CSCustomerInfoList); ok { // if _, ok := data.(*login_proto.CSCustomerInfoList); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Trace("CSBulletionInfoHandler p == nil ") // logger.Logger.Trace("CSBulletionInfoHandler p == nil ")
// return nil // return nil
@ -608,7 +608,7 @@ func (this *CSGetThrGameCfgPacketFactory) CreatePacket() interface{} {
func (this *CSGetThrGameCfgHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetThrGameCfgHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetThrGameCfgHandler Process recv ", data) logger.Logger.Trace("CSGetThrGameCfgHandler Process recv ", data)
if msg, ok := data.(*login_proto.CSGetThrGameCfg); ok { if msg, ok := data.(*login_proto.CSGetThrGameCfg); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSGetThrGameCfgHandler p == nil") logger.Logger.Warn("CSGetThrGameCfgHandler p == nil")
return nil return nil

View File

@ -3,7 +3,6 @@ package main
import ( import (
"mongo.games.com/game/common" "mongo.games.com/game/common"
login_proto "mongo.games.com/game/protocol/login" login_proto "mongo.games.com/game/protocol/login"
"mongo.games.com/game/worldsrv/internal"
"mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/netlib" "mongo.games.com/goserver/core/netlib"
) )
@ -16,11 +15,11 @@ func SessionLogout(sid int64, drop bool) bool {
} }
ls.state = LoginStateLogout ls.state = LoginStateLogout
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil { if p != nil {
p.ThirdGameLogout()
if drop { if drop {
p.DropLine() p.DropLine()
internal.FirePlayerDropLine[*Player, *Scene](p)
} else { } else {
p.Logout() p.Logout()
} }

View File

@ -22,7 +22,7 @@ func CSLotteryInfoHandler(s *netlib.Session, packetid int, data interface{}, sid
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }

View File

@ -22,7 +22,7 @@ func (this *CSReadMessagePacketFactory) CreatePacket() interface{} {
func (this *CSReadMessageHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSReadMessageHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSReadMessageHandler Process recv ", data) logger.Logger.Trace("CSReadMessageHandler Process recv ", data)
if csMessageRead, ok := data.(*message.CSMessageRead); ok { if csMessageRead, ok := data.(*message.CSMessageRead); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSReadMessageHandler p == nil") logger.Logger.Warn("CSReadMessageHandler p == nil")
return nil return nil
@ -47,7 +47,7 @@ func (this *CSDelMessagePacketFactory) CreatePacket() interface{} {
func (this *CSDelMessageHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSDelMessageHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSDelMessageHandler Process recv ", data) logger.Logger.Trace("CSDelMessageHandler Process recv ", data)
if csMessageDel, ok := data.(*message.CSMessageDel); ok { if csMessageDel, ok := data.(*message.CSMessageDel); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSDelMessageHandler p == nil") logger.Logger.Warn("CSDelMessageHandler p == nil")
return nil return nil
@ -72,7 +72,7 @@ func (this *CSGetMessageAttachPacketFactory) CreatePacket() interface{} {
func (this *CSGetMessageAttachHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetMessageAttachHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetMessageAttachHandler Process recv ", data) logger.Logger.Trace("CSGetMessageAttachHandler Process recv ", data)
if csGetMessageAttach, ok := data.(*message.CSGetMessageAttach); ok { if csGetMessageAttach, ok := data.(*message.CSGetMessageAttach); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSGetMessageAttachHandler p == nil") logger.Logger.Warn("CSGetMessageAttachHandler p == nil")
return nil return nil
@ -98,7 +98,7 @@ func (this *SCMessageListPacketFactory) CreatePacket() interface{} {
func (this *SCMessageListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *SCMessageListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Tracef("(this *SCMessageListHandler) Process [%v].", s.GetSessionConfig().Id) logger.Logger.Tracef("(this *SCMessageListHandler) Process [%v].", s.GetSessionConfig().Id)
if msg, ok := data.(*message.CSMessageList); ok { if msg, ok := data.(*message.CSMessageList); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
p.SendMessage(msg.GetShowId()) p.SendMessage(msg.GetShowId())
} }
return nil return nil

View File

@ -23,7 +23,7 @@ package main
//func (this *CSMNGameEnterHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSMNGameEnterHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSMNGameEnterHandler Process recv ", data) // logger.Logger.Trace("CSMNGameEnterHandler Process recv ", data)
// if msg, ok := data.(*mngame.CSMNGameEnter); ok { // if msg, ok := data.(*mngame.CSMNGameEnter); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p != nil { // if p != nil {
// code := MiniGameMgrSington.PlayerEnter(p, msg.GetId()) // code := MiniGameMgrSington.PlayerEnter(p, msg.GetId())
// pack := &mngame.SCMNGameEnter{ // pack := &mngame.SCMNGameEnter{
@ -52,7 +52,7 @@ package main
//func (this *CSMNGameLeaveHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSMNGameLeaveHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSMNGameLeaveHandler Process recv ", data) // logger.Logger.Trace("CSMNGameLeaveHandler Process recv ", data)
// if msg, ok := data.(*mngame.CSMNGameLeave); ok { // if msg, ok := data.(*mngame.CSMNGameLeave); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p != nil { // if p != nil {
// code := MiniGameMgrSington.PlayerLeave(p, msg.GetId()) // code := MiniGameMgrSington.PlayerLeave(p, msg.GetId())
// pack := &mngame.SCMNGameLeave{ // pack := &mngame.SCMNGameLeave{
@ -81,7 +81,7 @@ package main
//func (this *CSMNGameDispatcherHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSMNGameDispatcherHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSMNGameDispatcherHandler Process recv ", data) // logger.Logger.Trace("CSMNGameDispatcherHandler Process recv ", data)
// if msg, ok := data.(*mngame.CSMNGameDispatcher); ok { // if msg, ok := data.(*mngame.CSMNGameDispatcher); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p != nil { // if p != nil {
// MiniGameMgrSington.PlayerMsgDispatcher(p, msg) // MiniGameMgrSington.PlayerMsgDispatcher(p, msg)
// } // }

View File

@ -27,7 +27,7 @@ func (this *CSRoleInfoPacketFactory) CreatePacket() interface{} {
func (this *CSRoleInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSRoleInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRoleInfoHandler Process recv ", data) logger.Logger.Trace("CSRoleInfoHandler Process recv ", data)
if _, ok := data.(*pets.CSRoleInfo); ok { if _, ok := data.(*pets.CSRoleInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSRoleInfoHandler p == nil") logger.Logger.Warn("CSRoleInfoHandler p == nil")
return nil return nil
@ -61,7 +61,7 @@ func (this *CSPetInfoPacketFactory) CreatePacket() interface{} {
func (this *CSPetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPetInfoHandler Process recv ", data) logger.Logger.Trace("CSPetInfoHandler Process recv ", data)
if _, ok := data.(*pets.CSPetInfo); ok { if _, ok := data.(*pets.CSPetInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPetInfoHandler p == nil") logger.Logger.Warn("CSPetInfoHandler p == nil")
return nil return nil
@ -95,7 +95,7 @@ func (this *CSRisingStarPacketFactory) CreatePacket() interface{} {
func (this *CSRisingStarHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSRisingStarHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRisingStarHandler Process recv ", data) logger.Logger.Trace("CSRisingStarHandler Process recv ", data)
if msg, ok := data.(*pets.CSRisingStar); ok { if msg, ok := data.(*pets.CSRisingStar); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSRisingStarHandler p == nil") logger.Logger.Warn("CSRisingStarHandler p == nil")
return nil return nil
@ -237,7 +237,7 @@ func (this *CSRolePetUseOpPacketFactory) CreatePacket() interface{} {
func (this *CSRolePetUseOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSRolePetUseOpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRolePetUseOpHandler Process recv ", data) logger.Logger.Trace("CSRolePetUseOpHandler Process recv ", data)
if msg, ok := data.(*pets.CSRolePetUseOp); ok { if msg, ok := data.(*pets.CSRolePetUseOp); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSRolePetUseOpHandler p == nil") logger.Logger.Warn("CSRolePetUseOpHandler p == nil")
return nil return nil
@ -294,7 +294,7 @@ func (this *CSRolePetUnlockPacketFactory) CreatePacket() interface{} {
func (this *CSRolePetUnlockHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSRolePetUnlockHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRolePetUnlockHandler Process recv ", data) logger.Logger.Trace("CSRolePetUnlockHandler Process recv ", data)
if msg, ok := data.(*pets.CSRolePetUnlock); ok { if msg, ok := data.(*pets.CSRolePetUnlock); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSRolePetUnlockHandler p == nil") logger.Logger.Warn("CSRolePetUnlockHandler p == nil")
return nil return nil
@ -409,7 +409,7 @@ func (this *CSPetSkillLevelUpPacketFactory) CreatePacket() interface{} {
func (this *CSPetSkillLevelUpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPetSkillLevelUpHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
if msg, ok := data.(*pets.CSPetSkillLevelUp); ok { if msg, ok := data.(*pets.CSPetSkillLevelUp); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPetSkillLevelUp p == nil") logger.Logger.Warn("CSPetSkillLevelUp p == nil")
return nil return nil
@ -487,7 +487,7 @@ func CSSkinInfo(s *netlib.Session, packetid int, data interface{}, sid int64) er
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSSkinInfo p == nil") logger.Logger.Warn("CSSkinInfo p == nil")
return nil return nil
@ -506,7 +506,7 @@ func CSSkinUse(s *netlib.Session, packetid int, data interface{}, sid int64) err
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSSkinUse p == nil") logger.Logger.Warn("CSSkinUse p == nil")
return nil return nil
@ -550,7 +550,7 @@ func CSSkinUpgrade(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSSkinUpgrade p == nil") logger.Logger.Warn("CSSkinUpgrade p == nil")
return nil return nil
@ -696,7 +696,7 @@ func CSSKinUnLock(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Errorf("CSSKinUnLock p == nil") logger.Logger.Errorf("CSSKinUnLock p == nil")
return nil return nil

View File

@ -29,7 +29,7 @@ func (this *CSPhoneLotteryInfoPacketFactory) CreatePacket() interface{} {
// 获取抽奖信息 // 获取抽奖信息
func (this *CSPhoneLotteryInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPhoneLotteryInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
if _, ok := data.(*player_proto.CSPhoneLotteryInfo); ok { if _, ok := data.(*player_proto.CSPhoneLotteryInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
logger.Logger.Trace("客户端请求抽奖信息snid = ", p.SnId) logger.Logger.Trace("客户端请求抽奖信息snid = ", p.SnId)
if p == nil { if p == nil {
logger.Logger.Warn("CSPhoneLotteryInfo p == nil") logger.Logger.Warn("CSPhoneLotteryInfo p == nil")
@ -78,7 +78,7 @@ func (this *CSPhoneLotteryPacketFactory) CreatePacket() interface{} {
} }
func (this *CSPhoneLotteryHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPhoneLotteryHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
if msg, ok := data.(*player_proto.CSPhoneLottery); ok { if msg, ok := data.(*player_proto.CSPhoneLottery); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPhoneLottery p == nil") logger.Logger.Warn("CSPhoneLottery p == nil")
return nil return nil
@ -229,7 +229,7 @@ func (this *CSDiamondLotteryInfoPacketFactory) CreatePacket() interface{} {
// 获取钻石抽奖信息 // 获取钻石抽奖信息
func (this *CSDiamondLotteryInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSDiamondLotteryInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
if _, ok := data.(*player_proto.CSDiamondLotteryInfo); ok { if _, ok := data.(*player_proto.CSDiamondLotteryInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
logger.Logger.Trace("客户端请求钻石抽奖信息snid = ", p.SnId) logger.Logger.Trace("客户端请求钻石抽奖信息snid = ", p.SnId)
if p == nil { if p == nil {
logger.Logger.Warn("CSDiamondLotteryInfo p == nil") logger.Logger.Warn("CSDiamondLotteryInfo p == nil")
@ -280,7 +280,7 @@ func (this *CSDiamondLotteryPacketFactory) CreatePacket() interface{} {
// 玩家钻石抽奖 // 玩家钻石抽奖
func (this *CSDiamondLotteryHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSDiamondLotteryHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
if msg, ok := data.(*player_proto.CSDiamondLottery); ok { if msg, ok := data.(*player_proto.CSDiamondLottery); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSDiamondLottery p == nil") logger.Logger.Warn("CSDiamondLottery p == nil")
return nil return nil
@ -440,7 +440,7 @@ func (this *CSDiamondLotteryLuckyAwardPacketFactory) CreatePacket() interface{}
// 玩家钻石抽奖保底奖励 // 玩家钻石抽奖保底奖励
func (this *CSDiamondLotteryLuckyAwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSDiamondLotteryLuckyAwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
if _, ok := data.(*player_proto.CSDiamondLotteryLuckyAward); ok { if _, ok := data.(*player_proto.CSDiamondLotteryLuckyAward); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSDiamondLotteryLuckyAward p == nil") logger.Logger.Warn("CSDiamondLotteryLuckyAward p == nil")
return nil return nil

View File

@ -16,7 +16,6 @@ import (
"time" "time"
"unicode/utf8" "unicode/utf8"
"github.com/golang-jwt/jwt/v4"
"mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/basic"
"mongo.games.com/goserver/core/i18n" "mongo.games.com/goserver/core/i18n"
"mongo.games.com/goserver/core/logger" "mongo.games.com/goserver/core/logger"
@ -30,7 +29,6 @@ import (
player_proto "mongo.games.com/game/protocol/player" player_proto "mongo.games.com/game/protocol/player"
webapi_proto "mongo.games.com/game/protocol/webapi" webapi_proto "mongo.games.com/game/protocol/webapi"
"mongo.games.com/game/webapi" "mongo.games.com/game/webapi"
"mongo.games.com/game/worldsrv/internal"
) )
var reTelRule, _ = regexp.Compile(`^(1[3|4|5|6|7|8|9][0-9]\d{4,8})$`) var reTelRule, _ = regexp.Compile(`^(1[3|4|5|6|7|8|9][0-9]\d{4,8})$`)
@ -49,7 +47,7 @@ func (this *CSInviteCodePlayerPacketFactory) CreatePacket() interface{} {
func (this *CSInviteCodePlayerHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSInviteCodePlayerHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSInviteCodePlayerHandler Process recv ", data) logger.Logger.Trace("CSInviteCodePlayerHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSPlayerInviteCode); ok { if msg, ok := data.(*player_proto.CSPlayerInviteCode); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSInviteCodePlayerHandler p == nil") logger.Logger.Warn("CSInviteCodePlayerHandler p == nil")
return nil return nil
@ -153,7 +151,7 @@ func (this *CSPlayerChangeNickHandler) Process(s *netlib.Session, packetid int,
//logger.Logger.Trace("CSPlayerChangeNickHandler Process recv ", data) //logger.Logger.Trace("CSPlayerChangeNickHandler Process recv ", data)
//if msg, ok := data.(*player_proto.CSChangeNick); ok { //if msg, ok := data.(*player_proto.CSChangeNick); ok {
// //logger.Logger.Trace("修改昵称获得IP",s.RemoteAddr()) // //logger.Logger.Trace("修改昵称获得IP",s.RemoteAddr())
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Warn("CSPlayerChangeNickHandler p == nil") // logger.Logger.Warn("CSPlayerChangeNickHandler p == nil")
// return nil // return nil
@ -274,7 +272,7 @@ func (this *CSPlayerChangeIconPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerChangeIconHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerChangeIconHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerChangeIconHandler Process recv ", data) logger.Logger.Trace("CSPlayerChangeIconHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSPlayerChangeIcon); ok { if msg, ok := data.(*player_proto.CSPlayerChangeIcon); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerChangeIconHandler p == nil") logger.Logger.Warn("CSPlayerChangeIconHandler p == nil")
return nil return nil
@ -313,7 +311,7 @@ func (this *CSPlayerChangeHeadOutLinePacketFactory) CreatePacket() interface{} {
func (this *CSPlayerChangeHeadOutLineHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerChangeHeadOutLineHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerChangeHeadOutLineHandler Process recv ", data) logger.Logger.Trace("CSPlayerChangeHeadOutLineHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSPlayerChangeHeadOutLine); ok { if msg, ok := data.(*player_proto.CSPlayerChangeHeadOutLine); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerChangeHeadOutLineHandler p == nil") logger.Logger.Warn("CSPlayerChangeHeadOutLineHandler p == nil")
return nil return nil
@ -367,7 +365,7 @@ func (this *CSPlayerChangeSexPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerChangeSexHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerChangeSexHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerChangeSexHandler Process recv ", data) logger.Logger.Trace("CSPlayerChangeSexHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSPlayerChangeSex); ok { if msg, ok := data.(*player_proto.CSPlayerChangeSex); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerChangeSexHandler p == nil") logger.Logger.Warn("CSPlayerChangeSexHandler p == nil")
return nil return nil
@ -407,7 +405,7 @@ func (this *CSPlayerChangeSexHandler) Process(s *netlib.Session, packetid int, d
//func (this *CSUpgradeAccountHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSUpgradeAccountHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSUpgradeAccountHandler Process recv ", data) // logger.Logger.Trace("CSUpgradeAccountHandler Process recv ", data)
// if msg, ok := data.(*player_proto.CSUpgradeAccount); ok { // if msg, ok := data.(*player_proto.CSUpgradeAccount); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// //
// sendPack := func(code player_proto.OpResultCode) { // sendPack := func(code player_proto.OpResultCode) {
// pack := &player_proto.SCUpgradeAccount{ // pack := &player_proto.SCUpgradeAccount{
@ -584,7 +582,7 @@ func (this *CSBindAlipayPacketFactory) CreatePacket() interface{} {
func (this *CSBindAlipayHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSBindAlipayHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSBindAlipayHandler Process recv ", data) logger.Logger.Trace("CSBindAlipayHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSBindAlipay); ok { if msg, ok := data.(*player_proto.CSBindAlipay); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSBindAlipayHandler p == nil") logger.Logger.Warn("CSBindAlipayHandler p == nil")
return nil return nil
@ -714,7 +712,7 @@ func (this *CSBindBankPacketFactory) CreatePacket() interface{} {
func (this *CSBindBankHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSBindBankHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSBindBankHandler Process recv ", data) logger.Logger.Trace("CSBindBankHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSBindBank); ok { if msg, ok := data.(*player_proto.CSBindBank); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSBindBankHandler p == nil") logger.Logger.Warn("CSBindBankHandler p == nil")
return nil return nil
@ -857,7 +855,7 @@ func (this *CSChangePasswordPacketFactory) CreatePacket() interface{} {
func (this *CSChangePasswordHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSChangePasswordHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSChangePasswordHandler Process recv ", data) logger.Logger.Trace("CSChangePasswordHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSChangePassword); ok { if msg, ok := data.(*player_proto.CSChangePassword); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSChangePasswordHandler p == nil") logger.Logger.Warn("CSChangePasswordHandler p == nil")
return nil return nil
@ -987,7 +985,7 @@ func (this *CSPlayerSafeBoxPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerSafeBoxHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerSafeBoxHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerSafeBoxHandler Process recv ", data) logger.Logger.Trace("CSPlayerSafeBoxHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSPlayerOpCoin); ok { if msg, ok := data.(*player_proto.CSPlayerOpCoin); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerSafeBoxHandler p == nil") logger.Logger.Warn("CSPlayerSafeBoxHandler p == nil")
return nil return nil
@ -1130,7 +1128,7 @@ func (this *CSPlayerSafeBoxCoinLogPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerSafeBoxCoinLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerSafeBoxCoinLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("GetSafeBoxCoinLog Process recv ", data) logger.Logger.Trace("GetSafeBoxCoinLog Process recv ", data)
if _, ok := data.(*player_proto.CSGetSafeBoxCoinLog); ok { if _, ok := data.(*player_proto.CSGetSafeBoxCoinLog); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("GetSafeBoxCoinLog p == nil") logger.Logger.Warn("GetSafeBoxCoinLog p == nil")
return nil return nil
@ -1187,7 +1185,7 @@ func (this *CSPlayerSafeBoxCoinLogHandler) Process(s *netlib.Session, packetid i
//func (this *CSPlayerGameCoinLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { //func (this *CSPlayerGameCoinLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
// logger.Logger.Trace("CSPlayerGameCoinLogHandler Process recv ", data) // logger.Logger.Trace("CSPlayerGameCoinLogHandler Process recv ", data)
// if _, ok := data.(*player_proto.CSGetGameCoinLog); ok { // if _, ok := data.(*player_proto.CSGetGameCoinLog); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Warn("CSPlayerGameCoinLogHandler p == nil") // logger.Logger.Warn("CSPlayerGameCoinLogHandler p == nil")
// return nil // return nil
@ -1410,7 +1408,7 @@ func (this *CSPlayerRegisterHandler) Process(s *netlib.Session, packetid int, da
Plt: acc.Platform, Plt: acc.Platform,
AccId: acc.AccountId.Hex(), AccId: acc.AccountId.Hex(),
NickName: "", NickName: "",
HeadUrl: GetRobHeadUrlIdx(), HeadUrl: niceIdMgr.GetRobHeadUrlIdx(),
}) })
if pi == nil || tf == false { if pi == nil || tf == false {
return player_proto.OpResultCode_OPRC_Error return player_proto.OpResultCode_OPRC_Error
@ -1482,7 +1480,7 @@ func (this *CSCustomerNewMsgAckPacketFactory) CreatePacket() interface{} {
func (this *CSCustomerNewMsgAckHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSCustomerNewMsgAckHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSCustomerNewMsgAckHandler Process recv ", data) logger.Logger.Trace("CSCustomerNewMsgAckHandler Process recv ", data)
//if msg, ok := data.(*player_proto.CSCustomerNewMsgAck); ok { //if msg, ok := data.(*player_proto.CSCustomerNewMsgAck); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Warn("CSCustomerNewMsgAckHandler p == nil") // logger.Logger.Warn("CSCustomerNewMsgAckHandler p == nil")
// return nil // return nil
@ -1507,7 +1505,7 @@ func (this *CSIosInstallStablePacketFactory) CreatePacket() interface{} {
func (this *CSIosInstallStableHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSIosInstallStableHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSIosInstallStableHandler Process recv ", data) logger.Logger.Trace("CSIosInstallStableHandler Process recv ", data)
//if _, ok := data.(*player_proto.CSIosInstallStable); ok { //if _, ok := data.(*player_proto.CSIosInstallStable); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Warn("CSIosInstallStableHandler p == nil") // logger.Logger.Warn("CSIosInstallStableHandler p == nil")
// return nil // return nil
@ -1542,7 +1540,7 @@ func (this *CSFishJackpotPacketFactory) CreatePacket() interface{} {
func (this *CSFishJackpotHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSFishJackpotHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSFishJackpotHandler Process recv ", data) logger.Logger.Trace("CSFishJackpotHandler Process recv ", data)
if _, ok := data.(*player_proto.CSJackpotList); ok { if _, ok := data.(*player_proto.CSJackpotList); ok {
player := PlayerMgrSington.GetOnlinePlayer(sid) player := PlayerMgrSington.GetPlayer(sid)
if player == nil { if player == nil {
logger.Logger.Warn("CSFishJackpotHandler p == nil") logger.Logger.Warn("CSFishJackpotHandler p == nil")
return nil return nil
@ -1581,7 +1579,7 @@ func (this *CSFishJackpotCoinPacketFactory) CreatePacket() interface{} {
func (this *CSFishJackpotCoinHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSFishJackpotCoinHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSFishJackpotCoinHandler Process recv ", data) logger.Logger.Trace("CSFishJackpotCoinHandler Process recv ", data)
if _, ok := data.(*player_proto.CSFishJackpotCoin); ok { if _, ok := data.(*player_proto.CSFishJackpotCoin); ok {
player := PlayerMgrSington.GetOnlinePlayer(sid) player := PlayerMgrSington.GetPlayer(sid)
if player == nil { if player == nil {
logger.Logger.Warn("CSFishJackpotCoinHandler p == nil") logger.Logger.Warn("CSFishJackpotCoinHandler p == nil")
return nil return nil
@ -1617,7 +1615,7 @@ func (this *CSGetSpreadIsOpenPacketFactory) CreatePacket() interface{} {
func (this *CSGetSpreadIsOpenHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetSpreadIsOpenHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetSpreadIsOpenHandler Process recv ", data) logger.Logger.Trace("CSGetSpreadIsOpenHandler Process recv ", data)
if _, ok := data.(*player_proto.CSGetSpreadLWIsOpen); ok { if _, ok := data.(*player_proto.CSGetSpreadLWIsOpen); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSGetSpreadIsOpenHandler p == nil") logger.Logger.Warn("CSGetSpreadIsOpenHandler p == nil")
return nil return nil
@ -1656,7 +1654,7 @@ func (this *CSPlayerSettingPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerSettingHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerSettingHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerSettingHandler Process recv ", data) logger.Logger.Trace("CSPlayerSettingHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSPlayerSetting); ok { if msg, ok := data.(*player_proto.CSPlayerSetting); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerSettingHandler p == nil") logger.Logger.Warn("CSPlayerSettingHandler p == nil")
return nil return nil
@ -1714,7 +1712,7 @@ func (this *CSPlayerVIPBuyPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerVIPBuyHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerVIPBuyHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSVIPBuy Process recv ", data) logger.Logger.Trace("CSVIPBuy Process recv ", data)
//if msg, ok := data.(*player_proto.CSVIPBuy); ok { //if msg, ok := data.(*player_proto.CSVIPBuy); ok {
// p := PlayerMgrSington.GetOnlinePlayer(sid) // p := PlayerMgrSington.GetPlayer(sid)
// if p == nil { // if p == nil {
// logger.Logger.Warn("CSPlayerVIPBuyHandler p == nil") // logger.Logger.Warn("CSPlayerVIPBuyHandler p == nil")
// return nil // return nil
@ -1739,7 +1737,7 @@ func (this *CSPlayerVIPInfoPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerVIPInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerVIPInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSVIPInfo Process recv ", data) logger.Logger.Trace("CSVIPInfo Process recv ", data)
if _, ok := data.(*player_proto.CSVIPInfo); ok { if _, ok := data.(*player_proto.CSVIPInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerVIPInfoHandler p == nil") logger.Logger.Warn("CSPlayerVIPInfoHandler p == nil")
return nil return nil
@ -1763,7 +1761,7 @@ func (this *CSPlayerVIPDrawPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerVIPDrawHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerVIPDrawHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSVIPDraw Process recv ", data) logger.Logger.Trace("CSVIPDraw Process recv ", data)
if msg, ok := data.(*player_proto.CSVIPDraw); ok { if msg, ok := data.(*player_proto.CSVIPDraw); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerVIPDrawHandler p == nil") logger.Logger.Warn("CSPlayerVIPDrawHandler p == nil")
return nil return nil
@ -1788,7 +1786,7 @@ func (this *CSVIPPrivilegeInfoPacketFactory) CreatePacket() interface{} {
func (this *CSVIPPrivilegeInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSVIPPrivilegeInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSVIPPrivilegeInfoHandler Process recv ", data) logger.Logger.Trace("CSVIPPrivilegeInfoHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSVIPPrivilegeInfo); ok { if msg, ok := data.(*player_proto.CSVIPPrivilegeInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSVIPPrivilegeInfoHandler p == nil") logger.Logger.Warn("CSVIPPrivilegeInfoHandler p == nil")
return nil return nil
@ -1882,7 +1880,7 @@ func CSExchangeChannel(s *netlib.Session, packetid int, data interface{}, sid in
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSExchangeChannel p == nil") logger.Logger.Warn("CSExchangeChannel p == nil")
return nil return nil
@ -2006,7 +2004,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
if player.IsOnLine() { if player.IsOnLine() {
if player.sid != 0 && player.sid != sid { if player.sid != 0 && player.sid != sid {
//Kick the exist player disconnect //Kick the exist player disconnect
player.Kick(common.KickReason_OtherLogin) player.Kickout(common.KickReason_OtherLogin)
} }
} }
@ -2024,7 +2022,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
proto.SetDefaults(scPlayerData) proto.SetDefaults(scPlayerData)
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData) player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
//Kick the exist player disconnect //Kick the exist player disconnect
player.Kick(common.KickReason_Freeze) player.Kickout(common.KickReason_Freeze)
return nil return nil
} }
@ -2038,7 +2036,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
proto.SetDefaults(scPlayerData) proto.SetDefaults(scPlayerData)
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData) player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
//Kick the exist player disconnect //Kick the exist player disconnect
player.Kick(common.KickReason_Freeze) player.Kickout(common.KickReason_Freeze)
return nil return nil
} }
@ -2058,7 +2056,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
proto.SetDefaults(scPlayerData) proto.SetDefaults(scPlayerData)
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData) player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
//Kick the exist player disconnect //Kick the exist player disconnect
player.Kick(common.KickReason_Freeze) player.Kickout(common.KickReason_Freeze)
return nil return nil
} }
@ -2070,18 +2068,40 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
proto.SetDefaults(scPlayerData) proto.SetDefaults(scPlayerData)
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData) player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
//Kick the exist player disconnect //Kick the exist player disconnect
player.Kick(common.KickReason_Freeze) player.Kickout(common.KickReason_Freeze)
return nil return nil
} }
} }
if !player.IsRob { if !player.IsRob {
if _, ok := BlackListMgrSington.CheckLogin(player.PlayerData); !ok { if _, ok := BlackListMgrSington.CheckLogin(player.PlayerData); !ok {
player.Kick(common.KickReason_Freeze) //var msg string
//if bi != nil {
// msg = i18n.Tr("languages", "BlackListLimit2Args", player.SnId, bi.Id, player.SnId, bi.Id, player.SnId, bi.Id, player.SnId, bi.Id)
//} else {
// msg = i18n.Tr("languages", "BlackListLimit1Args", player.SnId, player.SnId, player.SnId, player.SnId)
//}
//common.SendSrvMsg(player, common.SRVMSG_CODE_DEFAULT, msg)
//scPlayerData := &player_proto.SCPlayerData{
// OpRetCode: player_proto.OpResultCode_OPRC_InBlackList,
//}
//proto.SetDefaults(scPlayerData)
//player.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
//Kick the exist player disconnect
player.Kickout(common.KickReason_Freeze)
return nil return nil
} }
} }
// 给玩家发送三方余额状态
//statePack := &gamehall_proto.SCThridGameBalanceUpdateState{}
//if player.thridBalanceReqIsSucces {
// statePack.OpRetCode = gamehall_proto.OpResultCode_Game_OPRC_Sucess_Game
//} else {
// statePack.OpRetCode = gamehall_proto.OpResultCode_Game_OPRC_Error_Game
//}
//player.SendRawToClientIncOffLine(sid, s, int(gamehall_proto.GameHallPacketID_PACKET_SC_THRIDGAMEBALANCEUPDATESTATE), statePack)
//抽奖次数兼容老玩家 //抽奖次数兼容老玩家
if !player.IsRob && !player.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(player.Platform) == model.WelfareOpen { if !player.IsRob && !player.InitLotteryStatus && WelfareMgrSington.GetPhoneLotteryStatus(player.Platform) == model.WelfareOpen {
player.addLotteryCount(20) player.addLotteryCount(20)
@ -2094,7 +2114,6 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
playerFunc(player, cspl) playerFunc(player, cspl)
PlayerMgrSington.ReholdPlayer(player, sid, s) PlayerMgrSington.ReholdPlayer(player, sid, s)
player.OnRehold() player.OnRehold()
internal.FirePlayerRehold[*Player, *Scene](player)
player.SendPlayerInfo() player.SendPlayerInfo()
return nil return nil
} }
@ -2122,27 +2141,87 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
return return
} }
PlayerMgrSington.AddPlayer(sid, pd.PlayerData, s) var promoterID string
player := PlayerMgrSington.GetOnlinePlayer(sid) var promoterCfg *PromoterConfig
if player == nil { f := func() {
PlayerMgrSington.AddPlayer(sid, pd.PlayerData, s)
player := PlayerMgrSington.GetPlayer(sid)
if player == nil {
return
}
if !player.IsRob {
if _, ok := BlackListMgrSington.CheckLogin(pd.PlayerData); !ok {
//黑名单用户也需要调用一下onlogin,否则会导致数据无法刷新
player.OnLogined()
player.Kickout(common.KickReason_Freeze)
return
}
}
if promoterID != "" {
key, err := GetPromoterKey(0, promoterID, "")
if err == nil {
promoterCfg = PromoterMgrSington.GetConfig(key)
if promoterCfg != nil && promoterCfg.IsInviteRoot > 0 {
player.BeUnderAgentCode = promoterID
}
}
}
var temp []byte
var ee error
di := cspl.GetDeviceInfo()
if di != "" {
var e common.Encryptor
e.Init(common.GetAppId(), player.PackageID, int32(cspl.GetTimeStamp()))
temp, ee = base64.StdEncoding.DecodeString(di)
if ee == nil {
e.Encrypt(temp, len(temp))
}
}
if isnew { //新用户赠送金币
//首次创建账号事件
//isBind := 0
//if pd.Tel != "" {
// isBind = 1
//}
//LogChannelSingleton.WriteMQData(model.GeneratePlayerEvent(model.WEBEVENT_LOGIN, pd.Platform, pd.PackageID, pd.SnId, pd.Channel, pd.BeUnderAgentCode, pd.PromoterTree, 1, 1, isBind, common.GetAppId()))
//newbieCoin := player.GetRegisterPrize()
//if newbieCoin > 0 {
// player.AddCoin(int64(newbieCoin), common.GainWay_NewPlayer, "system", "")
// //增加泥码
// player.AddDirtyCoin(0, int64(newbieCoin))
// player.ReportSystemGiveEvent(newbieCoin, common.GainWay_NewPlayer, true)
// player.AddPayCoinLog(int64(newbieCoin), model.PayCoinLogType_Coin, "NewPlayer")
// LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(pd.SnId, pd.Name, pd.Platform, model.SystemFreeGive_GiveType_NewPlayer, model.SystemFreeGive_CoinType_Coin, int64(newbieCoin)))
//}
//if player.InviterId > 0 {
// //actRandCoinMgr.OnPlayerInvite(player.Platform, player.InviterId)
//}
}
//测试代码
playerFunc(player, cspl)
player.OnLogined()
player.SendPlayerInfo()
return return
} }
// 检查禁止登录 if pd.InviterId != 0 {
if !player.IsRob { // 获取推广人
if _, ok := BlackListMgrSington.CheckLogin(pd.PlayerData); !ok { PlayerCacheMgrSingleton.UnCacheInvalidPlayerId(pd.InviterId)
//黑名单用户也需要调用一下onlogin,否则会导致数据无法刷新 PlayerCacheMgrSingleton.Get(pd.Platform, pd.InviterId, func(inviter *PlayerCacheItem, async, isnew bool) {
player.OnLogined() if inviter != nil {
internal.FirePlayerLogined[*Player, *Scene](player) promoterID = inviter.BeUnderAgentCode
player.Kick(common.KickReason_Freeze) }
return f()
} }, false)
} else {
f()
} }
playerFunc(player, cspl)
player.OnLogined()
internal.FirePlayerLogined[*Player, *Scene](player)
player.SendPlayerInfo()
}, true) }, true)
return nil return nil
@ -2151,7 +2230,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
func CSQueryPlayer(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSQueryPlayer(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSQueryPlayerHandler Process recv ", data) logger.Logger.Trace("CSQueryPlayerHandler Process recv ", data)
if msg, ok := data.(*player_proto.CSQueryPlayer); ok { if msg, ok := data.(*player_proto.CSQueryPlayer); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSQueryPlayerHandler p == nil") logger.Logger.Warn("CSQueryPlayerHandler p == nil")
return nil return nil
@ -2254,7 +2333,7 @@ func CSSavePlayerInfo(s *netlib.Session, packetid int, data interface{}, sid int
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -2312,7 +2391,7 @@ func CSHeadUrl(s *netlib.Session, packetId int, data interface{}, sid int64) err
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSHeadUrl p == nil") logger.Logger.Warn("CSHeadUrl p == nil")
return nil return nil
@ -2341,7 +2420,7 @@ func CSBindTelInfo(s *netlib.Session, packetId int, data interface{}, sid int64)
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Error("CSBindTelInfo p == nil", sid) logger.Logger.Error("CSBindTelInfo p == nil", sid)
return nil return nil
@ -2372,7 +2451,7 @@ func CSPlayerSMSCode(s *netlib.Session, packetId int, data interface{}, sid int6
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
sendPack := func(code player_proto.OpResultCode) { sendPack := func(code player_proto.OpResultCode) {
pack := &player_proto.SCPlayerSMSCode{ pack := &player_proto.SCPlayerSMSCode{
@ -2497,7 +2576,7 @@ func CSBindTel(s *netlib.Session, packetId int, data interface{}, sid int64) err
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Error("CSBindTel p == nil", sid) logger.Logger.Error("CSBindTel p == nil", sid)
return nil return nil
@ -2743,7 +2822,7 @@ func CSBillList(s *netlib.Session, packetId int, data interface{}, sid int64) er
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -2808,7 +2887,7 @@ func CSADV(s *netlib.Session, packetId int, data interface{}, sid int64) error {
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -2829,7 +2908,7 @@ func CSADV(s *netlib.Session, packetId int, data interface{}, sid int64) error {
// 获取运营商配置 // 获取运营商配置
func CSSMSConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSSMSConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSSMSConfig Process %v", data) logger.Logger.Tracef("CSSMSConfig Process %v", data)
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -2868,7 +2947,7 @@ func CSSMSConfig(s *netlib.Session, packetId int, data interface{}, sid int64) e
// 获取获奖记录 // 获取获奖记录
func CSAwardLog(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSAwardLog(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSAwardLog Process %v", data) logger.Logger.Tracef("CSAwardLog Process %v", data)
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -2965,7 +3044,7 @@ func CSAwardLog(s *netlib.Session, packetId int, data interface{}, sid int64) er
return nil return nil
} }
func CSPopUpWindowsConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSPopUpWindowsConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -3006,7 +3085,7 @@ func CSPopUpWindowsConfig(s *netlib.Session, packetId int, data interface{}, sid
func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSUpdateAttribute %v", data) logger.Logger.Tracef("CSUpdateAttribute %v", data)
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -3172,7 +3251,7 @@ func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid in
send() send()
return nil return nil
} }
if msg.GuideId == common.GuideIdNewPlayer { if msg.GuideId == 1 {
if p.GuideStep >= 0 && p.GuideStep < model.GameParamData.GuideStepMaxNum { if p.GuideStep >= 0 && p.GuideStep < model.GameParamData.GuideStepMaxNum {
p.GuideStep = -1 // 跳过引导为 -1 p.GuideStep = -1 // 跳过引导为 -1
pack.OpRetCode = player_proto.OpResultCode_OPRC_Sucess pack.OpRetCode = player_proto.OpResultCode_OPRC_Sucess
@ -3190,7 +3269,6 @@ func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid in
return nil return nil
} }
p.GuideStep = int32(msg.GetParam()[0]) p.GuideStep = int32(msg.GetParam()[0])
p.GuideData[msg.GetGuideId()] = int32(msg.GetParam()[0])
pack.OpRetCode = player_proto.OpResultCode_OPRC_Sucess pack.OpRetCode = player_proto.OpResultCode_OPRC_Sucess
send() send()
return nil return nil
@ -3206,7 +3284,7 @@ func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid in
// 获取获奖记录 // 获取获奖记录
func CSClawdollItemLog(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSClawdollItemLog(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSClawdollItemLog Process %v", data) logger.Logger.Tracef("CSClawdollItemLog Process %v", data)
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -3249,7 +3327,7 @@ func CSClawdollItemLog(s *netlib.Session, packetId int, data interface{}, sid in
func CSCLAWDOLLConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSCLAWDOLLConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSDollConfigHandler") logger.Logger.Tracef("CSDollConfigHandler")
if _, ok := data.(*player_proto.CSCLAWDOLLConfig); ok { if _, ok := data.(*player_proto.CSCLAWDOLLConfig); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSDollConfigHandler p == nil") logger.Logger.Warn("CSDollConfigHandler p == nil")
return nil return nil
@ -3278,7 +3356,7 @@ func CSCLAWDOLLConfig(s *netlib.Session, packetId int, data interface{}, sid int
// 客户端请求弹窗配置 // 客户端请求弹窗配置
func CSPopUpWindowConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSPopUpWindowConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -3301,38 +3379,6 @@ func CSPopUpWindowConfig(s *netlib.Session, packetId int, data interface{}, sid
return nil return nil
} }
func CSGetSwapShopInfo(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSGetSwapShopInfo %v", data)
p := PlayerMgrSington.GetOnlinePlayer(sid)
if p == nil {
return nil
}
_, ok := data.(*player_proto.CSGetSwapShopInfo)
if !ok {
return nil
}
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"snid": p.SnId,
"platform": p.Platform,
"exp": time.Now().Add(time.Hour * 24).Unix(),
})
str, err := token.SignedString([]byte(common.Config.AppId))
if err != nil {
logger.Logger.Errorf("CSGetSwapShopInfo err:%v", err)
return nil
}
pack := &player_proto.SCGetSwapShopInfo{
Url: fmt.Sprintf("%s?access_token=%s", model.GameParamData.SwapShopUrl, str),
}
p.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCGetSwapShopInfo), pack)
logger.Logger.Tracef("SCGetSwapShopInfo %v", pack)
return nil
}
func init() { func init() {
// 用户信息 // 用户信息
common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData) common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData)
@ -3372,6 +3418,4 @@ func init() {
common.Register(int(player_proto.PlayerPacketID_PACKET_CSDollConfig), player_proto.CSCLAWDOLLConfig{}, CSCLAWDOLLConfig) common.Register(int(player_proto.PlayerPacketID_PACKET_CSDollConfig), player_proto.CSCLAWDOLLConfig{}, CSCLAWDOLLConfig)
//客户端请求弹窗配置信息 //客户端请求弹窗配置信息
common.Register(int(player_proto.PlayerPacketID_PACKET_CSPopUpWindowConfig), player_proto.CSPopUpWindowConfig{}, CSPopUpWindowConfig) common.Register(int(player_proto.PlayerPacketID_PACKET_CSPopUpWindowConfig), player_proto.CSPopUpWindowConfig{}, CSPopUpWindowConfig)
// 获取兑换商城网页地址
common.Register(int(player_proto.PlayerPacketID_PACKET_CSGetSwapShopInfo), player_proto.CSGetSwapShopInfo{}, CSGetSwapShopInfo)
} }

View File

@ -27,7 +27,7 @@ func init() {
// CSRMSeasonInfo 赛季信息 // CSRMSeasonInfo 赛季信息
func CSRMSeasonInfo(s *netlib.Session, packetId int, data interface{}, sid int64) error { func CSRMSeasonInfo(s *netlib.Session, packetId int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRMSeasonInfo") logger.Logger.Trace("CSRMSeasonInfo")
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSRMSeasonInfo p == nil.") logger.Logger.Warnf("CSRMSeasonInfo p == nil.")
return nil return nil
@ -80,7 +80,7 @@ func CSRMRankConfig(s *netlib.Session, packetId int, data interface{}, sid int64
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSRMRankConfig p == nil.") logger.Logger.Warnf("CSRMRankConfig p == nil.")
return nil return nil
@ -116,7 +116,7 @@ func CSRMAwardConfig(s *netlib.Session, packetId int, data interface{}, sid int6
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSRMAwardConfig p == nil.") logger.Logger.Warnf("CSRMAwardConfig p == nil.")
return nil return nil
@ -174,7 +174,7 @@ func CSRMAward(s *netlib.Session, packetId int, data interface{}, sid int64) err
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSRMAward p == nil.") logger.Logger.Warnf("CSRMAward p == nil.")
return nil return nil

View File

@ -245,7 +245,7 @@ func init() {
if scene.starting { if scene.starting {
if scene.currRound == 1 { if scene.currRound == 1 {
scene.startTime = time.Now() scene.startTime = time.Now()
//p := PlayerMgrSington.GetOnlinePlayer(s.Sid) //p := PlayerMgrSington.GetPlayer(s.Sid)
} }
} }
if scene.starting { if scene.starting {
@ -613,7 +613,7 @@ func (this *CSPMCmdPacketFactory) CreatePacket() interface{} {
func (this *CSPMCmdHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPMCmdHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPMCmdHandler Process recv ", data) logger.Logger.Trace("CSPMCmdHandler Process recv ", data)
if msg, ok := data.(*playerproto.CSPMCmd); ok { if msg, ok := data.(*playerproto.CSPMCmd); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Trace("CSPMCmdHandler p == nil") logger.Logger.Trace("CSPMCmdHandler p == nil")
return nil return nil
@ -652,6 +652,33 @@ func (this *CSPMCmdHandler) Process(s *netlib.Session, packetid int, data interf
return nil return nil
} }
type CSRobotChgDataPacketFactory struct {
}
type CSRobotChgDataHandler struct {
}
func (this *CSRobotChgDataPacketFactory) CreatePacket() interface{} {
pack := &playerproto.CSRobotChgData{}
return pack
}
func (this *CSRobotChgDataHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSRobotChgDataHandler Process recv ", data)
if _, ok := data.(*playerproto.CSRobotChgData); ok {
p := PlayerMgrSington.GetPlayer(sid)
if p == nil {
logger.Logger.Trace("CSRobotChgDataHandler p == nil")
return nil
}
if !p.IsRob {
logger.Logger.Trace("CSRobotChgDataHandler !p.IsRob")
return nil
}
}
return nil
}
type CSAccountInvalidPacketFactory struct { type CSAccountInvalidPacketFactory struct {
} }
type CSAccountInvalidHandler struct { type CSAccountInvalidHandler struct {
@ -665,7 +692,7 @@ func (this *CSAccountInvalidPacketFactory) CreatePacket() interface{} {
func (this *CSAccountInvalidHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSAccountInvalidHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSAccountInvalidHandler Process recv ", data) logger.Logger.Trace("CSAccountInvalidHandler Process recv ", data)
if _, ok := data.(*loginproto.CSAccountInvalid); ok { if _, ok := data.(*loginproto.CSAccountInvalid); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil && p.IsRobot() { if p != nil && p.IsRobot() {
snid := p.SnId snid := p.SnId
acc := p.AccountId acc := p.AccountId
@ -691,11 +718,12 @@ func (this *CSAccountInvalidHandler) Process(s *netlib.Session, packetid int, da
} }
func init() { func init() {
// 机器人命令
common.RegisterHandler(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), &CSPMCmdHandler{}) common.RegisterHandler(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), &CSPMCmdHandler{})
netlib.RegisterFactory(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), &CSPMCmdPacketFactory{}) netlib.RegisterFactory(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), &CSPMCmdPacketFactory{})
// 删除机器人账号 common.RegisterHandler(int(playerproto.PlayerPacketID_PACKET_CS_ROBOTCHGDATA), &CSRobotChgDataHandler{})
netlib.RegisterFactory(int(playerproto.PlayerPacketID_PACKET_CS_ROBOTCHGDATA), &CSRobotChgDataPacketFactory{})
common.RegisterHandler(int(loginproto.LoginPacketID_PACKET_CS_ACCOUNTINVALID), &CSAccountInvalidHandler{}) common.RegisterHandler(int(loginproto.LoginPacketID_PACKET_CS_ACCOUNTINVALID), &CSAccountInvalidHandler{})
netlib.RegisterFactory(int(loginproto.LoginPacketID_PACKET_CS_ACCOUNTINVALID), &CSAccountInvalidPacketFactory{}) netlib.RegisterFactory(int(loginproto.LoginPacketID_PACKET_CS_ACCOUNTINVALID), &CSAccountInvalidPacketFactory{})
} }

View File

@ -29,7 +29,7 @@ func (this *CSShopInfoPacketFactory) CreatePacket() interface{} {
func (this *CSShopInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSShopInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSShopInfoHandler Process recv ", data) logger.Logger.Trace("CSShopInfoHandler Process recv ", data)
if msg, ok := data.(*shop.CSShopInfo); ok { if msg, ok := data.(*shop.CSShopInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSShopInfoHandler p == nil") logger.Logger.Warn("CSShopInfoHandler p == nil")
return nil return nil
@ -62,7 +62,7 @@ func (this *CSAdLookedPacketFactory) CreatePacket() interface{} {
func (this *CSAdLookedHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSAdLookedHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSAdLookedHandler Process recv ", data) logger.Logger.Trace("CSAdLookedHandler Process recv ", data)
if msg, ok := data.(*shop.CSAdLooked); ok { if msg, ok := data.(*shop.CSAdLooked); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSAdLookedHandler p == nil") logger.Logger.Warn("CSAdLookedHandler p == nil")
return nil return nil
@ -134,7 +134,7 @@ func (this *CSVCPayShopPacketFactory) CreatePacket() interface{} {
func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSVCPayShopHandler Process recv ", data) logger.Logger.Trace("CSVCPayShopHandler Process recv ", data)
if msg, ok := data.(*shop.CSVCPayShop); ok { if msg, ok := data.(*shop.CSVCPayShop); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSVCPayShopHandler p == nil") logger.Logger.Warn("CSVCPayShopHandler p == nil")
return nil return nil
@ -246,7 +246,7 @@ func (this *CSShopExchangeRecordPacketFactory) CreatePacket() interface{} {
func (this *CSShopExchangeRecordHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSShopExchangeRecordHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSShopExchangeRecordHandler Process recv ", data) logger.Logger.Trace("CSShopExchangeRecordHandler Process recv ", data)
if msg, ok := data.(*shop.CSShopExchangeRecord); ok { if msg, ok := data.(*shop.CSShopExchangeRecord); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSShopExchangeRecordHandler p == nil") logger.Logger.Warn("CSShopExchangeRecordHandler p == nil")
return nil return nil
@ -279,7 +279,7 @@ func (this *CSShopExchangeHandler) Process(s *netlib.Session, packetid int, data
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSShopExchangeHandler p == nil") logger.Logger.Warn("CSShopExchangeHandler p == nil")
return nil return nil
@ -362,7 +362,7 @@ func (this *CSShopExchangeListPacketFactory) CreatePacket() interface{} {
func (this *CSShopExchangeListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSShopExchangeListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSShopExchangeListHandler Process recv ", data) logger.Logger.Trace("CSShopExchangeListHandler Process recv ", data)
if _, ok := data.(*shop.CSShopExchangeList); ok { if _, ok := data.(*shop.CSShopExchangeList); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSShopExchangeListHandler p == nil") logger.Logger.Warn("CSShopExchangeListHandler p == nil")
return nil return nil
@ -388,7 +388,7 @@ func (this *CSPayInfoPacketFactory) CreatePacket() interface{} {
func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPayInfoHandler Process recv ", data) logger.Logger.Trace("CSPayInfoHandler Process recv ", data)
if msg, ok := data.(*shop.CSPayInfo); ok { if msg, ok := data.(*shop.CSPayInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPayInfoHandler p == nil") logger.Logger.Warn("CSPayInfoHandler p == nil")
return nil return nil
@ -520,7 +520,7 @@ func (this *CSGetPayInfoListPacketFactory) CreatePacket() interface{} {
func (this *CSGetPayInfoListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetPayInfoListHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetPayInfoListHandler Process recv ", data) logger.Logger.Trace("CSGetPayInfoListHandler Process recv ", data)
if msg, ok := data.(*shop.CSGetPayInfoList); ok { if msg, ok := data.(*shop.CSGetPayInfoList); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSGetPayInfoListHandler p == nil") logger.Logger.Warn("CSGetPayInfoListHandler p == nil")
return nil return nil
@ -637,7 +637,7 @@ func (this *CSPlayerAddrPacketFactory) CreatePacket() interface{} {
func (this *CSPlayerAddrHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPlayerAddrHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPlayerAddr Process recv ", data) logger.Logger.Trace("CSPlayerAddr Process recv ", data)
if msg, ok := data.(*shop.CSPlayerAddr); ok { if msg, ok := data.(*shop.CSPlayerAddr); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPlayerAddr p == nil") logger.Logger.Warn("CSPlayerAddr p == nil")
return nil return nil
@ -671,7 +671,7 @@ func (this *CSUpdateVipShopPacketFactory) CreatePacket() interface{} {
} }
func (this *CSUpdateVipShopHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSUpdateVipShopHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warn("CSPayInfoHandler p == nil") logger.Logger.Warn("CSPayInfoHandler p == nil")
return nil return nil

View File

@ -152,7 +152,7 @@ func CSTaskList(s *netlib.Session, packetId int, data interface{}, sid int64) er
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -199,7 +199,7 @@ func CSTaskReward(s *netlib.Session, packetId int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -278,7 +278,7 @@ func CSTaskDebugInc(s *netlib.Session, packetId int, data interface{}, sid int64
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }

View File

@ -15,7 +15,7 @@ func CSTMInfo(s *netlib.Session, packetid int, data interface{}, sid int64) erro
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSTMInfo p == nil.") logger.Logger.Warnf("CSTMInfo p == nil.")
return nil return nil
@ -33,7 +33,7 @@ func CSSignRace(s *netlib.Session, packetid int, data interface{}, sid int64) er
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSSignRace p == nil.") logger.Logger.Warnf("CSSignRace p == nil.")
return nil return nil
@ -100,7 +100,7 @@ func CSMatchList(s *netlib.Session, packetId int, data interface{}, sid int64) e
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSMatchList p == nil.") logger.Logger.Warnf("CSMatchList p == nil.")
return nil return nil
@ -171,7 +171,7 @@ func CSRoomList(s *netlib.Session, packetId int, data interface{}, sid int64) er
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSRoomList p == nil.") logger.Logger.Warnf("CSRoomList p == nil.")
return nil return nil

View File

@ -36,7 +36,7 @@ func (this *CSGetReliefFundPacketFactory) CreatePacket() interface{} {
func (this *CSGetReliefFundHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetReliefFundHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetReliefFund Process recv ", data) logger.Logger.Trace("CSGetReliefFund Process recv ", data)
if msg, ok := data.(*welfare.CSGetReliefFund); ok { if msg, ok := data.(*welfare.CSGetReliefFund); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSGetReliefFundHandler p == nil") logger.Logger.Warnf("CSGetReliefFundHandler p == nil")
return nil return nil
@ -61,7 +61,7 @@ func (this *CSGetTurnplatePacketFactory) CreatePacket() interface{} {
func (this *CSGetTurnplateHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetTurnplateHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetTurnplate Process recv ", data) logger.Logger.Trace("CSGetTurnplate Process recv ", data)
if msg, ok := data.(*welfare.CSGetTurnplate); ok { if msg, ok := data.(*welfare.CSGetTurnplate); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSGetTurnplateHandler p == nil") logger.Logger.Warnf("CSGetTurnplateHandler p == nil")
return nil return nil
@ -91,7 +91,7 @@ func (this *CSGetAddupSignPacketFactory) CreatePacket() interface{} {
func (this *CSGetAddupSignHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSGetAddupSignHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetAddupSign Process recv ", data) logger.Logger.Trace("CSGetAddupSign Process recv ", data)
if msg, ok := data.(*welfare.CSGetAddupSign); ok { if msg, ok := data.(*welfare.CSGetAddupSign); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSGetAddupSignHandler p == nil") logger.Logger.Warnf("CSGetAddupSignHandler p == nil")
return nil return nil
@ -118,7 +118,7 @@ func (this *CSWelfaredInfoPacketFactory) CreatePacket() interface{} {
func (this *CSWelfaredInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSWelfaredInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSWelfaredInfo Process recv ", data) logger.Logger.Trace("CSWelfaredInfo Process recv ", data)
if _, ok := data.(*welfare.CSWelfaredInfo); ok { if _, ok := data.(*welfare.CSWelfaredInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSWelfaredInfoHandler p == nil") logger.Logger.Warnf("CSWelfaredInfoHandler p == nil")
return nil return nil
@ -143,7 +143,7 @@ func (this *CSBlindBoxInfoPacketFactory) CreatePacket() interface{} {
func (this *CSBlindBoxInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSBlindBoxInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSBlindBoxInfo Process recv ", data) logger.Logger.Trace("CSBlindBoxInfo Process recv ", data)
if msg, ok := data.(*welfare.CSBlindBoxInfo); ok { if msg, ok := data.(*welfare.CSBlindBoxInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSBlindBoxInfoHandler p == nil") logger.Logger.Warnf("CSBlindBoxInfoHandler p == nil")
return nil return nil
@ -168,7 +168,7 @@ func (this *CSBuyBlindBoxPacketFactory) CreatePacket() interface{} {
func (this *CSBuyBlindBoxHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSBuyBlindBoxHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSGetBlindBox Process recv ", data) logger.Logger.Trace("CSGetBlindBox Process recv ", data)
if _, ok := data.(*welfare.CSGetBlindBox); ok { if _, ok := data.(*welfare.CSGetBlindBox); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSBuyBlindBoxHandler p == nil") logger.Logger.Warnf("CSBuyBlindBoxHandler p == nil")
return nil return nil
@ -193,7 +193,7 @@ func (this *CSFirstPayInfoPacketFactory) CreatePacket() interface{} {
func (this *CSFirstPayInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSFirstPayInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSWelfareFirstPayData Process recv ", data) logger.Logger.Trace("CSWelfareFirstPayData Process recv ", data)
if _, ok := data.(*welfare.CSWelfareFirstPayData); ok { if _, ok := data.(*welfare.CSWelfareFirstPayData); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSFirstPayInfoHandler p == nil") logger.Logger.Warnf("CSFirstPayInfoHandler p == nil")
return nil return nil
@ -218,7 +218,7 @@ func (this *CSBuyFirstPayPacketFactory) CreatePacket() interface{} {
func (this *CSBuyFirstPayHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSBuyFirstPayHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSWelfareFirstPay Process recv ", data) logger.Logger.Trace("CSWelfareFirstPay Process recv ", data)
if _, ok := data.(*welfare.CSWelfareFirstPay); ok { if _, ok := data.(*welfare.CSWelfareFirstPay); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSBuyFirstPayHandler p == nil") logger.Logger.Warnf("CSBuyFirstPayHandler p == nil")
return nil return nil
@ -243,7 +243,7 @@ func (this *CSContinuousPayInfoPacketFactory) CreatePacket() interface{} {
func (this *CSContinuousPayInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSContinuousPayInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSWelfareContinuousPayData Process recv ", data) logger.Logger.Trace("CSWelfareContinuousPayData Process recv ", data)
if _, ok := data.(*welfare.CSWelfareContinuousPayData); ok { if _, ok := data.(*welfare.CSWelfareContinuousPayData); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSContinuousPayInfoHandler p == nil") logger.Logger.Warnf("CSContinuousPayInfoHandler p == nil")
return nil return nil
@ -268,7 +268,7 @@ func (this *CSBuyContinuousPayPacketFactory) CreatePacket() interface{} {
func (this *CSBuyContinuousPayHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSBuyContinuousPayHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSWelfareContinuousPay Process recv ", data) logger.Logger.Trace("CSWelfareContinuousPay Process recv ", data)
if _, ok := data.(*welfare.CSWelfareContinuousPay); ok { if _, ok := data.(*welfare.CSWelfareContinuousPay); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSBuyContinuousPayHandler p == nil") logger.Logger.Warnf("CSBuyContinuousPayHandler p == nil")
return nil return nil
@ -285,7 +285,7 @@ func CSWelfRelief(s *netlib.Session, packetid int, data interface{}, sid int64)
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -305,7 +305,7 @@ func CSWelfRelief(s *netlib.Session, packetid int, data interface{}, sid int64)
func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error { func CSInviteInfo(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Tracef("CSInviteInfo Process recv %v", data) logger.Logger.Tracef("CSInviteInfo Process recv %v", data)
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -383,7 +383,7 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -591,7 +591,7 @@ func CSPermitInfo(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -710,7 +710,7 @@ func CSPermitAward(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -935,7 +935,7 @@ func CSPermitExchangeList(s *netlib.Session, packetid int, data interface{}, sid
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1004,7 +1004,7 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1146,7 +1146,7 @@ func CSPermitShop(s *netlib.Session, packetid int, data interface{}, sid int64)
if !ok { if !ok {
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }
@ -1202,7 +1202,7 @@ func (this *CSPigBankGetInfoPacketFactory) CreatePacket() interface{} {
func (this *CSPigBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPigBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPigbankGetInfo Process recv ", data) logger.Logger.Trace("CSPigbankGetInfo Process recv ", data)
if _, ok := data.(*welfare.CSPigbankGetInfo); ok { if _, ok := data.(*welfare.CSPigbankGetInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSPigBankGetInfoHandler p == nil") logger.Logger.Warnf("CSPigBankGetInfoHandler p == nil")
return nil return nil
@ -1227,7 +1227,7 @@ func (this *CSPigBankTakeCoinPacketFactory) CreatePacket() interface{} {
func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSPigbankTakeCoin Process recv ", data) logger.Logger.Trace("CSPigbankTakeCoin Process recv ", data)
if _, ok := data.(*welfare.CSPigbankTakeCoin); ok { if _, ok := data.(*welfare.CSPigbankTakeCoin); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil")
return nil return nil
@ -1252,7 +1252,7 @@ func (this *CSSignDayAddup2AwardPacketFactory) CreatePacket() interface{} {
func (this *CSSignDayAddup2AwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSSignDayAddup2AwardHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSSignDayAddup2Award Process recv ", data) logger.Logger.Trace("CSSignDayAddup2Award Process recv ", data)
if msg, ok := data.(*welfare.CSSignDayAddup2Award); ok { if msg, ok := data.(*welfare.CSSignDayAddup2Award); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil")
return nil return nil
@ -1276,7 +1276,7 @@ func (this *CSDiamondBankGetInfoPacketFactory) CreatePacket() interface{} {
func (this *CSDiamondBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSDiamondBankGetInfoHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data) logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data)
if _, ok := data.(*welfare.CSDiamondBankGetInfo); ok { if _, ok := data.(*welfare.CSDiamondBankGetInfo); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil")
return nil return nil
@ -1301,7 +1301,7 @@ func (this *CSDiamondBankTakeDiamondPacketFactory) CreatePacket() interface{} {
func (this *CSDiamondBankTakeDiamondHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { func (this *CSDiamondBankTakeDiamondHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data) logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data)
if _, ok := data.(*welfare.CSDiamondBankTakeDiamond); ok { if _, ok := data.(*welfare.CSDiamondBankTakeDiamond); ok {
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil") logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil")
return nil return nil
@ -1318,7 +1318,7 @@ func CSClientUpgrades(s *netlib.Session, packetid int, data interface{}, sid int
return nil return nil
} }
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p == nil { if p == nil {
return nil return nil
} }

View File

@ -125,14 +125,9 @@ func (c *CustomRoomMgr) GetRoomList(plt string) []*gamehall.PrivateRoomInfo {
} }
var ret []*gamehall.PrivateRoomInfo var ret []*gamehall.PrivateRoomInfo
for _, v := range d.List { for _, v := range d.List {
if v == nil || v.PrivateRoomInfo == nil { if v != nil && v.PrivateRoomInfo != nil {
continue ret = append(ret, v.PrivateRoomInfo)
} }
cfg := PlatformMgrSingleton.GetConfig(plt).RoomConfig[v.RoomConfigId]
if cfg == nil || cfg.GetOn() != common.On {
continue
}
ret = append(ret, v.PrivateRoomInfo)
} }
return ret return ret
} }

View File

@ -1,52 +1,151 @@
package main package main
import ( import (
"fmt"
"strings"
"time" "time"
"mongo.games.com/goserver/core/logger"
"mongo.games.com/goserver/core/module" "mongo.games.com/goserver/core/module"
"mongo.games.com/game/util/balancequeue"
) )
type SaveTaskHandler interface {
Time2Save()
}
var SaverSliceNumber = 600
var DbSaveInst = &DbSaver{ var DbSaveInst = &DbSaver{
GroupNumber: 600, Tick: int32(SaverSliceNumber),
index: 0,
init: false,
list: make([]*SaverArray, SaverSliceNumber),
queue: make([]*BalanceQueue, 10),
pool: make(map[SaveTaskHandler]*SaverArray),
} }
type DbSaver struct { type DbSaver struct {
GroupNumber int Tick int32 // 最大索引
*balancequeue.BalanceQueue index int32 // 循环索引
m map[int32]balancequeue.Element list []*SaverArray
queue []*BalanceQueue
init bool
pool map[SaveTaskHandler]*SaverArray
}
func (this *DbSaver) String() string {
buf := strings.Builder{}
buf.WriteString("DbSaver:\n")
buf.WriteString(fmt.Sprintf("Tick: %v\n", this.Tick))
buf.WriteString(fmt.Sprintf("List: %v\n", len(this.list)))
buf.WriteString(fmt.Sprintf("Queue: %v\n", len(this.queue)))
for k, v := range this.queue {
buf.WriteString(fmt.Sprintf("q%v: %v\n", k, len(v.queue)))
}
return buf.String()
}
// pushBalanceSaverArray 向队列中添加SaveTaskHandler
func (this *DbSaver) pushBalanceSaverArray(sth SaveTaskHandler) {
if sth == nil {
return
}
if _, exist := this.pool[sth]; exist {
return
}
for pos, bq := range this.queue {
size := len(bq.queue)
if size > 0 {
arr := bq.queue[size-1]
if pos+1 >= len(this.queue) {
this.queue = append(this.queue, &BalanceQueue{})
}
this.queue[pos+1].queue = append(this.queue[pos+1].queue, arr)
this.queue[pos].queue = bq.queue[:size-1]
arr.bqPos = len(this.queue[pos+1].queue) - 1
arr.Array = append(arr.Array, sth)
this.pool[sth] = arr
return
}
}
return
} }
// RegisterDbSaverTask 向队列中添加SaveTaskHandler // RegisterDbSaverTask 向队列中添加SaveTaskHandler
func (this *DbSaver) RegisterDbSaverTask(i *Player) { func (this *DbSaver) RegisterDbSaverTask(i interface{}) {
if i == nil { if st, ok := i.(SaveTaskHandler); ok {
return this.pushBalanceSaverArray(st)
} }
e := balancequeue.ElementWrapper(i.Time2Save)
this.m[i.GetSnId()] = e
this.Push(e)
} }
// UnregisterDbSaveTask 从队列中移除SaveTaskHandler // UnregisterDbSaveTask 从队列中移除SaveTaskHandler
func (this *DbSaver) UnregisterDbSaveTask(i *Player) { func (this *DbSaver) UnregisterDbSaveTask(i interface{}) {
if i == nil { if sth, ok := i.(SaveTaskHandler); ok {
return if arr, exist := this.pool[sth]; exist {
delete(this.pool, sth)
count := len(arr.Array)
for i := 0; i < count; i++ {
if arr.Array[i] == sth {
arr.Array[i] = arr.Array[count-1]
arr.Array = arr.Array[:count-1]
bqPos := arr.bqPos
queCount := len(this.queue[count].queue)
this.queue[count].queue[bqPos] = this.queue[count].queue[queCount-1]
this.queue[count].queue[bqPos].bqPos = bqPos
this.queue[count].queue = this.queue[count].queue[:queCount-1]
this.queue[count-1].queue = append(this.queue[count-1].queue, arr)
arr.bqPos = len(this.queue[count-1].queue) - 1
return
}
}
} else {
logger.Logger.Info("Player not in dbsaver")
}
} }
e, ok := this.m[i.GetSnId()]
if !ok {
return
}
this.Pop(e)
} }
// SaverArray 保存SaveTaskHandler的数组
type SaverArray struct {
Array []SaveTaskHandler
bqPos int
}
// BalanceQueue 保存SaveTaskHandler的队列
type BalanceQueue struct {
queue []*SaverArray
}
// //////////////////////////////////////////////////////////////////
// / Module Implement [beg]
// //////////////////////////////////////////////////////////////////
func (this *DbSaver) ModuleName() string { func (this *DbSaver) ModuleName() string {
return "dbsaver" return "dbsaver"
} }
func (this *DbSaver) Init() { func (this *DbSaver) Init() {
this.BalanceQueue = balancequeue.New(this.GroupNumber) if this.init == false {
this.m = make(map[int32]balancequeue.Element) for i := 0; i < len(this.queue); i++ {
this.queue[i] = &BalanceQueue{}
}
//初始化平衡数组所有平衡队列容量为0
for i := 0; i < int(this.Tick); i++ {
this.list[i] = &SaverArray{bqPos: i}
this.queue[0].queue = append(this.queue[0].queue, this.list[i])
}
this.init = true
}
}
func (this *DbSaver) Update() {
if this.index == this.Tick {
this.index = 0
}
sa := this.list[this.index]
for _, sth := range sa.Array {
sth.Time2Save()
}
this.index = this.index + 1
} }
func (this *DbSaver) Shutdown() { func (this *DbSaver) Shutdown() {

View File

@ -420,7 +420,7 @@ func handlerEvent(ctx context.Context, completeKey string, isInit bool, event *c
} }
for _, p := range targetPlayer { for _, p := range targetPlayer {
if p.sid != 0 { if p.sid != 0 {
p.Kick(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList)) p.Kickout(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
} else { } else {
LoginStateMgrSington.LogoutByAccount(p.AccountId) LoginStateMgrSington.LogoutByAccount(p.AccountId)
} }

View File

@ -1,18 +0,0 @@
package main
import (
"fmt"
)
var robotHeadUrlIdx int
func GetRobHeadUrlIdx() string {
robotHeadUrlIdx++
if robotHeadUrlIdx > 1448 {
robotHeadUrlIdx = 1
}
return fmt.Sprintf("https://avatar-icon.oss-cn-guangzhou.aliyuncs.com/user_head/head_%v.jpg", robotHeadUrlIdx)
}
func GetRobHeadUrl(idx int32) string {
return fmt.Sprintf("https://avatar-icon.oss-cn-guangzhou.aliyuncs.com/user_head/head_%v.jpg", idx)
}

View File

@ -1,10 +1,12 @@
package internal package internal
import "mongo.games.com/game/common" type Player any
var _playerListeners []interface{} type Scene any
func RegisterPlayerListener[Player, Scene any](l PlayerListener[Player, Scene]) { var _playerListeners []PlayerListener
func RegisterPlayerListener(l PlayerListener) {
for _, ll := range _playerListeners { for _, ll := range _playerListeners {
if ll == l { if ll == l {
return return
@ -13,192 +15,144 @@ func RegisterPlayerListener[Player, Scene any](l PlayerListener[Player, Scene])
_playerListeners = append(_playerListeners, l) _playerListeners = append(_playerListeners, l)
} }
type PlayerListener[Player, Scene any] interface { type PlayerListener interface {
common.ClockSinker
// 登出相关 // 登出相关
OnPlayerLogined(p Player) // 玩家登录时触发 OnPlayerLogined(p Player) // 玩家登录时触发
OnPlayerLogouted(p Player) // 玩家登出时触发 OnPlayerLogouted(p Player) // 玩家登出时触发
OnPlayerDropLine(p Player) // 玩家掉线时触发 OnPlayerDropLine(p Player) // 玩家掉线时触发
OnPlayerRehold(p Player) // 玩家重新连接时触发 OnPlayerRehold(p Player) // 玩家重新连接时触发
// 时间相关
OnPlayerSecTimer(p Player) // 每秒触发
OnPlayerMiniTimer(p Player) // 每分钟触发
OnPlayerHourTimer(p Player) // 每小时触发
OnPlayerDayTimer(p Player, login, continuous bool) // 每天触发login表示是否登录continuous表示是否连续登录
OnPlayerWeekTimer(p Player) // 每周触发
OnPlayerMonthTimer(p Player) // 每月触发
// 业务相关 // 业务相关
OnPlayerEnterSceneBefore(p Player, s Scene) // 玩家进入场景前触发 OnPlayerEnterScene(p Player, s Scene) // 玩家进入场景时触发
OnPlayerEnterSceneAfter(p Player, s Scene) // 玩家进入场景后触发 OnPlayerLeaveScene(p Player, s Scene) // 玩家离开场景时触发
OnPlayerLeaveSceneBefore(p Player, s Scene) // 玩家离开场景前触发 OnPlayerReturnScene(p Player, s Scene) // 玩家返回房间时触发
OnPlayerLeaveSceneAfter(p Player, s Scene) // 玩家离开场景后触发
OnPlayerReturnSceneBefore(p Player, s Scene) // 玩家返回房间前触发
OnPlayerReturnSceneAfter(p Player, s Scene) // 玩家返回房间后触发
} }
func FirePlayerLogined[Player, Scene any](p Player) { func FirePlayerLogined(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerLogined(p) l.OnPlayerLogined(p)
} }
} }
} }
func FirePlayerLogouted[Player, Scene any](p Player) { func FirePlayerLogouted(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerLogouted(p) l.OnPlayerLogouted(p)
} }
} }
} }
func FirePlayerDropLine[Player, Scene any](p Player) { func FirePlayerDropLine(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerDropLine(p) l.OnPlayerDropLine(p)
} }
} }
} }
func FirePlayerRehold[Player, Scene any](p Player) { func FirePlayerRehold(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerRehold(p) l.OnPlayerRehold(p)
} }
} }
} }
func FirePlayerEnterSceneBefore[Player, Scene any](p Player, s Scene) { func FirePlayerSecTimer(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerEnterSceneBefore(p, s) l.OnPlayerSecTimer(p)
} }
} }
} }
func FirePlayerEnterSceneAfter[Player, Scene any](p Player, s Scene) { func FirePlayerMiniTimer(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerEnterSceneAfter(p, s) l.OnPlayerMiniTimer(p)
} }
} }
} }
func FirePlayerLeaveSceneBefore[Player, Scene any](p Player, s Scene) { func FirePlayerHourTimer(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerLeaveSceneBefore(p, s) l.OnPlayerHourTimer(p)
} }
} }
} }
func FirePlayerLeaveSceneAfter[Player, Scene any](p Player, s Scene) { func FirePlayerDayTimer(p Player, login, continuous bool) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerLeaveSceneAfter(p, s) l.OnPlayerDayTimer(p, login, continuous)
} }
} }
} }
func FirePlayerReturnSceneBefore[Player, Scene any](p Player, s Scene) { func FirePlayerWeekTimer(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerReturnSceneBefore(p, s) l.OnPlayerWeekTimer(p)
} }
} }
} }
func FirePlayerReturnSceneAfter[Player, Scene any](p Player, s Scene) { func FirePlayerMonthTimer(p Player) {
for _, l := range _playerListeners { for _, l := range _playerListeners {
if l != nil { if l != nil {
l.(PlayerListener[Player, Scene]).OnPlayerReturnSceneAfter(p, s) l.OnPlayerMonthTimer(p)
} }
} }
} }
type BasePlayerListener[Player, Scene any] struct { func FirePlayerEnterScene(p Player, s Scene) {
common.ClockFunc for _, l := range _playerListeners {
} if l != nil {
l.OnPlayerEnterScene(p, s)
func (l *BasePlayerListener[Player, Scene]) OnPlayerLogined(p Player) {} }
func (l *BasePlayerListener[Player, Scene]) OnPlayerLogouted(p Player) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerDropLine(p Player) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerRehold(p Player) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerEnterSceneBefore(p Player, s Scene) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerEnterSceneAfter(p Player, s Scene) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerLeaveSceneBefore(p Player, s Scene) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerLeaveSceneAfter(p Player, s Scene) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerReturnSceneBefore(p Player, s Scene) {}
func (l *BasePlayerListener[Player, Scene]) OnPlayerReturnSceneAfter(p Player, s Scene) {}
type PlayerListenerFunc[Player, Scene any] struct {
common.ClockFunc
OnPlayerLoginedFunc func(p Player)
OnPlayerLogoutedFunc func(p Player)
OnPlayerDropLineFunc func(p Player)
OnPlayerReholdFunc func(p Player)
OnPlayerEnterSceneBeforeFunc func(p Player, s Scene)
OnPlayerEnterSceneAfterFunc func(p Player, s Scene)
OnPlayerLeaveSceneBeforeFunc func(p Player, s Scene)
OnPlayerLeaveSceneAfterFunc func(p Player, s Scene)
OnPlayerReturnSceneBeforeFunc func(p Player, s Scene)
OnPlayerReturnSceneAfterFunc func(p Player, s Scene)
}
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLogined(p Player) {
if l.OnPlayerLoginedFunc != nil {
l.OnPlayerLoginedFunc(p)
} }
} }
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLogouted(p Player) { func FirePlayerLeaveScene(p Player, s Scene) {
if l.OnPlayerLogoutedFunc != nil { for _, l := range _playerListeners {
l.OnPlayerLogoutedFunc(p) if l != nil {
l.OnPlayerLeaveScene(p, s)
}
} }
} }
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerDropLine(p Player) { func FirePlayerReturnScene(p Player, s Scene) {
if l.OnPlayerDropLineFunc != nil { for _, l := range _playerListeners {
l.OnPlayerDropLineFunc(p) if l != nil {
l.OnPlayerReturnScene(p, s)
}
} }
} }
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerRehold(p Player) { type BasePlayerListener struct {
if l.OnPlayerReholdFunc != nil {
l.OnPlayerReholdFunc(p)
}
} }
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerEnterSceneBefore(p Player, s Scene) { func (l *BasePlayerListener) OnPlayerLogined(p Player) {}
if l.OnPlayerEnterSceneBeforeFunc != nil { func (l *BasePlayerListener) OnPlayerLogouted(p Player) {}
l.OnPlayerEnterSceneBeforeFunc(p, s) func (l *BasePlayerListener) OnPlayerDropLine(p Player) {}
} func (l *BasePlayerListener) OnPlayerRehold(p Player) {}
} func (l *BasePlayerListener) OnPlayerSecTimer(p Player) {}
func (l *BasePlayerListener) OnPlayerMiniTimer(p Player) {}
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerEnterSceneAfter(p Player, s Scene) { func (l *BasePlayerListener) OnPlayerHourTimer(p Player) {}
if l.OnPlayerEnterSceneAfterFunc != nil { func (l *BasePlayerListener) OnPlayerDayTimer(p Player, login, continuous bool) {}
l.OnPlayerEnterSceneAfterFunc(p, s) func (l *BasePlayerListener) OnPlayerWeekTimer(p Player) {}
} func (l *BasePlayerListener) OnPlayerMonthTimer(p Player) {}
} func (l *BasePlayerListener) OnPlayerEnterScene(p Player, s Scene) {}
func (l *BasePlayerListener) OnPlayerLeaveScene(p Player, s Scene) {}
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLeaveSceneBefore(p Player, s Scene) { func (l *BasePlayerListener) OnPlayerReturnScene(p Player, s Scene) {}
if l.OnPlayerLeaveSceneBeforeFunc != nil {
l.OnPlayerLeaveSceneBeforeFunc(p, s)
}
}
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLeaveSceneAfter(p Player, s Scene) {
if l.OnPlayerLeaveSceneAfterFunc != nil {
l.OnPlayerLeaveSceneAfterFunc(p, s)
}
}
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerReturnSceneBefore(p Player, s Scene) {
if l.OnPlayerReturnSceneBeforeFunc != nil {
l.OnPlayerReturnSceneBeforeFunc(p, s)
}
}
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerReturnSceneAfter(p Player, s Scene) {
if l.OnPlayerReturnSceneAfterFunc != nil {
l.OnPlayerReturnSceneAfterFunc(p, s)
}
}
func RegisterPlayerListenerFunc[P, S any](l *PlayerListenerFunc[P, S]) {
common.RegisterClockFunc(&l.ClockFunc)
RegisterPlayerListener(l)
}

View File

@ -233,7 +233,7 @@ func (this *LoginStateMgr) LogoutAllBySession(session *netlib.Session) {
for sid, s := range this.statesBySid { for sid, s := range this.statesBySid {
if s.gateSess == session { if s.gateSess == session {
this.Logout(s) this.Logout(s)
p := PlayerMgrSington.GetOnlinePlayer(sid) p := PlayerMgrSington.GetPlayer(sid)
if p != nil { if p != nil {
p.DropLine() p.DropLine()
} }

View File

@ -759,7 +759,6 @@ func (l *LotteryMgr) AddCostRoomCard(plt string, snid int32, n int64) {
logger.Logger.Errorf("AddCostRoomCard snid:%v not found", snid) logger.Logger.Errorf("AddCostRoomCard snid:%v not found", snid)
return return
} }
PlayerMgrSington.AddPlayer(0, item.PlayerData, nil)
f() f()
}, false) }, false)
return return

113
worldsrv/niceid.go Normal file
View File

@ -0,0 +1,113 @@
package main
import (
"fmt"
"math/rand"
"mongo.games.com/game/proto"
player_proto "mongo.games.com/game/protocol/player"
server_proto "mongo.games.com/game/protocol/server"
"mongo.games.com/goserver/core"
"mongo.games.com/goserver/core/logger"
)
var niceIdMgr = &NiceIdManager{
SnIds: []int32{},
UsedIds: make(map[int32]int32),
}
type NiceIdManager struct {
SnIds []int32
UsedIds map[int32]int32
RobHeadUrlIdx int32
}
func (this *NiceIdManager) init() {
//this.SnIds = model.GetInvalidSnid()
//this.SnIds = make([]int32, 0, len(srvdata.PBDB_PlayerInfoMgr.Datas.Arr))
//for _, value := range srvdata.PBDB_PlayerInfoMgr.Datas.Arr {
// this.SnIds = append(this.SnIds, value.GetId())
//}
snidLen := len(this.SnIds)
logger.Logger.Info("NiceIdManager snid lens:", snidLen)
for i := 0; i < snidLen; i++ {
index := rand.Intn(snidLen)
this.SnIds[i], this.SnIds[index] = this.SnIds[index], this.SnIds[i]
}
for _, value := range niceIdMgr.SnIds {
this.UsedIds[value] = 0
}
}
func (this *NiceIdManager) PopNiceId(user int32) int32 {
if len(this.SnIds) <= 0 {
return 0
}
selId := this.SnIds[len(this.SnIds)-1]
this.SnIds = this.SnIds[:len(this.SnIds)-1]
this.UsedIds[selId] = user
logger.Logger.Infof("NiceIdManager pop niceid %v to %v", selId, user)
return selId
}
func (this *NiceIdManager) PushNiceId(snid int32) {
if _, ok := this.UsedIds[snid]; ok {
this.SnIds = append(this.SnIds, snid)
snidLen := len(this.SnIds)
index := rand.Intn(snidLen)
this.SnIds[snidLen-1], this.SnIds[index] = this.SnIds[index], this.SnIds[snidLen-1]
this.UsedIds[snid] = 0
logger.Logger.Infof("NiceIdManager push niceid %v to cache", snid)
}
}
func (this *NiceIdManager) NiceIdCheck(playerid int32) {
logger.Logger.Infof("%v be used in NiceIdManager.", playerid)
if userid, ok := this.UsedIds[playerid]; ok {
delete(this.UsedIds, playerid)
if userid != 0 {
user := PlayerMgrSington.GetPlayerBySnId(userid)
if user != nil {
user.NiceId = this.PopNiceId(userid)
if user.scene != nil {
pack := &server_proto.WGNiceIdRebind{
User: proto.Int32(userid),
NewId: proto.Int32(user.NiceId),
}
user.SendToGame(int(server_proto.SSPacketID_PACKET_GW_NICEIDREBIND), pack)
packNr := &player_proto.SCNiceIdRebind{
SnidId: proto.Int32(userid),
NiceId: proto.Int32(user.NiceId),
}
user.scene.Broadcast(int(player_proto.PlayerPacketID_PACKET_SC_NICEIDREBIND), packNr, 0)
}
}
} else {
niceIndex := -1
for key, value := range this.SnIds {
if value == playerid {
niceIndex = key
break
}
}
if niceIndex != -1 {
curCount := len(this.SnIds)
this.SnIds[niceIndex], this.SnIds[curCount-1] = this.SnIds[curCount-1], this.SnIds[niceIndex]
this.SnIds = this.SnIds[:curCount-1]
}
}
}
}
func (this *NiceIdManager) GetRobHeadUrlIdx() string {
this.RobHeadUrlIdx++
if this.RobHeadUrlIdx > 1448 {
this.RobHeadUrlIdx = 1
}
return fmt.Sprintf("https://avatar-icon.oss-cn-guangzhou.aliyuncs.com/user_head/head_%v.jpg", this.RobHeadUrlIdx)
}
func (this *NiceIdManager) GetRobHeadUrl(idx int32) string {
return fmt.Sprintf("https://avatar-icon.oss-cn-guangzhou.aliyuncs.com/user_head/head_%v.jpg", idx)
}
func init() {
core.RegisteHook(core.HOOK_BEFORE_START, func() error {
niceIdMgr.init()
return nil
})
}

View File

@ -221,7 +221,7 @@ func (p *Platform) ChangeDisabled(disable bool) bool {
} }
p.Disable = disable p.Disable = disable
if disable { //关闭平台,踢掉平台上所有的人 if disable { //关闭平台,踢掉平台上所有的人
PlayerMgrSington.KickByPlatform(p.IdStr) PlayerMgrSington.KickoutByPlatform(p.IdStr)
} }
return true return true
} }

File diff suppressed because it is too large Load Diff

View File

@ -10,21 +10,15 @@ import (
"mongo.games.com/goserver/core/task" "mongo.games.com/goserver/core/task"
"mongo.games.com/game/model" "mongo.games.com/game/model"
"mongo.games.com/game/util/balancequeue"
"mongo.games.com/game/worldsrv/internal" "mongo.games.com/game/worldsrv/internal"
) )
/*
查询不在线的玩家数据缓存一段时间
*/
const ( const (
// InvalidPlayerCacheSec 数据不存在60秒内不再查询数据库 // InvalidPlayerCacheSec 数据不存在60秒内不再查询
InvalidPlayerCacheSec int64 = 60 InvalidPlayerCacheSec int64 = 60
// InvalidPlayerCacheMax 缓存的无效玩家最大数量
InvalidPlayerCacheMax int = 100000 InvalidPlayerCacheMax int = 100000
// ListNumber 平衡队列分组数量 ListNumber int32 = 300
ListNumber = 300
) )
func init() { func init() {
@ -36,31 +30,41 @@ var PlayerCacheMgrSingleton = &PlayerCacheMgr{
playerCbs: make(map[int32][]func(*PlayerCacheItem, bool, bool)), playerCbs: make(map[int32][]func(*PlayerCacheItem, bool, bool)),
playerInvalidIds: make(map[int32]int64), playerInvalidIds: make(map[int32]int64),
playerWaitClr: make([]*PlayerCacheItem, 0, 128), playerWaitClr: make([]*PlayerCacheItem, 0, 128),
DbSaver: &DbSaver{
Tick: ListNumber,
index: 0,
init: false,
list: make([]*SaverArray, ListNumber),
queue: make([]*BalanceQueue, 10),
pool: make(map[SaveTaskHandler]*SaverArray),
},
} }
type PlayerCacheItem struct { type PlayerCacheItem struct {
*model.PlayerData *model.PlayerData
} }
func (p *PlayerCacheItem) BalanceQueueHandler() { func (p *PlayerCacheItem) CanDel() bool {
//return !p.isOnline && time.Now().Unix()-p.lastTs > int64(ListNumber)
return true
}
func (p *PlayerCacheItem) Time2Save() {
// 并没有对缓存数据做什么操作,只是释放缓存 // 并没有对缓存数据做什么操作,只是释放缓存
PlayerCacheMgrSingleton.playerWaitClr = append(PlayerCacheMgrSingleton.playerWaitClr, p) if p.CanDel() {
PlayerCacheMgrSingleton.playerWaitClr = append(PlayerCacheMgrSingleton.playerWaitClr, p)
}
} }
type PlayerCacheMgr struct { type PlayerCacheMgr struct {
*balancequeue.BalanceQueue *DbSaver
playerMap map[int32]*PlayerCacheItem // snid; 玩家信息缓存 playerMap map[int32]*PlayerCacheItem // snid; 玩家信息缓存
playerCbs map[int32][]func(*PlayerCacheItem, bool, bool) // snid; 等待执行的回掉方法 playerCbs map[int32][]func(*PlayerCacheItem, bool, bool) // snid; 等待执行的回掉方法
playerInvalidIds map[int32]int64 // snid; 防止频繁访问数据库 playerInvalidIds map[int32]int64 // snid; 防止频繁访问数据库
playerWaitClr []*PlayerCacheItem // 根据DbSaver缓冲失效策略释放玩家数据 playerWaitClr []*PlayerCacheItem // 根据DbSaver缓冲失效策略释放玩家数据
} }
// Get 获取玩家数据 func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(*PlayerCacheItem, bool, bool), createIfNotExist bool) {
// plt 平台
// snid 玩家id
// cb 回掉方法; playerInfo 玩家数据; isFindDB 是否查了数据库; isNew 是否新创建的玩家
// createIfNotExist 玩家不存在是否创建
func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(playerInfo *PlayerCacheItem, isFindDB bool, isNew bool), createIfNotExist bool) {
// 1.玩家缓冲数据存在 // 1.玩家缓冲数据存在
if p, exist := c.playerMap[snid]; exist { if p, exist := c.playerMap[snid]; exist {
cb(p, false, false) cb(p, false, false)
@ -87,12 +91,11 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(playerInfo *PlayerC
} }
c.playerCbs[snid] = []func(*PlayerCacheItem, bool, bool){cb} c.playerCbs[snid] = []func(*PlayerCacheItem, bool, bool){cb}
var isNew bool var isnew bool
var replays []*internal.PlayerLoadReplay var replays []*internal.PlayerLoadReplay
task.New(core.CoreObject(), task.CallableWrapper(func(o *basic.Object) interface{} { task.New(core.CoreObject(), task.CallableWrapper(func(o *basic.Object) interface{} {
pi, flag := model.GetPlayerDataBySnId(plt, snid, true, createIfNotExist) pi, flag := model.GetPlayerDataBySnId(plt, snid, true, createIfNotExist)
isNew = flag isnew = flag
// 查询其它玩家数据
for _, v := range internal.GetPlayerLoads() { for _, v := range internal.GetPlayerLoads() {
replays = append(replays, v.Load(plt, snid, pi)) replays = append(replays, v.Load(plt, snid, pi))
} }
@ -116,26 +119,22 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(playerInfo *PlayerC
} }
} }
if su {
if len(replays) != len(internal.GetPlayerLoads()) {
su = false
}
}
if !su { if !su {
c.cacheInvalidPlayerId(snid) c.cacheInvalidPlayerId(snid)
for _, v := range c.playerCbs[snid] {
v(nil, true, false)
}
delete(c.playerCbs, snid) delete(c.playerCbs, snid)
for _, cb := range c.playerCbs[snid] {
cb(nil, true, false)
}
return return
} }
for k, v := range internal.GetPlayerLoads() { if len(replays) == len(internal.GetPlayerLoads()) {
if v == nil || replays[k] == nil { for k, v := range internal.GetPlayerLoads() {
continue if v == nil || replays[k] == nil {
continue
}
v.Callback(pi, replays[k])
} }
v.Callback(pi, replays[k])
} }
// 查询成功缓存数据执行cb方法 // 查询成功缓存数据执行cb方法
@ -143,35 +142,38 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(playerInfo *PlayerC
if !ok { if !ok {
item = &PlayerCacheItem{PlayerData: pi} item = &PlayerCacheItem{PlayerData: pi}
c.playerMap[snid] = item c.playerMap[snid] = item
c.Push(item) c.RegisterDbSaverTask(item)
} }
for _, v := range c.playerCbs[snid] { if cbs, exist := c.playerCbs[snid]; exist {
v(item, true, isNew) delete(c.playerCbs, snid)
for _, cb := range cbs {
cb(item, true, isnew)
}
} }
delete(c.playerCbs, snid)
})).StartByExecutor(fmt.Sprintf("Player%v", snid)) })).StartByExecutor(fmt.Sprintf("Player%v", snid))
} }
//func (c *PlayerCacheMgr) GetMore(plt string, snid []int32, cb func([]*PlayerCacheItem, bool)) { func (c *PlayerCacheMgr) GetMore(plt string, snid []int32, cb func([]*PlayerCacheItem, bool)) {
// isDB := false isAsyn := false
// count := len(snid) count := len(snid)
// result := make([]*PlayerCacheItem, 0, count) result := make([]*PlayerCacheItem, 0, count)
// innerCb := func(item *PlayerCacheItem, isFindDB, isNew bool) { innerCb := func(item *PlayerCacheItem, asyn, isnew bool) {
// if item != nil { if item != nil {
// result = append(result, item) result = append(result, item)
// } }
// if isFindDB { if asyn {
// isDB = true isAsyn = true
// } }
// count-- count--
// if count == 0 { if count == 0 {
// cb(result, isDB) cb(result, isAsyn)
// } }
// } }
// for _, id := range snid { for _, id := range snid {
// c.Get(plt, id, innerCb, false) c.Get(plt, id, innerCb, false)
// } }
//} }
func (c *PlayerCacheMgr) cacheInvalidPlayerId(snid int32) { func (c *PlayerCacheMgr) cacheInvalidPlayerId(snid int32) {
if len(c.playerInvalidIds) >= InvalidPlayerCacheMax { if len(c.playerInvalidIds) >= InvalidPlayerCacheMax {
@ -197,14 +199,29 @@ func (c *PlayerCacheMgr) ModuleName() string {
} }
func (c *PlayerCacheMgr) Init() { func (c *PlayerCacheMgr) Init() {
c.BalanceQueue = balancequeue.New(ListNumber) c.DbSaver.Init()
} }
func (c *PlayerCacheMgr) Update() { func (c *PlayerCacheMgr) Update() {
c.BalanceQueue.Update() // 执行Time2Save之后清除缓存
c.DbSaver.Update()
for _, p := range c.playerWaitClr { for _, p := range c.playerWaitClr {
delete(c.playerMap, p.SnId) delete(c.playerMap, p.SnId)
c.Pop(p) c.UnregisterDbSaveTask(p)
// 释放玩家数据
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
for _, v := range internal.GetPlayerLoads() {
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
v.Save(p.Platform, p.SnId, true, true)
return nil
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
v.Release(p.Platform, p.SnId)
}
})).StartByExecutor(fmt.Sprintf("Player%v", p.SnId))
}
}
} }
c.playerWaitClr = c.playerWaitClr[0:0] c.playerWaitClr = c.playerWaitClr[0:0]
} }

View File

@ -1,9 +1,7 @@
package main package main
import ( import (
"fmt"
"math/rand" "math/rand"
"os"
"time" "time"
"mongo.games.com/goserver/core/basic" "mongo.games.com/goserver/core/basic"
@ -27,6 +25,7 @@ var PlayerMgrSington = &PlayerMgr{
sidMap: make(map[int64]*Player), sidMap: make(map[int64]*Player),
snidMap: make(map[int32]*Player), snidMap: make(map[int32]*Player),
accountMap: make(map[string]*Player), accountMap: make(map[string]*Player),
tokenMap: make(map[string]*Player),
players: make([]*Player, 0, 1024), players: make([]*Player, 0, 1024),
playerOfPlatform: make(map[string]map[int32]*Player), playerOfPlatform: make(map[string]map[int32]*Player),
loading: make(map[string]*PlayerPendingData), loading: make(map[string]*PlayerPendingData),
@ -39,18 +38,14 @@ type PlayerPendingData struct {
type PlayerMgr struct { type PlayerMgr struct {
common.BaseClockSinker common.BaseClockSinker
// 以连接标识为索引 sidMap map[int64]*Player // sid
sidMap map[int64]*Player snidMap map[int32]*Player // snid
// 以snid为索引 accountMap map[string]*Player // accountid
snidMap map[int32]*Player tokenMap map[string]*Player // 客服token
// 以账号为索引 players []*Player // 只有真实玩家
accountMap map[string]*Player playerOfPlatform map[string]map[int32]*Player // platform:snid;只有真实玩家
// 只有真实玩家,不包括机器人
players []*Player
// 平台id:snid:真实玩家
playerOfPlatform map[string]map[int32]*Player
loading map[string]*PlayerPendingData // accountid,控制访问频率;登录状态标记 loading map[string]*PlayerPendingData // accountid,控制访问频率
} }
// PlayerStatics 在线统计 // PlayerStatics 在线统计
@ -105,15 +100,22 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net
return false return false
} }
if sid == 0 {
logger.Logger.Warnf("(this *PlayerMgr) AddPlayer player sid == 0:")
return false
}
logger.Logger.Trace("(this *PlayerMgr) AddPlayer Set player ip:", player.Ip) logger.Logger.Trace("(this *PlayerMgr) AddPlayer Set player ip:", player.Ip)
this.sidMap[sid] = player this.sidMap[sid] = player
var old *Player var oldp *Player
if p, exist := this.snidMap[player.SnId]; exist { if p, exist := this.snidMap[player.SnId]; exist {
old = p oldp = p
} }
this.snidMap[player.SnId] = player this.snidMap[player.SnId] = player
this.accountMap[player.AccountId] = player this.accountMap[player.AccountId] = player
if player.customerToken != "" {
this.tokenMap[player.customerToken] = player
}
if !player.IsRob { if !player.IsRob {
var found bool var found bool
for i, p := range this.players { for i, p := range this.players {
@ -127,6 +129,9 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net
if !found { if !found {
this.players = append(this.players, player) this.players = append(this.players, player)
} }
if player.HeadUrl == "" {
player.HeadUrl = niceIdMgr.GetRobHeadUrl(player.Head)
}
//平台玩家管理器 //平台玩家管理器
if pp, exist := this.playerOfPlatform[player.Platform]; exist { if pp, exist := this.playerOfPlatform[player.Platform]; exist {
@ -137,76 +142,21 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net
this.playerOfPlatform[player.Platform] = pp this.playerOfPlatform[player.Platform] = pp
} }
logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.SnId) logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.Name)
if old != nil { //删除旧的玩家 if oldp != nil { //删除旧的玩家
DbSaveInst.UnregisterDbSaveTask(old) DbSaveInst.UnregisterDbSaveTask(oldp)
} }
DbSaveInst.RegisterDbSaverTask(player) DbSaveInst.RegisterDbSaverTask(player)
niceIdMgr.NiceIdCheck(player.SnId)
} else {
player.NiceId = niceIdMgr.PopNiceId(player.SnId)
player.HeadUrl = niceIdMgr.GetRobHeadUrlIdx()
} }
return true return true
} }
func (this *PlayerMgr) SavePlayer(p *Player, isCopy, force bool) {
if p == nil || p.isDelete {
return
}
if p.IsRob {
return
}
if !p.dirty && !force {
return
}
var pd *model.PlayerData
if isCopy {
pd = model.ClonePlayerData(p.PlayerData)
} else {
pd = p.PlayerData
}
if pd == nil {
logger.Logger.Errorf("Player Time2Save() %v pd is nil", p.SnId)
return
}
t1 := time.Now()
p.dirty = true
// 跨天任务依赖LastLogoutTime的准确性跨天任务是定时器common.ClockMgrSington触发的所以这里要用定时器的触发时间
p.LastLogoutTime = common.ClockMgrSingleton.LastTickTime
pd.LastLogoutTime = common.ClockMgrSingleton.LastTickTime
ok := true
t := task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
if !model.SavePlayerData(pd) {
// save 失败先写到json里面
model.BackupPlayerData(pd)
ok = false
}
for _, v := range internal.GetPlayerLoads() {
v.Save(pd.Platform, pd.SnId, true, force)
}
return ok
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
if saved, ok := i.(bool); ok && saved {
p.dirty = false
bak := fmt.Sprintf("%v.json", pd.AccountId)
if exist, _ := common.PathExists(bak); exist {
os.Remove(bak)
}
}
logger.Logger.Infof("Player Time2Save() %v take:%v isSuccess:%v", p.SnId, time.Now().Sub(t1), p.dirty == false)
}), "SavePlayerTask")
if b := t.StartByExecutor(fmt.Sprintf("Player%v", p.SnId)); b {
p.lastSaved = time.Now()
}
}
// DelPlayer 清除玩家缓存数据 // DelPlayer 清除玩家缓存数据
// 真人数据持久化后删除,机器人不用持久化(机器人数据没有主动删除) // 一般真人是数据持久化后删除或数据没有修改,机器人不用持久化(机器人数据没有主动删除)
// needSave 是否需要保存数据; 自动删除玩家机制已经保存过数据,不需要再保存;手动删除玩家需要保存数据
func (this *PlayerMgr) DelPlayer(snid int32) bool { func (this *PlayerMgr) DelPlayer(snid int32) bool {
player, ok := this.snidMap[snid] player, ok := this.snidMap[snid]
if !ok || player == nil { if !ok || player == nil {
@ -218,6 +168,9 @@ func (this *PlayerMgr) DelPlayer(snid int32) bool {
} }
delete(this.snidMap, player.SnId) delete(this.snidMap, player.SnId)
delete(this.accountMap, player.AccountId) delete(this.accountMap, player.AccountId)
if player.customerToken != "" {
delete(this.tokenMap, player.customerToken)
}
if !player.IsRob { if !player.IsRob {
index := -1 index := -1
for i, p := range this.players { for i, p := range this.players {
@ -234,31 +187,24 @@ func (this *PlayerMgr) DelPlayer(snid int32) bool {
if pp, exist := this.playerOfPlatform[player.Platform]; exist { if pp, exist := this.playerOfPlatform[player.Platform]; exist {
delete(pp, player.SnId) delete(pp, player.SnId)
} }
niceIdMgr.PushNiceId(player.NiceId)
} }
if !player.IsCacheState() {
player.OnLogoutFinish()
internal.FirePlayerLogouted[*Player, *Scene](player)
}
DbSaveInst.UnregisterDbSaveTask(player)
// 再保存一次,防止数据丢失,可能脏标记没有设置
this.SavePlayer(player, true, true)
for _, v := range internal.GetPlayerLoads() { for _, v := range internal.GetPlayerLoads() {
v.Release(player.Platform, player.SnId) v.Release(player.Platform, player.SnId)
} }
player.OnLogouted()
return true return true
} }
// DropPlayer 玩家掉线或登出 // DroplinePlayer 玩家掉线或登出
// 1.玩家登出 // 1.玩家登出
// 2.玩家网络断开 // 2.玩家网络断开
// 3.被踢掉线 // 3.被踢掉线
func (this *PlayerMgr) DropPlayer(p *Player) { func (this *PlayerMgr) DroplinePlayer(p *Player) {
p.SetOffline()
p.sid = 0
p.gateSess = nil
delete(this.sidMap, p.sid) delete(this.sidMap, p.sid)
} }
@ -273,22 +219,14 @@ func (this *PlayerMgr) ReholdPlayer(p *Player, newSid int64, newSess *netlib.Ses
logger.Logger.Errorf("(this *PlayerMgr) ReholdPlayer(snid=%v, new=%v)", p.SnId, newSid) logger.Logger.Errorf("(this *PlayerMgr) ReholdPlayer(snid=%v, new=%v)", p.SnId, newSid)
} }
p.SetOnline()
p.sid = newSid p.sid = newSid
p.gateSess = newSess p.gateSess = newSess
p.SetOnline()
this.sidMap[newSid] = p this.sidMap[newSid] = p
} }
func (this *PlayerMgr) KickByPlatform(name string) { // GetPlayer 获取玩家数据(玩家在线)
for _, p := range this.players { func (this *PlayerMgr) GetPlayer(id int64) *Player {
if name == "" || p.Platform == name {
p.Kick(common.KickReason_Disconnection)
}
}
}
// GetOnlinePlayer 获取玩家数据(玩家在线)
func (this *PlayerMgr) GetOnlinePlayer(id int64) *Player {
if pi, ok := this.sidMap[id]; ok { if pi, ok := this.sidMap[id]; ok {
return pi return pi
} }
@ -329,6 +267,28 @@ func (this *PlayerMgr) GetPlayerByAccount(acc string) *Player {
return nil return nil
} }
func (this *PlayerMgr) GetPlayerByToken(token string) *Player {
if p, ok := this.tokenMap[token]; ok {
return p
}
return nil
}
func (this *PlayerMgr) UpdatePlayerToken(p *Player, newToken string) {
oldToken := p.customerToken
if oldToken != newToken {
if oldToken != "" {
if _, ok := this.tokenMap[oldToken]; ok {
delete(this.tokenMap, oldToken)
}
}
if newToken != "" {
this.tokenMap[newToken] = p
p.customerToken = newToken
}
}
}
// BroadcastMessage 给所有玩家发消息 // BroadcastMessage 给所有玩家发消息
func (this *PlayerMgr) BroadcastMessage(packetid int, rawpack interface{}) bool { func (this *PlayerMgr) BroadcastMessage(packetid int, rawpack interface{}) bool {
sc := &srvproto.BCSessionUnion{} sc := &srvproto.BCSessionUnion{}
@ -360,7 +320,6 @@ func (this *PlayerMgr) BroadcastMessageToPlatform(platform string, packetid int,
} }
} }
// BroadcastDataConfigToPlatform 广播配置数据更新
func (this *PlayerMgr) BroadcastDataConfigToPlatform(platform string, tp int) { func (this *PlayerMgr) BroadcastDataConfigToPlatform(platform string, tp int) {
packetId := int(playerproto.PlayerPacketID_PACKET_SCDataConfig) packetId := int(playerproto.PlayerPacketID_PACKET_SCDataConfig)
pack := &playerproto.SCDataConfig{} pack := &playerproto.SCDataConfig{}
@ -399,8 +358,7 @@ func (this *PlayerMgr) BroadcastMessageToPlatformByFunc(platform string, packeti
} }
} }
// BroadcastMessageToPlatformWithHall 发送大厅消息,不包括在游戏中的玩家 // BroadcastMessageToPlatformWithHall 给某个平台所有在大厅中的玩家发消息
// 如果是好友,支持消息屏蔽
func (this *PlayerMgr) BroadcastMessageToPlatformWithHall(platform string, snid int32, packetid int, rawpack interface{}) { func (this *PlayerMgr) BroadcastMessageToPlatformWithHall(platform string, snid int32, packetid int, rawpack interface{}) {
if platform == "" { if platform == "" {
this.BroadcastMessage(packetid, rawpack) this.BroadcastMessage(packetid, rawpack)
@ -451,9 +409,9 @@ func (this *PlayerMgr) BroadcastMessageToGroup(packetid int, rawpack interface{}
} }
// BroadcastMessageToTarget 给某些玩家发消息 // BroadcastMessageToTarget 给某些玩家发消息
func (this *PlayerMgr) BroadcastMessageToTarget(snIds []int32, packetid int, rawpack interface{}) { func (this *PlayerMgr) BroadcastMessageToTarget(target []int32, packetid int, rawpack interface{}) {
mgs := make(map[*netlib.Session][]*srvproto.MCSessionUnion) mgs := make(map[*netlib.Session][]*srvproto.MCSessionUnion)
for _, v := range snIds { for _, v := range target {
d := this.snidMap[v] d := this.snidMap[v]
if d != nil && d.gateSess != nil && d.IsOnLine() { if d != nil && d.gateSess != nil && d.IsOnLine() {
mgs[d.gateSess] = append(mgs[d.gateSess], &srvproto.MCSessionUnion{ mgs[d.gateSess] = append(mgs[d.gateSess], &srvproto.MCSessionUnion{
@ -471,29 +429,146 @@ func (this *PlayerMgr) BroadcastMessageToTarget(snIds []int32, packetid int, raw
} }
} }
// 感兴趣所有clock event
func (this *PlayerMgr) InterestClockEvent() int {
return (1 << common.ClockEventMax) - 1
}
func (this *PlayerMgr) OnSecTimer() {
for _, player := range this.players {
utils.CatchPanic(func() {
player.OnSecTimer()
})
}
}
func (this *PlayerMgr) OnMiniTimer() {
for _, player := range this.players {
utils.CatchPanic(func() {
player.OnMiniTimer()
})
}
}
func (this *PlayerMgr) OnHourTimer() {
for _, player := range this.players {
utils.CatchPanic(func() {
player.OnHourTimer()
})
}
}
func (this *PlayerMgr) OnDayTimer() {
for _, player := range this.players {
utils.CatchPanic(func() {
player.OnDayTimer(false, true, 1)
})
}
}
func (this *PlayerMgr) OnMonthTimer() {
for _, player := range this.players {
utils.CatchPanic(func() {
player.OnMonthTimer()
})
}
}
func (this *PlayerMgr) OnWeekTimer() {
for _, player := range this.players {
utils.CatchPanic(func() {
player.OnWeekTimer()
})
}
}
func (this *PlayerMgr) OnShutdown() {
this.SaveAll()
}
// SaveAll 保存所有数据dirty=true // SaveAll 保存所有数据dirty=true
func (this *PlayerMgr) SaveAll() { func (this *PlayerMgr) SaveAll() {
count := len(this.players) count := len(this.players)
start := time.Now() start := time.Now()
saveCnt := 0 saveCnt := 0
failCnt := 0 failCnt := 0
logger.Logger.Info("===@SaveAllPlayerBEGIN@=== TotalCount:", count) nochangeCnt := 0
logger.Logger.Info("===@PlayerMgr.SaveAll BEG@=== TotalCount:", count)
for i, p := range this.players { for i, p := range this.players {
idx := i + 1 idx := i + 1
if model.SavePlayerData(p.PlayerData) { if p.dirty {
logger.Logger.Infof("===@SavePlayerData %v/%v snid:%v coin:%v safebox:%v coinpayts:%v safeboxts:%v gamets:%v save [ok] @=", if model.SavePlayerData(p.PlayerData) {
idx, count, p.SnId, p.Coin, p.SafeBoxCoin, p.CoinPayTs, p.SafeBoxCoinTs, p.GameCoinTs) logger.Logger.Infof("===@SavePlayerData %v/%v snid:%v coin:%v safebox:%v coinpayts:%v safeboxts:%v gamets:%v save [ok] @=", idx, count, p.SnId, p.Coin, p.SafeBoxCoin, p.CoinPayTs, p.SafeBoxCoinTs, p.GameCoinTs)
for _, v := range internal.GetPlayerLoads() { saveCnt++
v.Save(p.Platform, p.SnId, true, true) } else {
logger.Logger.Warnf("===@SavePlayerData %v/%v snid:%v coin:%v safebox:%v coinpayts:%v safeboxts:%v gamets:%v save [error]@=", idx, count, p.SnId, p.Coin, p.SafeBoxCoin, p.CoinPayTs, p.SafeBoxCoinTs, p.GameCoinTs)
failCnt++
} }
saveCnt++
} else { } else {
logger.Logger.Warnf("===@SavePlayerData %v/%v snid:%v coin:%v safebox:%v coinpayts:%v safeboxts:%v gamets:%v save [error]@=", logger.Logger.Infof("nochange===@SavePlayerData %v/%v snid:%v coin:%v safebox:%v coinpayts:%v safeboxts:%v gamets:%v nochange [ok]@=", idx, count, p.SnId, p.Coin, p.SafeBoxCoin, p.CoinPayTs, p.SafeBoxCoinTs, p.GameCoinTs)
idx, count, p.SnId, p.Coin, p.SafeBoxCoin, p.CoinPayTs, p.SafeBoxCoinTs, p.GameCoinTs) nochangeCnt++
failCnt++ }
for _, v := range internal.GetPlayerLoads() {
v.Save(p.Platform, p.SnId, true, true)
}
}
logger.Logger.Infof("===@PlayerMgr.SaveAll END@===, total:%v saveCnt:%v failCnt:%v nochangeCnt:%v take:%v", count, saveCnt, failCnt, nochangeCnt, time.Now().Sub(start))
}
// 黑名单事件
//func (this *PlayerMgr) OnAddBlackInfo(blackinfo *BlackInfo) {
// if blackinfo.Snid > 0 {
// if p := this.GetPlayerBySnId(blackinfo.Snid); p != nil {
// p.PlayerData.BlacklistType = int32(blackinfo.BlackType)
// p.dirty = true
// p.Time2Save()
// } else {
// task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
// model.UpdatePlayerBlacklistType(blackinfo.Platform, blackinfo.Snid, int32(blackinfo.BlackType))
// return nil
// }), nil, "PlayerMgrOnAddBlackInfo").Start()
// }
// }
//}
//func (this *PlayerMgr) OnEditBlackInfo(blackinfo *BlackInfo) {
// //nothing
// //if blackinfo.Snid > 0 {
// // if p := this.GetPlayerBySnId(blackinfo.Snid); p != nil {
// // p.PlayerData.BlacklistType = int32(blackinfo.BlackType)
// // p.dirty = true
// // p.Time2Save()
// // } else {
// // task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
// // model.UpdatePlayerBlacklistType(blackinfo.Platform, blackinfo.Snid, int32(blackinfo.BlackType))
// // return nil
// // }), nil, "PlayerMgrOnEditBlackInfo").Start()
// // }
// //}
//}
//func (this *PlayerMgr) OnRemoveBlackInfo(blackinfo *BlackInfo) {
// //nothing
// //if blackinfo.Snid > 0 {
// // if p := this.GetPlayerBySnId(blackinfo.Snid); p != nil {
// // p.PlayerData.BlacklistType = 0
// // p.dirty = true
// // p.Time2Save()
// // } else {
// // task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
// // model.UpdatePlayerBlacklistType(blackinfo.Platform, blackinfo.Snid, int32(0))
// // return nil
// // }), nil, "PlayerMgrOnRemoveBlackInfo").Start()
// // }
// //}
//}
func (this *PlayerMgr) KickoutByPlatform(name string) {
for _, p := range this.players {
if name == "" || p.Platform == name {
p.Kickout(common.KickReason_Disconnection)
} }
} }
logger.Logger.Infof("===@SaveAllPlayerEND@===, total:%v saveCnt:%v failCnt:%v take:%v", count, saveCnt, failCnt, time.Now().Sub(start))
} }
// LoadRobots 预加载机器人数据 // LoadRobots 预加载机器人数据
@ -514,6 +589,9 @@ func (this *PlayerMgr) LoadRobots() {
if player != nil { if player != nil {
this.snidMap[player.SnId] = player this.snidMap[player.SnId] = player
this.accountMap[player.AccountId] = player this.accountMap[player.AccountId] = player
if player.customerToken != "" {
this.tokenMap[player.customerToken] = player
}
} }
} }
} }
@ -638,6 +716,18 @@ func (p *PlayerMgr) UpdateHeadUrl(snId int32, url string) {
} }
} }
//func (p *PlayerMgr) ModifyActSwitchToPlayer(platform string, modify bool) {
// if modify { //活动开关修改了才去更新活动开关
// if players, ok := p.playerOfPlatform[platform]; ok {
// for _, p := range players {
// if p != nil && !p.IsRob {
// p.ModifyActSwitch()
// }
// }
// }
// }
//}
/* /*
推荐好友规则 推荐好友规则
1.优先判断在线玩家人数N 1.优先判断在线玩家人数N
@ -730,6 +820,7 @@ func (this *PlayerMgr) RecommendFriendRule(platform string, snid int32) []Recomm
} }
func init() { func init() {
//BlackListMgrSington.RegisterObserver(PlayerMgrSington)
PlayerSubjectSign.AttachName(PlayerMgrSington) PlayerSubjectSign.AttachName(PlayerMgrSington)
PlayerSubjectSign.AttachHead(PlayerMgrSington) PlayerSubjectSign.AttachHead(PlayerMgrSington)
PlayerSubjectSign.AttachHeadOutline(PlayerMgrSington) PlayerSubjectSign.AttachHeadOutline(PlayerMgrSington)
@ -739,51 +830,5 @@ func init() {
PlayerSubjectSign.AttachHead(FriendMgrSington) PlayerSubjectSign.AttachHead(FriendMgrSington)
// 定时器 // 定时器
common.RegisterClockFunc(&common.ClockFunc{ common.ClockMgrSingleton.RegisterSinker(PlayerMgrSington)
OnSecTimerFunc: func() {
for _, player := range PlayerMgrSington.players {
utils.CatchPanic(func() {
player.OnSecTimer()
})
}
},
OnMiniTimerFunc: func() {
for _, player := range PlayerMgrSington.players {
utils.CatchPanic(func() {
player.OnMiniTimer()
})
}
},
OnHourTimerFunc: func() {
for _, player := range PlayerMgrSington.players {
utils.CatchPanic(func() {
player.OnHourTimer()
})
}
},
OnDayTimerFunc: func() {
for _, player := range PlayerMgrSington.players {
utils.CatchPanic(func() {
player.OnDayTimer(false, true, 1)
})
}
},
OnWeekTimerFunc: func() {
for _, player := range PlayerMgrSington.players {
utils.CatchPanic(func() {
player.OnWeekTimer()
})
}
},
OnMonthTimerFunc: func() {
for _, player := range PlayerMgrSington.players {
utils.CatchPanic(func() {
player.OnMonthTimer()
})
}
},
OnShutdownFunc: func() {
PlayerMgrSington.SaveAll()
},
})
} }

View File

@ -90,7 +90,7 @@ func (p *PlayerNotify) SendToClient(tp common.NotifyType, platform string, packe
//} //}
roomConfigId := d.GetDatas()[0].GetRoomConfigId() roomConfigId := d.GetDatas()[0].GetRoomConfigId()
cfg := PlatformMgrSingleton.GetConfig(platform).RoomConfig[roomConfigId] cfg := PlatformMgrSingleton.GetConfig(platform).RoomConfig[roomConfigId]
if cfg == nil || cfg.GetOn() != common.On { if cfg == nil {
return return
} }

View File

@ -14,14 +14,6 @@ const (
PROMOTER_TYPE_PROMOTE = 3 //推广员 PROMOTER_TYPE_PROMOTE = 3 //推广员
) )
type ErrorString struct {
code string
}
func (e *ErrorString) Error() string {
return e.code
}
var PromoterMgrSington = &PromoterMgr{ var PromoterMgrSington = &PromoterMgr{
PromoterConfigMap: make(map[string]*PromoterConfig), PromoterConfigMap: make(map[string]*PromoterConfig),
LastTicket: 0, LastTicket: 0,

View File

@ -89,7 +89,7 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
Plt: acc.Platform, Plt: acc.Platform,
AccId: acc.AccountId.Hex(), AccId: acc.AccountId.Hex(),
NickName: "", NickName: "",
HeadUrl: GetRobHeadUrlIdx(), HeadUrl: niceIdMgr.GetRobHeadUrlIdx(),
}) })
if playerData == nil || !tf { if playerData == nil || !tf {
return nil return nil

View File

@ -6,6 +6,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"io" "io"
"mongo.games.com/game/protocol/shop"
"reflect" "reflect"
"slices" "slices"
"sort" "sort"
@ -29,7 +30,6 @@ import (
loginproto "mongo.games.com/game/protocol/login" loginproto "mongo.games.com/game/protocol/login"
playerproto "mongo.games.com/game/protocol/player" playerproto "mongo.games.com/game/protocol/player"
"mongo.games.com/game/protocol/server" "mongo.games.com/game/protocol/server"
"mongo.games.com/game/protocol/shop"
webapiproto "mongo.games.com/game/protocol/webapi" webapiproto "mongo.games.com/game/protocol/webapi"
"mongo.games.com/game/srvdata" "mongo.games.com/game/srvdata"
"mongo.games.com/game/webapi" "mongo.games.com/game/webapi"
@ -1036,7 +1036,7 @@ func init() {
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} { task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
return model.FreezeAccount(msg.Platform, player.AccountId, int(msg.Minute)) return model.FreezeAccount(msg.Platform, player.AccountId, int(msg.Minute))
}), nil, "FreezeAccount").Start() }), nil, "FreezeAccount").Start()
player.Kick(common.KickReason_Freeze) player.Kickout(common.KickReason_Freeze)
pack.Tag = webapiproto.TagCode_SUCCESS pack.Tag = webapiproto.TagCode_SUCCESS
pack.Msg = "success" pack.Msg = "success"
} else { } else {
@ -1714,7 +1714,7 @@ func init() {
//在线需要踢掉玩家 //在线需要踢掉玩家
if uint(msg.BlacklistType)&BlackState_Login != 0 { if uint(msg.BlacklistType)&BlackState_Login != 0 {
logger.Logger.Infof("found platform:%v player:%d snid in blacklist", msg.Platform, player.SnId) logger.Logger.Infof("found platform:%v player:%d snid in blacklist", msg.Platform, player.SnId)
player.Kick(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList)) player.Kickout(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
} }
return common.ResponseTag_Ok, pack return common.ResponseTag_Ok, pack
} else { } else {
@ -2427,7 +2427,7 @@ func init() {
} }
} }
p.Kick(common.KickReason_Freeze) p.Kickout(common.KickReason_Freeze)
PlayerMgrSington.DelPlayer(p.SnId) PlayerMgrSington.DelPlayer(p.SnId)
LoginStateMgrSington.DelAccountByAccid(p.AccountId) LoginStateMgrSington.DelAccountByAccid(p.AccountId)
} }