MapServer.BaseObject.AddVisibleObject C# (CSharp) 메소드

AddVisibleObject() 공개 메소드

public AddVisibleObject ( BaseObject obj, bool bRefreshTag = true ) : void
obj BaseObject
bRefreshTag bool
리턴 void
        public void AddVisibleObject(BaseObject obj,bool bRefreshTag = true)
        {
            RefreshObject refobj = null;
            if (this.GetVisibleList().ContainsKey(obj.GetGameID()))
            {
                refobj = mVisibleList[obj.GetGameID()];
                refobj.bRefreshTag = bRefreshTag;
                return;
            }
            refobj = new RefreshObject();
            refobj.bRefreshTag = bRefreshTag;
            refobj.obj = obj;
            mVisibleList[obj.GetGameID()] = refobj;
        }

Usage Example

예제 #1
0
        public void SendMonsterInfo(BaseObject obj)
        {
            if (this.GetGameSession() == null) return;

            NetMsg.MsgMonsterInfo info = new NetMsg.MsgMonsterInfo();
            info.Create(null, GetGamePackKeyEx());
            MonsterObject o = obj as MonsterObject;
            info.id = o.GetTypeId();
            info.typeid = o.GetBasicAttribute().id;
            info.lookface = o.GetBasicAttribute().lookface;
            info.x = o.GetCurrentX();
            info.y = o.GetCurrentY();
            info.level = o.GetBasicAttribute().level;
            info.maxhp = o.GetAttribute().life_max;
            info.hp = o.GetAttribute().life;
            info.dir = o.GetDir();

            if (obj.GetType().FullName == "MapServer.AnShaXieLongObject")
            {
                info.param = (int)(obj as AnShaXieLongObject).mPlay.GetTypeId();
            }
            this.SendData(info.GetBuffer());

            //加到怪物可视列表
            if (!obj.GetVisibleList().ContainsKey(this.GetGameID()))
            {
                //RefreshObject refobj = new RefreshObject();
                //refobj.obj = this;
                //obj.GetVisibleList()[this.GetGameID()] = refobj;
                obj.AddVisibleObject(this, false);
            }
            //自己的可视列表 //人物不走动的情况下,怪物进入了视野范围
            if (!this.GetVisibleList().ContainsKey(obj.GetGameID()))
            {
                //RefreshObject refobj = new RefreshObject();
                //refobj.bRefreshTag = true;
                //refobj.obj = obj;
                //this.GetVisibleList()[this.GetGameID()] = refobj;
                this.AddVisibleObject(obj, true);
            }
        }