示例#1
0
    public static Color GetAreaColor(MapAreaType areaType)
    {
        Color color = Color.black;

        switch (areaType)
        {
        case MapAreaType.EARTH:
            color = Color.black;
            break;

        case MapAreaType.WOOD:
            color = Color.yellow;
            break;

        case MapAreaType.ROCK:
            color = Color.gray;
            break;

        case MapAreaType.GRASS:
            color = Color.green;
            break;

        case MapAreaType.WATER:
            color = Color.blue;
            break;
        }
        return(color);
    }
示例#2
0
        public virtual ActionResult DeleteConfirmed(int id)
        {
            MapAreaType mapAreaType = db.MapAreaTypes.Find(id);

            db.MapAreaTypes.Remove(mapAreaType);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#3
0
 public virtual ActionResult Edit([Bind(Include = "Id,TypeName,Color")] MapAreaType mapAreaType)
 {
     if (ModelState.IsValid)
     {
         db.Entry(mapAreaType).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(mapAreaType));
 }
示例#4
0
        public virtual ActionResult Create([Bind(Include = "Id,TypeName,Color")] MapAreaType mapAreaType)
        {
            if (ModelState.IsValid)
            {
                db.MapAreaTypes.Add(mapAreaType);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(mapAreaType));
        }
示例#5
0
        // GET: Admin/MapAreaTypes/Delete/5
        public virtual ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MapAreaType mapAreaType = db.MapAreaTypes.Find(id);

            if (mapAreaType == null)
            {
                return(HttpNotFound());
            }
            return(View(mapAreaType));
        }
示例#6
0
        private void FindTargetList()
        {
            m_lstEntity.Clear();
            playerPos = ControllerSystem.m_ClientGlobal.MainPlayer.GetPos();
            uint          range   = GameTableManager.Instance.GetGlobalConfig <uint>("Switch_Target_Range");
            Camera        c       = camera;
            int           pkmodel = ControllerSystem.m_ClientGlobal.MainPlayer.GetProp((int)PlayerProp.PkMode);
            PLAYERPKMODEL model   = (PLAYERPKMODEL)pkmodel;
            IMapSystem    ms      = ControllerSystem.m_ClientGlobal.GetMapSystem();

            if (ms == null)
            {
                return;
            }
            MapAreaType areaType = ms.GetAreaTypeByPos(ControllerSystem.m_ClientGlobal.MainPlayer.GetPos());

            if (areaType == MapAreaType.Safe)
            {
                FindEntity <INPC>(new MonsterDistanceCondition(playerPos, range));
            }
            else
            {
                if (model == PLAYERPKMODEL.PKMODE_M_NORMAL)//和平 0默认和平
                {
                    FindEntity <INPC>(new MonsterDistanceCondition(playerPos, range));
                }
                else
                {
                    FindEntity <IPlayer>(new PlayerDistanceCondition(model, playerPos, range));
                }
            }


            //if (model == PLAYERPKMODEL.PKMODE_M_NORMAL)//和平 0默认和平
            //{
            //    FindEntity<INPC>(new MonsterDistanceCondition(playerPos, c));
            //}
            //else if (model == PLAYERPKMODEL.PKMODE_M_FREEDOM)//自由pk
            //{
            //    FindEntity<IPlayer>(new PlayerDistanceCondition(playerPos, c));
            //    FindEntity<INPC>(new MonsterDistanceCondition(playerPos, c));
            //}
            //else if (model == PLAYERPKMODEL.PKMODE_M_CAMP)//阵营战 不能攻击友方 demo 阶段只判断是不是一个阵营即可
            //{
            //    FindEntity<IPlayer>(new CountryDistanceCondition(playerPos, c, pkmodel));
            //    FindEntity<INPC>(new MonsterDistanceCondition(playerPos, c));
            //}
            m_lstEntity.Sort(Sort);
        }
示例#7
0
        /// <summary>
        /// 挂机寻怪接口
        /// </summary>
        /// <param name="center"></param>
        /// <param name="rang"></param>
        /// <param name="filterTarget"></param>
        /// <returns></returns>
        public IEntity FindEntityByArea_PkModel(MapAreaType areaType, PLAYERPKMODEL pkmodel, UnityEngine.Vector3 center, uint rang, uint attackPriority, long filterTarget = 0)
        {
            IEntity e = null;

            if (areaType == MapAreaType.Safe || pkmodel == PLAYERPKMODEL.PKMODE_M_NORMAL)
            {
                e = FindNearstEntity <INPC>(new MonsterCondition(center, rang, filterTarget));
            }
            else
            {
                //先砍人
                if (attackPriority == 1)
                {
                    e = FindNearstEntity <IPlayer>(new PlayerCondition(center, rang, filterTarget));
                    if (e == null)
                    {
                        //没人砍怪
                        e = FindNearstEntity <INPC>(new MonsterCondition(center, rang, filterTarget));
                    }

                    Engine.Utility.Log.Error("--->>> 优先人!!!");
                }

                else if (attackPriority == 2)
                {
                    //先砍怪
                    e = FindNearstEntity <INPC>(new MonsterCondition(center, rang, filterTarget));
                    if (e == null)
                    {
                        //没怪砍人
                        e = FindNearstEntity <IPlayer>(new PlayerCondition(center, rang, filterTarget));
                    }

                    Engine.Utility.Log.Error("--->>> 优先怪!!!");
                }

                else if (attackPriority == 3)
                {
                    //不限
                    e = FindNearstEntity <ICreature>(new CreatureCondition(center, rang, filterTarget));
                    Engine.Utility.Log.Error("--->>> 不限 !!!");
                }
            }



            return(e);
        }
示例#8
0
    static MapAreaType GetAreaType(MapAreaSettings setting, MeshRenderer meshRender)
    {
        MapAreaType areaType = MapAreaType.EARTH;
        var         t4m      = meshRender.gameObject.GetComponent("T4MObjSC");

        if (t4m != null)
        {
            var controlTex = meshRender.sharedMaterial.GetTexture("_Control");
            areaType = MapAreaType.GRASS;
        }
        else if (meshRender.sharedMaterial.name.Contains("Water"))
        {
            areaType = MapAreaType.WATER;
        }
        else
        {
            Dictionary <MapAreaType, int> areaTypes = new Dictionary <MapAreaType, int> ();
            foreach (var mat in meshRender.sharedMaterials)
            {
                var mainTex = mat.GetTexture("_MainTex");
                if (mainTex != null)
                {
                    areaType = GetAreaType(setting, mainTex);
                    if (areaTypes.ContainsKey(areaType))
                    {
                        areaTypes [areaType] = areaTypes [areaType] + 1;
                    }
                    else
                    {
                        areaTypes.Add(areaType, 1);
                    }
                }
            }
            int maxCount = 0;
            foreach (var t in areaTypes)
            {
                if (t.Value > maxCount)
                {
                    areaType = t.Key;
                }
            }
        }
        return(areaType);
    }
示例#9
0
    static MapAreaType GetT4MAreaColor(MapAreaSettings setting, SceneExt sceneExt, Vector2 uv)
    {
        MapAreaType areaType   = sceneExt.areaType;
        var         material   = sceneExt.GetComponent <MeshRenderer> ().sharedMaterial;
        var         controlTex = material.GetTexture("_Control") as Texture2D;

        var px    = controlTex.width * uv.x;
        var py    = controlTex.height * uv.y;
        var color = controlTex.GetPixel(Mathf.RoundToInt(px), Mathf.RoundToInt(py));

        var maxChannel = Mathf.Max(color.r, Mathf.Max(color.g, Mathf.Max(color.b, color.a)));

        /*if (color.r >= maxChannel) {
         *      areaType = MapAreaType.ROCK;
         * } else if (color.g >= maxChannel) {
         *      areaType = MapAreaType.EARTH;
         * } else if (color.b >= maxChannel) {
         *      areaType = MapAreaType.GRASS;
         * } else {
         *      areaType = MapAreaType.GRASS;
         * }*/

        if (color.r >= maxChannel)
        {
            areaType = MapAreaType.ROCK;
        }
        else if (color.b >= maxChannel)
        {
            areaType = MapAreaType.GRASS;
        }
        else if (color.g >= maxChannel)
        {
            areaType = MapAreaType.EARTH;
        }
        else
        {
            areaType = MapAreaType.GRASS;
        }

        return(areaType);
    }
