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); }
public virtual ActionResult DeleteConfirmed(int id) { MapAreaType mapAreaType = db.MapAreaTypes.Find(id); db.MapAreaTypes.Remove(mapAreaType); db.SaveChanges(); return(RedirectToAction("Index")); }
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)); }
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)); }
// 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)); }
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); }
/// <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); }
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); }
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); }
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); }
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(""); } }
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); } } }
// GET: Admin/MapAreaTypes/Create public virtual ActionResult Create() { var model = new MapAreaType(); return(View(model)); }
/// <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); } }