//收到命名请求之后:
    public void ReqRename(MsgPack netMsgPack)
    {
        ReqRename data = netMsgPack.netMsg.reqRename;
        NetMsg    msg  = new NetMsg
        {
            cmd = (int)CMD.RspRename
        };

        if (CacheSvc.Instance.IsNameExist(data.name))
        {
            //名字是否已经存在
            //存在:返回错误码
            msg.err = (int)ErrCode.NameIsExist;
        }
        else
        {
            //不存在:更新缓存,以及数据库,再返回给客户端
            //还有一种做法是更新缓存之后,马上返回客户端,但是没办法知道数据库是否更新成功
            //如果提前返回客户端,必须要设定机制数据库更新是成功的
            PlayerData playerData = CacheSvc.Instance.GetPlayerDataBySession(netMsgPack.serverSession);
            playerData.name = data.name; //将缓存的数据更新了
            if (!CacheSvc.Instance.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrCode.UpdateDBError;
            }
            else
            {
                msg.rspRename = new RspRename
                {
                    name = data.name
                };
            }
        }
        netMsgPack.serverSession.SendMsg(msg);
    }
Esempio n. 2
0
    public void ReqRename(MsgPack pack)
    {
        ReqRename rename = pack.msg.reqRename;

        GameMsg msg = new GameMsg()
        {
            cmd = (int)CMD.RspRename,
        };

        if (cacheSvc.IsNameExist(rename.name))
        {
            msg.err = (int)ErrorCode.NameIsExist;
        }
        else
        {
            PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);
            playerData.name = rename.name;

            if (!cacheSvc.UpdataPlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg.rspRename = new RspRename()
                {
                    name = rename.name
                };
            }
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 3
0
    public void ReqRename(MsgPack pack)
    {
        ReqRename    data = (ReqRename)pack.msg;
        SCPacketBase msg  = new RspRename();

        if (cacheSvc.IsNameExist(data.Name))
        {
            //名字是否已经存在
            //存在:返回错误码
            msg.error = (int)ErrorCode.NameIsExist;
        }
        else
        {
            //不存在:更新缓存,以及数据库,再返回给客户端
            PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);
            playerData.Name = data.Name;
            if (!cacheSvc.UpdatePlayerData(playerData.Id, playerData))
            {
                msg.error = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg = new RspRename {
                    Name = data.Name
                };
            }
        }
        pack.session.SendMsg(msg);
    }
Esempio n. 4
0
    /// <summary>
    /// 创建角色,重命名
    /// </summary>
    /// <param name="pack"></param>
    public void ReqRename(MsgPack pack)
    {
        ReqRename data = pack.msg.reqRename;
        GameMsg   msg  = new GameMsg {
            cmd = (int)CMD.RspRename
        };

        if (cacheSvc.IsNameExit(data.name) == true)
        {
            // 名字已存在,返回错误码
            msg.err = (int)ErrorCode.NameIsExist;
        }
        else
        {
            // 名字未使用,更新缓存,数据库,返回给客户端
            PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);
            playerData.name = data.name;

            if (cacheSvc.UpdatePlayerData(playerData.id, playerData) == false)
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg.rspRename = new RspRename {
                    name = data.name
                };
            }
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 5
0
    /// <summary>
    /// 处理修改名字请求
    /// </summary>
    public void HandleReqRename(MsgPack pack)
    {
        ReqRename reqData = pack.msg.ReqRename;
        NetMsg    newMsg  = new NetMsg
        {
            cmd = (int)MsgType.RspRename,
        };

        //检查名字是否已经存在
        bool check = CacheSvc.Instance.CheckName(reqData.name);

        if (check)
        {
            newMsg.err = (int)ErrorCode.NameExisted;
        }
        else
        {
            PlayerData data = CacheSvc.Instance.GetPlayerDataBySession(pack.session);
            data.Name = reqData.name;

            if (CacheSvc.Instance.UpdatePlayerDataToDB(data.ID, data))
            {
                newMsg.RspRename = new RspRename
                {
                    name = reqData.name,
                };
            }
            else
            {
                newMsg.err = (int)ErrorCode.UpdateDBFailed;
            }
        }
        pack.session.SendMsg(newMsg);
    }
Esempio n. 6
0
    public void ReqRename(MsgPack pack)
    {
        ReqRename data = pack.msg.reqRename;
        GameMsg   msg  = new GameMsg {
            cmd = (int)CMD.RspRename
        };

        if (cacheSvc.IsNameExist(data.name))
        {
            //名字是否已经存在
            //存在:返回错误码
            msg.err = (int)ErrorCode.NameIsExist;
        }
        else
        {
            //不存在:更新缓存,以及数据库,再返回给客户端
            PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);
            playerData.name = data.name;
            if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg.rspRename = new RspRename {
                    name = data.name
                };
            }
        }
        pack.session.SendMsg(msg);
    }
