Пример #1
0
    /// <summary>
    /// 添加角色到角色总列表
    /// </summary>
    /// <param name="headAdd">添加到列表头部</param>
    /// <param name="serverGid">服务器gid</param>
    /// <param name="id">角色uid</param>
    /// <param name="tid"></param>
    /// <param name="name"></param>
    /// <param name="lv"></param>
    /// <param name="offtime">上次登陆时间</param>
    /// <param name="pos">位置</param>
    public void AddCharacter(bool headAdd, string serverGid, ulong id, int tid, string name, int lv, ulong offtime, int pos, int rank)
    {
        ServerInfoVO serverInfo = GetServerBy(serverGid);

        if (serverInfo == null)
        {
            return;
        }
        if (serverInfo.CharacterList == null)
        {
            serverInfo.CharacterList = new List <CharacterVO>();
        }

        CharacterVO player = new CharacterVO();

        player.UId           = id;
        player.Name          = name;
        player.Tid           = tid;
        player.Level         = lv;
        player.DanLevel      = rank;
        player.LastLoginTime = (int)offtime;
        if (headAdd)
        {
            serverInfo.CharacterList.Insert(0, player);
        }
        else
        {
            serverInfo.CharacterList.Add(player);
        }
    }
Пример #2
0
 public Dictionary <int, ServerInfoVO> GetAllSeverInfos()
 {
     if (allSeverInfos == null)
     {
         allSeverInfos = new Dictionary <int, ServerInfoVO>();
         int count = 0;
         Dictionary <string, DeployConfigInfo> deployinfo = ConfigDataManager.GetDeployConfigInfos();
         if (deployinfo != null)
         {
             foreach (KeyValuePair <string, DeployConfigInfo> info in deployinfo)
             {
                 if (info.Value.port != -1)
                 {
                     ServerInfoVO severinfo = new ServerInfoVO();
                     severinfo.Type       = info.Value.type;
                     severinfo.IP         = info.Value.value;
                     severinfo.Port       = info.Value.port;
                     severinfo.Name       = info.Value.name;
                     severinfo.ID         = info.Value.severId;
                     allSeverInfos[count] = severinfo;
                     count++;
                 }
             }
         }
     }
     return(allSeverInfos);
 }
Пример #3
0
    /// <summary>
    /// 添加一个服务器
    /// </summary>
    /// <param name="id">服务器id</param>
    /// <param name="gid">服务器Gid</param>
    /// <param name="name">服务器名字</param>
    /// <param name="state">状态</param>
    /// <param name="ip">IP地址</param>
    /// <param name="port">端口</param>
    /// <param name="openTime">开服时间</param>
    public void AddServer(int id, string gid, string name, int state, string ip, int port, string openTime)
    {
        ServerInfoVO server = new ServerInfoVO();

        server.Id    = id;
        server.Gid   = gid;
        server.Name  = name;
        server.State = state;

        //为了适应外网联调,服务器添加特殊的IP地址
        //如果IP地址中带有:号,则进行解析做为新地址和端口使用
        int indexOfColon = ip.IndexOf(':');

        if (indexOfColon > 0)
        {
            server.Ip   = ip.Substring(0, indexOfColon);
            server.Port = int.Parse(ip.Substring(indexOfColon + 1));
        }
        else
        {
            server.Ip   = ip;
            server.Port = port;
        }

        server.OpenTime = openTime;
        if (!m_ServerInfoVOlist.ContainsKey(gid))
        {
            m_ServerInfoVOlist.Add(gid, server);
        }
    }
Пример #4
0
        public void UpdateServerInfo(int key)
        {
            CurServerInfo = allSeverInfos[key];
            EventObject eventobj = new EventObject();

            eventobj.obj = key;
            dispatchEvent(SEVER_CHANGE, eventobj);
        }
Пример #5
0
    public void UpdateLeftInfo()
    {
        ServerInfoVO curInfo = Singleton <ServiceModel> .GetInstance().GetCurSeverInfo();

        m_pLeftInfo = versionText.text + "\r\n" + "账号:"// + Singleton<GameModel>.GetInstance().Account + "\r\n" + fpsText.text
                      + "\r\n" + severText.text + "\r\n" + "服务器IP:"
                      + curInfo.IP + "\r\n" + "服务器端口号:" + curInfo.Port;
    }
