rename
This commit is contained in:
parent
71f6b0246b
commit
8aaf1b40f3
|
@ -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
|
||||
|
|
|
@ -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{
|
||||
|
|
|
@ -32,7 +32,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 +150,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 +225,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 +278,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 +396,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,7 +596,7 @@ 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
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
@ -1458,7 +1458,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 +1475,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 +1505,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,13 +16,15 @@ 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(p)
|
||||
} else {
|
||||
p.Logout()
|
||||
internal.FirePlayerLogouted(p)
|
||||
}
|
||||
} else {
|
||||
logger.Logger.Trace("SessionLogout p == nil")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -47,7 +47,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 +151,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 +272,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 +311,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 +365,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 +405,7 @@ func (this *CSPlayerChangeSexHandler) Process(s *netlib.Session, packetid int, d
|
|||
//func (this *CSUpgradeAccountHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
// 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 +582,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 +712,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 +855,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 +985,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 +1128,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 +1185,7 @@ func (this *CSPlayerSafeBoxCoinLogHandler) Process(s *netlib.Session, packetid i
|
|||
//func (this *CSPlayerGameCoinLogHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error {
|
||||
// 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 +1408,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 +1480,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 +1505,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 +1540,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 +1579,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 +1615,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 +1654,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 +1712,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 +1737,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 +1761,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 +1786,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 +1880,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
|
||||
|
@ -2141,87 +2141,59 @@ 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()
|
||||
player.Kickout(common.KickReason_Freeze)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
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()
|
||||
}, true)
|
||||
|
||||
return nil
|
||||
|
@ -2230,7 +2202,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 +2305,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 +2363,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 +2392,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 +2423,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 +2548,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 +2794,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 +2859,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 +2880,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 +2919,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 +3016,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 +3057,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 +3257,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 +3300,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 +3329,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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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: 5,
|
||||
}
|
||||
|
||||
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() {
|
||||
|
|
|
@ -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)
|
||||
}
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -370,7 +370,6 @@ func (this *Player) OnLogined() {
|
|||
|
||||
this.OnlineLogLogin()
|
||||
|
||||
this.SendToRepSrv(this.PlayerData)
|
||||
//红点检测
|
||||
this.CheckShowRed()
|
||||
|
||||
|
@ -1267,7 +1266,7 @@ func (this *Player) DropLine() {
|
|||
proto.SetDefaults(pack)
|
||||
this.SendToGame(int(serverproto.SSPacketID_PACKET_WG_PLAYERDROPLINE), pack)
|
||||
}
|
||||
PlayerMgrSington.DroplinePlayer(this)
|
||||
PlayerMgrSington.DropPlayer(this)
|
||||
this.sid = 0
|
||||
this.gateSess = nil
|
||||
//统计在线时长日志
|
||||
|
@ -1291,7 +1290,7 @@ func (this *Player) Logout() {
|
|||
this.LastLogoutTime = time.Now().Local()
|
||||
FriendMgrSington.UpdateLogoutTime(this.Platform, this.SnId)
|
||||
//clubManager.DropLinePlayer(this.SnId)
|
||||
PlayerMgrSington.DroplinePlayer(this)
|
||||
PlayerMgrSington.DropPlayer(this)
|
||||
if !this.IsRobot() {
|
||||
PlayerOnlineSington.Check = true
|
||||
}
|
||||
|
@ -1345,6 +1344,7 @@ func (this *Player) SetOffline() {
|
|||
}
|
||||
|
||||
// OnLogouted 玩家登出
|
||||
// 只能玩家管理器调用
|
||||
func (this *Player) OnLogouted() {
|
||||
logger.Logger.Tracef("(this *Player) OnLogouted() %v", this.SnId)
|
||||
|
||||
|
@ -1354,11 +1354,6 @@ func (this *Player) OnLogouted() {
|
|||
if !this.IsRob {
|
||||
FriendUnreadMgrSington.SaveFriendUnreadData(this.Platform, this.SnId)
|
||||
}
|
||||
//平台数据
|
||||
//PlayerSingleAdjustMgr.DelPlayerData(this.Platform, this.SnId)
|
||||
|
||||
//离线玩家清空俱乐部信息
|
||||
//delete(clubManager.theInClubId, this.SnId)
|
||||
|
||||
//登录日志
|
||||
logState := LoginStateMgrSington.GetLoginStateBySid(this.sid)
|
||||
|
@ -1376,11 +1371,6 @@ func (this *Player) OnLogouted() {
|
|||
|
||||
//退出通知
|
||||
//ActMonitorMgrSington.SendActMonitorEvent(ActState_Login, this.SnId, this.Name, this.Platform, 0, 0, "", 1)
|
||||
|
||||
// 更新数据库
|
||||
logger.Logger.Tracef("###%v unmount from DBSaver[DelPlayer]", this.Name)
|
||||
DbSaveInst.UnregisterDbSaveTask(this)
|
||||
this.Save(true)
|
||||
}
|
||||
|
||||
func (this *Player) MarshalData() (d []byte, e error) {
|
||||
|
@ -1509,42 +1499,17 @@ func (this *Player) MarshalCParam() []*serverproto.PlayerCParam {
|
|||
return params
|
||||
}
|
||||
|
||||
func (this *Player) SendToRepSrv(pd *model.PlayerData) {
|
||||
//replaySess := srvlib.ServerSessionMgrSington.GetSession(common.GetSelfAreaId(), ReplayServerType, ReplayServerId)
|
||||
//if replaySess != nil {
|
||||
// var buf bytes.Buffer
|
||||
// enc := gob.NewEncoder(&buf)
|
||||
// err := enc.Encode(pd)
|
||||
// if err != nil {
|
||||
// logger.Logger.Info("(this *Player) SendToRepSrv json.Marshal error", err)
|
||||
// } else {
|
||||
// pack := &server_proto.WRPlayerData{
|
||||
// PlayerData: buf.Bytes(),
|
||||
// }
|
||||
// proto.SetDefaults(pack)
|
||||
// replaySess.Send(int(server_proto.SSPacketID_PACKET_WR_PlayerData), pack)
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
func (this *Player) CanDelete() bool {
|
||||
if this.isDelete {
|
||||
return true
|
||||
}
|
||||
return !this.IsOnLine() &&
|
||||
!this.dirty &&
|
||||
time.Now().Sub(this.lastSaved) > time.Minute*5 &&
|
||||
this.scene == nil
|
||||
}
|
||||
|
||||
func (this *Player) Time2Save() {
|
||||
logger.Logger.Tracef("player save %v", this.SnId)
|
||||
if this == nil {
|
||||
return
|
||||
}
|
||||
|
||||
logger.Logger.Tracef("Time2Save Player %v", this.SnId)
|
||||
if common.Config.IsDevMode {
|
||||
this.Save(true)
|
||||
} else {
|
||||
this.Save(false)
|
||||
}
|
||||
if this != nil && this.CanDelete() {
|
||||
|
||||
if this.isDelete || (!this.IsOnLine() && !this.dirty && time.Now().Sub(this.lastSaved) > time.Minute*5 && this.scene == nil) {
|
||||
PlayerMgrSington.DelPlayer(this.SnId)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,19 +6,26 @@ import (
|
|||
|
||||
"mongo.games.com/goserver/core"
|
||||
"mongo.games.com/goserver/core/basic"
|
||||
"mongo.games.com/goserver/core/logger"
|
||||
"mongo.games.com/goserver/core/module"
|
||||
"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 +37,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 +88,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 +117,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 +144,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 {
|
||||
|
@ -194,38 +193,72 @@ func (c *PlayerCacheMgr) UnCacheInvalidPlayerId(snid int32) {
|
|||
delete(c.playerInvalidIds, snid)
|
||||
}
|
||||
|
||||
// 保存没有登录缓存的玩家数据
|
||||
func (c *PlayerCacheMgr) saveCache(p *PlayerCacheItem, isSync bool) {
|
||||
if p == nil {
|
||||
return
|
||||
}
|
||||
|
||||
saveFunc := func(v internal.PlayerLoader) {
|
||||
if v == nil {
|
||||
return
|
||||
}
|
||||
v.Save(p.Platform, p.SnId, true, true)
|
||||
logger.Logger.Infof("PlayerCacheMgr SaveCache snid:%v", p.SnId)
|
||||
}
|
||||
releaseFunc := func(v internal.PlayerLoader) {
|
||||
if v == nil {
|
||||
return
|
||||
}
|
||||
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
|
||||
v.Release(p.Platform, p.SnId)
|
||||
logger.Logger.Infof("PlayerCacheMgr SaveCache Release snid:%v", p.SnId)
|
||||
}
|
||||
}
|
||||
|
||||
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
|
||||
if isSync {
|
||||
for _, v := range internal.GetPlayerLoads() {
|
||||
saveFunc(v)
|
||||
releaseFunc(v)
|
||||
}
|
||||
} else {
|
||||
for i := 0; i < len(internal.GetPlayerLoads()); i++ {
|
||||
v := internal.GetPlayerLoads()[i]
|
||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
saveFunc(v)
|
||||
return nil
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
releaseFunc(v)
|
||||
})).StartByExecutor(fmt.Sprintf("Player%v", p.SnId))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *PlayerCacheMgr) ModuleName() string {
|
||||
return "PlayerCacheMgr"
|
||||
}
|
||||
|
||||
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)
|
||||
c.Pop(p)
|
||||
|
||||
// 释放玩家数据
|
||||
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
|
||||
for _, v := range internal.GetPlayerLoads() {
|
||||
task.New(nil, task.CallableWrapper(func(o *basic.Object) interface{} {
|
||||
v.Save(p.Platform, p.SnId, true, true)
|
||||
return nil
|
||||
}), task.CompleteNotifyWrapper(func(i interface{}, t task.Task) {
|
||||
if PlayerMgrSington.GetPlayerBySnId(p.SnId) == nil {
|
||||
v.Release(p.Platform, p.SnId)
|
||||
}
|
||||
})).StartByExecutor(fmt.Sprintf("Player%v", p.SnId))
|
||||
}
|
||||
}
|
||||
// 更新玩家数据
|
||||
c.saveCache(p, false)
|
||||
}
|
||||
c.playerWaitClr = c.playerWaitClr[0:0]
|
||||
}
|
||||
|
||||
func (c *PlayerCacheMgr) Shutdown() {
|
||||
for _, v := range c.playerMap {
|
||||
c.saveCache(v, true)
|
||||
}
|
||||
module.UnregisteModule(c)
|
||||
}
|
||||
|
|
|
@ -25,7 +25,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,12 +37,16 @@ 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,控制访问频率
|
||||
}
|
||||
|
@ -100,22 +103,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 +125,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 {
|
||||
|
@ -143,15 +136,14 @@ func (this *PlayerMgr) AddPlayer(sid int64, playerInfo *model.PlayerData, s *net
|
|||
}
|
||||
|
||||
logger.Logger.Tracef("###%v mount to DBSaver[AddPlayer]", player.Name)
|
||||
if oldp != nil { //删除旧的玩家
|
||||
DbSaveInst.UnregisterDbSaveTask(oldp)
|
||||
if old != nil { //删除旧的玩家
|
||||
DbSaveInst.UnregisterDbSaveTask(old)
|
||||
}
|
||||
DbSaveInst.RegisterDbSaverTask(player)
|
||||
niceIdMgr.NiceIdCheck(player.SnId)
|
||||
} else {
|
||||
player.NiceId = niceIdMgr.PopNiceId(player.SnId)
|
||||
player.HeadUrl = niceIdMgr.GetRobHeadUrlIdx()
|
||||
}
|
||||
|
||||
internal.FirePlayerLogined(player)
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
|
@ -168,9 +160,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,8 +176,6 @@ func (this *PlayerMgr) DelPlayer(snid int32) bool {
|
|||
if pp, exist := this.playerOfPlatform[player.Platform]; exist {
|
||||
delete(pp, player.SnId)
|
||||
}
|
||||
|
||||
niceIdMgr.PushNiceId(player.NiceId)
|
||||
}
|
||||
|
||||
for _, v := range internal.GetPlayerLoads() {
|
||||
|
@ -197,14 +184,16 @@ func (this *PlayerMgr) DelPlayer(snid int32) bool {
|
|||
|
||||
player.OnLogouted()
|
||||
|
||||
DbSaveInst.UnregisterDbSaveTask(player)
|
||||
player.Save(true)
|
||||
return true
|
||||
}
|
||||
|
||||
// DroplinePlayer 玩家掉线或登出
|
||||
// DropPlayer 玩家掉线或登出
|
||||
// 1.玩家登出
|
||||
// 2.玩家网络断开
|
||||
// 3.被踢掉线
|
||||
func (this *PlayerMgr) DroplinePlayer(p *Player) {
|
||||
func (this *PlayerMgr) DropPlayer(p *Player) {
|
||||
delete(this.sidMap, p.sid)
|
||||
}
|
||||
|
||||
|
@ -225,8 +214,8 @@ func (this *PlayerMgr) ReholdPlayer(p *Player, newSid int64, newSess *netlib.Ses
|
|||
this.sidMap[newSid] = p
|
||||
}
|
||||
|
||||
// GetPlayer 获取玩家数据(玩家在线)
|
||||
func (this *PlayerMgr) GetPlayer(id int64) *Player {
|
||||
// GetOnlinePlayer 获取玩家数据(玩家在线)
|
||||
func (this *PlayerMgr) GetOnlinePlayer(id int64) *Player {
|
||||
if pi, ok := this.sidMap[id]; ok {
|
||||
return pi
|
||||
}
|
||||
|
@ -267,28 +256,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 +287,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 +326,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 +378,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{
|
||||
|
@ -515,55 +484,7 @@ func (this *PlayerMgr) SaveAll() {
|
|||
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) {
|
||||
func (this *PlayerMgr) KickByPlatform(name string) {
|
||||
for _, p := range this.players {
|
||||
if name == "" || p.Platform == name {
|
||||
p.Kickout(common.KickReason_Disconnection)
|
||||
|
@ -589,9 +510,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 +634,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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue