From 64577b5f2a594ef988fce1de680d2afcde6d4602 Mon Sep 17 00:00:00 2001 From: sk <123456@qq.com> Date: Sat, 13 Jul 2024 14:56:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=B3=A8=E5=86=8Cip?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gamesrv/action/action_server.go | 78 ++++++++++++++++----------------- model/player.go | 3 ++ 2 files changed, 42 insertions(+), 39 deletions(-) diff --git a/gamesrv/action/action_server.go b/gamesrv/action/action_server.go index fe220c8..42afa23 100644 --- a/gamesrv/action/action_server.go +++ b/gamesrv/action/action_server.go @@ -13,6 +13,45 @@ import ( "mongo.games.com/game/protocol/webapi" ) +func HandleWGUpdateSkin(session *netlib.Session, packetId int, data interface{}) error { + logger.Logger.Trace("receive WGUpdateSkin") + msg, ok := data.(*server.WGUpdateSkin) + if !ok { + return nil + } + p := base.PlayerMgrSington.GetPlayerBySnId(msg.GetSnId()) + if p == nil { + return nil + } + p.Skin.ModId = msg.GetId() + return nil +} + +func HandleWGBuyRecTimeItem(session *netlib.Session, packetId int, data interface{}) error { + logger.Logger.Trace("receive WGBuyRecTimeItem") + if msg, ok := data.(*server.WGBuyRecTimeItem); ok { + p := base.PlayerMgrSington.GetPlayerBySnId(msg.GetSnId()) + if p != nil { + p.UpdateBuyRecTimeItem(msg.ExpireTime, msg.Diamond) + } + } + return nil +} + +func HandleWGPlayerLeave(session *netlib.Session, packetId int, data interface{}) error { + logger.Logger.Trace("receive WGPlayerLeaveGame") + if msg, ok := data.(*server.WGPlayerLeave); ok { + p := base.PlayerMgrSington.GetPlayerBySnId(msg.GetSnId()) + if p != nil { + scene := p.GetScene() + if scene != nil { + scene.PlayerLeave(p, common.PlayerLeaveReason_DropLine, false) + } + } + } + return nil +} + func init() { //创建场景 netlib.RegisterFactory(int(server.SSPacketID_PACKET_WG_CREATESCENE), netlib.PacketFactoryWrapper(func() interface{} { @@ -544,42 +583,3 @@ func init() { // 修改皮肤 netlib.Register(int(server.SSPacketID_PACKET_WG_UpdateSkin), server.WGUpdateSkin{}, HandleWGUpdateSkin) } - -func HandleWGUpdateSkin(session *netlib.Session, packetId int, data interface{}) error { - logger.Logger.Trace("receive WGUpdateSkin") - msg, ok := data.(*server.WGUpdateSkin) - if !ok { - return nil - } - p := base.PlayerMgrSington.GetPlayerBySnId(msg.GetSnId()) - if p == nil { - return nil - } - p.Skin.ModId = msg.GetId() - return nil -} - -func HandleWGBuyRecTimeItem(session *netlib.Session, packetId int, data interface{}) error { - logger.Logger.Trace("receive WGBuyRecTimeItem") - if msg, ok := data.(*server.WGBuyRecTimeItem); ok { - p := base.PlayerMgrSington.GetPlayerBySnId(msg.GetSnId()) - if p != nil { - p.UpdateBuyRecTimeItem(msg.ExpireTime, msg.Diamond) - } - } - return nil -} - -func HandleWGPlayerLeave(session *netlib.Session, packetId int, data interface{}) error { - logger.Logger.Trace("receive WGPlayerLeaveGame") - if msg, ok := data.(*server.WGPlayerLeave); ok { - p := base.PlayerMgrSington.GetPlayerBySnId(msg.GetSnId()) - if p != nil { - scene := p.GetScene() - if scene != nil { - scene.PlayerLeave(p, common.PlayerLeaveReason_DropLine, false) - } - } - } - return nil -} diff --git a/model/player.go b/model/player.go index 92af386..451df49 100644 --- a/model/player.go +++ b/model/player.go @@ -795,6 +795,9 @@ func (this *PlayerData) UpdateParams(params string) *PlayerParams { if err == nil { if common.IsValidIP(pp.Ip) { this.Ip = pp.Ip + if this.RegIp == "" { + this.RegIp = pp.Ip + } } else if common.IsValidIP(this.RegIp) { this.Ip = this.RegIp } else {