Esempio n. 7
0
    /// <summary>
    /// 响应改名请求
    /// </summary>
    /// <param name="pack"></param>
    public void ReqRename(MsgPack pack)
    {
        ReqRename data = pack.msg.reqRename;
        GameMsg   msg  = new GameMsg {
            cmd = (int)CMD.RspRename
        };

        // 名字是否存在
        if (cacheSvc.IsNameExist(data.name))   // 存在,返回错误码
        {
            msg.err = (int)ErrorCode.NameIsExist;
        }
        else   // 不存在,更新缓存和数据库,再返回给客户端
        {
            PlayerData playerData = cacheSvc.GetPlayerDataBySession(pack.session);
            playerData.name = data.name;

            // 更新失败
            if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            // 更新成功
            else
            {
                // 直接把更新后的名字返回给客户端
                msg.rspRename = new RspRename {
                    name = data.name
                };
            }
        }
        // 发送回应给客户端
        pack.session.SendMsg(msg);
    }
Esempio n. 8
0
 public void ClickEnterBtn()
 {
     GameEntry.Sound.PlayUISound(Constants.UIClickBtn);
     if (iptName.text != "")
     {
         //发送名字数据到服务器,登录主城
         CSPacketBase msg = new ReqRename {
             Name = iptName.text
         };
         GameEntry.Net.SendMsg(msg);
     }
     else
     {
         GameEntry.UI.AddTips("当前名字不符合规范");
     }
 }
Esempio n. 9
0
    //处理重命名请求
    public void ReqRename(MsgPack pack)
    {
        ReqRename data = pack.msg.reqRename;
        GameMsg   msg  = new GameMsg
        {
            cmd = (int)CMD.RespondRename,
            //下面的代码太早了,这个名字也许存在
            //respondRename = new RespondRename
            //{
            //    name = data.name
            //}
        };

        //名字存在,返回错误码
        if (cacheSrv.IsNameExist(data.name))
        {
            msg.err = (int)ErroroCode.NameIsExist;
        }
        //不存在,更新缓存和数据库数据
        else
        {
            PlayerData playerData = cacheSrv.GetPlayerDataBySession(pack.serverSession);
            playerData.name = data.name;
            //数据库更新出错
            if (!cacheSrv.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErroroCode.UpdateDBError;
            }
            else
            {
                msg.respondRename = new RespondRename
                {
                    name = data.name
                };
            }
        }
        //发送回去
        pack.serverSession.SendMsg(msg);
    }
Esempio n. 10
0
    /// <summary>
    /// 处理重命名请求
    /// </summary>
    /// <param name="pack"></param>
    public void ReqRename(MsgPack pack)
    {
        ReqRename data = pack.msg.reqRename;
        //给客户端的回应消息
        GameMsg rspMsg = new GameMsg()
        {
            cmd = (int)CMD.RsqRename,
        };

        //名字已经存在 返回错误码
        if (cacheSvc.IsNameExit(data.name))
        {
            rspMsg.err = (int)ErrorCode.NameIsExit;
        }
        //名字不存在 更新缓存与数据库 再返回给客户端
        else
        {
            //更新缓冲区数据(代替更新数据库)
            PlayerData cachePlayerData = cacheSvc.GetPlayerDataBySettion(pack.session);
            if (cachePlayerData != null)
            {
                cachePlayerData.name = data.name;
            }
            //更新数据库失败,返回错误码(这里是简化处理了,仍然同步写入数据库;对于高并发操作,应该由驱动负责将数据更新入数据库中,但是会分离逻辑,更为复杂)
            if (!cacheSvc.UpdatePlayerData(cachePlayerData.id, cachePlayerData))
            {
                rspMsg.err = (int)ErrorCode.UpdateDbError;
            }
            //更新数据库成功 返回数据
            else
            {
                rspMsg.rspRename = new RspRename
                {
                    name = data.name
                };
            }
        }
        pack.session.SendMsg(rspMsg);
    }
Esempio n. 11
0
    //回应重命名请求
    public void ReqRename(PackMsg pack)
    {
        ReqRename     data    = pack.msg.reqRename;
        ServerSession session = pack.session;

        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspRename,
        };

        //判断当前名字是否存在
        //若存在,返回错误码
        if (cacheSvc.IsNameExist(data.name))
        {
            msg.err = (int)ErrorCode.NameIsExist;
        }
        //若不存在,更新缓存以及数据库,返回客户端
        else
        {
            PlayerData playerData = cacheSvc.GetPlayerDataCache(session);

            playerData.name = data.name;

            //数据库更新失败
            if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg.rspRename = new RspRename
                {
                    name = data.name,
                };
            }
        }
        pack.session.SendMsg(msg);
    }
Esempio n. 12
0
        public void ReqRename(MsgPack pack)
        {
            ReqRename data = pack.msg.reqRename;
            GameMsg   msg  = new GameMsg
            {
                cmd = (int)CMD.RspRename
            };

            // 名字是否存在
            if (cacheSev.IsNameExist(data.name))
            {
                // 存在:返回错误码
                msg.err = (int)ErrorCode.NameIsExit;
            }
            else
            {
                // 不存在:更新缓存和数据库,再返回给客户端
                PlayerData playerData = cacheSev.GetPlayerDataBySession(pack.session);
                playerData.name = data.name;
                if (playerData == null)
                {
                    msg.err = (int)ErrorCode.GetCacheError;
                    pack.session.SendMsg(msg);
                    return;
                }

                if (!cacheSev.UpdatePlayerData(playerData))
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    msg.rspRename = new RspRename(data.name);
                }
            }

            pack.session.SendMsg(msg);
        }