Example #1
0
        public override float GetUtility(Character enemyCharacter, AICharacter ai)
        {
            if (AIMelee.IsEndState(ai.parent.state))
            {
                return(0.0f);
            }

            switch (ai.parent.state)
            {
            case Character.State.Attack:
                return(0.0f);
            }

            if (enemyCharacter == null)
            {
                return(0.1f);
            }

            if (ai.parent.NextAttackOn() == true)
            {
                return(0.0f);
            }

            if (MagiUtil.IsInRange(enemyCharacter.transform.position - ai.parent.transform.position, ai.parent.keepDistance + enemyCharacter.radius) == false)
            {
                return(0.0f);
            }

            return(0.1f);
        }
Example #2
0
        public override void Process(AICharacter ai)
        {
            if (ai.parent.GetCountAttackComboID() != 0)
            {
                end = true;
                return;
            }

            if (AIMelee.IsEndState(ai.parent.state))
            {
                end = true;
                return;
            }

            Character enemyPresent = ai.parent.EnemyPresent;

            if (enemyPresent == null)
            {
                end = true;
                return;
            }

            if (Time.time - checkTime_ > 2.0f)
            {
                checkTime_ = Time.time;
                float fLength = (lastChasePos_ - ai.parent.transform.position).magnitude;
                if (fLength < 1.0f)
                {
                    end = true;
                    return;
                }
                lastChasePos_ = ai.parent.transform.position;
            }

            if (MagiUtil.IsInRange(enemyPresent.transform.position - ai.parent.transform.position, ai.parent.keepDistance + enemyPresent.radius))
            {
                end = true;
                return;
            }

            if (MagiUtil.IsInRange(enemyPresent.transform.position - ai.parent.transform.position, ai.parent.AttackRange))
            {
                end = true;
                return;
            }

            if (MagiUtil.IsInRange(enemyPresent.transform.position - ai.parent.transform.position, ai.ChaseRange) == false)
            {
                end = true;
                return;
            }
        }
Example #3
0
    /// <summary>
    /// <para>name : GetMessage</para>
    /// <para>parameter : string</para>
    /// <para>return : void</para>
    /// <para>describe : Get (string)parameter and parsing it.</para>
    /// </summary>
    void GetMessage(string message)
    {
        Hashtable resultHash;

        string[] personArray = MagiUtil.GetTcpMessage(message);
        for (int i = 0; i < personArray.Length; i++)
        {
            if (CheckMessage(personArray[i], out resultHash))
            {
                ShowMessage(resultHash);
            }
        }
    }
Example #4
0
        public override float GetUtility(Character enemyCharacter, AICharacter ai)
        {
            if (AIMelee.IsEndState(ai.parent.state))
            {
                return(0.0f);
            }

            if (enemyCharacter == null)
            {
                return(0.0f);
            }

            if (MagiUtil.IsInRange(enemyCharacter.transform.position - ai.parent.transform.position, ai.parent.keepDistance + enemyCharacter.radius))
            {
                return(0.0f);
            }
            if (MagiUtil.IsInRange(enemyCharacter.transform.position - ai.parent.transform.position, ai.ChaseRange))
            {
                return(0.6f);
            }
            return(0.0f);
        }
