AddObject() public méthode

public AddObject ( BaseObject obj, GameBase session = null ) : void
obj BaseObject
session GameBase
Résultat void
Exemple #1
0
        //复制地图对象- 用于做副本使用
        public GameMap Clone()
        {
            GameMap new_map = new GameMap(this.info);

            new_map.mnWidth  = this.mnWidth;
            new_map.mnHeight = this.mnHeight;
            new_map.mPath    = new MapPath(mnHeight, mnWidth);

            for (uint i = 0; i < mnHeight; i++)
            {
                for (uint j = 0; j < mnWidth; j++)
                {
                    new_map.GetMapGridInfo()[j, i] = this.mMapGridInfo[j, i];
                    if (new_map.GetMapGridInfo()[j, i].Mask > 0)
                    {
                        new_map.mPath.SetPointMask((short)j, (short)i, MapPath.MASK_CLOSE);
                    }
                }
            }
            foreach (BaseObject obj in this.GetAllObject().Values)
            {
                new_map.AddObject(obj, obj.GetGameSession());
            }
            return(new_map);
        }
Exemple #2
0
        //复制地图对象- 用于做副本使用
        public GameMap Clone()
        {
            GameMap new_map = new GameMap(this.info);
            new_map.mnWidth = this.mnWidth;
            new_map.mnHeight = this.mnHeight;
            new_map.mPath = new MapPath(mnHeight, mnWidth);

            for (uint i = 0; i < mnHeight; i++)
            {
                for (uint j = 0; j < mnWidth; j++)
                {
                    new_map.GetMapGridInfo()[j, i] = this.mMapGridInfo[j, i];
                    if (new_map.GetMapGridInfo()[j, i].Mask > 0)
                    {
                        new_map.mPath.SetPointMask((short)j, (short)i, MapPath.MASK_CLOSE);
                    }
                }
            }
            foreach (BaseObject obj in this.GetAllObject().Values)
            {
                new_map.AddObject(obj, obj.GetGameSession());
            }
            return new_map;
        }
        //更换地图 用于副本场景
        public void ChangeFubenMap(GameMap map, short x, short y)
        {
            if (map == null) return;
            this.GetGameMap().RemoveObj(this);
            //召回所有幻兽-
            this.GetEudemonSystem().Eudemon_ReCallAll(true);
            map.AddObject(this, this.GetGameSession());

            //先清除自身对象
            this.ClearThis();

            this.SetPoint(x, y);
            //要发二个包
            NetMsg.MsgReCall1 msg = new NetMsg.MsgReCall1();
            msg.Create(null, GetGamePackKeyEx());
            msg.roleid = this.GetTypeId();
            msg.mapid = (int)this.GetGameMap().GetMapInfo().id;
            msg.x = this.GetCurrentX();
            msg.y = this.GetCurrentY();
            this.SendData(msg.GetBuffer());

            NetMsg.MsgReCall2 msg1 = new NetMsg.MsgReCall2();
            msg1.Create(null, GetGamePackKeyEx());
            msg1.roleid = this.GetTypeId();
            msg1.x = this.GetCurrentX();
            msg1.y = this.GetCurrentY();
            this.SendData(msg1.GetBuffer());

            this.GetVisibleList().Clear();

            GameStruct.Action act = new GameStruct.Action(GameStruct.Action.MOVE);
            this.PushAction(act);

            GetBaseAttr().mapid = map.GetMapInfo().id;

            this.SendJueweiNotice();
            this.SetTransmitIng(true);
        }