public override void GetVisibleDataToClient(CreaturesCreateData cvData) { if (cvData != null) { CreaturesCreateData.Monster monster = new CreaturesCreateData.Monster(); monster.hp = MonsterAttr.GetAttrCount(CreatureCommonAttr.C_HP); monster.monsterCid = Cid; monster.monsterConfigId = (uint)MonsterId; monster.posX = Pos.X; monster.posY = Pos.Y; monster.posZ = Pos.Z; monster.mspeed = MonsterAttr.GetAttrCount(CreatureCommonAttr.C_MSPEED); monster.curstate = (uint)CurState; cvData.monsters.Add(monster); } }
public void UpdateSeeLst() { Scene curScene = SceneMgr.Inst().GetScene(SceneId); if (curScene == null) { return; } List <uint> newSeeLst = curScene.FindCreatureInSceneFrom9Grid(Pos, ViewLayer); if (newSeeLst == null) { return; } List <uint> notifySeeLst = new List <uint>(); CreaturesCreateData createData = new CreaturesCreateData(); CreatureDestoryData destroyData = new CreatureDestoryData(); foreach (uint newCid in newSeeLst) { if (SeeLst.Find(cid => cid == newCid) != newCid) { Creature creature = curScene.GetCreature(newCid); if (creature != null) { notifySeeLst.Add(newCid); creature.GetVisibleDataToClient(createData); } } } foreach (uint oldCid in SeeLst) { if (newSeeLst.Find(cid => cid == oldCid) != oldCid) { Creature creature = curScene.GetCreature(oldCid); if (creature != null) { creature.BeenSeeLst.Remove(Cid); destroyData.cids.Add(oldCid); } } } }
public abstract void GetVisibleDataToClient(CreaturesCreateData cvData);