Example #5
0
    /// <summary>
    /// <para>name : ShowMessage</para>
    /// <para>parameter : Hashtable</para>
    /// <para>return : void</para>
    /// <para>describe : Parsing (Hashtable)parameter and show message.</para>
    /// </summary>
    void ShowMessage(Hashtable resultHash)
    {
        int pno = 0;

        if (resultHash.ContainsKey("pno"))
        {
            int.TryParse(resultHash["pno"].ToString(), out pno);
        }

        SendMessageType messageType = (SendMessageType)pno;

        switch (messageType)
        {
        case SendMessageType.Type_UserConnect:
        case SendMessageType.Type_ChangeChannel: {
            if (resultHash.ContainsKey("roomNo"))
            {
                int.TryParse(resultHash["roomNo"].ToString(), out channel);
                switch (ClientDataManager.Instance.SelectSceneMode)
                {
                case ClientDataManager.SceneMode.Lobby:
                    if (LobbySceneScriptManager.Instance == null)
                    {
                        break;
                    }

                    if (LobbySceneScriptManager.Instance.m_ChatEvent != null)
                    {
                        LobbySceneScriptManager.Instance.m_ChatEvent.ChangeChannel(channel);
                    }

                    break;

                case ClientDataManager.SceneMode.Dungeon:
                    if (DungeonSceneScriptManager.Instance == null)
                    {
                        break;
                    }

                    if (DungeonSceneScriptManager.Instance.m_ChatEvent != null)
                    {
                        DungeonSceneScriptManager.Instance.m_ChatEvent.ChangeChannel(channel);
                    }

                    break;
                }
            }
        }

        break;

        case SendMessageType.Type_GetMessage: {
            string szMessage = "";
            string nickName  = "";

            if (resultHash.ContainsKey("Msg"))
            {
                szMessage = resultHash["Msg"].ToString();
            }
            if (resultHash.ContainsKey("Nickname"))
            {
                nickName = resultHash["Nickname"].ToString();
            }

            UIMessage uiMessage = new UIMessage();
            uiMessage.type    = messageType;
            uiMessage.message = MagiStringUtil.GetReplaceString(nickName.Equals(ClientDataManager.Instance.OwnName) ? 10005006 : 10005007, "#@Name@#", nickName,
                                                                "#@Message@#", MagiUtil.MessageCutByte(szMessage, 80));

            switch (ClientDataManager.Instance.SelectSceneMode)
            {
            case ClientDataManager.SceneMode.Lobby:
                if (LobbySceneScriptManager.Instance == null)
                {
                    break;
                }

                if (LobbySceneScriptManager.Instance.m_ChatEvent != null)
                {
                    LobbySceneScriptManager.Instance.m_ChatEvent.AddUserMessage(uiMessage);
                }
                else
                {
                    AddMessage(uiMessage);
                }

                if (LobbySceneScriptManager.Instance.m_LobbyEvent != null && LobbySceneScriptManager.Instance.m_LobbyEvent.GetLobbyMenuFrame != null)
                {
                    uiMessage.message = MagiStringUtil.GetReplaceString(nickName.Equals(ClientDataManager.Instance.OwnName) ? 10005006 : 10005007, "#@Name@#", nickName,
                                                                        "#@Message@#", MagiUtil.MessageCutByte(szMessage, 35));
                    LobbySceneScriptManager.Instance.m_LobbyEvent.GetLobbyMenuFrame.UpdateLobbyChat(uiMessage);
                }

                break;

            case ClientDataManager.SceneMode.Dungeon:
                if (DungeonSceneScriptManager.Instance == null)
                {
                    break;
                }

                if (DungeonSceneScriptManager.Instance.m_ChatEvent != null)
                {
                    DungeonSceneScriptManager.Instance.m_ChatEvent.AddUserMessage(uiMessage);
                }
                else
                {
                    AddMessage(uiMessage);
                }

                if (DungeonSceneScriptManager.Instance.m_DungeonPlayEvent != null)
                {
                    uiMessage.message = MagiStringUtil.GetReplaceString(nickName.Equals(ClientDataManager.Instance.OwnName) ? 10005006 : 10005007, "#@Name@#", nickName,
                                                                        "#@Message@#", MagiUtil.MessageCutByte(szMessage, 25));
                    DungeonSceneScriptManager.Instance.m_DungeonPlayEvent.UpdateInGameChat(uiMessage);
                }

                break;

            default:
                AddMessage(uiMessage);
                break;
            }
        }

        break;

        case SendMessageType.Type_GetItemMessage: {
            int    from     = 0;
            int    what     = 0;
            string nickName = "";

            if (resultHash.ContainsKey("From"))
            {
                int.TryParse(resultHash["From"].ToString(), out from);
            }
            if (resultHash.ContainsKey("What"))
            {
                int.TryParse(resultHash["What"].ToString(), out what);
            }
            if (resultHash.ContainsKey("Nickname"))
            {
                nickName = resultHash["Nickname"].ToString();
            }

            UIMessage uiMessage = new UIMessage();
            uiMessage.type    = messageType;
            uiMessage.message = MagiStringUtil.GetReplaceString(10005010, "#@Name@#", nickName, "#@Where@#", GetFromTypeText(from), "#@ItemName@#", GetItemNameText(what));

            switch (ClientDataManager.Instance.SelectSceneMode)
            {
            case ClientDataManager.SceneMode.Lobby:
                if (LobbySceneScriptManager.Instance == null)
                {
                    break;
                }

                if (LobbySceneScriptManager.Instance.m_ChatEvent != null)
                {
                    LobbySceneScriptManager.Instance.m_ChatEvent.AddMessage(uiMessage);
                }
                else
                {
                    AddMessage(uiMessage);
                }

                break;

            case ClientDataManager.SceneMode.Dungeon:
                if (DungeonSceneScriptManager.Instance == null)
                {
                    break;
                }

                if (DungeonSceneScriptManager.Instance.m_ChatEvent != null)
                {
                    DungeonSceneScriptManager.Instance.m_ChatEvent.AddMessage(uiMessage);
                }
                else
                {
                    AddMessage(uiMessage);
                }

                break;

            default:
                AddMessage(uiMessage);
                break;
            }
        }

        break;

        case SendMessageType.Type_GetNoticeMessage: {
            string szMessage = "";

            if (resultHash.ContainsKey("Msg"))
            {
                szMessage = resultHash["Msg"].ToString();
            }

            UIMessage uiMessage = new UIMessage();
            uiMessage.type    = messageType;
            uiMessage.message = MagiStringUtil.GetReplaceString(10005009, "#@Message@#", MagiUtil.MessageCutByte(szMessage, 80));

            switch (ClientDataManager.Instance.SelectSceneMode)
            {
            case ClientDataManager.SceneMode.Lobby:
                if (LobbySceneScriptManager.Instance == null)
                {
                    break;
                }

                if (LobbySceneScriptManager.Instance.m_ChatEvent != null)
                {
                    LobbySceneScriptManager.Instance.m_ChatEvent.AddUserMessage(uiMessage);
                }
                else
                {
                    AddMessage(uiMessage);
                }

                if (LobbySceneScriptManager.Instance.m_LobbyEvent != null && LobbySceneScriptManager.Instance.m_LobbyEvent.GetLobbyMenuFrame != null)
                {
                    uiMessage.message = MagiStringUtil.GetReplaceString(10005009, "#@Message@#", MagiUtil.MessageCutByte(szMessage, 35));
                    LobbySceneScriptManager.Instance.m_LobbyEvent.GetLobbyMenuFrame.UpdateLobbyChat(uiMessage);
                }

                break;

            case ClientDataManager.SceneMode.Dungeon:
                if (DungeonSceneScriptManager.Instance == null)
                {
                    break;
                }

                if (DungeonSceneScriptManager.Instance.m_ChatEvent != null)
                {
                    DungeonSceneScriptManager.Instance.m_ChatEvent.AddUserMessage(uiMessage);
                }
                else
                {
                    AddMessage(uiMessage);
                }

                if (DungeonSceneScriptManager.Instance.m_DungeonPlayEvent != null)
                {
                    uiMessage.message = MagiStringUtil.GetReplaceString(10005009, "#@Message@#", MagiUtil.MessageCutByte(szMessage, 25));
                    DungeonSceneScriptManager.Instance.m_DungeonPlayEvent.UpdateInGameChat(uiMessage);
                }

                break;

            default:
                AddMessage(uiMessage);
                break;
            }
        }

        break;
        }
    }