예제 #1
0
        internal void Destroy()
        {
            Array.Clear(SqState, 0, SqState.Length);
            Array.Clear(SqFloorHeight, 0, SqFloorHeight.Length);
            Array.Clear(SqSeatRot, 0, SqSeatRot.Length);

            staticModel = null;
            Heightmap = null;
            SqState = null;
            SqFloorHeight = null;
            SqSeatRot = null;
        }
예제 #2
0
        internal DynamicRoomModel(RoomModel pModel)
        {
            this.staticModel = pModel;
            this.DoorX = staticModel.DoorX;
            this.DoorY = staticModel.DoorY;
            this.DoorZ = staticModel.DoorZ;

            this.DoorOrientation = staticModel.DoorOrientation;
            this.Heightmap = staticModel.Heightmap;

            this.MapSizeX = staticModel.MapSizeX;
            this.MapSizeY = staticModel.MapSizeY;
            this.ClubOnly = staticModel.ClubOnly;

            Generate();
        }
예제 #3
0
파일: Gamemap.cs 프로젝트: BjkGkh/07052014
        public Gamemap(Room room)
        {
            this.room = room;
            this.DiagonalEnabled = true;
            this.mStaticModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(room.ModelName);
            if (mStaticModel == null)
                throw new Exception("No modeldata found for roomID " + room.RoomId);
            this.mDynamicModel = new DynamicRoomModel(this.mStaticModel);

            this.mCoordinatedItems = new Hashtable();

            this.gotPublicPool = room.RoomData.Model.gotPublicPool;
            this.mGameMap = new byte[Model.MapSizeX, Model.MapSizeY];
            this.mItemHeightMap = new double[Model.MapSizeX, Model.MapSizeY];
            userMap = new Hashtable();
        }
예제 #4
0
파일: Gamemap.cs 프로젝트: BjkGkh/07052014
        public Gamemap(string model)
        {
            try
            {
                this.DiagonalEnabled = true;
                this.mStaticModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(model);
                if (mStaticModel == null)
                    throw new Exception("No modeldata found for roomID " + room.RoomId);
                this.mDynamicModel = new DynamicRoomModel(this.mStaticModel);

                this.mCoordinatedItems = new Hashtable();

                this.gotPublicPool = false;
                this.mGameMap = new byte[Model.MapSizeX, Model.MapSizeY];
                this.mItemHeightMap = new double[Model.MapSizeX, Model.MapSizeY];
                userMap = new Hashtable();
            }
            catch (Exception e) { Console.WriteLine(e); }
        }
예제 #5
0
파일: RoomData.cs 프로젝트: BjkGkh/07052014
 internal void FillNull(UInt32 pId)
 {
     this.Id = pId;
     this.Name = "Unknown Room";
     this.Description = "-";
     this.Type = "private";
     this.Owner = "-";
     this.Category = 0;
     this.UsersNow = 0;
     this.UsersMax = 0;
     this.ModelName = "NO_MODEL";
     this.CCTs = "";
     this.Score = 0;
     this.Tags = new List<string>();
     this.AllowPets = 1;
     this.AllowPetsEating = 0;
     this.AllowWalkthrough = 1;
     this.Hidewall = 0;
     this.Password = "";
     this.Wallpaper = "0.0";
     this.Floor = "0.0";
     this.Landscape = "0.0";
     this.WallThickness = 0;
     this.FloorThickness = 0;
     this.Group = null;
     this.AllowRightsOverride = false;
     this.Event = null;
     this.GameId = 0;
     this.WhoCanBan = 0;
     this.WhoCanKick = 0;
     this.WhoCanMute = 0;
     this.RoomChat = new List<Chatlog>();
     mModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(ModelName);
 }
예제 #6
0
파일: RoomData.cs 프로젝트: BjkGkh/07052014
        internal void Fill(Room Room)
        {
            this.Id = Room.RoomId;
            this.Name = Room.Name;
            this.Description = Room.Description;
            this.Type = Room.Type;
            this.Owner = Room.Owner;
            this.Category = Room.Category;
            this.State = Room.State;
            this.UsersNow = Room.UsersNow;
            this.UsersMax = Room.UsersMax;
            this.ModelName = Room.ModelName;
            this.Score = Room.Score;

            this.Tags = new List<string>();
            foreach (string tag in Room.Tags.ToArray())
                this.Tags.Add(tag);
            this.AllowPets = Room.AllowPets;
            this.AllowPetsEating = Room.AllowPetsEating;
            this.AllowWalkthrough = Room.AllowWalkthrough;
            this.Hidewall = Room.Hidewall;
            this.Password = Room.Password;
            this.Wallpaper = Room.Wallpaper;
            this.Floor = Room.Floor;
            this.Landscape = Room.Landscape;
            this.FloorThickness = Room.FloorThickness;
            this.WallThickness = Room.WallThickness;
            this.Group = Room.Group;
            this.Event = Room.Event;
            this.GameId = Room.GameId;
            this.ChatType = Room.ChatType;
            this.ChatBalloon = Room.ChatBalloon;
            this.ChatSpeed = Room.ChatSpeed;
            this.ChatMaxDistance = Room.ChatMaxDistance;
            this.ChatFloodProtection = Room.ChatFloodProtection;
            this.WhoCanMute = Room.WhoCanMute;
            this.WhoCanKick = Room.WhoCanKick;
            this.WhoCanBan = Room.WhoCanBan;
            this.RoomChat = Room.RoomChat;
            mModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(ModelName);
        }