Пример #6
0
    /// <summary>
    /// 清空本地存的所有服务器上的角色
    /// </summary>
    public void ClearServerCharacters(string serverID)
    {
        ServerInfoVO serverInfo = GetServerBy(serverID);

        if (serverInfo != null)
        {
            serverInfo.CharacterList = null;
        }
    }
    /// <summary>
    /// 创建角色返回
    /// </summary>
    private void OnCreateRoleRespond(KProtoBuf proto)
    {
        KG2C_CreateRoleRespond respond = proto as KG2C_CreateRoleRespond;
        KCreateRoleRespondCode code    = (KCreateRoleRespondCode)(respond.code);

        if (code == KCreateRoleRespondCode.eCreateRoleSucceed)
        {
            ServerInfoVO server = GetServerListProxy().GetSelectedServer() ?? GetServerListProxy().GetLastLoginServer();
            GetServerListProxy().AddCharacter(true, server.Gid,
                                              respond.uRoleID,
                                              respond.nMainHeroTemplateID,
                                              respond.szRoleName,
                                              respond.uLevel, 0, 0, 1);
            Debug.Log("创建角色成功  GID:" + server.Gid + "/ id" + +server.Id + " / " + respond.szRoleName);
            GetServerListProxy().GetCurrentCharacterVO().UId      = respond.uRoleID;
            GetServerListProxy().GetCurrentCharacterVO().Name     = respond.szRoleName;
            GetServerListProxy().GetCurrentCharacterVO().Level    = respond.uLevel;
            GetServerListProxy().GetCurrentCharacterVO().DanLevel = respond.uLevel;
            PlayerPrefs.SetString(LAST_LOGIN_ROLE, respond.uRoleID.ToString());
            GameFacade.Instance.SendNotification(NotificationName.MSG_CHARACTER_CREATE_SUCCESS, respond.uRoleID);
        }
        else
        {
            Debug.Log("创建角色失败=" + respond.code);

            //EventDispatcher.GameWorld.DispatchEvent(ControllerCommand.CREATE_ROLE_FAILD);
            GameFacade.Instance.SendNotification(NotificationName.MSG_CHARACTER_CREATE_FAIL, (int)(proto as KG2C_CreateRoleRespond).code);

            string errTex = "";
            if (code == KCreateRoleRespondCode.eCreateRoleSucceed)
            {
                errTex = "NICKNAME_CREATE_SUCCESS";
            }
            else if (code == KCreateRoleRespondCode.eCreateRoleNameAlreadyExist)
            {
                errTex = "NICKNAME_USED";
            }
            else if (code == KCreateRoleRespondCode.eCreateRoleInvalidRoleName)
            {
                errTex = "NICKNAME_INVALID";
            }
            else if (code == KCreateRoleRespondCode.eCreateRoleNameTooLong)
            {
                errTex = "NICKNAME_TOOLONG";
            }
            else if (code == KCreateRoleRespondCode.eCreateRoleNameTooShort)
            {
                errTex = "NICKNAME_TOOSHORT";
            }
            else
            {
                errTex = "NICKNAME_NOTCREATE";
            }
            Debug.LogWarning(errTex);
        }
    }
Пример #8
0
 /// <summary>
 /// 选择toggle事件
 /// </summary>
 /// <param name="index">索引</param>
 /// <param name="select">是否选中</param>
 private void SelectToggle(int index, bool select)
 {
     if (select)
     {
         m_CurrentTierIndex = index;
         m_CurrentData      = m_ServerListProxy.GetServerList()[m_CurrentTierIndex];
         m_ServerListProxy.SetSelectedServer(m_CurrentData.Gid);
         m_Parent.m_CurrentServerNameText.text  = m_CurrentData.Name;
         m_Parent.m_CurrentServerStateText.text = m_CurrentData.State.ToString();
     }
 }