示例#10
0
        private IEntity GetNearestMonster()
        {
            Client.IPlayer mainplayer = ControllerSystem.m_ClientGlobal.MainPlayer;
            if (mainplayer == null)
            {
                return(null);
            }
            IEntitySystem es = ControllerSystem.m_ClientGlobal.GetEntitySystem();

            if (es == null)
            {
                return(null);
            }

            IMapSystem ms = ControllerSystem.m_ClientGlobal.GetMapSystem();

            if (ms == null)
            {
                return(null);
            }

            IEntity monster = null;

            if (m_nTargetID != 0)
            {
                monster = es.FindNPCByBaseId(m_nTargetID, true);
            }
            else
            {
                PLAYERPKMODEL     pkmodel = (PLAYERPKMODEL)mainplayer.GetProp((int)PlayerProp.PkMode);
                MapAreaType       atype   = ms.GetAreaTypeByPos(mainplayer.GetPos());
                IControllerHelper ch      = GetControllerHelper();
                if (ch != null)
                {
                    uint attackPriority = ch.GetAttackPriority();
                    monster = es.FindEntityByArea_PkModel(atype, pkmodel, m_centerPos, m_nSearchRang, attackPriority);
                }
            }

            return(monster);
        }
示例#11
0
    string GetAreaTypeByPos()
    {
        MapAreaType type = ClientGlobal.Instance().GetMapSystem().GetAreaTypeByPos(MainPlayerHelper.GetMainPlayer().GetPos());

        if (type == MapAreaType.Battle)
        {
            return(CommonData.GetLocalString("对战区"));
        }
        else if (type == MapAreaType.Block)
        {
            return(CommonData.GetLocalString("阻挡区"));
        }
        else if (type == MapAreaType.Boss)
        {
            return(CommonData.GetLocalString("首领区"));
        }
        else if (type == MapAreaType.Normal)
        {
            return(CommonData.GetLocalString("普通区"));
        }
        else if (type == MapAreaType.PK)
        {
            return(CommonData.GetLocalString("竞技区"));
        }
        else if (type == MapAreaType.Safe)
        {
            return(CommonData.GetLocalString("安全区"));
        }
        else if (type == MapAreaType.Fish)
        {
            return(CommonData.GetLocalString("钓鱼区"));
        }
        else
        {
            return("");
        }
    }
示例#12
0
        void OnEvent(int nEventID, object param)
        {
            if (m_ClientGlobal == null)
            {
                return;
            }

            IEntitySystem es = m_ClientGlobal.GetEntitySystem();

            if (es == null)
            {
                return;
            }

            GameEventID evt = (GameEventID)nEventID;
            long        uid = 0;

            switch (evt)
            {
            case GameEventID.ENTITYSYSTEM_ENTITYMOVE:
            {
                stEntityMove move = (stEntityMove)param;
                uid = move.uid;
                break;
            }

            case GameEventID.ENTITYSYSTEM_ENTITYSTOPMOVE:
            {
                stEntityStopMove move = (stEntityStopMove)param;
                uid = move.uid;
                break;
            }

            case GameEventID.SYSTEM_GAME_READY:
            {
                PreLoadAllResource();
                break;
            }

            default:
            {
                break;
            }
            }

            IEntity en = es.FindEntity(uid);

            if (en != null && en.GetEntityType() == EntityType.EntityType_Player)
            {
                Vector3     pos  = en.GetPos();
                MapAreaType type = GetAreaTypeByPos(pos);
                if (m_eMapAreaType != type)
                {
                    stEntityChangeArea changeArea = new stEntityChangeArea();
                    changeArea.uid   = uid;
                    changeArea.eType = type;
                    m_eMapAreaType   = type;
                    Engine.Utility.EventEngine.Instance().DispatchEvent((int)GameEventID.ENTITYSYSTEM_CHANGEAREA, changeArea);
                }
            }
        }
