Compare commits
7 Commits
64c5617bd8
...
1acfab2ac7
| Author | SHA1 | Date |
|---|---|---|
|
|
1acfab2ac7 | |
|
|
3eb997c7c3 | |
|
|
310156dd35 | |
|
|
90e11a0dad | |
|
|
4da947cd56 | |
|
|
d1afed32c2 | |
|
|
8aaf1b40f3 |
|
|
@ -56,22 +56,22 @@ func (this *SSTransmitHandler) Process(s *netlib.Session, packetid int, data int
|
|||
if transmitPack, ok := data.(*server.SSTransmit); ok {
|
||||
pd := transmitPack.GetPacketData()
|
||||
sid := transmitPack.GetSessionId()
|
||||
packetid, packet, err := netlib.UnmarshalPacket(pd)
|
||||
packetId, packet, err := netlib.UnmarshalPacket(pd)
|
||||
if err == nil {
|
||||
h := GetHandler(packetid)
|
||||
h := GetHandler(packetId)
|
||||
if h != nil {
|
||||
utils.DumpStackIfPanic(fmt.Sprintf("SSTransmitHandler.Process error, packetid:%v", packetid))
|
||||
watch := profile.TimeStatisticMgr.WatchStart(fmt.Sprintf("/action/packet:%v", packetid), profile.TIME_ELEMENT_ACTION)
|
||||
err := h.Process(s, packetid, packet, sid)
|
||||
utils.DumpStackIfPanic(fmt.Sprintf("SSTransmitHandler.Process error, packetId:%v", packetId))
|
||||
watch := profile.TimeStatisticMgr.WatchStart(fmt.Sprintf("/action/packet:%v", packetId), profile.TIME_ELEMENT_ACTION)
|
||||
err := h.Process(s, packetId, packet, sid)
|
||||
if watch != nil {
|
||||
watch.Stop()
|
||||
}
|
||||
if err != nil {
|
||||
logger.Logger.Tracef("Packet [%d] error:", packetid, err)
|
||||
logger.Logger.Tracef("Packet [%d] error: %v", packetId, err)
|
||||
}
|
||||
return err
|
||||
} else {
|
||||
logger.Logger.Tracef("Packet %v not find handler.", packetid)
|
||||
logger.Logger.Tracef("Packet %v not find handler.", packetId)
|
||||
}
|
||||
} else {
|
||||
logger.Logger.Trace("SSTransmitHandler process err:", err)
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
//牌序- 2, A, K, Q, J, 10, 9, 8, 7, 6, 5, 4, 3
|
||||
//牌序- 2, A, K, Q, J,10, 9, 8, 7, 6, 5, 4, 3
|
||||
//红桃- 51,50,49,48,47,46,45,44,43,42,41,40,39
|
||||
//方片- 38,37,36,35,34,33,32,31,30,29,28,27,26
|
||||
//梅花- 25,24,23,22,21,20,19,18,17,16,15,14,13
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ func (this *CSFishTargetPacketFactory) CreatePacket() interface{} {
|
|||
if player == nil {
|
||||
logger.Logger.Warn("CSFishViewHandler robot == nil")
|
||||
return nil
|
||||
//player = base.PlayerMgrSington.GetPlayer(sid)
|
||||
//player = base.PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
}
|
||||
if player == 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 {
|
||||
logger.Logger.Trace("CSFishFirePranaHandler Process recv ", data)
|
||||
if msg, ok := data.(*fishing_proto.CSFirePrana); ok {
|
||||
player := base.PlayerMgrSington.GetPlayer(sid)
|
||||
player := base.PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if player == nil {
|
||||
logger.Logger.Warn("CSFishFirePranaHandler p == nil")
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ type GameParam struct {
|
|||
CloseCustomRoomCreate bool // 关闭自定义房间创建
|
||||
ClientVersion int32 // 客户端版本号
|
||||
ClientVersionChannel []string // 客户端版本号包渠道
|
||||
SwapShopUrl string // 交换商城地址
|
||||
}
|
||||
|
||||
var GameParamPath = "../data/gameparam.json"
|
||||
|
|
@ -237,4 +238,7 @@ func InitGameParam() {
|
|||
if GameParamData.AdminPassword == "" {
|
||||
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_CSUpdateGuide = 2850; //更新引导
|
||||
PACKET_SCUpdateGuide = 2851; //更新引导
|
||||
PACKET_CSGetSwapShopInfo = 2852; // 请求兑换商城信息
|
||||
PACKET_SCGetSwapShopInfo = 2853; // 返回兑换商城信息
|
||||
}
|
||||
|
||||
// 账变记录
|
||||
|
|
@ -1439,4 +1441,13 @@ message PopUpWindowInfo{
|
|||
string Key = 3;
|
||||
int32 OpenStatus = 4;//1-开启 0-关闭
|
||||
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 {
|
||||
logger.Logger.Trace("CSBagInfoHandler Process recv ", data)
|
||||
if msg, ok := data.(*bag.CSBagInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSBagInfoHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -62,7 +62,7 @@ func CSUpBagInfo(s *netlib.Session, packetid int, data interface{}, sid int64) e
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSUpBagInfoHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -463,7 +463,7 @@ func CSExchangeList(s *netlib.Session, packetid int, data interface{}, sid int64
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -508,7 +508,7 @@ func CSPropExchange(s *netlib.Session, packetid int, data interface{}, sid int64
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -605,7 +605,7 @@ func CSDollChange(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ import (
|
|||
func CSChatMsgHandler(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
logger.Logger.Trace("CSChatMsgHandler Process recv ", data)
|
||||
if msg, ok := data.(*chat.CSChatMsg); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSChatMsgHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetChatLogHandler Process recv ", data)
|
||||
if msg, ok := data.(*chat.CSGetChatLog); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSGetChatLogHandler p == 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 {
|
||||
logger.Logger.Trace("CSReadChatMsgHandler Process recv ", data)
|
||||
if msg, ok := data.(*chat.CSReadChatMsg); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSReadChatMsgHandler p == 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 {
|
||||
logger.Logger.Trace("CSShieldMsgHandler Process recv ", data)
|
||||
if msg, ok := data.(*chat.CSShieldMsg); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSShieldMsgHandler p == 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 {
|
||||
logger.Logger.Trace("CSCoinSceneGetPlayerNumHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSCoinSceneGetPlayerNum); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil {
|
||||
nums := CoinSceneMgrSingleton.GetPlayerNums(p, msg.GetGameId(), msg.GetGameModel())
|
||||
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 {
|
||||
// logger.Logger.Trace("CSCoinSceneOpHandler Process recv ", data)
|
||||
// if msg, ok := data.(*gamehall.CSCoinSceneOp); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p != nil {
|
||||
// var ret gamehall.OpResultCode
|
||||
// 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 {
|
||||
// logger.Logger.Trace("CSCoinSceneListRoomHandler Process recv ", data)
|
||||
// if msg, ok := data.(*gamehall.CSCoinSceneListRoom); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p != nil {
|
||||
// if !CoinSceneMgrSingleton.ListRooms(p, msg.GetId()) { // 场次id
|
||||
// pack := &gamehall.SCCoinSceneListRoom{
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ import (
|
|||
"mongo.games.com/game/model"
|
||||
"mongo.games.com/game/proto"
|
||||
"mongo.games.com/game/protocol/friend"
|
||||
"mongo.games.com/game/protocol/welfare"
|
||||
"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 {
|
||||
logger.Logger.Trace("CSFriendListHandler Process recv ", data)
|
||||
if msg, ok := data.(*friend.CSFriendList); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSFriendListHandler p == 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 {
|
||||
logger.Logger.Trace("CSFriendOpHandler Process recv ", data)
|
||||
if msg, ok := data.(*friend.CSFriendOp); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSFriendOpHandler p == 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 {
|
||||
logger.Logger.Trace("CSQueryPlayerGameLogHandler Process recv ", data)
|
||||
if msg, ok := data.(*friend.CSQueryPlayerGameLog); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSQueryPlayerGameLogHandler p == 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 {
|
||||
logger.Logger.Trace("CSInviteFriendHandler Process recv ", data)
|
||||
if msg, ok := data.(*friend.CSInviteFriend); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSInviteFriendHandler p == 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 {
|
||||
logger.Logger.Trace("CSInviteFriendOpHandler Process recv ", data)
|
||||
if msg, ok := data.(*friend.CSInviteFriendOp); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSInviteFriendOpHandler p == 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 {
|
||||
logger.Logger.Trace("CSFuzzyQueryPlayerHandler Process recv ", data)
|
||||
if msg, ok := data.(*friend.CSFuzzyQueryPlayer); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSFuzzyQueryPlayerHandler p == 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()
|
||||
if utf8.RuneCountInString(queryContent) < 3 {
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ func (this *CSEnterRoomHandler) Process(s *netlib.Session, packetid int, data in
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSReturnRoomHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSReturnRoom); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSQueryRoomInfoHandler Process recv ProcessLocalGame", data)
|
||||
if msg, ok := data.(*gamehall.CSQueryRoomInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSQueryRoomInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetGameConfigHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSGetGameConfig); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSGetGameConfigHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -433,7 +433,7 @@ func (this *CSEnterGameHandler) ProcessLocal(s *netlib.Session, packetid int, da
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -546,7 +546,7 @@ func (this *CSEnterGameHandler) ProcessNormal(s *netlib.Session, packetid int, d
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSQuitGameHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSQuitGame); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil {
|
||||
var ret gamehall.OpResultCode_Game
|
||||
pack := &gamehall.SCQuitGame{
|
||||
|
|
@ -746,7 +746,7 @@ func (this *CSCreateRoomHandler) ProcessLocalGame(s *netlib.Session, packetid in
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSAudienceSitHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSAudienceSit); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSAudienceSitHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -998,7 +998,7 @@ func (this *CSRecordAndNoticeHandler) Process(s *netlib.Session, packetid int, d
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSRecordAndNoticeHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -1085,7 +1085,7 @@ func CSAudienceEnterRoomHandler(s *netlib.Session, packetId int, data interface{
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1171,7 +1171,7 @@ func CSRoomConfigHandler(s *netlib.Session, packetId int, data interface{}, sid
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1189,7 +1189,7 @@ func CSCreatePrivateRoomHandler(s *netlib.Session, packetId int, data interface{
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1375,7 +1375,7 @@ func CSGetPrivateRoomListHandler(s *netlib.Session, packetId int, data interface
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1398,6 +1398,12 @@ func CSGetPrivateRoomListHandler(s *netlib.Session, packetId int, data interface
|
|||
Channel: []string{p.LastChannel},
|
||||
})
|
||||
for _, v := range scenes {
|
||||
// 隐藏关闭的房间
|
||||
cfg := PlatformMgrSingleton.GetConfig(p.Platform).RoomConfig[v.CustomParam.GetRoomConfigId()]
|
||||
if cfg == nil || cfg.GetOn() != common.On {
|
||||
continue
|
||||
}
|
||||
|
||||
needPassword := 0
|
||||
if v.GetPassword() != "" {
|
||||
needPassword = 1
|
||||
|
|
@ -1458,7 +1464,7 @@ func CSTouchTypeHandler(s *netlib.Session, packetId int, data interface{}, sid i
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1475,7 +1481,7 @@ func CSRoomRecruitHandler(s *netlib.Session, packetId int, data interface{}, sid
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1505,7 +1511,7 @@ func CSInviteJoinRoomHandler(s *netlib.Session, packetId int, data interface{},
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSHundredSceneGetPlayerNumHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSHundredSceneGetPlayerNum); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil {
|
||||
nums := HundredSceneMgrSingleton.GetPlayerNums(p, msg.GetGameId(), msg.GetGameModel())
|
||||
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 {
|
||||
logger.Logger.Trace("CSHundredSceneOpHandler Process recv ", data)
|
||||
if msg, ok := data.(*gamehall.CSHundredSceneOp); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil {
|
||||
var ret gamehall.OpResultCode_Hundred
|
||||
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 {
|
||||
logger.Logger.Trace("CSPlatFormHandler Process recv ", data)
|
||||
if _, ok := data.(*login_proto.CSPlatFormConfig); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlatFormHandler p == 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 {
|
||||
// logger.Logger.Trace("CSBulletionInfoHandler Process recv ", data)
|
||||
// if msg, ok := data.(*login_proto.CSBulletionInfo); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Trace("CSBulletionInfoHandler p == 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 {
|
||||
// logger.Logger.Trace("CSCustomerInfoListHandler Process recv ", data)
|
||||
// if _, ok := data.(*login_proto.CSCustomerInfoList); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Trace("CSBulletionInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetThrGameCfgHandler Process recv ", data)
|
||||
if msg, ok := data.(*login_proto.CSGetThrGameCfg); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSGetThrGameCfgHandler p == nil")
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"mongo.games.com/game/common"
|
||||
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/netlib"
|
||||
)
|
||||
|
|
@ -15,11 +16,11 @@ func SessionLogout(sid int64, drop bool) bool {
|
|||
}
|
||||
|
||||
ls.state = LoginStateLogout
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil {
|
||||
p.ThirdGameLogout()
|
||||
if drop {
|
||||
p.DropLine()
|
||||
internal.FirePlayerDropLine[*Player, *Scene](p)
|
||||
} else {
|
||||
p.Logout()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ func CSLotteryInfoHandler(s *netlib.Session, packetid int, data interface{}, sid
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSReadMessageHandler Process recv ", data)
|
||||
if csMessageRead, ok := data.(*message.CSMessageRead); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSReadMessageHandler p == 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 {
|
||||
logger.Logger.Trace("CSDelMessageHandler Process recv ", data)
|
||||
if csMessageDel, ok := data.(*message.CSMessageDel); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSDelMessageHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetMessageAttachHandler Process recv ", data)
|
||||
if csGetMessageAttach, ok := data.(*message.CSGetMessageAttach); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSGetMessageAttachHandler p == 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 {
|
||||
logger.Logger.Tracef("(this *SCMessageListHandler) Process [%v].", s.GetSessionConfig().Id)
|
||||
if msg, ok := data.(*message.CSMessageList); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
p.SendMessage(msg.GetShowId())
|
||||
}
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@ package main
|
|||
//func (this *CSMNGameEnterHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
// logger.Logger.Trace("CSMNGameEnterHandler Process recv ", data)
|
||||
// if msg, ok := data.(*mngame.CSMNGameEnter); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p != nil {
|
||||
// code := MiniGameMgrSington.PlayerEnter(p, msg.GetId())
|
||||
// pack := &mngame.SCMNGameEnter{
|
||||
|
|
@ -52,7 +52,7 @@ package main
|
|||
//func (this *CSMNGameLeaveHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
// logger.Logger.Trace("CSMNGameLeaveHandler Process recv ", data)
|
||||
// if msg, ok := data.(*mngame.CSMNGameLeave); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p != nil {
|
||||
// code := MiniGameMgrSington.PlayerLeave(p, msg.GetId())
|
||||
// pack := &mngame.SCMNGameLeave{
|
||||
|
|
@ -81,7 +81,7 @@ package main
|
|||
//func (this *CSMNGameDispatcherHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
// logger.Logger.Trace("CSMNGameDispatcherHandler Process recv ", data)
|
||||
// if msg, ok := data.(*mngame.CSMNGameDispatcher); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p != nil {
|
||||
// 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 {
|
||||
logger.Logger.Trace("CSRoleInfoHandler Process recv ", data)
|
||||
if _, ok := data.(*pets.CSRoleInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSRoleInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSPetInfoHandler Process recv ", data)
|
||||
if _, ok := data.(*pets.CSPetInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPetInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSRisingStarHandler Process recv ", data)
|
||||
if msg, ok := data.(*pets.CSRisingStar); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSRisingStarHandler p == 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 {
|
||||
logger.Logger.Trace("CSRolePetUseOpHandler Process recv ", data)
|
||||
if msg, ok := data.(*pets.CSRolePetUseOp); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSRolePetUseOpHandler p == 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 {
|
||||
logger.Logger.Trace("CSRolePetUnlockHandler Process recv ", data)
|
||||
if msg, ok := data.(*pets.CSRolePetUnlock); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSRolePetUnlockHandler p == 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 {
|
||||
if msg, ok := data.(*pets.CSPetSkillLevelUp); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPetSkillLevelUp p == nil")
|
||||
return nil
|
||||
|
|
@ -487,7 +487,7 @@ func CSSkinInfo(s *netlib.Session, packetid int, data interface{}, sid int64) er
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSSkinInfo p == nil")
|
||||
return nil
|
||||
|
|
@ -506,7 +506,7 @@ func CSSkinUse(s *netlib.Session, packetid int, data interface{}, sid int64) err
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSSkinUse p == nil")
|
||||
return nil
|
||||
|
|
@ -550,7 +550,7 @@ func CSSkinUpgrade(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSSkinUpgrade p == nil")
|
||||
return nil
|
||||
|
|
@ -696,7 +696,7 @@ func CSSKinUnLock(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Errorf("CSSKinUnLock p == 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 {
|
||||
if _, ok := data.(*player_proto.CSPhoneLotteryInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
logger.Logger.Trace("客户端请求抽奖信息!snid = ", p.SnId)
|
||||
if 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 {
|
||||
if msg, ok := data.(*player_proto.CSPhoneLottery); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPhoneLottery p == 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 {
|
||||
if _, ok := data.(*player_proto.CSDiamondLotteryInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
logger.Logger.Trace("客户端请求钻石抽奖信息!snid = ", p.SnId)
|
||||
if 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 {
|
||||
if msg, ok := data.(*player_proto.CSDiamondLottery); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSDiamondLottery p == 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 {
|
||||
if _, ok := data.(*player_proto.CSDiamondLotteryLuckyAward); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSDiamondLotteryLuckyAward p == nil")
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ import (
|
|||
"time"
|
||||
"unicode/utf8"
|
||||
|
||||
"github.com/golang-jwt/jwt/v4"
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
"mongo.games.com/goserver/core/i18n"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
|
|
@ -29,6 +30,7 @@ import (
|
|||
player_proto "mongo.games.com/game/protocol/player"
|
||||
webapi_proto "mongo.games.com/game/protocol/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})$`)
|
||||
|
|
@ -47,7 +49,7 @@ func (this *CSInviteCodePlayerPacketFactory) CreatePacket() interface{} {
|
|||
func (this *CSInviteCodePlayerHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
logger.Logger.Trace("CSInviteCodePlayerHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSPlayerInviteCode); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSInviteCodePlayerHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -151,7 +153,7 @@ func (this *CSPlayerChangeNickHandler) Process(s *netlib.Session, packetid int,
|
|||
//logger.Logger.Trace("CSPlayerChangeNickHandler Process recv ", data)
|
||||
//if msg, ok := data.(*player_proto.CSChangeNick); ok {
|
||||
// //logger.Logger.Trace("修改昵称,获得IP",s.RemoteAddr())
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Warn("CSPlayerChangeNickHandler p == 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 {
|
||||
logger.Logger.Trace("CSPlayerChangeIconHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSPlayerChangeIcon); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerChangeIconHandler p == 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 {
|
||||
logger.Logger.Trace("CSPlayerChangeHeadOutLineHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSPlayerChangeHeadOutLine); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerChangeHeadOutLineHandler p == 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 {
|
||||
logger.Logger.Trace("CSPlayerChangeSexHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSPlayerChangeSex); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerChangeSexHandler p == 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 {
|
||||
// logger.Logger.Trace("CSUpgradeAccountHandler Process recv ", data)
|
||||
// if msg, ok := data.(*player_proto.CSUpgradeAccount); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
//
|
||||
// sendPack := func(code player_proto.OpResultCode) {
|
||||
// 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 {
|
||||
logger.Logger.Trace("CSBindAlipayHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSBindAlipay); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSBindAlipayHandler p == 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 {
|
||||
logger.Logger.Trace("CSBindBankHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSBindBank); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSBindBankHandler p == 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 {
|
||||
logger.Logger.Trace("CSChangePasswordHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSChangePassword); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSChangePasswordHandler p == 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 {
|
||||
logger.Logger.Trace("CSPlayerSafeBoxHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSPlayerOpCoin); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerSafeBoxHandler p == 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 {
|
||||
logger.Logger.Trace("GetSafeBoxCoinLog Process recv ", data)
|
||||
if _, ok := data.(*player_proto.CSGetSafeBoxCoinLog); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("GetSafeBoxCoinLog p == 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 {
|
||||
// logger.Logger.Trace("CSPlayerGameCoinLogHandler Process recv ", data)
|
||||
// if _, ok := data.(*player_proto.CSGetGameCoinLog); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Warn("CSPlayerGameCoinLogHandler p == nil")
|
||||
// return nil
|
||||
|
|
@ -1408,7 +1410,7 @@ func (this *CSPlayerRegisterHandler) Process(s *netlib.Session, packetid int, da
|
|||
Plt: acc.Platform,
|
||||
AccId: acc.AccountId.Hex(),
|
||||
NickName: "",
|
||||
HeadUrl: niceIdMgr.GetRobHeadUrlIdx(),
|
||||
HeadUrl: GetRobHeadUrlIdx(),
|
||||
})
|
||||
if pi == nil || tf == false {
|
||||
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 {
|
||||
logger.Logger.Trace("CSCustomerNewMsgAckHandler Process recv ", data)
|
||||
//if msg, ok := data.(*player_proto.CSCustomerNewMsgAck); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Warn("CSCustomerNewMsgAckHandler p == 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 {
|
||||
logger.Logger.Trace("CSIosInstallStableHandler Process recv ", data)
|
||||
//if _, ok := data.(*player_proto.CSIosInstallStable); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Warn("CSIosInstallStableHandler p == 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 {
|
||||
logger.Logger.Trace("CSFishJackpotHandler Process recv ", data)
|
||||
if _, ok := data.(*player_proto.CSJackpotList); ok {
|
||||
player := PlayerMgrSington.GetPlayer(sid)
|
||||
player := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if player == nil {
|
||||
logger.Logger.Warn("CSFishJackpotHandler p == 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 {
|
||||
logger.Logger.Trace("CSFishJackpotCoinHandler Process recv ", data)
|
||||
if _, ok := data.(*player_proto.CSFishJackpotCoin); ok {
|
||||
player := PlayerMgrSington.GetPlayer(sid)
|
||||
player := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if player == nil {
|
||||
logger.Logger.Warn("CSFishJackpotCoinHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetSpreadIsOpenHandler Process recv ", data)
|
||||
if _, ok := data.(*player_proto.CSGetSpreadLWIsOpen); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSGetSpreadIsOpenHandler p == 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 {
|
||||
logger.Logger.Trace("CSPlayerSettingHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSPlayerSetting); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerSettingHandler p == 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 {
|
||||
logger.Logger.Trace("CSVIPBuy Process recv ", data)
|
||||
//if msg, ok := data.(*player_proto.CSVIPBuy); ok {
|
||||
// p := PlayerMgrSington.GetPlayer(sid)
|
||||
// p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
// if p == nil {
|
||||
// logger.Logger.Warn("CSPlayerVIPBuyHandler p == 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 {
|
||||
logger.Logger.Trace("CSVIPInfo Process recv ", data)
|
||||
if _, ok := data.(*player_proto.CSVIPInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerVIPInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSVIPDraw Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSVIPDraw); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerVIPDrawHandler p == 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 {
|
||||
logger.Logger.Trace("CSVIPPrivilegeInfoHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSVIPPrivilegeInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSVIPPrivilegeInfoHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -1880,7 +1882,7 @@ func CSExchangeChannel(s *netlib.Session, packetid int, data interface{}, sid in
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSExchangeChannel p == nil")
|
||||
return nil
|
||||
|
|
@ -2004,7 +2006,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if player.IsOnLine() {
|
||||
if player.sid != 0 && player.sid != sid {
|
||||
//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)
|
||||
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||
//Kick the exist player disconnect
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -2036,7 +2038,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
proto.SetDefaults(scPlayerData)
|
||||
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||
//Kick the exist player disconnect
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -2056,7 +2058,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
proto.SetDefaults(scPlayerData)
|
||||
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||
//Kick the exist player disconnect
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
@ -2068,40 +2070,18 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
proto.SetDefaults(scPlayerData)
|
||||
player.SendRawToClientIncOffLine(sid, s, int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||
//Kick the exist player disconnect
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
if !player.IsRob {
|
||||
if _, ok := BlackListMgrSington.CheckLogin(player.PlayerData); !ok {
|
||||
//var msg string
|
||||
//if bi != nil {
|
||||
// msg = i18n.Tr("languages", "BlackListLimit2Args", player.SnId, bi.Id, player.SnId, bi.Id, player.SnId, bi.Id, player.SnId, bi.Id)
|
||||
//} else {
|
||||
// msg = i18n.Tr("languages", "BlackListLimit1Args", player.SnId, player.SnId, player.SnId, player.SnId)
|
||||
//}
|
||||
//common.SendSrvMsg(player, common.SRVMSG_CODE_DEFAULT, msg)
|
||||
//scPlayerData := &player_proto.SCPlayerData{
|
||||
// OpRetCode: player_proto.OpResultCode_OPRC_InBlackList,
|
||||
//}
|
||||
//proto.SetDefaults(scPlayerData)
|
||||
//player.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||
//Kick the exist player disconnect
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
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 {
|
||||
player.addLotteryCount(20)
|
||||
|
|
@ -2114,6 +2094,7 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
playerFunc(player, cspl)
|
||||
PlayerMgrSington.ReholdPlayer(player, sid, s)
|
||||
player.OnRehold()
|
||||
internal.FirePlayerRehold[*Player, *Scene](player)
|
||||
player.SendPlayerInfo()
|
||||
return nil
|
||||
}
|
||||
|
|
@ -2141,87 +2122,27 @@ func CSPlayerData(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
return
|
||||
}
|
||||
|
||||
var promoterID string
|
||||
var promoterCfg *PromoterConfig
|
||||
f := func() {
|
||||
PlayerMgrSington.AddPlayer(sid, pd.PlayerData, s)
|
||||
player := PlayerMgrSington.GetPlayer(sid)
|
||||
if player == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if !player.IsRob {
|
||||
if _, ok := BlackListMgrSington.CheckLogin(pd.PlayerData); !ok {
|
||||
//黑名单用户也需要调用一下onlogin,否则会导致数据无法刷新
|
||||
player.OnLogined()
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if promoterID != "" {
|
||||
key, err := GetPromoterKey(0, promoterID, "")
|
||||
if err == nil {
|
||||
promoterCfg = PromoterMgrSington.GetConfig(key)
|
||||
if promoterCfg != nil && promoterCfg.IsInviteRoot > 0 {
|
||||
player.BeUnderAgentCode = promoterID
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var temp []byte
|
||||
var ee error
|
||||
di := cspl.GetDeviceInfo()
|
||||
if di != "" {
|
||||
var e common.Encryptor
|
||||
e.Init(common.GetAppId(), player.PackageID, int32(cspl.GetTimeStamp()))
|
||||
temp, ee = base64.StdEncoding.DecodeString(di)
|
||||
if ee == nil {
|
||||
e.Encrypt(temp, len(temp))
|
||||
}
|
||||
}
|
||||
|
||||
if isnew { //新用户赠送金币
|
||||
//首次创建账号事件
|
||||
//isBind := 0
|
||||
//if pd.Tel != "" {
|
||||
// isBind = 1
|
||||
//}
|
||||
//LogChannelSingleton.WriteMQData(model.GeneratePlayerEvent(model.WEBEVENT_LOGIN, pd.Platform, pd.PackageID, pd.SnId, pd.Channel, pd.BeUnderAgentCode, pd.PromoterTree, 1, 1, isBind, common.GetAppId()))
|
||||
|
||||
//newbieCoin := player.GetRegisterPrize()
|
||||
//if newbieCoin > 0 {
|
||||
// player.AddCoin(int64(newbieCoin), common.GainWay_NewPlayer, "system", "")
|
||||
// //增加泥码
|
||||
// player.AddDirtyCoin(0, int64(newbieCoin))
|
||||
// player.ReportSystemGiveEvent(newbieCoin, common.GainWay_NewPlayer, true)
|
||||
// player.AddPayCoinLog(int64(newbieCoin), model.PayCoinLogType_Coin, "NewPlayer")
|
||||
// LogChannelSingleton.WriteMQData(model.GenerateSystemFreeGive(pd.SnId, pd.Name, pd.Platform, model.SystemFreeGive_GiveType_NewPlayer, model.SystemFreeGive_CoinType_Coin, int64(newbieCoin)))
|
||||
//}
|
||||
//if player.InviterId > 0 {
|
||||
// //actRandCoinMgr.OnPlayerInvite(player.Platform, player.InviterId)
|
||||
//}
|
||||
}
|
||||
//测试代码
|
||||
|
||||
playerFunc(player, cspl)
|
||||
player.OnLogined()
|
||||
player.SendPlayerInfo()
|
||||
PlayerMgrSington.AddPlayer(sid, pd.PlayerData, s)
|
||||
player := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if player == nil {
|
||||
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()
|
||||
// 检查禁止登录
|
||||
if !player.IsRob {
|
||||
if _, ok := BlackListMgrSington.CheckLogin(pd.PlayerData); !ok {
|
||||
//黑名单用户也需要调用一下onlogin,否则会导致数据无法刷新
|
||||
player.OnLogined()
|
||||
internal.FirePlayerLogined[*Player, *Scene](player)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
playerFunc(player, cspl)
|
||||
player.OnLogined()
|
||||
internal.FirePlayerLogined[*Player, *Scene](player)
|
||||
player.SendPlayerInfo()
|
||||
}, true)
|
||||
|
||||
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 {
|
||||
logger.Logger.Trace("CSQueryPlayerHandler Process recv ", data)
|
||||
if msg, ok := data.(*player_proto.CSQueryPlayer); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSQueryPlayerHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -2333,7 +2254,7 @@ func CSSavePlayerInfo(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -2391,7 +2312,7 @@ func CSHeadUrl(s *netlib.Session, packetId int, data interface{}, sid int64) err
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSHeadUrl p == nil")
|
||||
return nil
|
||||
|
|
@ -2420,7 +2341,7 @@ func CSBindTelInfo(s *netlib.Session, packetId int, data interface{}, sid int64)
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Error("CSBindTelInfo p == nil", sid)
|
||||
return nil
|
||||
|
|
@ -2451,7 +2372,7 @@ func CSPlayerSMSCode(s *netlib.Session, packetId int, data interface{}, sid int6
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
|
||||
sendPack := func(code player_proto.OpResultCode) {
|
||||
pack := &player_proto.SCPlayerSMSCode{
|
||||
|
|
@ -2576,7 +2497,7 @@ func CSBindTel(s *netlib.Session, packetId int, data interface{}, sid int64) err
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Error("CSBindTel p == nil", sid)
|
||||
return nil
|
||||
|
|
@ -2822,7 +2743,7 @@ func CSBillList(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -2887,7 +2808,7 @@ func CSADV(s *netlib.Session, packetId int, data interface{}, sid int64) error {
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Tracef("CSSMSConfig Process %v", data)
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Tracef("CSAwardLog Process %v", data)
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -3044,7 +2965,7 @@ func CSAwardLog(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
|||
return nil
|
||||
}
|
||||
func CSPopUpWindowsConfig(s *netlib.Session, packetId int, data interface{}, sid int64) error {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Tracef("CSUpdateAttribute %v", data)
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -3285,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 {
|
||||
logger.Logger.Tracef("CSClawdollItemLog Process %v", data)
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -3328,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 {
|
||||
logger.Logger.Tracef("CSDollConfigHandler")
|
||||
if _, ok := data.(*player_proto.CSCLAWDOLLConfig); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSDollConfigHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -3357,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 {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -3380,6 +3301,38 @@ func CSPopUpWindowConfig(s *netlib.Session, packetId int, data interface{}, sid
|
|||
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() {
|
||||
// 用户信息
|
||||
common.Register(int(player_proto.PlayerPacketID_PACKET_CS_PLAYERDATA), player_proto.CSPlayerData{}, CSPlayerData)
|
||||
|
|
@ -3419,4 +3372,6 @@ func init() {
|
|||
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_CSGetSwapShopInfo), player_proto.CSGetSwapShopInfo{}, CSGetSwapShopInfo)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ func init() {
|
|||
// CSRMSeasonInfo 赛季信息
|
||||
func CSRMSeasonInfo(s *netlib.Session, packetId int, data interface{}, sid int64) error {
|
||||
logger.Logger.Trace("CSRMSeasonInfo")
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSRMSeasonInfo p == nil.")
|
||||
return nil
|
||||
|
|
@ -80,7 +80,7 @@ func CSRMRankConfig(s *netlib.Session, packetId int, data interface{}, sid int64
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSRMRankConfig p == nil.")
|
||||
return nil
|
||||
|
|
@ -116,7 +116,7 @@ func CSRMAwardConfig(s *netlib.Session, packetId int, data interface{}, sid int6
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSRMAwardConfig p == nil.")
|
||||
return nil
|
||||
|
|
@ -174,7 +174,7 @@ func CSRMAward(s *netlib.Session, packetId int, data interface{}, sid int64) err
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSRMAward p == nil.")
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ func init() {
|
|||
if scene.starting {
|
||||
if scene.currRound == 1 {
|
||||
scene.startTime = time.Now()
|
||||
//p := PlayerMgrSington.GetPlayer(s.Sid)
|
||||
//p := PlayerMgrSington.GetOnlinePlayer(s.Sid)
|
||||
}
|
||||
}
|
||||
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 {
|
||||
logger.Logger.Trace("CSPMCmdHandler Process recv ", data)
|
||||
if msg, ok := data.(*playerproto.CSPMCmd); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Trace("CSPMCmdHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -652,33 +652,6 @@ func (this *CSPMCmdHandler) Process(s *netlib.Session, packetid int, data interf
|
|||
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 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 {
|
||||
logger.Logger.Trace("CSAccountInvalidHandler Process recv ", data)
|
||||
if _, ok := data.(*loginproto.CSAccountInvalid); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil && p.IsRobot() {
|
||||
snid := p.SnId
|
||||
acc := p.AccountId
|
||||
|
|
@ -718,12 +691,11 @@ func (this *CSAccountInvalidHandler) Process(s *netlib.Session, packetid int, da
|
|||
}
|
||||
|
||||
func init() {
|
||||
// 机器人命令
|
||||
common.RegisterHandler(int(playerproto.PlayerPacketID_PACKET_CS_PMCMD), &CSPMCmdHandler{})
|
||||
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{})
|
||||
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 {
|
||||
logger.Logger.Trace("CSShopInfoHandler Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSShopInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSShopInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSAdLookedHandler Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSAdLooked); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSAdLookedHandler p == 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 {
|
||||
logger.Logger.Trace("CSVCPayShopHandler Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSVCPayShop); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSVCPayShopHandler p == 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 {
|
||||
logger.Logger.Trace("CSShopExchangeRecordHandler Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSShopExchangeRecord); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSShopExchangeRecordHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -279,7 +279,7 @@ func (this *CSShopExchangeHandler) Process(s *netlib.Session, packetid int, data
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSShopExchangeHandler p == 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 {
|
||||
logger.Logger.Trace("CSShopExchangeListHandler Process recv ", data)
|
||||
if _, ok := data.(*shop.CSShopExchangeList); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSShopExchangeListHandler p == 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 {
|
||||
logger.Logger.Trace("CSPayInfoHandler Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSPayInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPayInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetPayInfoListHandler Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSGetPayInfoList); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSGetPayInfoListHandler p == 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 {
|
||||
logger.Logger.Trace("CSPlayerAddr Process recv ", data)
|
||||
if msg, ok := data.(*shop.CSPlayerAddr); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPlayerAddr p == 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 {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warn("CSPayInfoHandler p == nil")
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -152,7 +152,7 @@ func CSTaskList(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -199,7 +199,7 @@ func CSTaskReward(s *netlib.Session, packetId int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -278,7 +278,7 @@ func CSTaskDebugInc(s *netlib.Session, packetId int, data interface{}, sid int64
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ func CSTMInfo(s *netlib.Session, packetid int, data interface{}, sid int64) erro
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSTMInfo p == nil.")
|
||||
return nil
|
||||
|
|
@ -33,7 +33,7 @@ func CSSignRace(s *netlib.Session, packetid int, data interface{}, sid int64) er
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSSignRace p == nil.")
|
||||
return nil
|
||||
|
|
@ -100,7 +100,7 @@ func CSMatchList(s *netlib.Session, packetId int, data interface{}, sid int64) e
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSMatchList p == nil.")
|
||||
return nil
|
||||
|
|
@ -171,7 +171,7 @@ func CSRoomList(s *netlib.Session, packetId int, data interface{}, sid int64) er
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSRoomList p == 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 {
|
||||
logger.Logger.Trace("CSGetReliefFund Process recv ", data)
|
||||
if msg, ok := data.(*welfare.CSGetReliefFund); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSGetReliefFundHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetTurnplate Process recv ", data)
|
||||
if msg, ok := data.(*welfare.CSGetTurnplate); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSGetTurnplateHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetAddupSign Process recv ", data)
|
||||
if msg, ok := data.(*welfare.CSGetAddupSign); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSGetAddupSignHandler p == 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 {
|
||||
logger.Logger.Trace("CSWelfaredInfo Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSWelfaredInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSWelfaredInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSBlindBoxInfo Process recv ", data)
|
||||
if msg, ok := data.(*welfare.CSBlindBoxInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSBlindBoxInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSGetBlindBox Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSGetBlindBox); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSBuyBlindBoxHandler p == 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 {
|
||||
logger.Logger.Trace("CSWelfareFirstPayData Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSWelfareFirstPayData); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSFirstPayInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSWelfareFirstPay Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSWelfareFirstPay); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSBuyFirstPayHandler p == 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 {
|
||||
logger.Logger.Trace("CSWelfareContinuousPayData Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSWelfareContinuousPayData); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSContinuousPayInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSWelfareContinuousPay Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSWelfareContinuousPay); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSBuyContinuousPayHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -285,7 +285,7 @@ func CSWelfRelief(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Tracef("CSInviteInfo Process recv %v", data)
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -383,7 +383,7 @@ func CSBindInvite(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -591,7 +591,7 @@ func CSPermitInfo(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -710,7 +710,7 @@ func CSPermitAward(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -935,7 +935,7 @@ func CSPermitExchangeList(s *netlib.Session, packetid int, data interface{}, sid
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1004,7 +1004,7 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
@ -1146,7 +1146,7 @@ func CSPermitShop(s *netlib.Session, packetid int, data interface{}, sid int64)
|
|||
if !ok {
|
||||
return nil
|
||||
}
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == 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 {
|
||||
logger.Logger.Trace("CSPigbankGetInfo Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSPigbankGetInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSPigBankGetInfoHandler p == 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 {
|
||||
logger.Logger.Trace("CSPigbankTakeCoin Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSPigbankTakeCoin); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == 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 {
|
||||
logger.Logger.Trace("CSSignDayAddup2Award Process recv ", data)
|
||||
if msg, ok := data.(*welfare.CSSignDayAddup2Award); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == 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 {
|
||||
logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSDiamondBankGetInfo); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == 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 {
|
||||
logger.Logger.Trace("CSDiamondBankGetInfo Process recv ", data)
|
||||
if _, ok := data.(*welfare.CSDiamondBankTakeDiamond); ok {
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil")
|
||||
return nil
|
||||
|
|
@ -1318,7 +1318,7 @@ func CSClientUpgrades(s *netlib.Session, packetid int, data interface{}, sid int
|
|||
return nil
|
||||
}
|
||||
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p == nil {
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,9 +125,14 @@ func (c *CustomRoomMgr) GetRoomList(plt string) []*gamehall.PrivateRoomInfo {
|
|||
}
|
||||
var ret []*gamehall.PrivateRoomInfo
|
||||
for _, v := range d.List {
|
||||
if v != nil && v.PrivateRoomInfo != nil {
|
||||
ret = append(ret, v.PrivateRoomInfo)
|
||||
if v == nil || v.PrivateRoomInfo == nil {
|
||||
continue
|
||||
}
|
||||
cfg := PlatformMgrSingleton.GetConfig(plt).RoomConfig[v.RoomConfigId]
|
||||
if cfg == nil || cfg.GetOn() != common.On {
|
||||
continue
|
||||
}
|
||||
ret = append(ret, v.PrivateRoomInfo)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,151 +1,52 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/module"
|
||||
|
||||
"mongo.games.com/game/util/balancequeue"
|
||||
)
|
||||
|
||||
type SaveTaskHandler interface {
|
||||
Time2Save()
|
||||
}
|
||||
|
||||
var SaverSliceNumber = 600
|
||||
|
||||
var DbSaveInst = &DbSaver{
|
||||
Tick: int32(SaverSliceNumber),
|
||||
index: 0,
|
||||
init: false,
|
||||
list: make([]*SaverArray, SaverSliceNumber),
|
||||
queue: make([]*BalanceQueue, 10),
|
||||
pool: make(map[SaveTaskHandler]*SaverArray),
|
||||
GroupNumber: 600,
|
||||
}
|
||||
|
||||
type DbSaver struct {
|
||||
Tick int32 // 最大索引
|
||||
index int32 // 循环索引
|
||||
list []*SaverArray
|
||||
queue []*BalanceQueue
|
||||
init bool
|
||||
pool map[SaveTaskHandler]*SaverArray
|
||||
}
|
||||
|
||||
func (this *DbSaver) String() string {
|
||||
buf := strings.Builder{}
|
||||
buf.WriteString("DbSaver:\n")
|
||||
buf.WriteString(fmt.Sprintf("Tick: %v\n", this.Tick))
|
||||
buf.WriteString(fmt.Sprintf("List: %v\n", len(this.list)))
|
||||
buf.WriteString(fmt.Sprintf("Queue: %v\n", len(this.queue)))
|
||||
for k, v := range this.queue {
|
||||
buf.WriteString(fmt.Sprintf("q%v: %v\n", k, len(v.queue)))
|
||||
}
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
// pushBalanceSaverArray 向队列中添加SaveTaskHandler
|
||||
func (this *DbSaver) pushBalanceSaverArray(sth SaveTaskHandler) {
|
||||
if sth == nil {
|
||||
return
|
||||
}
|
||||
if _, exist := this.pool[sth]; exist {
|
||||
return
|
||||
}
|
||||
for pos, bq := range this.queue {
|
||||
size := len(bq.queue)
|
||||
if size > 0 {
|
||||
arr := bq.queue[size-1]
|
||||
if pos+1 >= len(this.queue) {
|
||||
this.queue = append(this.queue, &BalanceQueue{})
|
||||
}
|
||||
this.queue[pos+1].queue = append(this.queue[pos+1].queue, arr)
|
||||
this.queue[pos].queue = bq.queue[:size-1]
|
||||
arr.bqPos = len(this.queue[pos+1].queue) - 1
|
||||
arr.Array = append(arr.Array, sth)
|
||||
this.pool[sth] = arr
|
||||
return
|
||||
}
|
||||
}
|
||||
return
|
||||
GroupNumber int
|
||||
*balancequeue.BalanceQueue
|
||||
m map[int32]balancequeue.Element
|
||||
}
|
||||
|
||||
// RegisterDbSaverTask 向队列中添加SaveTaskHandler
|
||||
func (this *DbSaver) RegisterDbSaverTask(i interface{}) {
|
||||
if st, ok := i.(SaveTaskHandler); ok {
|
||||
this.pushBalanceSaverArray(st)
|
||||
func (this *DbSaver) RegisterDbSaverTask(i *Player) {
|
||||
if i == nil {
|
||||
return
|
||||
}
|
||||
e := balancequeue.ElementWrapper(i.Time2Save)
|
||||
this.m[i.GetSnId()] = e
|
||||
this.Push(e)
|
||||
}
|
||||
|
||||
// UnregisterDbSaveTask 从队列中移除SaveTaskHandler
|
||||
func (this *DbSaver) UnregisterDbSaveTask(i interface{}) {
|
||||
if sth, ok := i.(SaveTaskHandler); ok {
|
||||
if arr, exist := this.pool[sth]; exist {
|
||||
delete(this.pool, sth)
|
||||
count := len(arr.Array)
|
||||
for i := 0; i < count; i++ {
|
||||
if arr.Array[i] == sth {
|
||||
arr.Array[i] = arr.Array[count-1]
|
||||
arr.Array = arr.Array[:count-1]
|
||||
|
||||
bqPos := arr.bqPos
|
||||
queCount := len(this.queue[count].queue)
|
||||
this.queue[count].queue[bqPos] = this.queue[count].queue[queCount-1]
|
||||
this.queue[count].queue[bqPos].bqPos = bqPos
|
||||
this.queue[count].queue = this.queue[count].queue[:queCount-1]
|
||||
this.queue[count-1].queue = append(this.queue[count-1].queue, arr)
|
||||
arr.bqPos = len(this.queue[count-1].queue) - 1
|
||||
return
|
||||
}
|
||||
}
|
||||
} else {
|
||||
logger.Logger.Info("Player not in dbsaver")
|
||||
}
|
||||
func (this *DbSaver) UnregisterDbSaveTask(i *Player) {
|
||||
if i == nil {
|
||||
return
|
||||
}
|
||||
e, ok := this.m[i.GetSnId()]
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
this.Pop(e)
|
||||
}
|
||||
|
||||
// SaverArray 保存SaveTaskHandler的数组
|
||||
type SaverArray struct {
|
||||
Array []SaveTaskHandler
|
||||
bqPos int
|
||||
}
|
||||
|
||||
// BalanceQueue 保存SaveTaskHandler的队列
|
||||
type BalanceQueue struct {
|
||||
queue []*SaverArray
|
||||
}
|
||||
|
||||
// //////////////////////////////////////////////////////////////////
|
||||
// / Module Implement [beg]
|
||||
// //////////////////////////////////////////////////////////////////
|
||||
func (this *DbSaver) ModuleName() string {
|
||||
return "dbsaver"
|
||||
}
|
||||
|
||||
func (this *DbSaver) Init() {
|
||||
if this.init == false {
|
||||
for i := 0; i < len(this.queue); i++ {
|
||||
this.queue[i] = &BalanceQueue{}
|
||||
}
|
||||
//初始化平衡数组,所有平衡队列容量为0
|
||||
for i := 0; i < int(this.Tick); i++ {
|
||||
this.list[i] = &SaverArray{bqPos: i}
|
||||
this.queue[0].queue = append(this.queue[0].queue, this.list[i])
|
||||
}
|
||||
this.init = true
|
||||
}
|
||||
}
|
||||
|
||||
func (this *DbSaver) Update() {
|
||||
if this.index == this.Tick {
|
||||
this.index = 0
|
||||
}
|
||||
sa := this.list[this.index]
|
||||
for _, sth := range sa.Array {
|
||||
sth.Time2Save()
|
||||
}
|
||||
this.index = this.index + 1
|
||||
this.BalanceQueue = balancequeue.New(this.GroupNumber)
|
||||
this.m = make(map[int32]balancequeue.Element)
|
||||
}
|
||||
|
||||
func (this *DbSaver) Shutdown() {
|
||||
|
|
|
|||
|
|
@ -420,7 +420,7 @@ func handlerEvent(ctx context.Context, completeKey string, isInit bool, event *c
|
|||
}
|
||||
for _, p := range targetPlayer {
|
||||
if p.sid != 0 {
|
||||
p.Kickout(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
|
||||
p.Kick(int32(loginproto.SSDisconnectTypeCode_SSDTC_BlackList))
|
||||
} else {
|
||||
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
|
||||
|
||||
type Player any
|
||||
import "mongo.games.com/game/common"
|
||||
|
||||
type Scene any
|
||||
var _playerListeners []interface{}
|
||||
|
||||
var _playerListeners []PlayerListener
|
||||
|
||||
func RegisterPlayerListener(l PlayerListener) {
|
||||
func RegisterPlayerListener[Player, Scene any](l PlayerListener[Player, Scene]) {
|
||||
for _, ll := range _playerListeners {
|
||||
if ll == l {
|
||||
return
|
||||
|
|
@ -15,144 +13,192 @@ func RegisterPlayerListener(l PlayerListener) {
|
|||
_playerListeners = append(_playerListeners, l)
|
||||
}
|
||||
|
||||
type PlayerListener interface {
|
||||
type PlayerListener[Player, Scene any] interface {
|
||||
common.ClockSinker
|
||||
// 登出相关
|
||||
OnPlayerLogined(p Player) // 玩家登录时触发
|
||||
OnPlayerLogouted(p Player) // 玩家登出时触发
|
||||
OnPlayerDropLine(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) // 玩家进入场景时触发
|
||||
OnPlayerLeaveScene(p Player, s Scene) // 玩家离开场景时触发
|
||||
OnPlayerReturnScene(p Player, s Scene) // 玩家返回房间时触发
|
||||
OnPlayerEnterSceneBefore(p Player, s Scene) // 玩家进入场景前触发
|
||||
OnPlayerEnterSceneAfter(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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
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 {
|
||||
if l != nil {
|
||||
l.OnPlayerMonthTimer(p)
|
||||
l.(PlayerListener[Player, Scene]).OnPlayerReturnSceneAfter(p, s)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func FirePlayerEnterScene(p Player, s Scene) {
|
||||
for _, l := range _playerListeners {
|
||||
if l != nil {
|
||||
l.OnPlayerEnterScene(p, s)
|
||||
}
|
||||
type BasePlayerListener[Player, Scene any] struct {
|
||||
common.ClockFunc
|
||||
}
|
||||
|
||||
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) {
|
||||
for _, l := range _playerListeners {
|
||||
if l != nil {
|
||||
l.OnPlayerLeaveScene(p, s)
|
||||
}
|
||||
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerLogouted(p Player) {
|
||||
if l.OnPlayerLogoutedFunc != nil {
|
||||
l.OnPlayerLogoutedFunc(p)
|
||||
}
|
||||
}
|
||||
|
||||
func FirePlayerReturnScene(p Player, s Scene) {
|
||||
for _, l := range _playerListeners {
|
||||
if l != nil {
|
||||
l.OnPlayerReturnScene(p, s)
|
||||
}
|
||||
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerDropLine(p Player) {
|
||||
if l.OnPlayerDropLineFunc != nil {
|
||||
l.OnPlayerDropLineFunc(p)
|
||||
}
|
||||
}
|
||||
|
||||
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 *BasePlayerListener) OnPlayerLogouted(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerDropLine(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerRehold(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerSecTimer(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerMiniTimer(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerHourTimer(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerDayTimer(p Player, login, continuous bool) {}
|
||||
func (l *BasePlayerListener) OnPlayerWeekTimer(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerMonthTimer(p Player) {}
|
||||
func (l *BasePlayerListener) OnPlayerEnterScene(p Player, s Scene) {}
|
||||
func (l *BasePlayerListener) OnPlayerLeaveScene(p Player, s Scene) {}
|
||||
func (l *BasePlayerListener) OnPlayerReturnScene(p Player, s Scene) {}
|
||||
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerEnterSceneBefore(p Player, s Scene) {
|
||||
if l.OnPlayerEnterSceneBeforeFunc != nil {
|
||||
l.OnPlayerEnterSceneBeforeFunc(p, s)
|
||||
}
|
||||
}
|
||||
|
||||
func (l *PlayerListenerFunc[Player, Scene]) OnPlayerEnterSceneAfter(p Player, s Scene) {
|
||||
if l.OnPlayerEnterSceneAfterFunc != nil {
|
||||
l.OnPlayerEnterSceneAfterFunc(p, s)
|
||||
}
|
||||
}
|
||||
|
||||
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 {
|
||||
if s.gateSess == session {
|
||||
this.Logout(s)
|
||||
p := PlayerMgrSington.GetPlayer(sid)
|
||||
p := PlayerMgrSington.GetOnlinePlayer(sid)
|
||||
if p != nil {
|
||||
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)
|
||||
return
|
||||
}
|
||||
PlayerMgrSington.AddPlayer(0, item.PlayerData, nil)
|
||||
f()
|
||||
}, false)
|
||||
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
|
||||
if disable { //关闭平台,踢掉平台上所有的人
|
||||
PlayerMgrSington.KickoutByPlatform(p.IdStr)
|
||||
PlayerMgrSington.KickByPlatform(p.IdStr)
|
||||
}
|
||||
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/game/model"
|
||||
"mongo.games.com/game/util/balancequeue"
|
||||
"mongo.games.com/game/worldsrv/internal"
|
||||
)
|
||||
|
||||
const (
|
||||
// InvalidPlayerCacheSec 数据不存在,60秒内不再查询
|
||||
InvalidPlayerCacheSec int64 = 60
|
||||
/*
|
||||
查询不在线的玩家数据,缓存一段时间
|
||||
*/
|
||||
|
||||
InvalidPlayerCacheMax int = 100000
|
||||
ListNumber int32 = 300
|
||||
const (
|
||||
// InvalidPlayerCacheSec 数据不存在,60秒内不再查询数据库
|
||||
InvalidPlayerCacheSec int64 = 60
|
||||
// InvalidPlayerCacheMax 缓存的无效玩家最大数量
|
||||
InvalidPlayerCacheMax int = 100000
|
||||
// ListNumber 平衡队列分组数量
|
||||
ListNumber = 300
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
|
@ -30,41 +36,31 @@ var PlayerCacheMgrSingleton = &PlayerCacheMgr{
|
|||
playerCbs: make(map[int32][]func(*PlayerCacheItem, bool, bool)),
|
||||
playerInvalidIds: make(map[int32]int64),
|
||||
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 {
|
||||
*model.PlayerData
|
||||
}
|
||||
|
||||
func (p *PlayerCacheItem) CanDel() bool {
|
||||
//return !p.isOnline && time.Now().Unix()-p.lastTs > int64(ListNumber)
|
||||
return true
|
||||
}
|
||||
|
||||
func (p *PlayerCacheItem) Time2Save() {
|
||||
func (p *PlayerCacheItem) BalanceQueueHandler() {
|
||||
// 并没有对缓存数据做什么操作,只是释放缓存
|
||||
if p.CanDel() {
|
||||
PlayerCacheMgrSingleton.playerWaitClr = append(PlayerCacheMgrSingleton.playerWaitClr, p)
|
||||
}
|
||||
PlayerCacheMgrSingleton.playerWaitClr = append(PlayerCacheMgrSingleton.playerWaitClr, p)
|
||||
}
|
||||
|
||||
type PlayerCacheMgr struct {
|
||||
*DbSaver
|
||||
*balancequeue.BalanceQueue
|
||||
playerMap map[int32]*PlayerCacheItem // snid; 玩家信息缓存
|
||||
playerCbs map[int32][]func(*PlayerCacheItem, bool, bool) // snid; 等待执行的回掉方法
|
||||
playerInvalidIds map[int32]int64 // snid; 防止频繁访问数据库
|
||||
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.玩家缓冲数据存在
|
||||
if p, exist := c.playerMap[snid]; exist {
|
||||
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}
|
||||
|
||||
var isnew bool
|
||||
var isNew bool
|
||||
var replays []*internal.PlayerLoadReplay
|
||||
task.New(core.CoreObject(), task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
pi, flag := model.GetPlayerDataBySnId(plt, snid, true, createIfNotExist)
|
||||
isnew = flag
|
||||
isNew = flag
|
||||
// 查询其它玩家数据
|
||||
for _, v := range internal.GetPlayerLoads() {
|
||||
replays = append(replays, v.Load(plt, snid, pi))
|
||||
}
|
||||
|
|
@ -119,22 +116,26 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(*PlayerCacheItem, b
|
|||
}
|
||||
}
|
||||
|
||||
if su {
|
||||
if len(replays) != len(internal.GetPlayerLoads()) {
|
||||
su = false
|
||||
}
|
||||
}
|
||||
|
||||
if !su {
|
||||
c.cacheInvalidPlayerId(snid)
|
||||
delete(c.playerCbs, snid)
|
||||
for _, cb := range c.playerCbs[snid] {
|
||||
cb(nil, true, false)
|
||||
for _, v := range c.playerCbs[snid] {
|
||||
v(nil, true, false)
|
||||
}
|
||||
delete(c.playerCbs, snid)
|
||||
return
|
||||
}
|
||||
|
||||
if len(replays) == len(internal.GetPlayerLoads()) {
|
||||
for k, v := range internal.GetPlayerLoads() {
|
||||
if v == nil || replays[k] == nil {
|
||||
continue
|
||||
}
|
||||
v.Callback(pi, replays[k])
|
||||
for k, v := range internal.GetPlayerLoads() {
|
||||
if v == nil || replays[k] == nil {
|
||||
continue
|
||||
}
|
||||
v.Callback(pi, replays[k])
|
||||
}
|
||||
|
||||
// 查询成功,缓存数据,执行cb方法
|
||||
|
|
@ -142,38 +143,35 @@ func (c *PlayerCacheMgr) Get(plt string, snid int32, cb func(*PlayerCacheItem, b
|
|||
if !ok {
|
||||
item = &PlayerCacheItem{PlayerData: pi}
|
||||
c.playerMap[snid] = item
|
||||
c.RegisterDbSaverTask(item)
|
||||
c.Push(item)
|
||||
}
|
||||
if cbs, exist := c.playerCbs[snid]; exist {
|
||||
delete(c.playerCbs, snid)
|
||||
for _, cb := range cbs {
|
||||
cb(item, true, isnew)
|
||||
}
|
||||
for _, v := range c.playerCbs[snid] {
|
||||
v(item, true, isNew)
|
||||
}
|
||||
|
||||
delete(c.playerCbs, snid)
|
||||
})).StartByExecutor(fmt.Sprintf("Player%v", snid))
|
||||
}
|
||||
|
||||
func (c *PlayerCacheMgr) GetMore(plt string, snid []int32, cb func([]*PlayerCacheItem, bool)) {
|
||||
isAsyn := false
|
||||
count := len(snid)
|
||||
result := make([]*PlayerCacheItem, 0, count)
|
||||
innerCb := func(item *PlayerCacheItem, asyn, isnew bool) {
|
||||
if item != nil {
|
||||
result = append(result, item)
|
||||
}
|
||||
if asyn {
|
||||
isAsyn = true
|
||||
}
|
||||
count--
|
||||
if count == 0 {
|
||||
cb(result, isAsyn)
|
||||
}
|
||||
}
|
||||
for _, id := range snid {
|
||||
c.Get(plt, id, innerCb, false)
|
||||
}
|
||||
}
|
||||
//func (c *PlayerCacheMgr) GetMore(plt string, snid []int32, cb func([]*PlayerCacheItem, bool)) {
|
||||
// isDB := false
|
||||
// count := len(snid)
|
||||
// result := make([]*PlayerCacheItem, 0, count)
|
||||
// innerCb := func(item *PlayerCacheItem, isFindDB, isNew bool) {
|
||||
// if item != nil {
|
||||
// result = append(result, item)
|
||||
// }
|
||||
// if isFindDB {
|
||||
// isDB = true
|
||||
// }
|
||||
// count--
|
||||
// if count == 0 {
|
||||
// cb(result, isDB)
|
||||
// }
|
||||
// }
|
||||
// for _, id := range snid {
|
||||
// c.Get(plt, id, innerCb, false)
|
||||
// }
|
||||
//}
|
||||
|
||||
func (c *PlayerCacheMgr) cacheInvalidPlayerId(snid int32) {
|
||||
if len(c.playerInvalidIds) >= InvalidPlayerCacheMax {
|
||||
|
|
@ -199,29 +197,14 @@ func (c *PlayerCacheMgr) ModuleName() string {
|
|||
}
|
||||
|
||||
func (c *PlayerCacheMgr) Init() {
|
||||
c.DbSaver.Init()
|
||||
c.BalanceQueue = balancequeue.New(ListNumber)
|
||||
}
|
||||
|
||||
func (c *PlayerCacheMgr) Update() {
|
||||
// 执行Time2Save之后清除缓存
|
||||
c.DbSaver.Update()
|
||||
c.BalanceQueue.Update()
|
||||
for _, p := range c.playerWaitClr {
|
||||
delete(c.playerMap, p.SnId)
|
||||
c.UnregisterDbSaveTask(p)
|
||||
|
||||
// 释放玩家数据
|
||||
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
|
||||
for _, v := range internal.GetPlayerLoads() {
|
||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
v.Save(p.Platform, p.SnId, true, true)
|
||||
return nil
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
|
||||
v.Release(p.Platform, p.SnId)
|
||||
}
|
||||
})).StartByExecutor(fmt.Sprintf("Player%v", p.SnId))
|
||||
}
|
||||
}
|
||||
c.Pop(p)
|
||||
}
|
||||
c.playerWaitClr = c.playerWaitClr[0:0]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
|
|
@ -25,7 +27,6 @@ var PlayerMgrSington = &PlayerMgr{
|
|||
sidMap: make(map[int64]*Player),
|
||||
snidMap: make(map[int32]*Player),
|
||||
accountMap: make(map[string]*Player),
|
||||
tokenMap: make(map[string]*Player),
|
||||
players: make([]*Player, 0, 1024),
|
||||
playerOfPlatform: make(map[string]map[int32]*Player),
|
||||
loading: make(map[string]*PlayerPendingData),
|
||||
|
|
@ -38,14 +39,18 @@ type PlayerPendingData struct {
|
|||
|
||||
type PlayerMgr struct {
|
||||
common.BaseClockSinker
|
||||
sidMap map[int64]*Player // sid
|
||||
snidMap map[int32]*Player // snid
|
||||
accountMap map[string]*Player // accountid
|
||||
tokenMap map[string]*Player // 客服token
|
||||
players []*Player // 只有真实玩家
|
||||
playerOfPlatform map[string]map[int32]*Player // platform:snid;只有真实玩家
|
||||
// 以连接标识为索引
|
||||
sidMap map[int64]*Player
|
||||
// 以snid为索引
|
||||
snidMap map[int32]*Player
|
||||
// 以账号为索引
|
||||
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 在线统计
|
||||
|
|
@ -100,22 +105,15 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net
|
|||
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)
|
||||
this.sidMap[sid] = player
|
||||
var oldp *Player
|
||||
var old *Player
|
||||
if p, exist := this.snidMap[player.SnId]; exist {
|
||||
oldp = p
|
||||
old = p
|
||||
}
|
||||
this.snidMap[player.SnId] = player
|
||||
this.accountMap[player.AccountId] = player
|
||||
if player.customerToken != "" {
|
||||
this.tokenMap[player.customerToken] = player
|
||||
}
|
||||
|
||||
if !player.IsRob {
|
||||
var found bool
|
||||
for i, p := range this.players {
|
||||
|
|
@ -129,9 +127,6 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net
|
|||
if !found {
|
||||
this.players = append(this.players, player)
|
||||
}
|
||||
if player.HeadUrl == "" {
|
||||
player.HeadUrl = niceIdMgr.GetRobHeadUrl(player.Head)
|
||||
}
|
||||
|
||||
//平台玩家管理器
|
||||
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
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.Name)
|
||||
if oldp != nil { //删除旧的玩家
|
||||
DbSaveInst.UnregisterDbSaveTask(oldp)
|
||||
logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.SnId)
|
||||
if old != nil { //删除旧的玩家
|
||||
DbSaveInst.UnregisterDbSaveTask(old)
|
||||
}
|
||||
DbSaveInst.RegisterDbSaverTask(player)
|
||||
niceIdMgr.NiceIdCheck(player.SnId)
|
||||
} else {
|
||||
player.NiceId = niceIdMgr.PopNiceId(player.SnId)
|
||||
player.HeadUrl = niceIdMgr.GetRobHeadUrlIdx()
|
||||
}
|
||||
|
||||
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 清除玩家缓存数据
|
||||
// 一般真人是数据持久化后删除或数据没有修改,机器人不用持久化(机器人数据没有主动删除)
|
||||
// 真人数据持久化后删除,机器人不用持久化(机器人数据没有主动删除)
|
||||
// needSave 是否需要保存数据; 自动删除玩家机制已经保存过数据,不需要再保存;手动删除玩家需要保存数据
|
||||
func (this *PlayerMgr) DelPlayer(snid int32) bool {
|
||||
player, ok := this.snidMap[snid]
|
||||
if !ok || player == nil {
|
||||
|
|
@ -168,9 +218,6 @@ func (this *PlayerMgr) DelPlayer(snid int32) bool {
|
|||
}
|
||||
delete(this.snidMap, player.SnId)
|
||||
delete(this.accountMap, player.AccountId)
|
||||
if player.customerToken != "" {
|
||||
delete(this.tokenMap, player.customerToken)
|
||||
}
|
||||
if !player.IsRob {
|
||||
index := -1
|
||||
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 {
|
||||
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() {
|
||||
v.Release(player.Platform, player.SnId)
|
||||
}
|
||||
|
||||
player.OnLogouted()
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
// DroplinePlayer 玩家掉线或登出
|
||||
// DropPlayer 玩家掉线或登出
|
||||
// 1.玩家登出
|
||||
// 2.玩家网络断开
|
||||
// 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)
|
||||
}
|
||||
|
||||
|
|
@ -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)
|
||||
}
|
||||
|
||||
p.SetOnline()
|
||||
p.sid = newSid
|
||||
p.gateSess = newSess
|
||||
p.SetOnline()
|
||||
this.sidMap[newSid] = p
|
||||
}
|
||||
|
||||
// GetPlayer 获取玩家数据(玩家在线)
|
||||
func (this *PlayerMgr) GetPlayer(id int64) *Player {
|
||||
func (this *PlayerMgr) KickByPlatform(name string) {
|
||||
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 {
|
||||
return pi
|
||||
}
|
||||
|
|
@ -267,28 +329,6 @@ func (this *PlayerMgr) GetPlayerByAccount(acc string) *Player {
|
|||
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 给所有玩家发消息
|
||||
func (this *PlayerMgr) BroadcastMessage(packetid int, rawpack interface{}) bool {
|
||||
sc := &srvproto.BCSessionUnion{}
|
||||
|
|
@ -320,6 +360,7 @@ func (this *PlayerMgr) BroadcastMessageToPlatform(platform string, packetid int,
|
|||
}
|
||||
}
|
||||
|
||||
// BroadcastDataConfigToPlatform 广播配置数据更新
|
||||
func (this *PlayerMgr) BroadcastDataConfigToPlatform(platform string, tp int) {
|
||||
packetId := int(playerproto.PlayerPacketID_PACKET_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{}) {
|
||||
if platform == "" {
|
||||
this.BroadcastMessage(packetid, rawpack)
|
||||
|
|
@ -409,9 +451,9 @@ func (this *PlayerMgr) BroadcastMessageToGroup(packetid int, rawpack interface{}
|
|||
}
|
||||
|
||||
// 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)
|
||||
for _, v := range target {
|
||||
for _, v := range snIds {
|
||||
d := this.snidMap[v]
|
||||
if d != nil && d.gateSess != nil && d.IsOnLine() {
|
||||
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
|
||||
func (this *PlayerMgr) SaveAll() {
|
||||
count := len(this.players)
|
||||
start := time.Now()
|
||||
saveCnt := 0
|
||||
failCnt := 0
|
||||
nochangeCnt := 0
|
||||
logger.Logger.Info("===@PlayerMgr.SaveAll BEG@=== TotalCount:", count)
|
||||
logger.Logger.Info("===@SaveAllPlayerBEGIN@=== TotalCount:", count)
|
||||
for i, p := range this.players {
|
||||
idx := i + 1
|
||||
if p.dirty {
|
||||
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)
|
||||
saveCnt++
|
||||
} 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++
|
||||
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)
|
||||
for _, v := range internal.GetPlayerLoads() {
|
||||
v.Save(p.Platform, p.SnId, true, true)
|
||||
}
|
||||
saveCnt++
|
||||
} 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() {
|
||||
v.Save(p.Platform, p.SnId, true, true)
|
||||
}
|
||||
}
|
||||
logger.Logger.Infof("===@PlayerMgr.SaveAll END@===, total:%v saveCnt:%v failCnt:%v nochangeCnt:%v take:%v", count, saveCnt, failCnt, nochangeCnt, time.Now().Sub(start))
|
||||
}
|
||||
|
||||
// 黑名单事件
|
||||
//func (this *PlayerMgr) OnAddBlackInfo(blackinfo *BlackInfo) {
|
||||
// if blackinfo.Snid > 0 {
|
||||
// if p := this.GetPlayerBySnId(blackinfo.Snid); p != nil {
|
||||
// p.PlayerData.BlacklistType = int32(blackinfo.BlackType)
|
||||
// p.dirty = true
|
||||
// p.Time2Save()
|
||||
// } else {
|
||||
// task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
// model.UpdatePlayerBlacklistType(blackinfo.Platform, blackinfo.Snid, int32(blackinfo.BlackType))
|
||||
// return nil
|
||||
// }), nil, "PlayerMgrOnAddBlackInfo").Start()
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//func (this *PlayerMgr) OnEditBlackInfo(blackinfo *BlackInfo) {
|
||||
// //nothing
|
||||
// //if blackinfo.Snid > 0 {
|
||||
// // if p := this.GetPlayerBySnId(blackinfo.Snid); p != nil {
|
||||
// // p.PlayerData.BlacklistType = int32(blackinfo.BlackType)
|
||||
// // p.dirty = true
|
||||
// // p.Time2Save()
|
||||
// // } else {
|
||||
// // task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
// // model.UpdatePlayerBlacklistType(blackinfo.Platform, blackinfo.Snid, int32(blackinfo.BlackType))
|
||||
// // return nil
|
||||
// // }), nil, "PlayerMgrOnEditBlackInfo").Start()
|
||||
// // }
|
||||
// //}
|
||||
//}
|
||||
|
||||
//func (this *PlayerMgr) OnRemoveBlackInfo(blackinfo *BlackInfo) {
|
||||
// //nothing
|
||||
// //if blackinfo.Snid > 0 {
|
||||
// // if p := this.GetPlayerBySnId(blackinfo.Snid); p != nil {
|
||||
// // p.PlayerData.BlacklistType = 0
|
||||
// // p.dirty = true
|
||||
// // p.Time2Save()
|
||||
// // } else {
|
||||
// // task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
// // model.UpdatePlayerBlacklistType(blackinfo.Platform, blackinfo.Snid, int32(0))
|
||||
// // return nil
|
||||
// // }), nil, "PlayerMgrOnRemoveBlackInfo").Start()
|
||||
// // }
|
||||
// //}
|
||||
//}
|
||||
|
||||
func (this *PlayerMgr) KickoutByPlatform(name string) {
|
||||
for _, p := range this.players {
|
||||
if name == "" || p.Platform == name {
|
||||
p.Kickout(common.KickReason_Disconnection)
|
||||
logger.Logger.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++
|
||||
}
|
||||
}
|
||||
logger.Logger.Infof("===@SaveAllPlayerEND@===, total:%v saveCnt:%v failCnt:%v take:%v", count, saveCnt, failCnt, time.Now().Sub(start))
|
||||
}
|
||||
|
||||
// LoadRobots 预加载机器人数据
|
||||
|
|
@ -589,9 +514,6 @@ func (this *PlayerMgr) LoadRobots() {
|
|||
if player != nil {
|
||||
this.snidMap[player.SnId] = 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
|
||||
|
|
@ -820,7 +730,6 @@ func (this *PlayerMgr) RecommendFriendRule(platform string, snid int32) []Recomm
|
|||
}
|
||||
|
||||
func init() {
|
||||
//BlackListMgrSington.RegisterObserver(PlayerMgrSington)
|
||||
PlayerSubjectSign.AttachName(PlayerMgrSington)
|
||||
PlayerSubjectSign.AttachHead(PlayerMgrSington)
|
||||
PlayerSubjectSign.AttachHeadOutline(PlayerMgrSington)
|
||||
|
|
@ -830,5 +739,51 @@ func init() {
|
|||
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()
|
||||
cfg := PlatformMgrSingleton.GetConfig(platform).RoomConfig[roomConfigId]
|
||||
if cfg == nil {
|
||||
if cfg == nil || cfg.GetOn() != common.On {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,14 @@ const (
|
|||
PROMOTER_TYPE_PROMOTE = 3 //推广员
|
||||
)
|
||||
|
||||
type ErrorString struct {
|
||||
code string
|
||||
}
|
||||
|
||||
func (e *ErrorString) Error() string {
|
||||
return e.code
|
||||
}
|
||||
|
||||
var PromoterMgrSington = &PromoterMgr{
|
||||
PromoterConfigMap: make(map[string]*PromoterConfig),
|
||||
LastTicket: 0,
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ func (t *TaskLogin) Call(o *basic.Object) interface{} {
|
|||
Plt: acc.Platform,
|
||||
AccId: acc.AccountId.Hex(),
|
||||
NickName: "",
|
||||
HeadUrl: niceIdMgr.GetRobHeadUrlIdx(),
|
||||
HeadUrl: GetRobHeadUrlIdx(),
|
||||
})
|
||||
if playerData == nil || !tf {
|
||||
return nil
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"io"
|
||||
"mongo.games.com/game/protocol/shop"
|
||||
"reflect"
|
||||
"slices"
|
||||
"sort"
|
||||
|
|
@ -30,6 +29,7 @@ import (
|
|||
loginproto "mongo.games.com/game/protocol/login"
|
||||
playerproto "mongo.games.com/game/protocol/player"
|
||||
"mongo.games.com/game/protocol/server"
|
||||
"mongo.games.com/game/protocol/shop"
|
||||
webapiproto "mongo.games.com/game/protocol/webapi"
|
||||
"mongo.games.com/game/srvdata"
|
||||
"mongo.games.com/game/webapi"
|
||||
|
|
@ -1036,7 +1036,7 @@ func init() {
|
|||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
return model.FreezeAccount(msg.Platform, player.AccountId, int(msg.Minute))
|
||||
}), nil, "FreezeAccount").Start()
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
player.Kick(common.KickReason_Freeze)
|
||||
pack.Tag = webapiproto.TagCode_SUCCESS
|
||||
pack.Msg = "success"
|
||||
} else {
|
||||
|
|
@ -1714,7 +1714,7 @@ func init() {
|
|||
//在线需要踢掉玩家
|
||||
if uint(msg.BlacklistType)&BlackState_Login != 0 {
|
||||
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
|
||||
} else {
|
||||
|
|
@ -2427,7 +2427,7 @@ func init() {
|
|||
}
|
||||
}
|
||||
|
||||
p.Kickout(common.KickReason_Freeze)
|
||||
p.Kick(common.KickReason_Freeze)
|
||||
PlayerMgrSington.DelPlayer(p.SnId)
|
||||
LoginStateMgrSington.DelAccountByAccid(p.AccountId)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue