Compare commits
14 Commits
efb440d6a9
...
2f3fa1d739
| Author | SHA1 | Date |
|---|---|---|
|
|
2f3fa1d739 | |
|
|
1acfab2ac7 | |
|
|
3eb997c7c3 | |
|
|
310156dd35 | |
|
|
90e11a0dad | |
|
|
4da947cd56 | |
|
|
d1afed32c2 | |
|
|
64c5617bd8 | |
|
|
c5922dc4fa | |
|
|
8aaf1b40f3 | |
|
|
71f6b0246b | |
|
|
f8e8a34780 | |
|
|
872d46a580 | |
|
|
b7b38d53ae |
|
|
@ -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:", packetid, err)
|
logger.Logger.Tracef("Packet [%d] error: %v", 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)
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
//player = base.PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
player := base.PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if player == nil {
|
if player == nil {
|
||||||
logger.Logger.Warn("CSFishFirePranaHandler p == nil")
|
logger.Logger.Warn("CSFishFirePranaHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -18,16 +18,19 @@ 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
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
|
|
|
||||||
|
|
@ -47,10 +47,12 @@ 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.
BIN
gamesrv/slotspkg/external/excel/Base/Slots/CashMania/Feature/S_ItemInfo.xlsx
vendored
Normal file
BIN
gamesrv/slotspkg/external/excel/Base/Slots/CashMania/Feature/S_ItemInfo.xlsx
vendored
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -134,7 +134,8 @@ func init() {
|
||||||
CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{
|
CashManiaBetBetLine = map[int64]*structs.CashManiaBetBetLine{
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 10,
|
BetLine: 1,
|
||||||
|
BaseBet: 10,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -194,6 +195,129 @@ 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,
|
||||||
|
|
@ -468,7 +592,7 @@ func init() {
|
||||||
CashManiaSymbol = map[int64]*structs.CashManiaSymbol{
|
CashManiaSymbol = map[int64]*structs.CashManiaSymbol{
|
||||||
1: {
|
1: {
|
||||||
ID: 1,
|
ID: 1,
|
||||||
Name: "100倍",
|
Name: "10倍",
|
||||||
IsWild: false,
|
IsWild: false,
|
||||||
Group: []int64{1},
|
Group: []int64{1},
|
||||||
PayRate: []int64{0, 0, 100},
|
PayRate: []int64{0, 0, 100},
|
||||||
|
|
|
||||||
|
|
@ -174,6 +174,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 5,
|
BetLine: 5,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 5,
|
BetLine: 5,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,79 +10,79 @@ func init() {
|
||||||
FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{
|
FortuneOxBetBetChangeList = map[int64]*structs.FortuneOxBetBetChangeList{
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetChangeList: 0.3,
|
BetChangeList: 300000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 0,
|
BetLevelIndex: 0,
|
||||||
},
|
},
|
||||||
1: {
|
1: {
|
||||||
Index: 1,
|
Index: 1,
|
||||||
BetChangeList: 0.6,
|
BetChangeList: 600000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 1,
|
BetLevelIndex: 1,
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
Index: 2,
|
Index: 2,
|
||||||
BetChangeList: 0.9,
|
BetChangeList: 900000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 2,
|
BetLevelIndex: 2,
|
||||||
},
|
},
|
||||||
3: {
|
3: {
|
||||||
Index: 3,
|
Index: 3,
|
||||||
BetChangeList: 1,
|
BetChangeList: 1000000,
|
||||||
BetSizeIndex: 1,
|
BetSizeIndex: 1,
|
||||||
BetLevelIndex: 0,
|
BetLevelIndex: 0,
|
||||||
},
|
},
|
||||||
4: {
|
4: {
|
||||||
Index: 4,
|
Index: 4,
|
||||||
BetChangeList: 1.5,
|
BetChangeList: 1500000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
5: {
|
5: {
|
||||||
Index: 5,
|
Index: 5,
|
||||||
BetChangeList: 3,
|
BetChangeList: 3000000,
|
||||||
BetSizeIndex: 0,
|
BetSizeIndex: 0,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
6: {
|
6: {
|
||||||
Index: 6,
|
Index: 6,
|
||||||
BetChangeList: 5,
|
BetChangeList: 5000000,
|
||||||
BetSizeIndex: 1,
|
BetSizeIndex: 1,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
7: {
|
7: {
|
||||||
Index: 7,
|
Index: 7,
|
||||||
BetChangeList: 9,
|
BetChangeList: 9000000,
|
||||||
BetSizeIndex: 3,
|
BetSizeIndex: 3,
|
||||||
BetLevelIndex: 0,
|
BetLevelIndex: 0,
|
||||||
},
|
},
|
||||||
8: {
|
8: {
|
||||||
Index: 8,
|
Index: 8,
|
||||||
BetChangeList: 10,
|
BetChangeList: 10000000,
|
||||||
BetSizeIndex: 1,
|
BetSizeIndex: 1,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
9: {
|
9: {
|
||||||
Index: 9,
|
Index: 9,
|
||||||
BetChangeList: 15,
|
BetChangeList: 15000000,
|
||||||
BetSizeIndex: 2,
|
BetSizeIndex: 2,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
10: {
|
10: {
|
||||||
Index: 10,
|
Index: 10,
|
||||||
BetChangeList: 30,
|
BetChangeList: 30000000,
|
||||||
BetSizeIndex: 2,
|
BetSizeIndex: 2,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
11: {
|
11: {
|
||||||
Index: 11,
|
Index: 11,
|
||||||
BetChangeList: 45,
|
BetChangeList: 45000000,
|
||||||
BetSizeIndex: 3,
|
BetSizeIndex: 3,
|
||||||
BetLevelIndex: 4,
|
BetLevelIndex: 4,
|
||||||
},
|
},
|
||||||
12: {
|
12: {
|
||||||
Index: 12,
|
Index: 12,
|
||||||
BetChangeList: 90,
|
BetChangeList: 90000000,
|
||||||
BetSizeIndex: 3,
|
BetSizeIndex: 3,
|
||||||
BetLevelIndex: 9,
|
BetLevelIndex: 9,
|
||||||
},
|
},
|
||||||
|
|
@ -135,25 +135,26 @@ 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: 300,
|
BetSize: 300000000,
|
||||||
},
|
},
|
||||||
1: {
|
1: {
|
||||||
Index: 1,
|
Index: 1,
|
||||||
BetSize: 1000,
|
BetSize: 1000000000,
|
||||||
},
|
},
|
||||||
2: {
|
2: {
|
||||||
Index: 2,
|
Index: 2,
|
||||||
BetSize: 3000,
|
BetSize: 3000000000,
|
||||||
},
|
},
|
||||||
3: {
|
3: {
|
||||||
Index: 3,
|
Index: 3,
|
||||||
BetSize: 9000,
|
BetSize: 9000000000,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 10,
|
BetLine: 10,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,6 +135,7 @@ func init() {
|
||||||
0: {
|
0: {
|
||||||
Index: 0,
|
Index: 0,
|
||||||
BetLine: 5,
|
BetLine: 5,
|
||||||
|
BaseBet: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -10,6 +10,7 @@ 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{}
|
||||||
|
|
@ -119,46 +120,6 @@ 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{}
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@ 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)
|
||||||
|
|
@ -178,46 +179,6 @@ 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)
|
||||||
|
|
@ -330,6 +291,7 @@ 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)
|
||||||
|
|
@ -439,46 +401,6 @@ 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)
|
||||||
|
|
@ -618,12 +540,6 @@ 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")
|
||||||
|
|
|
||||||
|
|
@ -58,12 +58,20 @@ type (
|
||||||
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
|
||||||
|
|
@ -164,19 +172,6 @@ type (
|
||||||
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
|
||||||
|
|
@ -273,6 +268,11 @@ type (
|
||||||
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
|
||||||
|
|
@ -521,42 +521,6 @@ 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
|
||||||
|
|
||||||
|
|
@ -827,9 +791,6 @@ type (
|
||||||
// TestBetBetLevel comment
|
// TestBetBetLevel comment
|
||||||
TestBetBetLevel = BetLevel
|
TestBetBetLevel = BetLevel
|
||||||
|
|
||||||
// TestBetBetLine comment
|
|
||||||
TestBetBetLine = BetLine
|
|
||||||
|
|
||||||
// TestBetBetSize comment
|
// TestBetBetSize comment
|
||||||
TestBetBetSize = BetSize
|
TestBetBetSize = BetSize
|
||||||
|
|
||||||
|
|
@ -850,4 +811,5 @@ type (
|
||||||
|
|
||||||
// TestSymbolBetRatio comment
|
// TestSymbolBetRatio comment
|
||||||
TestSymbolBetRatio = SymbolBetRatio
|
TestSymbolBetRatio = SymbolBetRatio
|
||||||
|
|
||||||
)
|
)
|
||||||
|
|
@ -73,4 +73,12 @@ 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"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 int64, betLevelIndex int64) int64 {
|
func (n *MachineDesc) GetLineBet(betSizeIndex, betLevelIndex, betLineIndex 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,7 +55,17 @@ func (n *MachineDesc) GetLineBet(betSizeIndex int64, betLevelIndex int64) int64
|
||||||
panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLevel", betLevelIndex))
|
panic(errors.ConfigRowNoMatch.ErrorWith(n.Theme, "BetLevel", betLevelIndex))
|
||||||
}
|
}
|
||||||
|
|
||||||
return betSizeRow.BetSize * betLevelRow.BetLevel
|
betLineRows, ok := n.Sheet("Bet", "BetLine").(map[int64]*structs.BetLine)
|
||||||
|
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)
|
||||||
|
|
@ -90,6 +100,17 @@ 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 {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
return e.MachineDesc.GetLineBet(e.NodeTree.Act.BetSizeIndex, e.NodeTree.Act.BetLevelIndex, e.NodeTree.Act.BetLineIndex)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Entity) GetMinLineBet(nodeType string) int64 {
|
func (e *Entity) GetMinLineBet(nodeType string) int64 {
|
||||||
return e.MachineDesc.GetLineBet(1, 1)
|
return e.MachineDesc.GetLineBet(1, 1, 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *Entity) SetBetCoin(betCoin player.DecCoin) {
|
func (e *Entity) SetBetCoin(betCoin player.DecCoin) {
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ 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(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ 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
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,9 @@ 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()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -29,8 +29,21 @@ 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
|
||||||
|
|
@ -44,8 +57,8 @@ func (p *PluginBase) Customs() []interface{} {
|
||||||
&CustomMidInfo{},
|
&CustomMidInfo{},
|
||||||
&CustomNudge{},
|
&CustomNudge{},
|
||||||
&CustomRespin{},
|
&CustomRespin{},
|
||||||
&Special{},
|
&CustomFortune{},
|
||||||
&CustomFortune{})
|
&Special{})
|
||||||
}
|
}
|
||||||
|
|
||||||
// OnStepBegin is called on initializing a step
|
// OnStepBegin is called on initializing a step
|
||||||
|
|
@ -58,6 +71,9 @@ 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)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -67,9 +83,15 @@ 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]
|
||||||
|
|
@ -77,6 +99,7 @@ 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]
|
||||||
|
|
@ -86,6 +109,7 @@ 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")
|
||||||
|
|
@ -109,6 +133,14 @@ 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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,26 +165,24 @@ 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 := p.getCustomFortune(m)
|
Fortune := 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
|
||||||
|
|
@ -267,13 +297,35 @@ 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(&generic.CustomExtraFreeSpin{ExtraTimes: freeSpinCount}).SetLifetime(1)
|
//m.AddCursorFeature(customFortune).SetLifetime(customFortune.FreeSpinNum)
|
||||||
|
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)
|
||||||
m.AddNodeFeature(m.AddNodeOnCursor(key.FreeSpin, freeSpinCount).GetID(), &CustomFortune{ForceRound: ForceRound})
|
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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,25 @@ 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 {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,14 @@ 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 {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package cashmania
|
||||||
|
|
||||||
var Plugins = []interface{}{
|
var Plugins = []interface{}{
|
||||||
&PluginBase{},
|
&PluginBase{},
|
||||||
|
&PluginSpecial{},
|
||||||
}
|
}
|
||||||
|
|
||||||
var SimulatorPlugins = []interface{}{
|
var SimulatorPlugins = []interface{}{
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,17 @@ 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"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取特性数据
|
// 获取特性数据
|
||||||
|
|
@ -28,5 +39,56 @@ 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
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,10 +12,12 @@ 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
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ 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"
|
||||||
|
|
@ -237,4 +238,7 @@ 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
|
|
@ -240,6 +240,8 @@ 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; // 返回兑换商城信息
|
||||||
}
|
}
|
||||||
|
|
||||||
// 账变记录
|
// 账变记录
|
||||||
|
|
@ -1440,3 +1442,12 @@ 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;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,136 @@
|
||||||
|
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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSShieldMsgHandler p == nil")
|
logger.Logger.Warn("CSShieldMsgHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(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{
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ 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"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -32,7 +33,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSFriendListHandler p == nil")
|
logger.Logger.Warn("CSFriendListHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -150,7 +151,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSFriendOpHandler p == nil")
|
logger.Logger.Warn("CSFriendOpHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -225,7 +226,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSQueryPlayerGameLogHandler p == nil")
|
logger.Logger.Warn("CSQueryPlayerGameLogHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -278,7 +279,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSInviteFriendHandler p == nil")
|
logger.Logger.Warn("CSInviteFriendHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -396,7 +397,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSInviteFriendOpHandler p == nil")
|
logger.Logger.Warn("CSInviteFriendOpHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -596,11 +597,35 @@ 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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -1398,6 +1398,12 @@ 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
|
||||||
|
|
@ -1458,7 +1464,7 @@ func CSTouchTypeHandler(s *netlib.Session, packetId int, data interface{}, sid i
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -1475,7 +1481,7 @@ func CSRoomRecruitHandler(s *netlib.Session, packetId int, data interface{}, sid
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -1505,7 +1511,7 @@ func CSInviteJoinRoomHandler(s *netlib.Session, packetId int, data interface{},
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p != nil {
|
if p != nil {
|
||||||
var ret gamehall.OpResultCode_Hundred
|
var ret gamehall.OpResultCode_Hundred
|
||||||
pack := &gamehall.SCHundredSceneOp{
|
pack := &gamehall.SCHundredSceneOp{
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSGetThrGameCfgHandler p == nil")
|
logger.Logger.Warn("CSGetThrGameCfgHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ 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"
|
||||||
)
|
)
|
||||||
|
|
@ -15,11 +16,11 @@ func SessionLogout(sid int64, drop bool) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
ls.state = LoginStateLogout
|
ls.state = LoginStateLogout
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ func CSLotteryInfoHandler(s *netlib.Session, packetid int, data interface{}, sid
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
p.SendMessage(msg.GetShowId())
|
p.SendMessage(msg.GetShowId())
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
// if p != nil {
|
// if p != nil {
|
||||||
// MiniGameMgrSington.PlayerMsgDispatcher(p, msg)
|
// MiniGameMgrSington.PlayerMsgDispatcher(p, msg)
|
||||||
// }
|
// }
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Errorf("CSSKinUnLock p == nil")
|
logger.Logger.Errorf("CSSKinUnLock p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSDiamondLotteryLuckyAward p == nil")
|
logger.Logger.Warn("CSDiamondLotteryLuckyAward p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ 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"
|
||||||
|
|
@ -29,6 +30,7 @@ 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})$`)
|
||||||
|
|
@ -47,7 +49,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSInviteCodePlayerHandler p == nil")
|
logger.Logger.Warn("CSInviteCodePlayerHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -151,7 +153,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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
// if p == nil {
|
// if p == nil {
|
||||||
// logger.Logger.Warn("CSPlayerChangeNickHandler p == nil")
|
// logger.Logger.Warn("CSPlayerChangeNickHandler p == nil")
|
||||||
// return nil
|
// return nil
|
||||||
|
|
@ -272,7 +274,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerChangeIconHandler p == nil")
|
logger.Logger.Warn("CSPlayerChangeIconHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -311,7 +313,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerChangeHeadOutLineHandler p == nil")
|
logger.Logger.Warn("CSPlayerChangeHeadOutLineHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -365,7 +367,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerChangeSexHandler p == nil")
|
logger.Logger.Warn("CSPlayerChangeSexHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -405,7 +407,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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
//
|
//
|
||||||
// sendPack := func(code player_proto.OpResultCode) {
|
// sendPack := func(code player_proto.OpResultCode) {
|
||||||
// pack := &player_proto.SCUpgradeAccount{
|
// pack := &player_proto.SCUpgradeAccount{
|
||||||
|
|
@ -582,7 +584,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSBindAlipayHandler p == nil")
|
logger.Logger.Warn("CSBindAlipayHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -712,7 +714,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSBindBankHandler p == nil")
|
logger.Logger.Warn("CSBindBankHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -855,7 +857,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSChangePasswordHandler p == nil")
|
logger.Logger.Warn("CSChangePasswordHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -985,7 +987,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerSafeBoxHandler p == nil")
|
logger.Logger.Warn("CSPlayerSafeBoxHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1128,7 +1130,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("GetSafeBoxCoinLog p == nil")
|
logger.Logger.Warn("GetSafeBoxCoinLog p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1185,7 +1187,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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
// if p == nil {
|
// if p == nil {
|
||||||
// logger.Logger.Warn("CSPlayerGameCoinLogHandler p == nil")
|
// logger.Logger.Warn("CSPlayerGameCoinLogHandler p == nil")
|
||||||
// return nil
|
// return nil
|
||||||
|
|
@ -1408,7 +1410,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: niceIdMgr.GetRobHeadUrlIdx(),
|
HeadUrl: GetRobHeadUrlIdx(),
|
||||||
})
|
})
|
||||||
if pi == nil || tf == false {
|
if pi == nil || tf == false {
|
||||||
return player_proto.OpResultCode_OPRC_Error
|
return player_proto.OpResultCode_OPRC_Error
|
||||||
|
|
@ -1480,7 +1482,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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
// if p == nil {
|
// if p == nil {
|
||||||
// logger.Logger.Warn("CSCustomerNewMsgAckHandler p == nil")
|
// logger.Logger.Warn("CSCustomerNewMsgAckHandler p == nil")
|
||||||
// return nil
|
// return nil
|
||||||
|
|
@ -1505,7 +1507,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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
// if p == nil {
|
// if p == nil {
|
||||||
// logger.Logger.Warn("CSIosInstallStableHandler p == nil")
|
// logger.Logger.Warn("CSIosInstallStableHandler p == nil")
|
||||||
// return nil
|
// return nil
|
||||||
|
|
@ -1540,7 +1542,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.GetPlayer(sid)
|
player := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if player == nil {
|
if player == nil {
|
||||||
logger.Logger.Warn("CSFishJackpotHandler p == nil")
|
logger.Logger.Warn("CSFishJackpotHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1579,7 +1581,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.GetPlayer(sid)
|
player := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if player == nil {
|
if player == nil {
|
||||||
logger.Logger.Warn("CSFishJackpotCoinHandler p == nil")
|
logger.Logger.Warn("CSFishJackpotCoinHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1615,7 +1617,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSGetSpreadIsOpenHandler p == nil")
|
logger.Logger.Warn("CSGetSpreadIsOpenHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1654,7 +1656,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerSettingHandler p == nil")
|
logger.Logger.Warn("CSPlayerSettingHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1712,7 +1714,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.GetPlayer(sid)
|
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
// if p == nil {
|
// if p == nil {
|
||||||
// logger.Logger.Warn("CSPlayerVIPBuyHandler p == nil")
|
// logger.Logger.Warn("CSPlayerVIPBuyHandler p == nil")
|
||||||
// return nil
|
// return nil
|
||||||
|
|
@ -1737,7 +1739,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerVIPInfoHandler p == nil")
|
logger.Logger.Warn("CSPlayerVIPInfoHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1761,7 +1763,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPlayerVIPDrawHandler p == nil")
|
logger.Logger.Warn("CSPlayerVIPDrawHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1786,7 +1788,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSVIPPrivilegeInfoHandler p == nil")
|
logger.Logger.Warn("CSVIPPrivilegeInfoHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -1880,7 +1882,7 @@ func CSExchangeChannel(s *netlib.Session, packetid int, data interface{}, sid in
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSExchangeChannel p == nil")
|
logger.Logger.Warn("CSExchangeChannel p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -2004,7 +2006,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.Kickout(common.KickReason_OtherLogin)
|
player.Kick(common.KickReason_OtherLogin)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2022,7 +2024,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.Kickout(common.KickReason_Freeze)
|
player.Kick(common.KickReason_Freeze)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2036,7 +2038,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.Kickout(common.KickReason_Freeze)
|
player.Kick(common.KickReason_Freeze)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2056,7 +2058,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.Kickout(common.KickReason_Freeze)
|
player.Kick(common.KickReason_Freeze)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2068,40 +2070,18 @@ 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.Kickout(common.KickReason_Freeze)
|
player.Kick(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 {
|
||||||
//var msg string
|
player.Kick(common.KickReason_Freeze)
|
||||||
//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)
|
||||||
|
|
@ -2114,6 +2094,7 @@ 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
|
||||||
}
|
}
|
||||||
|
|
@ -2141,87 +2122,27 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var promoterID string
|
|
||||||
var promoterCfg *PromoterConfig
|
|
||||||
f := func() {
|
|
||||||
PlayerMgrSington.AddPlayer(sid, pd.PlayerData, s)
|
PlayerMgrSington.AddPlayer(sid, pd.PlayerData, s)
|
||||||
player := PlayerMgrSington.GetPlayer(sid)
|
player := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if player == nil {
|
if player == nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 检查禁止登录
|
||||||
if !player.IsRob {
|
if !player.IsRob {
|
||||||
if _, ok := BlackListMgrSington.CheckLogin(pd.PlayerData); !ok {
|
if _, ok := BlackListMgrSington.CheckLogin(pd.PlayerData); !ok {
|
||||||
//黑名单用户也需要调用一下onlogin,否则会导致数据无法刷新
|
//黑名单用户也需要调用一下onlogin,否则会导致数据无法刷新
|
||||||
player.OnLogined()
|
player.OnLogined()
|
||||||
player.Kickout(common.KickReason_Freeze)
|
internal.FirePlayerLogined[*Player, *Scene](player)
|
||||||
|
player.Kick(common.KickReason_Freeze)
|
||||||
return
|
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)
|
playerFunc(player, cspl)
|
||||||
player.OnLogined()
|
player.OnLogined()
|
||||||
|
internal.FirePlayerLogined[*Player, *Scene](player)
|
||||||
player.SendPlayerInfo()
|
player.SendPlayerInfo()
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if pd.InviterId != 0 {
|
|
||||||
// 获取推广人
|
|
||||||
PlayerCacheMgrSingleton.UnCacheInvalidPlayerId(pd.InviterId)
|
|
||||||
PlayerCacheMgrSingleton.Get(pd.Platform, pd.InviterId, func(inviter *PlayerCacheItem, async, isnew bool) {
|
|
||||||
if inviter != nil {
|
|
||||||
promoterID = inviter.BeUnderAgentCode
|
|
||||||
}
|
|
||||||
f()
|
|
||||||
}, false)
|
|
||||||
} else {
|
|
||||||
f()
|
|
||||||
}
|
|
||||||
}, true)
|
}, true)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -2230,7 +2151,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSQueryPlayerHandler p == nil")
|
logger.Logger.Warn("CSQueryPlayerHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -2333,7 +2254,7 @@ func CSSavePlayerInfo(s *netlib.Session, packetid int, data interface{}, sid int
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -2391,7 +2312,7 @@ func CSHeadUrl(s *netlib.Session, packetId int, data interface{}, sid int64) err
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSHeadUrl p == nil")
|
logger.Logger.Warn("CSHeadUrl p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -2420,7 +2341,7 @@ func CSBindTelInfo(s *netlib.Session, packetId int, data interface{}, sid int64)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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
|
||||||
|
|
@ -2451,7 +2372,7 @@ func CSPlayerSMSCode(s *netlib.Session, packetId int, data interface{}, sid int6
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
|
|
||||||
sendPack := func(code player_proto.OpResultCode) {
|
sendPack := func(code player_proto.OpResultCode) {
|
||||||
pack := &player_proto.SCPlayerSMSCode{
|
pack := &player_proto.SCPlayerSMSCode{
|
||||||
|
|
@ -2576,7 +2497,7 @@ func CSBindTel(s *netlib.Session, packetId int, data interface{}, sid int64) err
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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
|
||||||
|
|
@ -2822,7 +2743,7 @@ func CSBillList(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -2887,7 +2808,7 @@ func CSADV(s *netlib.Session, packetId int, data interface{}, sid int64) error {
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -2908,7 +2829,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -2947,7 +2868,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -3044,7 +2965,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -3085,7 +3006,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -3251,7 +3172,7 @@ func CSUpdateAttribute(s *netlib.Session, packetId int, data interface{}, sid in
|
||||||
send()
|
send()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if msg.GuideId == 1 {
|
if msg.GuideId == common.GuideIdNewPlayer {
|
||||||
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
|
||||||
|
|
@ -3269,6 +3190,7 @@ 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
|
||||||
|
|
@ -3284,7 +3206,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -3327,7 +3249,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSDollConfigHandler p == nil")
|
logger.Logger.Warn("CSDollConfigHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -3356,7 +3278,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
@ -3379,6 +3301,38 @@ 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)
|
||||||
|
|
@ -3418,4 +3372,6 @@ 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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warnf("CSRMAward p == nil.")
|
logger.Logger.Warnf("CSRMAward p == nil.")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(s.Sid)
|
//p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Trace("CSPMCmdHandler p == nil")
|
logger.Logger.Trace("CSPMCmdHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -652,33 +652,6 @@ 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 {
|
||||||
|
|
@ -692,7 +665,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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p != nil && p.IsRobot() {
|
if p != nil && p.IsRobot() {
|
||||||
snid := p.SnId
|
snid := p.SnId
|
||||||
acc := p.AccountId
|
acc := p.AccountId
|
||||||
|
|
@ -718,12 +691,11 @@ 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{})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warn("CSPayInfoHandler p == nil")
|
logger.Logger.Warn("CSPayInfoHandler p == nil")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ func CSTMInfo(s *netlib.Session, packetid int, data interface{}, sid int64) erro
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
p := PlayerMgrSington.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
logger.Logger.Warnf("CSRoomList p == nil.")
|
logger.Logger.Warnf("CSRoomList p == nil.")
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p == nil {
|
if p == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -125,9 +125,14 @@ 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 {
|
||||||
ret = append(ret, v.PrivateRoomInfo)
|
continue
|
||||||
}
|
}
|
||||||
|
cfg := PlatformMgrSingleton.GetConfig(plt).RoomConfig[v.RoomConfigId]
|
||||||
|
if cfg == nil || cfg.GetOn() != common.On {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
ret = append(ret, v.PrivateRoomInfo)
|
||||||
}
|
}
|
||||||
return ret
|
return ret
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,151 +1,52 @@
|
||||||
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{
|
||||||
Tick: int32(SaverSliceNumber),
|
GroupNumber: 600,
|
||||||
index: 0,
|
|
||||||
init: false,
|
|
||||||
list: make([]*SaverArray, SaverSliceNumber),
|
|
||||||
queue: make([]*BalanceQueue, 10),
|
|
||||||
pool: make(map[SaveTaskHandler]*SaverArray),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type DbSaver struct {
|
type DbSaver struct {
|
||||||
Tick int32 // 最大索引
|
GroupNumber int
|
||||||
index int32 // 循环索引
|
*balancequeue.BalanceQueue
|
||||||
list []*SaverArray
|
m map[int32]balancequeue.Element
|
||||||
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 interface{}) {
|
func (this *DbSaver) RegisterDbSaverTask(i *Player) {
|
||||||
if st, ok := i.(SaveTaskHandler); ok {
|
if i == nil {
|
||||||
this.pushBalanceSaverArray(st)
|
return
|
||||||
}
|
}
|
||||||
|
e := balancequeue.ElementWrapper(i.Time2Save)
|
||||||
|
this.m[i.GetSnId()] = e
|
||||||
|
this.Push(e)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UnregisterDbSaveTask 从队列中移除SaveTaskHandler
|
// UnregisterDbSaveTask 从队列中移除SaveTaskHandler
|
||||||
func (this *DbSaver) UnregisterDbSaveTask(i interface{}) {
|
func (this *DbSaver) UnregisterDbSaveTask(i *Player) {
|
||||||
if sth, ok := i.(SaveTaskHandler); ok {
|
if i == nil {
|
||||||
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
|
return
|
||||||
}
|
}
|
||||||
|
e, ok := this.m[i.GetSnId()]
|
||||||
|
if !ok {
|
||||||
|
return
|
||||||
}
|
}
|
||||||
} else {
|
this.Pop(e)
|
||||||
logger.Logger.Info("Player not in dbsaver")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 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() {
|
||||||
if this.init == false {
|
this.BalanceQueue = balancequeue.New(this.GroupNumber)
|
||||||
for i := 0; i < len(this.queue); i++ {
|
this.m = make(map[int32]balancequeue.Element)
|
||||||
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() {
|
||||||
|
|
|
||||||
|
|
@ -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.Kickout(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
|
p.Kick(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
|
||||||
} else {
|
} else {
|
||||||
LoginStateMgrSington.LogoutByAccount(p.AccountId)
|
LoginStateMgrSington.LogoutByAccount(p.AccountId)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
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)
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,10 @@
|
||||||
package internal
|
package internal
|
||||||
|
|
||||||
type Player any
|
import "mongo.games.com/game/common"
|
||||||
|
|
||||||
type Scene any
|
var _playerListeners []interface{}
|
||||||
|
|
||||||
var _playerListeners []PlayerListener
|
func RegisterPlayerListener[Player, Scene any](l PlayerListener[Player, Scene]) {
|
||||||
|
|
||||||
func RegisterPlayerListener(l PlayerListener) {
|
|
||||||
for _, ll := range _playerListeners {
|
for _, ll := range _playerListeners {
|
||||||
if ll == l {
|
if ll == l {
|
||||||
return
|
return
|
||||||
|
|
@ -15,144 +13,192 @@ func RegisterPlayerListener(l PlayerListener) {
|
||||||
_playerListeners = append(_playerListeners, l)
|
_playerListeners = append(_playerListeners, l)
|
||||||
}
|
}
|
||||||
|
|
||||||
type PlayerListener interface {
|
type PlayerListener[Player, Scene any] 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) // 每月触发
|
|
||||||
|
|
||||||
// 业务相关
|
// 业务相关
|
||||||
OnPlayerEnterScene(p Player, s Scene) // 玩家进入场景时触发
|
OnPlayerEnterSceneBefore(p Player, s Scene) // 玩家进入场景前触发
|
||||||
OnPlayerLeaveScene(p Player, s Scene) // 玩家离开场景时触发
|
OnPlayerEnterSceneAfter(p Player, s Scene) // 玩家进入场景后触发
|
||||||
OnPlayerReturnScene(p Player, s Scene) // 玩家返回房间时触发
|
OnPlayerLeaveSceneBefore(p Player, s Scene) // 玩家离开场景前触发
|
||||||
|
OnPlayerLeaveSceneAfter(p Player, s Scene) // 玩家离开场景后触发
|
||||||
|
OnPlayerReturnSceneBefore(p Player, s Scene) // 玩家返回房间前触发
|
||||||
|
OnPlayerReturnSceneAfter(p Player, s Scene) // 玩家返回房间后触发
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerLogined(p Player) {
|
func FirePlayerLogined[Player, Scene any](p Player) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerLogined(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerLogined(p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerLogouted(p Player) {
|
func FirePlayerLogouted[Player, Scene any](p Player) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerLogouted(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerLogouted(p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerDropLine(p Player) {
|
func FirePlayerDropLine[Player, Scene any](p Player) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerDropLine(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerDropLine(p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerRehold(p Player) {
|
func FirePlayerRehold[Player, Scene any](p Player) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerRehold(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerRehold(p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerSecTimer(p Player) {
|
func FirePlayerEnterSceneBefore[Player, Scene any](p Player, s Scene) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerSecTimer(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerEnterSceneBefore(p, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerMiniTimer(p Player) {
|
func FirePlayerEnterSceneAfter[Player, Scene any](p Player, s Scene) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerMiniTimer(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerEnterSceneAfter(p, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerHourTimer(p Player) {
|
func FirePlayerLeaveSceneBefore[Player, Scene any](p Player, s Scene) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerHourTimer(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerLeaveSceneBefore(p, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerDayTimer(p Player, login, continuous bool) {
|
func FirePlayerLeaveSceneAfter[Player, Scene any](p Player, s Scene) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerDayTimer(p, login, continuous)
|
l.(PlayerListener[Player, Scene]).OnPlayerLeaveSceneAfter(p, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerWeekTimer(p Player) {
|
func FirePlayerReturnSceneBefore[Player, Scene any](p Player, s Scene) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerWeekTimer(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerReturnSceneBefore(p, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerMonthTimer(p Player) {
|
func FirePlayerReturnSceneAfter[Player, Scene any](p Player, s Scene) {
|
||||||
for _, l := range _playerListeners {
|
for _, l := range _playerListeners {
|
||||||
if l != nil {
|
if l != nil {
|
||||||
l.OnPlayerMonthTimer(p)
|
l.(PlayerListener[Player, Scene]).OnPlayerReturnSceneAfter(p, s)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerEnterScene(p Player, s Scene) {
|
type BasePlayerListener[Player, Scene any] struct {
|
||||||
for _, l := range _playerListeners {
|
common.ClockFunc
|
||||||
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 FirePlayerLeaveScene(p Player, s Scene) {
|
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLogouted(p Player) {
|
||||||
for _, l := range _playerListeners {
|
if l.OnPlayerLogoutedFunc != nil {
|
||||||
if l != nil {
|
l.OnPlayerLogoutedFunc(p)
|
||||||
l.OnPlayerLeaveScene(p, s)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func FirePlayerReturnScene(p Player, s Scene) {
|
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerDropLine(p Player) {
|
||||||
for _, l := range _playerListeners {
|
if l.OnPlayerDropLineFunc != nil {
|
||||||
if l != nil {
|
l.OnPlayerDropLineFunc(p)
|
||||||
l.OnPlayerReturnScene(p, s)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type BasePlayerListener struct {
|
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerRehold(p Player) {
|
||||||
|
if l.OnPlayerReholdFunc != nil {
|
||||||
|
l.OnPlayerReholdFunc(p)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *BasePlayerListener) OnPlayerLogined(p Player) {}
|
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerEnterSceneBefore(p Player, s Scene) {
|
||||||
func (l *BasePlayerListener) OnPlayerLogouted(p Player) {}
|
if l.OnPlayerEnterSceneBeforeFunc != nil {
|
||||||
func (l *BasePlayerListener) OnPlayerDropLine(p Player) {}
|
l.OnPlayerEnterSceneBeforeFunc(p, s)
|
||||||
func (l *BasePlayerListener) OnPlayerRehold(p Player) {}
|
}
|
||||||
func (l *BasePlayerListener) OnPlayerSecTimer(p Player) {}
|
}
|
||||||
func (l *BasePlayerListener) OnPlayerMiniTimer(p Player) {}
|
|
||||||
func (l *BasePlayerListener) OnPlayerHourTimer(p Player) {}
|
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerEnterSceneAfter(p Player, s Scene) {
|
||||||
func (l *BasePlayerListener) OnPlayerDayTimer(p Player, login, continuous bool) {}
|
if l.OnPlayerEnterSceneAfterFunc != nil {
|
||||||
func (l *BasePlayerListener) OnPlayerWeekTimer(p Player) {}
|
l.OnPlayerEnterSceneAfterFunc(p, s)
|
||||||
func (l *BasePlayerListener) OnPlayerMonthTimer(p Player) {}
|
}
|
||||||
func (l *BasePlayerListener) OnPlayerEnterScene(p Player, s Scene) {}
|
}
|
||||||
func (l *BasePlayerListener) OnPlayerLeaveScene(p Player, s Scene) {}
|
|
||||||
func (l *BasePlayerListener) OnPlayerReturnScene(p Player, s Scene) {}
|
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLeaveSceneBefore(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)
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.GetPlayer(sid)
|
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||||
if p != nil {
|
if p != nil {
|
||||||
p.DropLine()
|
p.DropLine()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -759,6 +759,7 @@ 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
|
||||||
|
|
|
||||||
|
|
@ -1,113 +0,0 @@
|
||||||
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
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
@ -221,7 +221,7 @@ func (p *Platform) ChangeDisabled(disable bool) bool {
|
||||||
}
|
}
|
||||||
p.Disable = disable
|
p.Disable = disable
|
||||||
if disable { //关闭平台,踢掉平台上所有的人
|
if disable { //关闭平台,踢掉平台上所有的人
|
||||||
PlayerMgrSington.KickoutByPlatform(p.IdStr)
|
PlayerMgrSington.KickByPlatform(p.IdStr)
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -10,15 +10,21 @@ 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 (
|
/*
|
||||||
// InvalidPlayerCacheSec 数据不存在,60秒内不再查询
|
查询不在线的玩家数据,缓存一段时间
|
||||||
InvalidPlayerCacheSec int64 = 60
|
*/
|
||||||
|
|
||||||
|
const (
|
||||||
|
// InvalidPlayerCacheSec 数据不存在,60秒内不再查询数据库
|
||||||
|
InvalidPlayerCacheSec int64 = 60
|
||||||
|
// InvalidPlayerCacheMax 缓存的无效玩家最大数量
|
||||||
InvalidPlayerCacheMax int = 100000
|
InvalidPlayerCacheMax int = 100000
|
||||||
ListNumber int32 = 300
|
// ListNumber 平衡队列分组数量
|
||||||
|
ListNumber = 300
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
|
@ -30,41 +36,31 @@ 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) CanDel() bool {
|
func (p *PlayerCacheItem) BalanceQueueHandler() {
|
||||||
//return !p.isOnline && time.Now().Unix()-p.lastTs > int64(ListNumber)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
func (p *PlayerCacheItem) Time2Save() {
|
|
||||||
// 并没有对缓存数据做什么操作,只是释放缓存
|
// 并没有对缓存数据做什么操作,只是释放缓存
|
||||||
if p.CanDel() {
|
|
||||||
PlayerCacheMgrSingleton.playerWaitClr = append(PlayerCacheMgrSingleton.playerWaitClr, p)
|
PlayerCacheMgrSingleton.playerWaitClr = append(PlayerCacheMgrSingleton.playerWaitClr, p)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
type PlayerCacheMgr struct {
|
type PlayerCacheMgr struct {
|
||||||
*DbSaver
|
*balancequeue.BalanceQueue
|
||||||
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缓冲失效策略释放玩家数据
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(*PlayerCacheItem, bool, bool), createIfNotExist bool) {
|
// Get 获取玩家数据
|
||||||
|
// 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)
|
||||||
|
|
@ -91,11 +87,12 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(*PlayerCacheItem, b
|
||||||
}
|
}
|
||||||
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))
|
||||||
}
|
}
|
||||||
|
|
@ -119,61 +116,62 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(*PlayerCacheItem, b
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if su {
|
||||||
|
if len(replays) != len(internal.GetPlayerLoads()) {
|
||||||
|
su = false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if !su {
|
if !su {
|
||||||
c.cacheInvalidPlayerId(snid)
|
c.cacheInvalidPlayerId(snid)
|
||||||
delete(c.playerCbs, snid)
|
for _, v := range c.playerCbs[snid] {
|
||||||
for _, cb := range c.playerCbs[snid] {
|
v(nil, true, false)
|
||||||
cb(nil, true, false)
|
|
||||||
}
|
}
|
||||||
|
delete(c.playerCbs, snid)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(replays) == len(internal.GetPlayerLoads()) {
|
|
||||||
for k, v := range internal.GetPlayerLoads() {
|
for k, v := range internal.GetPlayerLoads() {
|
||||||
if v == nil || replays[k] == nil {
|
if v == nil || replays[k] == nil {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
v.Callback(pi, replays[k])
|
v.Callback(pi, replays[k])
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// 查询成功,缓存数据,执行cb方法
|
// 查询成功,缓存数据,执行cb方法
|
||||||
item, ok := c.playerMap[snid]
|
item, ok := c.playerMap[snid]
|
||||||
if !ok {
|
if !ok {
|
||||||
item = &PlayerCacheItem{PlayerData: pi}
|
item = &PlayerCacheItem{PlayerData: pi}
|
||||||
c.playerMap[snid] = item
|
c.playerMap[snid] = item
|
||||||
c.RegisterDbSaverTask(item)
|
c.Push(item)
|
||||||
|
}
|
||||||
|
for _, v := range c.playerCbs[snid] {
|
||||||
|
v(item, true, isNew)
|
||||||
}
|
}
|
||||||
if cbs, exist := c.playerCbs[snid]; exist {
|
|
||||||
delete(c.playerCbs, snid)
|
delete(c.playerCbs, snid)
|
||||||
for _, cb := range cbs {
|
|
||||||
cb(item, true, isnew)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
})).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)) {
|
||||||
isAsyn := false
|
// isDB := false
|
||||||
count := len(snid)
|
// count := len(snid)
|
||||||
result := make([]*PlayerCacheItem, 0, count)
|
// result := make([]*PlayerCacheItem, 0, count)
|
||||||
innerCb := func(item *PlayerCacheItem, asyn, isnew bool) {
|
// innerCb := func(item *PlayerCacheItem, isFindDB, isNew bool) {
|
||||||
if item != nil {
|
// if item != nil {
|
||||||
result = append(result, item)
|
// result = append(result, item)
|
||||||
}
|
// }
|
||||||
if asyn {
|
// if isFindDB {
|
||||||
isAsyn = true
|
// isDB = true
|
||||||
}
|
// }
|
||||||
count--
|
// count--
|
||||||
if count == 0 {
|
// if count == 0 {
|
||||||
cb(result, isAsyn)
|
// cb(result, isDB)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
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 {
|
||||||
|
|
@ -199,29 +197,14 @@ func (c *PlayerCacheMgr) ModuleName() string {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PlayerCacheMgr) Init() {
|
func (c *PlayerCacheMgr) Init() {
|
||||||
c.DbSaver.Init()
|
c.BalanceQueue = balancequeue.New(ListNumber)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *PlayerCacheMgr) Update() {
|
func (c *PlayerCacheMgr) Update() {
|
||||||
// 执行Time2Save之后清除缓存
|
c.BalanceQueue.Update()
|
||||||
c.DbSaver.Update()
|
|
||||||
for _, p := range c.playerWaitClr {
|
for _, p := range c.playerWaitClr {
|
||||||
delete(c.playerMap, p.SnId)
|
delete(c.playerMap, p.SnId)
|
||||||
c.UnregisterDbSaveTask(p)
|
c.Pop(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]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
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"
|
||||||
|
|
@ -25,7 +27,6 @@ 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),
|
||||||
|
|
@ -38,14 +39,18 @@ type PlayerPendingData struct {
|
||||||
|
|
||||||
type PlayerMgr struct {
|
type PlayerMgr struct {
|
||||||
common.BaseClockSinker
|
common.BaseClockSinker
|
||||||
sidMap map[int64]*Player // sid
|
// 以连接标识为索引
|
||||||
snidMap map[int32]*Player // snid
|
sidMap map[int64]*Player
|
||||||
accountMap map[string]*Player // accountid
|
// 以snid为索引
|
||||||
tokenMap map[string]*Player // 客服token
|
snidMap map[int32]*Player
|
||||||
players []*Player // 只有真实玩家
|
// 以账号为索引
|
||||||
playerOfPlatform map[string]map[int32]*Player // platform:snid;只有真实玩家
|
accountMap map[string]*Player
|
||||||
|
// 只有真实玩家,不包括机器人
|
||||||
|
players []*Player
|
||||||
|
// 平台id:snid:真实玩家
|
||||||
|
playerOfPlatform map[string]map[int32]*Player
|
||||||
|
|
||||||
loading map[string]*PlayerPendingData // accountid,控制访问频率
|
loading map[string]*PlayerPendingData // accountid,控制访问频率;登录状态标记
|
||||||
}
|
}
|
||||||
|
|
||||||
// PlayerStatics 在线统计
|
// PlayerStatics 在线统计
|
||||||
|
|
@ -100,22 +105,15 @@ 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 oldp *Player
|
var old *Player
|
||||||
if p, exist := this.snidMap[player.SnId]; exist {
|
if p, exist := this.snidMap[player.SnId]; exist {
|
||||||
oldp = p
|
old = 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 {
|
||||||
|
|
@ -129,9 +127,6 @@ 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 {
|
||||||
|
|
@ -142,21 +137,76 @@ 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.Name)
|
logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.SnId)
|
||||||
if oldp != nil { //删除旧的玩家
|
if old != nil { //删除旧的玩家
|
||||||
DbSaveInst.UnregisterDbSaveTask(oldp)
|
DbSaveInst.UnregisterDbSaveTask(old)
|
||||||
}
|
}
|
||||||
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 {
|
||||||
|
|
@ -168,9 +218,6 @@ 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 {
|
||||||
|
|
@ -187,24 +234,31 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
// DroplinePlayer 玩家掉线或登出
|
// DropPlayer 玩家掉线或登出
|
||||||
// 1.玩家登出
|
// 1.玩家登出
|
||||||
// 2.玩家网络断开
|
// 2.玩家网络断开
|
||||||
// 3.被踢掉线
|
// 3.被踢掉线
|
||||||
func (this *PlayerMgr) DroplinePlayer(p *Player) {
|
func (this *PlayerMgr) DropPlayer(p *Player) {
|
||||||
|
p.SetOffline()
|
||||||
|
p.sid = 0
|
||||||
|
p.gateSess = nil
|
||||||
delete(this.sidMap, p.sid)
|
delete(this.sidMap, p.sid)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -219,14 +273,22 @@ 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
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetPlayer 获取玩家数据(玩家在线)
|
func (this *PlayerMgr) KickByPlatform(name string) {
|
||||||
func (this *PlayerMgr) GetPlayer(id int64) *Player {
|
for _, p := range this.players {
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|
@ -267,28 +329,6 @@ 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{}
|
||||||
|
|
@ -320,6 +360,7 @@ 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{}
|
||||||
|
|
@ -358,7 +399,8 @@ 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)
|
||||||
|
|
@ -409,9 +451,9 @@ func (this *PlayerMgr) BroadcastMessageToGroup(packetid int, rawpack interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// BroadcastMessageToTarget 给某些玩家发消息
|
// BroadcastMessageToTarget 给某些玩家发消息
|
||||||
func (this *PlayerMgr) BroadcastMessageToTarget(target []int32, packetid int, rawpack interface{}) {
|
func (this *PlayerMgr) BroadcastMessageToTarget(snIds []int32, packetid int, rawpack interface{}) {
|
||||||
mgs := make(map[*netlib.Session][]*srvproto.MCSessionUnion)
|
mgs := make(map[*netlib.Session][]*srvproto.MCSessionUnion)
|
||||||
for _, v := range target {
|
for _, v := range snIds {
|
||||||
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{
|
||||||
|
|
@ -429,146 +471,29 @@ func (this *PlayerMgr) BroadcastMessageToTarget(target []int32, packetid int, ra
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 感兴趣所有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
|
||||||
nochangeCnt := 0
|
logger.Logger.Info("===@SaveAllPlayerBEGIN@=== TotalCount:", count)
|
||||||
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 p.dirty {
|
|
||||||
if model.SavePlayerData(p.PlayerData) {
|
if model.SavePlayerData(p.PlayerData) {
|
||||||
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)
|
logger.Logger.Infof("===@SavePlayerData %v/%v snid:%v coin:%v safebox:%v coinpayts:%v safeboxts:%v gamets:%v save [ok] @=",
|
||||||
saveCnt++
|
idx, count, p.SnId, p.Coin, p.SafeBoxCoin, p.CoinPayTs, p.SafeBoxCoinTs, p.GameCoinTs)
|
||||||
} 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++
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
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)
|
|
||||||
nochangeCnt++
|
|
||||||
}
|
|
||||||
for _, v := range internal.GetPlayerLoads() {
|
for _, v := range internal.GetPlayerLoads() {
|
||||||
v.Save(p.Platform, p.SnId, true, true)
|
v.Save(p.Platform, p.SnId, true, true)
|
||||||
}
|
}
|
||||||
}
|
saveCnt++
|
||||||
logger.Logger.Infof("===@PlayerMgr.SaveAll END@===, total:%v saveCnt:%v failCnt:%v nochangeCnt:%v take:%v", count, saveCnt, failCnt, nochangeCnt, time.Now().Sub(start))
|
} 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++
|
||||||
//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 预加载机器人数据
|
||||||
|
|
@ -589,9 +514,6 @@ 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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -716,18 +638,6 @@ 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
|
||||||
|
|
@ -820,7 +730,6 @@ 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)
|
||||||
|
|
@ -830,5 +739,51 @@ func init() {
|
||||||
PlayerSubjectSign.AttachHead(FriendMgrSington)
|
PlayerSubjectSign.AttachHead(FriendMgrSington)
|
||||||
|
|
||||||
// 定时器
|
// 定时器
|
||||||
common.ClockMgrSingleton.RegisterSinker(PlayerMgrSington)
|
common.RegisterClockFunc(&common.ClockFunc{
|
||||||
|
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()
|
||||||
|
},
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
if cfg == nil || cfg.GetOn() != common.On {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,14 @@ 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,
|
||||||
|
|
|
||||||
|
|
@ -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: niceIdMgr.GetRobHeadUrlIdx(),
|
HeadUrl: GetRobHeadUrlIdx(),
|
||||||
})
|
})
|
||||||
if playerData == nil || !tf {
|
if playerData == nil || !tf {
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,6 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"mongo.games.com/game/protocol/shop"
|
|
||||||
"reflect"
|
"reflect"
|
||||||
"slices"
|
"slices"
|
||||||
"sort"
|
"sort"
|
||||||
|
|
@ -30,6 +29,7 @@ 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.Kickout(common.KickReason_Freeze)
|
player.Kick(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.Kickout(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
|
player.Kick(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
|
||||||
}
|
}
|
||||||
return common.ResponseTag_Ok, pack
|
return common.ResponseTag_Ok, pack
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -2427,7 +2427,7 @@ func init() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
p.Kickout(common.KickReason_Freeze)
|
p.Kick(common.KickReason_Freeze)
|
||||||
PlayerMgrSington.DelPlayer(p.SnId)
|
PlayerMgrSington.DelPlayer(p.SnId)
|
||||||
LoginStateMgrSington.DelAccountByAccid(p.AccountId)
|
LoginStateMgrSington.DelAccountByAccid(p.AccountId)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue