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.CCTs = Room.CCTs; 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.myIcon = Room.Icon; this.Password = Room.Password; this.Event = Room.Event; this.Wallpaper = Room.Wallpaper; this.Floor = Room.Floor; this.Landscape = Room.Landscape; this.FloorThickness = Room.FloorThickness; this.WallThickness = Room.WallThickness; mModel = PiciEnvironment.GetGame().GetRoomManager().GetModel(ModelName, Id); }
internal override void OnTimerTick() { if (SpeechTimer <= 0) { if (GetBotData() != null) { if (GetBotData().RandomSpeech.Count > 0) { RandomSpeech Speech = GetBotData().GetRandomSpeech(); GetRoomUser().Chat(null, Speech.Message, Speech.Shout); } } SpeechTimer = PiciEnvironment.GetRandomNumber(0, 150); } else { SpeechTimer--; } if (ActionTimer <= 0) { Point nextCoord = GetRoom().GetGameMap().getRandomWalkableSquare(); //int randomX = PiciEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeX); //int randomY = PiciEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeY); GetRoomUser().MoveTo(nextCoord.X, nextCoord.Y); ActionTimer = PiciEnvironment.GetRandomNumber(0, 30); } else { ActionTimer--; } }
public override string ToString() { string text = Header + PiciEnvironment.GetDefaultEncoding().GetString(Body); //CheckForExploits(text); return(text); }
internal void MarketplaceClaimCredits() { DataTable Results = null; using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT asking_price FROM catalog_marketplace_offers WHERE user_id = " + Session.GetHabbo().Id + " AND state = 2"); Results = dbClient.getTable(); } if (Results == null) { return; } int Profit = 0; foreach (DataRow Row in Results.Rows) { Profit += (int)Row["asking_price"]; } if (Profit >= 1) { Session.GetHabbo().Credits += Profit; Session.GetHabbo().UpdateCreditsBalance(); } using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM catalog_marketplace_offers WHERE user_id = " + Session.GetHabbo().Id + " AND state = 2"); } }
internal RoomData GenerateRoomData(UInt32 RoomId) { if (loadedRoomData.ContainsKey(RoomId)) { return((RoomData)loadedRoomData[RoomId]); } RoomData Data = new RoomData(); if (IsRoomLoaded(RoomId)) { return(GetRoom(RoomId).RoomData); } else { DataRow Row = null; using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE id = " + RoomId); Row = dbClient.getRow(); } if (Row == null) { return(null); } Data.Fill(Row); loadedRoomData.Add(RoomId, Data); } return(Data); }
internal void RemoveFromDatabase() { using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM items_rooms_songs WHERE itemid = " + itemID); } }
internal void GetCatalogPage() { CatalogPage Page = PiciEnvironment.GetGame().GetCatalog().GetPage(Request.PopWiredInt32()); if (Page == null || !Page.Enabled || !Page.Visible || Page.MinRank > Session.GetHabbo().Rank) { return; } if (Page.ClubOnly && !Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_club")) { Session.SendNotif(LanguageLocale.GetValue("catalog.missingclubmembership")); return; } Session.SendMessage(Page.GetMessage); if (Page.Layout == "recycler") { GetResponse().Init(507); GetResponse().AppendBoolean(true); GetResponse().AppendBoolean(false); SendResponse(); } }
internal void SendInstantInvite() { int count = Request.PopWiredInt32(); List <UInt32> UserIds = new List <uint>(); for (int i = 0; i < count; i++) { UserIds.Add(Request.PopWiredUInt()); } string message = PiciEnvironment.FilterInjectionChars(Request.PopFixedString(), true); ServerMessage Message = new ServerMessage(135); Message.AppendUInt(Session.GetHabbo().Id); Message.AppendStringWithBreak(message); foreach (UInt32 Id in UserIds) { if (!Session.GetHabbo().GetMessenger().FriendshipExists(Id)) { continue; } GameClient Client = PiciEnvironment.GetGame().GetClientManager().GetClientByUserID(Id); if (Client == null) { return; } Client.SendMessage(Message); } }
internal static void KickUser(GameClient ModSession, uint UserId, String Message, Boolean Soft) { GameClient Client = PiciEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null || Client.GetHabbo().CurrentRoomId < 1 || Client.GetHabbo().Id == ModSession.GetHabbo().Id) { return; } if (Client.GetHabbo().Rank >= ModSession.GetHabbo().Rank) { ModSession.SendNotif(LanguageLocale.GetValue("moderation.kick.missingrank")); return; } Room Room = PiciEnvironment.GetGame().GetRoomManager().GetRoom(Client.GetHabbo().CurrentRoomId); if (Room == null) { return; } Room.GetRoomUserManager().RemoveUserFromRoom(Client, true, false); Client.CurrentRoomUserID = -1; if (!Soft) { Client.SendNotif(Message); using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_info SET cautions = cautions + 1 WHERE user_id = " + UserId + ""); } } }
private void OnRoomCrash(Exception e) { Logging.LogThreadException(e.ToString(), "Room cycle task for room " + RoomId); try { if (System.Diagnostics.Debugger.IsAttached) { foreach (RoomUser user in roomUserManager.UserList.Values) { if (user.IsBot || user.IsPet) { continue; } user.GetClient().SendNotif("Unhandled exception in room: " + e.ToString()); try { GetRoomUserManager().RemoveUserFromRoom(user.GetClient(), true, false); user.GetClient().CurrentRoomUserID = -1; } catch { } } } } catch { } PiciEnvironment.GetGame().GetRoomManager().UnloadRoom(this); isCrashed = true; }
internal void ActivateQuest(GameClient Session, ClientMessage Message) { Quest Quest = GetQuest(Message.PopWiredUInt()); if (Quest == null) { return; } using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { if (dbClient.dbType == Pici.Storage.Database.DatabaseType.MySQL) { dbClient.runFastQuery("REPLACE INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + Quest.Id + ", 0)"); } else { dbClient.runFastQuery("IF NOT EXISTS (SELECT user_id FROM user_quests WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id = " + Quest.Id + ") " + "INSERT INTO user_quests VALUES (" + Session.GetHabbo().Id + ", " + Quest.Id + ", 0)"); } dbClient.runFastQuery("UPDATE users SET currentquestid = " + Quest.Id + " WHERE id = " + Session.GetHabbo().Id); } Session.GetHabbo().CurrentQuestId = Quest.Id; GetList(Session, null); Session.SendMessage(QuestStartedComposer.Compose(Session, Quest)); }
internal void AddBan(uint pId) { if (!Bans.ContainsKey(pId)) { Bans.Add(pId, PiciEnvironment.GetUnixTimestamp()); } }
internal static void Save() { if (!enabled) { return; } lock (loggedMessages.SyncRoot) { int totalMessages = loggedMessages.Count; if (loggedMessages.Count > 0) { using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { while (loggedMessages.Count > 0) { Message message = (Message)loggedMessages.Dequeue(); dbClient.setQuery("INSERT INTO system_packetlog (connectionid, timestamp, data) VALUES @connectionid @timestamp, @data"); dbClient.addParameter("connectionid", message.ConnectionID); dbClient.addParameter("timestamp", message.GetTimestamp); dbClient.addParameter("data", message.GetData); dbClient.runQuery(); } } } } }
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 = true; this.AllowPetsEating = false; this.AllowWalkthrough = true; this.Hidewall = false; this.Password = ""; this.Wallpaper = "0.0"; this.Floor = "0.0"; this.Landscape = "0.0"; this.WallThickness = 0; this.FloorThickness = 0; //this.Event = null; this.AllowRightsOverride = false; this.myIcon = new RoomIcon(1, 1, new Dictionary <int, int>()); mModel = PiciEnvironment.GetGame().GetRoomManager().GetModel(ModelName, pId); }
internal void Close(TicketStatus NewStatus, Boolean UpdateInDb) { this.Status = NewStatus; if (UpdateInDb) { String dbType = ""; switch (NewStatus) { case TicketStatus.ABUSIVE: dbType = "abusive"; break; case TicketStatus.INVALID: dbType = "invalid"; break; case TicketStatus.RESOLVED: default: dbType = "resolved"; break; } using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE moderation_tickets SET status = '" + dbType + "' WHERE id = " + Id + ""); } } }
internal static void AlertUser(GameClient ModSession, uint UserId, String Message, Boolean Caution) { GameClient Client = PiciEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null || Client.GetHabbo().Id == ModSession.GetHabbo().Id) { return; } if (Caution && Client.GetHabbo().Rank >= ModSession.GetHabbo().Rank) { ModSession.SendNotif(LanguageLocale.GetValue("moderation.caution.missingrank")); Caution = false; } Client.SendNotif(Message, Caution); if (Caution) { using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_info SET cautions = cautions + 1 WHERE user_id = " + UserId + ""); } } }
internal static Habbo GenerateHabbo(DataRow dRow, DataRow group) { uint id = Convert.ToUInt32(dRow["id"]); string username = (string)dRow["username"]; string realname = (string)dRow["real_name"]; uint rank = Convert.ToUInt32(dRow["rank"]); string motto = (string)dRow["motto"]; string look = (string)dRow["look"]; string gender = (string)dRow["gender"]; int credits = (int)dRow["credits"]; int activityPoints = (int)dRow["activity_points"]; double activityPointsLastUpdate = Convert.ToDouble(dRow["activity_points_lastupdate"]); bool isMuted = PiciEnvironment.EnumToBool(dRow["is_muted"].ToString()); uint homeRoom = Convert.ToUInt32(dRow["home_room"]); int respect = (Int32)dRow["respect"]; int dailyRespect = (int)dRow["daily_respect_points"]; int dailyPetRespect = (int)dRow["daily_pet_respect_points"]; bool mtantPenalty = (dRow["mutant_penalty"].ToString() != "0"); bool blockFriends = PiciEnvironment.EnumToBool(dRow["block_newfriends"].ToString()); uint questID = Convert.ToUInt32(dRow["currentquestid"]); int questProgress = (int)dRow["currentquestprogress"]; int achiecvementPoints = (int)dRow["achievement_points"]; int crystals = (int)dRow["crystals"]; int newbiestatus = (int)dRow["newbie_status"]; return(new Habbo(id, username, realname, rank, motto, look, gender, credits, activityPoints, activityPointsLastUpdate, isMuted, homeRoom, respect, dailyRespect, dailyPetRespect, mtantPenalty, blockFriends, questID, questProgress, group, achiecvementPoints, crystals, newbiestatus)); }
internal static ServerMessage SerializeRoomVisits(UInt32 UserId) { //using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { //dbClient.setQuery("SELECT room_id,hour,minute FROM user_roomvisits WHERE user_id = " + UserId + " ORDER BY entry_timestamp DESC LIMIT 50"); //DataTable Data = dbClient.getTable(); ServerMessage Message = new ServerMessage(537); Message.AppendUInt(UserId); Message.AppendStringWithBreak(PiciEnvironment.GetGame().GetClientManager().GetNameById(UserId)); //if (Data != null) //{ // Message.Append(Data.Rows.Count); // foreach (DataRow Row in Data.Rows) // { // RoomData RoomData = PiciEnvironment.GetGame().GetRoomManager().GenerateNullableRoomData(Convert.ToUInt32(Row["room_id"])); // Message.Append(RoomData.IsPublicRoom); // Message.Append(RoomData.Id); // Message.Append(RoomData.Name); // Message.Append((int)Row["hour"]); // Message.Append((int)Row["minute"]); // } //} //else //{ Message.AppendInt32(0); //} return(Message); } }
internal Game(int conns) { ClientManager = new GameClientManager(); //if (PiciEnvironment.GetConfig().data["client.ping.enabled"] == "1") //{ // ClientManager.StartConnectionChecker(); //} using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { //PiciEnvironment.GameInstance = this; DateTime start = DateTime.Now; BanManager = new ModerationBanManager(); RoleManager = new RoleManager(); HelpTool = new HelpTool(); Catalog = new Catalog(); Navigator = new Navigator(); ItemManager = new ItemManager(); RoomManager = new RoomManager(); AdvertisementManager = new AdvertisementManager(); PixelManager = new PixelManager(); ModerationTool = new ModerationTool(); BotManager = new BotManager(); questManager = new QuestManager(); //soundMachineManager = new SoundMachineManager(); TimeSpan spent = DateTime.Now - start; } }
internal void AddFavorite() { uint Id = Request.PopWiredUInt(); RoomData Data = PiciEnvironment.GetGame().GetRoomManager().GenerateRoomData(Id); if (Data == null || Session.GetHabbo().FavoriteRooms.Count >= 30 || Session.GetHabbo().FavoriteRooms.Contains(Id) || Data.Type == "public") { GetResponse().Init(33); GetResponse().AppendInt32(-9001); SendResponse(); return; } GetResponse().Init(459); GetResponse().AppendUInt(Id); GetResponse().AppendBoolean(true); SendResponse(); Session.GetHabbo().FavoriteRooms.Add(Id); using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("INSERT INTO user_favorites (user_id,room_id) VALUES (" + Session.GetHabbo().Id + "," + Id + ")"); } }
internal void MarketplaceTakeBack() { uint ItemId = Request.PopWiredUInt(); DataRow Row = null; using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT item_id, user_id, extra_data, offer_id state FROM catalog_marketplace_offers WHERE offer_id = " + ItemId + " LIMIT 1"); Row = dbClient.getRow(); } if (Row == null || Convert.ToUInt32(Row["user_id"]) != Session.GetHabbo().Id || (UInt32)Row["state"] != 1) { return; } Item Item = PiciEnvironment.GetGame().GetItemManager().GetItem(Convert.ToUInt32(Row["item_id"])); if (Item == null) { return; } PiciEnvironment.GetGame().GetCatalog().DeliverItems(Session, Item, 1, (String)Row["extra_data"]); using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM catalog_marketplace_offers WHERE offer_id = " + ItemId + ""); } GetResponse().Init(614); GetResponse().AppendUInt(Convert.ToUInt32(Row["offer_id"])); GetResponse().AppendBoolean(true); SendResponse(); }
internal void LoadBots(IQueryAdapter dbClient) { Bots = new List <RoomBot>(); dbClient.setQuery("SELECT id, room_id, ai_type, walk_mode, name, motto, look, x, y, z, rotation, min_x, min_y, max_x, max_y FROM bots;"); DataTable Data = dbClient.getTable(); dbClient.setQuery("SELECT id, bot_id, keywords, response_text, mode, serve_id FROM bots_responses;"); DataTable BotResponses = dbClient.getTable(); dbClient.setQuery("SELECT text, shout, bot_id FROM bots_speech;"); DataTable BotSpeech = dbClient.getTable(); List <BotResponse> Responses = new List <BotResponse>(); List <RandomSpeech> Speeches = new List <RandomSpeech>(); foreach (DataRow Row in BotResponses.Rows) { Responses.Add(new BotResponse(Convert.ToUInt32(Row["bot_id"]), (string)Row["keywords"], (string)Row["response_text"], Row["mode"].ToString(), (int)Row["serve_id"])); } foreach (DataRow Row in BotSpeech.Rows) { Speeches.Add(new RandomSpeech((string)Row["text"], PiciEnvironment.EnumToBool(Row["shout"].ToString()), Convert.ToUInt32(Row["bot_id"]))); } if (Data == null) { return; } foreach (DataRow Row in Data.Rows) { string BotAI = (string)Row["ai_type"]; AIType BotAIType; switch (BotAI) { case "generic": BotAIType = AIType.Generic; break; case "guide": BotAIType = AIType.Guide; break; case "pet": BotAIType = AIType.Pet; break; default: BotAIType = AIType.Generic; break; } Bots.Add(new RoomBot(Convert.ToUInt32(Row["id"]), Convert.ToUInt32(Row["room_id"]), BotAIType, (string)Row["walk_mode"], (String)Row["name"], (string)Row["motto"], (String)Row["look"], (int)Row["x"], (int)Row["y"], (int)Row["z"], (int)Row["rotation"], (int)Row["min_x"], (int)Row["min_y"], (int)Row["max_x"], (int)Row["max_y"], ref Speeches, ref Responses)); } }
internal MoodlightData(uint ItemId) { this.ItemId = ItemId; DataRow Row; using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT enabled,current_preset,preset_one,preset_two,preset_three FROM items_moodlight WHERE item_id = " + ItemId); Row = dbClient.getRow(); } if (Row == null) { throw new NullReferenceException("No moodlightdata found in the database"); } this.Enabled = PiciEnvironment.EnumToBool(Row["enabled"].ToString()); this.CurrentPreset = (int)Row["current_preset"]; this.Presets = new List <MoodlightPreset>(); this.Presets.Add(GeneratePreset((string)Row["preset_one"])); this.Presets.Add(GeneratePreset((string)Row["preset_two"])); this.Presets.Add(GeneratePreset((string)Row["preset_three"])); }
internal AvatarEffectsInventoryComponent(uint UserId, GameClient pClient, UserData data) { this.mClient = pClient; this.Effects = new ArrayList(); this.UserId = UserId; this.CurrentEffect = -1; this.Effects.Clear(); StringBuilder QueryBuilder = new StringBuilder(); foreach (AvatarEffect effect in data.effects) { if (!effect.HasExpired) { Effects.Add(effect); EffectCount++; } else { QueryBuilder.Append("DELETE FROM user_effects WHERE user_id = " + UserId + " AND effect_id = " + effect.EffectId + "; "); } } if (QueryBuilder.Length > 0) { using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) dbClient.runFastQuery(QueryBuilder.ToString()); } }
internal override void OnUserShout(Rooms.RoomUser User, string Message) { if (PiciEnvironment.GetRandomNumber(0, 10) >= 5) { GetRoomUser().Chat(null, LanguageLocale.GetValue("onusershout"), true); // shout nag } }
internal void StopEffect(int EffectId) { AvatarEffect Effect = GetEffect(EffectId, true); if (Effect == null || !Effect.HasExpired) { return; } using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("DELETE FROM user_effects WHERE user_id = " + UserId + " AND effect_id = " + EffectId + " AND is_activated = 1"); } Effects.Remove(Effect); EffectCount--; GetClient().GetMessageHandler().GetResponse().Init(463); GetClient().GetMessageHandler().GetResponse().AppendInt32(EffectId); GetClient().GetMessageHandler().SendResponse(); if (CurrentEffect >= 0) { ApplyEffect(-1); } }
internal string PopFixedString() { string data = PopFixedString(PiciEnvironment.GetDefaultEncoding()); CheckForExploits(data); return(data); }
internal static void SerializeQuest(ServerMessage Message, GameClient Session, Quest Quest, string Category) { int AmountInCat = PiciEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Category); int Number = Quest == null ? AmountInCat : Quest.Number - 1; int UserProgress = Quest == null ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id); if (Quest != null && Quest.IsCompleted(UserProgress)) { Number++; } Message.AppendStringWithBreak(Category); Message.AppendInt32(Number); // Quest progress in this cat Message.AppendInt32(AmountInCat); // Total quests in this cat Message.AppendInt32((int)QuestRewardType.Pixels); // Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels Message.AppendUInt(Quest == null ? 0 : Quest.Id); // Quest id Message.AppendBoolean(Quest == null ? false : Session.GetHabbo().CurrentQuestId == Quest.Id); // Quest started Message.AppendStringWithBreak(Quest == null ? string.Empty : Quest.ActionName); Message.AppendStringWithBreak(Quest == null ? string.Empty : Quest.DataBit); Message.AppendInt32(Quest == null ? 0 : Quest.Reward); Message.AppendStringWithBreak(Quest == null ? string.Empty : Quest.Name); Message.AppendInt32(UserProgress); // Current progress Message.AppendUInt(Quest == null ? 0 : Quest.GoalData); // Target progress Message.AppendInt32(0); // "Next quest available countdown" in seconds }
internal Point getRandomWalkableSquare() { List <Point> walkableSquares = new List <Point>(); for (int y = 0; y < mGameMap.GetUpperBound(1) - 1; y++) { for (int x = 0; x < mGameMap.GetUpperBound(0) - 1; x++) { if (mStaticModel.DoorX != x && mStaticModel.DoorY != y && mGameMap[x, y] == 1) { walkableSquares.Add(new Point(x, y)); } } } int RandomNumber = PiciEnvironment.GetRandomNumber(0, walkableSquares.Count); int i = 0; foreach (Point coord in walkableSquares) { if (i == RandomNumber) { return(coord); } i++; } return(new Point(0, 0)); }
internal GameClientManager() { clients = new Dictionary <uint, GameClient>(); clientsAddQueue = new Queue(); clientsToRemove = new Queue(); creditQueuee = new Queue(); badgeQueue = new Queue(); authorizedPacketSending = new Queue(); broadcastQueue = new Queue(); timedOutConnections = new Queue(); usernameRegister = new Hashtable(); userIDRegister = new Hashtable(); usernameIdRegister = new Hashtable(); idUsernameRegister = new Hashtable(); Thread timeOutThread = new Thread(new ThreadStart(HandleTimeouts)); timeOutThread.Start(); pingInterval = int.Parse(PiciEnvironment.GetConfig().data["client.ping.interval"]); cyclePixelsEnabled = false; cyclePixelsAmount = 0; cyclePixelsTime = 0; pixelsOnLogin = 0; cycleCreditsEnabled = false; cycleCreditsAmount = 0; cycleCreditsTime = 0; creditsOnLogin = 0; }