Пример #9
0
        public override bool Edit(ServerInfoVO m)
        {
            CodeCommand command = new CodeCommand();

            command.CommandText = EDIT;

            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@ServerId", Value = ParameterHelper.ConvertValue(m.ServerId)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Name", Value = ParameterHelper.ConvertValue(m.Name)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Desc", Value = ParameterHelper.ConvertValue(m.Desc)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Ip", Value = ParameterHelper.ConvertValue(m.Ip)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@CreateDate", Value = ParameterHelper.ConvertValue(m.CreateDate)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@IsState", Value = ParameterHelper.ConvertValue(m.IsState)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@UpdateDate", Value = ParameterHelper.ConvertValue(m.UpdateDate)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@UserId", Value = ParameterHelper.ConvertValue(m.UserId)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Id", Value = ParameterHelper.ConvertValue(m.Id)
            });


            int result = DbProxyFactory.Instance.Proxy.ExecuteNonQuery(command);

            if (result >= 1)
            {
                return(true);
            }

            return(false);
        }
Пример #10
0
    /// <summary>
    /// 是否有角色
    /// </summary>
    /// <returns>返回Bool</returns>
    private bool HaveCharacter()
    {
        ServerInfoVO serverInfo = m_ServerListProxy.GetLastLoginServer();

        if (serverInfo.CharacterList?.Count > 0)
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
Пример #11
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/json";

            string sname = context.Request.Params["sname"] ?? "";

            ApiResult result = new ApiResult();

            try
            {
                if (!string.IsNullOrEmpty(sname))
                {
                    ServerInfoPara sip = new ServerInfoPara();
                    sip.Name = sname;

                    var list = ServerInfoBLL.Instance.GetModels(sip);
                    if (list.Count == 0)
                    {
                        ServerInfoVO info = new ServerInfoVO();

                        info.CreateDate = DateTime.Now;
                        info.Desc       = "";
                        info.Ip         = DN.Framework.Utility.ClientHelper.ClientIP();
                        info.IsState    = 0;
                        info.Name       = sname;
                        info.ServerId   = Guid.NewGuid().ToString();
                        info.UpdateDate = DateTime.Now;
                        ServerInfoBLL.Instance.Add(info);

                        result.code = 1;
                        result.msg  = "服务器信息上报成功。";
                    }
                    else
                    {
                        result.code = 0;
                        result.msg  = "己存在相同服务器信息。";
                    }
                }
            }
            catch (Exception ex)
            {
                result.code = 2;
                result.msg  = ex.Message;
            }

            string json = DN.Framework.Utility.Serializer.SerializeObject(result);

            context.Response.ClearContent();
            context.Response.Write(json);
            context.Response.End();
        }
Пример #12
0
    public override void OnRefresh(object msg)
    {
        UIManager.Instance.OpenPanel(UIPanel.CharacterModelPanel, m_PanelRoot);
        ServerInfoVO serverInfo = m_ServerListProxy.GetLastLoginServer();

        if (serverInfo.CharacterList?.Count > 0)
        {
            m_ServerListProxy.SetCurrentState(CharacterPanelState.RoleList);
        }
        else
        {
            m_ServerListProxy.SetCurrentState(CharacterPanelState.CreatRole);
        }
    }
Пример #13
0
    /// <summary>
    /// 从本地缓存数据服务器中删除一个角色数据
    /// </summary>
    /// <param name="uid">实例id</param>
    public void RemoveCharacter(ulong uid)
    {
        if (PlayerPrefs.HasKey(uid.ToString()))
        {
            PlayerPrefs.DeleteKey(uid.ToString());
        }
        ServerInfoVO serverInfo = GetLastLoginServer();

        for (int i = 0; i < serverInfo.CharacterList.Count; i++)
        {
            if (serverInfo.CharacterList[i].UId == uid)
            {
                serverInfo.CharacterList.RemoveAt(i);
                return;
            }
        }
    }
Пример #14
0
        public override int InsertIdentityId(ServerInfoVO m)
        {
            CodeCommand command = new CodeCommand();

            command.CommandText = INSERT + "; select @@Identity";

            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@ServerId", Value = ParameterHelper.ConvertValue(m.ServerId)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Name", Value = ParameterHelper.ConvertValue(m.Name)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Desc", Value = ParameterHelper.ConvertValue(m.Desc)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@Ip", Value = ParameterHelper.ConvertValue(m.Ip)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@CreateDate", Value = ParameterHelper.ConvertValue(m.CreateDate)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@IsState", Value = ParameterHelper.ConvertValue(m.IsState)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@UpdateDate", Value = ParameterHelper.ConvertValue(m.UpdateDate)
            });
            command.Parameters.Add(new SqlParameter()
            {
                ParameterName = "@UserId", Value = ParameterHelper.ConvertValue(m.UserId)
            });


            var result = DbProxyFactory.Instance.Proxy.ExecuteScalar(command);

            return(int.Parse(result.ToString()));
        }