示例#13
0
        // GET: Admin/MapAreaTypes/Create
        public virtual ActionResult Create()
        {
            var model = new MapAreaType();

            return(View(model));
        }
示例#14
0
        /// <summary>
        /// 播放动作
        /// </summary>
        /// <param name="strActionName"></param>
        public void PlayAction(string strActionName, int nStartFrame = 0, float fSpeed = 1f, float fBlendTime = -1.0f, int nLoop = -1, Engine.ActionEvent callback = null, object param = null)
        {
            if (EntitySystem.m_ClientGlobal.IsMainPlayer(this))
            {
                if (strActionName == EntityAction.Stand_Combat || strActionName == EntityAction.Stand)
                {
                    Engine.Utility.Log.LogGroup("ZDY", "play " + strActionName);
                }
                //  Engine.Utility.Log.LogGroup("ZDY","play " + strActionName);
                if (strActionName == "Attack001")
                {
                    //  Debug.LogError("play Attack001");
                }
            }

            float speedFact = 1.0f;

            // 目前简单播放动画
            if (m_EntityView != null)
            {
                // 根据移动速度修正动画速度
                if (strActionName == EntityAction.Run || strActionName == EntityAction.Run_Combat)
                {
                    if (GetEntityType() == EntityType.EntityType_Player || GetEntityType() == EntityType.EntityTYpe_Robot)
                    {
                        uint speed = GameTableManager.Instance.GetGlobalConfig <uint>("Base_Move_Speed");
                        if (speed == 0)
                        {
                            speed = 1;
                        }
                        speedFact = (float)GetProp((int)WorldObjProp.MoveSpeed) / (float)speed;
                    }
                    else if (GetEntityType() == EntityType.EntityType_NPC)
                    {
                        // 速度修正
                        int nNpcID     = GetProp((int)EntityProp.BaseID);
                        var table_data = GameTableManager.Instance.GetTableItem <table.NpcDataBase>((uint)nNpcID);
                        if (table_data != null)
                        {
                            uint speed = table_data.dwRunSpeed;
                            if (speed == 0)
                            {
                                speed = 1;
                            }
                            speedFact = (float)GetProp((int)WorldObjProp.MoveSpeed) / (float)speed;
                        }
                    }
                }

                // 对动作名称按区域类型进行修正
                string strAiName = strActionName;
                if (GetEntityType() == EntityType.EntityType_Player || GetEntityType() == EntityType.EntityTYpe_Robot)
                {
                    bool bRide = (bool)SendMessage(EntityMessage.EntityCommond_IsRide, null);
                    if (bRide)
                    {
                        if (strActionName == EntityAction.Run_Combat)
                        {
                            strAiName = EntityAction.Run;
                        }

                        if (strActionName == EntityAction.Stand_Combat)
                        {
                            strAiName = EntityAction.Stand;
                        }
                    }
                    else
                    {
                        if (strActionName == EntityAction.Run || strActionName == EntityAction.Stand)
                        {
                            MapAreaType type = EntitySystem.m_ClientGlobal.GetMapSystem().GetAreaTypeByPos(GetPos());
                            if (type != MapAreaType.Safe && type != MapAreaType.Fish)
                            {
                                strAiName = string.Format("{0}_Combat", strActionName);
                            }
                        }
                    }
                }
                m_EntityView.PlayAction(strAiName, nStartFrame, fSpeed * speedFact, fBlendTime, nLoop, callback, param);
            }
        }