예제 #7
0
파일: RoomData.cs 프로젝트: BjkGkh/07052014
        internal void Fill(DataRow Row)
        {
            this.Id = Convert.ToUInt32(Row["id"]);
            this.Name = (string)Row["caption"];
            this.Description = (string)Row["description"];
            this.Type = (string)Row["roomtype"];
            this.Owner = (string)Row["owner"];
            this.OwnerId = 0;
            this.RoomChat = new List<Chatlog>();
            using (IQueryAdapter dbClient = SilverwaveEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT id FROM users WHERE username = @owner");
                dbClient.addParameter("owner", this.Owner);
                int result = dbClient.getInteger();
                if(result > 0)
                    this.OwnerId = result;

                dbClient.setQuery("SELECT user_id, message, timestamp FROM chatlogs WHERE room_id=@id ORDER BY timestamp DESC LIMIT 150");
                dbClient.addParameter("id", this.Id);
                DataTable Table = dbClient.getTable();

                foreach (DataRow mRow in Table.Rows)
                {
                    RoomChat.Add(new Chatlog((uint)mRow[0], (string)mRow[1], Convert.ToDouble(mRow[2])));

                }

            }

            switch (Row["state"].ToString().ToLower())
            {
                case "open":

                    this.State = 0;
                    break;

                case "password":

                    this.State = 2;
                    break;

                case "locked":
                default:

                    this.State = 1;
                    break;
            }

            this.Category = (int)Row["category"];
            if (!string.IsNullOrEmpty(Row["users_now"].ToString()))
                this.UsersNow = (int)Row["users_now"];
            else
                this.UsersNow = 0;
            this.UsersMax = (int)Row["users_max"];
            this.ModelName = (string)Row["model_name"];
            this.CCTs = (string)Row["public_ccts"];
            this.Score = (int)Row["score"];
            this.Tags = new List<string>();
            this.AllowPets = Convert.ToInt32(Row["allow_pets"].ToString());
            this.AllowPetsEating = Convert.ToInt32(Row["allow_pets_eat"].ToString());
            this.AllowWalkthrough = Convert.ToInt32(Row["allow_walkthrough"].ToString());
            this.AllowRightsOverride = false;
            this.Hidewall = Convert.ToInt32(Row["allow_hidewall"].ToString());
            this.Password = (string)Row["password"];
            this.Wallpaper = (string)Row["wallpaper"];
            this.Floor = (string)Row["floor"];
            this.Landscape = (string)Row["landscape"];
            this.FloorThickness = (int)Row["floorthick"];
            this.WallThickness = (int)Row["wallthick"];
            this.ChatType = (int)Row["chat_type"];
            this.ChatBalloon = (int)Row["chat_balloon"];
            this.ChatSpeed =(int)Row["chat_speed"];
            this.ChatMaxDistance = (int)Row["chat_max_distance"];
            this.ChatFloodProtection = (int)Row["chat_flood_protection"];
            this.GameId = (int)Row["game_id"];
            this.WhoCanMute = Convert.ToInt32(Row["mute_settings"]);
            this.WhoCanKick = Convert.ToInt32(Row["kick_settings"]);
            this.WhoCanBan = Convert.ToInt32(Row["ban_settings"]);
            this.GroupId = (uint)Row["group_id"];
            this.Group = SilverwaveEnvironment.GetGame().GetGroupManager().GetGroup(this.GroupId);
            this.Event = SilverwaveEnvironment.GetGame().GetRoomEvents().GetEvent(Id);

            Dictionary<int, int> IconItems = new Dictionary<int,int>();

            if (!string.IsNullOrEmpty(Row["icon_items"].ToString()))
            {
                foreach (string Bit in Row["icon_items"].ToString().Split('|'))
                {
                    if (string.IsNullOrEmpty(Bit))
                        continue;

                    string[] tBit = Bit.Replace('.', ',').Split(',');

                    int a = 0;
                    int b = 0;

                    int.TryParse(tBit[0], out a);
                    if (tBit.Length > 1)
                        int.TryParse(tBit[1], out b);

                    try
                    {
                        if (!IconItems.ContainsKey(a))
                            IconItems.Add(a, b);
                    }
                    catch (Exception e)
                    {
                        Logging.LogException("Exception: " + e.ToString() + "[" + Bit + "]");
                    }
                }
            }

            foreach (string Tag in Row["tags"].ToString().Split(','))
            {
                this.Tags.Add(Tag);
            }

            mModel = SilverwaveEnvironment.GetGame().GetRoomManager().GetModel(ModelName);
        }
예제 #8
0
파일: Gamemap.cs 프로젝트: BjkGkh/07052014
        internal void Destroy()
        {
            userMap.Clear();
            mDynamicModel.Destroy();
            mCoordinatedItems.Clear();

            Array.Clear(mGameMap, 0, mGameMap.Length);
            Array.Clear(mUserItemEffect, 0, mUserItemEffect.Length);
            Array.Clear(mItemHeightMap, 0, mItemHeightMap.Length);

            userMap = null;
            mGameMap = null;
            mUserItemEffect = null;
            mItemHeightMap = null;
            mCoordinatedItems = null;
            mDynamicModel = null;
            room = null;
            mStaticModel = null;
        }