Example #1
0
        /// <summary>
        /// 创建地图元素图标
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        private UIMiniMapElement CreateMapElement(UInt64 guid, EntityCampType type, float x, float y, float z)
        {
            string path = null;

            bool blueTeam = true;

            if (PlayerManager.Instance.LocalPlayer != null && type != PlayerManager.Instance.LocalPlayer.EntityCamp)
            {
                blueTeam = false;
            }

            Ientity entity = EntityManager.AllEntitys[guid];

            if (entity.entityType == EntityType.Player)
            {
                path = GetPlayerElementPath(blueTeam);
            }
            else if (entity.IfNPC())
            {
                path = GetNpcElementPath(entity, blueTeam);
            }
            if (string.IsNullOrEmpty(path))
            {
                return(null);
            }
            return(LoadElementResource(path, guid, x, y, z));
        }
Example #2
0
        private void AddBuildingWarningVoice(UInt64 sGUID)
        {
            if (!EntityManager.AllEntitys.ContainsKey(sGUID))
            {
                return;
            }

            Ientity entity = EntityManager.AllEntitys[sGUID];

            if (!entity.IfNPC())
            {
                return;
            }

            if (entity == null || entity.realObject == null || entity.entityType != EntityType.Building)
            {
                return;
            }
            if (entity.FSM != null && entity.FSM.State == BlGame.FSM.FsmState.FSM_STATE_DEAD)
            {
                return;
            }

            /*
             * if (!mIsFirstAttack)
             * {
             *  LoadSound(GameDefine.GameConstDefine.WarningBuildingVoice);
             *  mIsFirstAttack = true;
             *  return;
             * }
             * if (mTimeBuildingWarning == 0)
             * {
             *  mTimeBuildingWarning = Time.time;
             * }
             *
             * if (Time.time - mTimeBuildingWarning >= mWarningVoice)
             * {
             *  Debug.Log("our base is under attack语音提示");
             *  LoadSound(GameDefine.GameConstDefine.WarningBuildingVoice);
             *  mTimeBuildingWarning = Time.time;
             * }
             *
             * else if (Time.time - mTimeBuildingWarning >= mWarningSound)
             * {
             *  Debug.Log("minimap waring警告声音");
             *  LoadSound(GameDefine.GameConstDefine.WarningBuildingSound);
             *  mTimeBuildingWarning = Time.time;
             * }
             **/


            if (!mIsFirstAttack)
            {
                LoadSound(GameDefine.GameConstDefine.WarningBuildingVoice);

                mIsFirstAttack     = true;
                hasPlayWaringVoice = true;
                //Debug.Log("mIsFirstAttack");

                return;
            }

            if (mTimeBuildingWarning == 0)
            {
                mTimeBuildingWarning = Time.time;
            }

            if (Time.time - mTimeBuildingWarning >= mWarningVoice)
            {
                LoadSound(GameDefine.GameConstDefine.WarningBuildingVoice);
                mTimeBuildingWarning = Time.time;

                //Debug.Log("mWarningVoice");
                hasPlayWaringVoice  = true;
                hasPlayWarningSound = true;
            }


            //二十秒内受到攻击则播放警告音效
            if ((Time.time - mTimeBuildingWarning <= mWarningSound) && (hasPlayWaringVoice) && (!mIsFirstWarning))
            {
                LoadSound(GameDefine.GameConstDefine.WarningBuildingSound);

                mTimeBuildingWarning = Time.time;

                hasPlayWarningSound = true;
                mIsFirstWarning     = true;
                //Debug.Log("WarningBuildSound 二十秒内受到攻击则播放警告音效");
            }

            //持续受到攻击时播放警告音效十秒之后才会再次播放
            if ((Time.time - mTimeBuildingWarning > mWarningSound) && (hasPlayWarningSound))
            {
                LoadSound(GameDefine.GameConstDefine.WarningBuildingSound);
                mIsFirstWarning      = false;
                mTimeBuildingWarning = Time.time;

                //Debug.Log("持续受到攻击时播放警告音效十秒之后才会再次播放");
            }
        }