Пример #15
0
    /// <summary>
    /// 延迟调用
    /// </summary>
    /// <returns></returns>
    public IEnumerator Excute()
    {
        ServerInfoVO serverInfo = m_ServerListProxy.GetLastLoginServer();

        if (m_CurrentState != null)
        {
            m_CurrentState.m_IsShow = false;
        }
        yield return(new WaitForSeconds(0.2f));

        m_Animator.SetTrigger("Near");
        m_RotationContoller.ResetAngle();
        m_PostProcessVolume.isGlobal = true;
        if (m_CurrentState.m_Character != null)
        {
            m_CurrentState.m_Character.SetActive(true);
        }
        m_CurrentState.m_IsShow = true;
    }
Пример #16
0
    protected override void OnCellRenderer(int groupIndex, int cellIndex, object cellData, RectTransform cellView, bool selected)
    {
        Toggle   toggle     = cellView.GetComponent <Toggle>();
        Animator m_Animator = cellView.GetComponent <Animator>();

        if (m_Animator)
        {
            m_Animator.SetBool("IsOn", selected);
        }

        ServerInfoVO serverData = (ServerInfoVO)cellData;

        cellView.Find("Content/ServerField").GetComponent <TMP_Text>().text = serverData.Name;
        cellView.Find("Content/StateField").GetComponent <TMP_Text>().text  = serverData.State.ToString();

        if (selected)
        {
            SelectToggle(cellIndex, selected);
        }
    }
Пример #17
0
    private System.Collections.IEnumerator Login_Co()
    {
        do
        {
            string url = string.Format("{0}authorize?username=\"{1}\"&password=\"{2}\""
                                       , GetLoginProxy().GetMicroServerURL_Auth()
                                       , NetworkManager.Instance.GetLoginController().Account
                                       , NetworkManager.Instance.GetLoginController().Password);
            Leyoutech.Utility.DebugUtility.Log(KConstants.LOG_TAG, "Request " + url);
            UnityWebRequest www = UnityWebRequest.Get(url);
            yield return(www.SendWebRequest());

            if (www.isNetworkError || www.isHttpError)
            {
                Leyoutech.Utility.DebugUtility.LogError(KConstants.LOG_TAG, "Request authorize Error: \n" + www.error);
                SendNotification(NotificationName.MSG_GRPC_AUTH_ERR);
            }
            else
            {
                Leyoutech.Utility.DebugUtility.Log(KConstants.LOG_TAG, "Request authorize Success: \n" + www.downloadHandler.text);
                TokenData tokenData = JsonUtility.FromJson <TokenData>(www.downloadHandler.text);
                ClearAllServerCharacters();
                NetworkManager.Instance.GetLoginController().AccountToken = tokenData.success.token_id;

                SendNotification(NotificationName.MSG_GRPC_AUTH_BACK);

                // HACK 现在不需要从微服获取角色列表
                SendNotification(NotificationName.MSG_GRPC_GETROLES_BACK);

                ServerInfoVO server = GetSelectedServer() ?? GetLastLoginServer();
                if (server != null)
                {
                    NetworkManager.Instance.GetLoginController().Connect(server.Ip, server.Port);
                }
                break;
            }
        }while (--m_CurrentRetryCount > 0);
    }
Пример #18
0
 public override string GetOtherConditionByModel(ServerInfoVO m)
 {
     return("");
 }
Пример #19
0
    public void ShowSeverInfo(EventObject obj)
    {
        ServerInfoVO curInfo = Singleton <ServiceModel> .GetInstance().GetCurSeverInfo();

        severText.text = "服务器:" + curInfo.Name;
    }
Пример #20
0
 public override string GetOrderByModel(ServerInfoVO m)
 {
     return("");
 }