public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } if (Session.GetHabbo().InRoom) { if (!NeonEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room OldRoom)) { return; } //if(OldRoom.QueueingUsers.Contains(Session.GetHabbo())) //{ // OldRoom.QueueingUsers.Remove(OldRoom.QueueingUsers.First()); // foreach (Habbo user in OldRoom.QueueingUsers) // { // user.GetClient().SendMessage(new RoomQueueComposer(OldRoom.QueueingUsers.IndexOf(user))); // } //} if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, true, false); } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } if (Session.GetHabbo().InRoom) { Room OldRoom; if (!CloudServer.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, true, false); } } Session.GetHabbo().IsTeleporting = false; Session.GetHabbo().TeleportingRoomID = 0; Session.GetHabbo().TeleporterId = 0; Session.GetHabbo().CurrentRoomId = 0; }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } if (Session.GetHabbo().InRoom) { Room OldRoom; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, true, false); } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { Room OldRoom; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return;//TODO: Remove? } Room.SendObjects(Session); //Status updating for messenger, do later as buggy. try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { PlusEnvironment.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, PlusEnvironment.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (PlusEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)PlusEnvironment.GetUnixTimestamp())); } Poll Poll = PlusEnvironment.GetGame().GetPollManager().getPollByRoomId(Room.RoomId); if (Poll != null) { if (!Session.GetHabbo().AnsweredPolls.Contains(Poll.Id)) { Session.SendMessage(new SuggestPollMessageComposer(Poll)); } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { if (!BiosEmuThiago.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return;//TODO: Remove? } Room.SendObjects(Session); //Status updating for messenger, do later as buggy. try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { BiosEmuThiago.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, BiosEmuThiago.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); // AQUI EL IF DE SI LA SALA TIENE POLL if (Room.poolQuestion != string.Empty) { Session.SendMessage(new QuickPollMessageComposer(Room.poolQuestion)); if (Room.yesPoolAnswers.Contains(Session.GetHabbo().Id) || Room.noPoolAnswers.Contains(Session.GetHabbo().Id)) { Session.SendMessage(new QuickPollResultsMessageComposer(Room.yesPoolAnswers.Count, Room.noPoolAnswers.Count)); } } if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (Room.ForSale && Room.SalePrice > 0 && (Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) != null)) { Session.SendWhisper("Esta sala esta a venda, em " + Room.SalePrice + " Duckets. Escreva :buyroom se deseja comprar!"); } else if (Room.ForSale && Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) == null) { foreach (RoomUser _User in Room.GetRoomUserManager().GetRoomUsers()) { if (_User.GetClient() != null && _User.GetClient().GetHabbo() != null && _User.GetClient().GetHabbo().Id != Session.GetHabbo().Id) { _User.GetClient().SendWhisper("Esta sala não se encontra a venda!"); } } Room.ForSale = false; Room.SalePrice = 0; } if (Session.GetHabbo().Effects().CurrentEffect == 77) { Session.GetHabbo().Effects().ApplyEffect(0); } if (BiosEmuThiago.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)BiosEmuThiago.GetUnixTimestamp())); } if (Room.OwnerId == Session.GetHabbo().Id) { string dFrank = null; using (var dbClient = BiosEmuThiago.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT bot_frank FROM users WHERE id = '" + Session.GetHabbo().Id + "' LIMIT 1"); dFrank = dbClient.getString(); } int dFrankInt = Int32.Parse(dFrank); DateTime dateGregorian = new DateTime(); dateGregorian = DateTime.Today; int day = 1; if (dFrankInt != day) { using (var dbClient = BiosEmuThiago.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE users SET bot_frank = '1' WHERE id = " + Session.GetHabbo().Id + ";"); } List <RandomSpeech> BotSpeechList = new List <RandomSpeech>(); RoomUser BotUser = Room.GetRoomUserManager().DeployBot(new RoomBot(0, Session.GetHabbo().CurrentRoomId, "welcome", "freeroam", "Frank", "Gerente do Bios Emulador, criado por Thiago Araujo!", "hr-3194-38-36.hd-180-1.ch-220-1408.lg-285-73.sh-906-90.ha-3129-73.fa-1206-73.cc-3039-73", 0, 0, 0, 4, 0, 0, 0, 0, ref BotSpeechList, "", 0, 0, false, 0, false, 33), null); } else { //O usuário já recebeu o prêmio de hoje! } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { Room OldRoom; if (!QuasarEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return;//TODO: Remove? } Room.SendObjects(Session); //Status updating for messenger, do later as buggy. try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { QuasarEnvironment.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, QuasarEnvironment.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); if (Room.poolQuestion != string.Empty) { Session.SendMessage(new QuickPollMessageComposer(Room.poolQuestion)); if (Room.yesPoolAnswers.Contains(Session.GetHabbo().Id) || Room.noPoolAnswers.Contains(Session.GetHabbo().Id)) { Session.SendMessage(new QuickPollResultsMessageComposer(Room.yesPoolAnswers.Count, Room.noPoolAnswers.Count)); } } if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (Room.ForSale && Room.SalePrice > 0 && (Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) != null)) { Session.SendWhisper("Deze kamer staat te koop voor " + Room.SalePrice + " Duckets. Gebruik de command :koopkamer als je de kamer wilt overnemen."); } else if (Room.ForSale && Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) == null) { foreach (RoomUser _User in Room.GetRoomUserManager().GetRoomUsers()) { if (_User.GetClient() != null && _User.GetClient().GetHabbo() != null && _User.GetClient().GetHabbo().Id != Session.GetHabbo().Id) { _User.GetClient().SendWhisper("Oeps! Deze kamer is toevallig net uit de verkoop gehaald."); } } Room.ForSale = false; Room.SalePrice = 0; } if (QuasarEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)QuasarEnvironment.GetUnixTimestamp())); } QuasarEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_VISIT); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { Room OldRoom; if (!RocketEmulador.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return;//TODO: Remove? } Room.SendObjects(Session); //Status updating for messenger, do later as buggy. try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { RocketEmulador.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, RocketEmulador.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (RocketEmulador.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)RocketEmulador.GetUnixTimestamp())); } if (Room.OwnerId == Session.GetHabbo().Id) { DataRow dFrank = null; using (var dbClient = RocketEmulador.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT bot_frank FROM users WHERE id = '" + Session.GetHabbo().Id + "'"); dFrank = dbClient.getRow(); } if (Convert.ToBoolean(dFrank["bot_frank"]) == false) { using (var dbClient = RocketEmulador.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE users SET bot_frank = 'true' WHERE id = " + Session.GetHabbo().Id + ";"); dbClient.RunQuery("UPDATE users SET bot_user = '******' WHERE id = " + Session.GetHabbo().Id + ";"); } string Chat1 = RocketEmulador.GetDBConfig().DBData["frank.chat.1"]; string Chat2 = RocketEmulador.GetDBConfig().DBData["frank.chat.2"]; string Chat3 = RocketEmulador.GetDBConfig().DBData["frank.chat.3"]; string Chat4 = RocketEmulador.GetDBConfig().DBData["frank.chat.4"]; string Chat5 = RocketEmulador.GetDBConfig().DBData["frank.chat.5"]; string Credits = RocketEmulador.GetDBConfig().DBData["frank.give.credits"]; string Diamonds = RocketEmulador.GetDBConfig().DBData["frank.give.diamonds"]; string Duckets = RocketEmulador.GetDBConfig().DBData["frank.give.duckets"]; string Gotws = RocketEmulador.GetDBConfig().DBData["frank.give.gotws"]; string Furni = RocketEmulador.GetDBConfig().DBData["frank.give.furni"]; List <RandomSpeech> BotSpeechList = new List <RandomSpeech>(); Console.WriteLine("Só se mostra bot e nuxs 1 vez por usuario."); int X = 0; int Y = 0; string hola = "false"; RoomUser BotUser = Room.GetRoomUserManager().DeployBot(new RoomBot(0, Session.GetHabbo().CurrentRoomId, "generic", "freeroam", "Frank", "Gerente do hotel", "hr-3194-38-36.hd-180-1.ch-220-1408.lg-285-73.sh-906-90.ha-3129-73.fa-1206-73.cc-3039-73", X, Y, 0, 4, 0, 0, 0, 0, ref BotSpeechList, "", 0, 0, false, 0, Convert.ToBoolean(hola), 1), null); System.Threading.Thread.Sleep(4000); // Mensagem de Boas vindas. BotUser.Chat(Chat1, false, 0); System.Threading.Thread.Sleep(3000); // Segunda mensagem BotUser.Chat(Chat2, false, 0); System.Threading.Thread.Sleep(2000); // Terceira mensagem e entrega das moedas if (!string.IsNullOrWhiteSpace(Credits) && !string.IsNullOrWhiteSpace(Diamonds) && !string.IsNullOrWhiteSpace(Duckets) && !string.IsNullOrWhiteSpace(Gotws)) { BotUser.Chat("Você tem " + Credits + " créditos, " + Diamonds + " diamantes, " + Duckets + " duckets, " + Gotws + " estrelas e nubes!", false, 0); Session.GetHabbo().Credits += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.credits"]); Session.GetHabbo().Diamonds += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.diamonds"]); Session.GetHabbo().Duckets += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.duckets"]); Session.GetHabbo().GOTWPoints += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.gotws"]); Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } else if (!string.IsNullOrWhiteSpace(Credits) && !string.IsNullOrWhiteSpace(Diamonds) && !string.IsNullOrWhiteSpace(Duckets) && !string.IsNullOrWhiteSpace(Gotws)) { BotUser.Chat("Você tem " + Credits + " créditos, " + Diamonds + " diamantes, " + Duckets + " duckets e " + Gotws + " estrelas!", false, 0); Session.GetHabbo().Credits += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.credits"]); Session.GetHabbo().Diamonds += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.diamonds"]); Session.GetHabbo().Duckets += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.duckets"]); Session.GetHabbo().GOTWPoints += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.gotws"]); Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); Session.SendMessage(new ActivityPointsComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Diamonds, Session.GetHabbo().GOTWPoints)); } else if (!string.IsNullOrWhiteSpace(Credits) && !string.IsNullOrWhiteSpace(Diamonds) && !string.IsNullOrWhiteSpace(Duckets)) { BotUser.Chat("Você tem " + Credits + " créditos, " + Diamonds + " diamantes e " + Duckets + " duckets!", false, 0); Session.GetHabbo().Credits += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.credits"]); Session.GetHabbo().Diamonds += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.diamonds"]); Session.GetHabbo().Duckets += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.duckets"]); Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); Session.SendMessage(new ActivityPointsComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Diamonds, Session.GetHabbo().GOTWPoints)); } else if (!string.IsNullOrWhiteSpace(Credits) && !string.IsNullOrWhiteSpace(Diamonds)) { BotUser.Chat("Você tem " + Credits + " créditos e " + Diamonds + " diamantes!", false, 0); Session.GetHabbo().Credits += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.credits"]); Session.GetHabbo().Diamonds += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.diamonds"]); Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); Session.SendMessage(new ActivityPointsComposer(Session.GetHabbo().Duckets, Session.GetHabbo().Diamonds, Session.GetHabbo().GOTWPoints)); } else if (!string.IsNullOrWhiteSpace(Credits)) { BotUser.Chat("Você tem " + Credits + " créditos!", false, 0); Session.GetHabbo().Credits += Convert.ToInt32(RocketEmulador.GetDBConfig().DBData["frank.give.credits"]); Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } else { BotUser.Chat("Não iremos te dar nada por enquanto.", false, 0); } if (!string.IsNullOrWhiteSpace(Chat4) || !string.IsNullOrEmpty(Furni)) { System.Threading.Thread.Sleep(4000); // Quarta mensagen, entregando o raro. BotUser.Chat(Chat4, false, 0); DataRow dFurni = null; using (var dbClient = RocketEmulador.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT public_name FROM furniture WHERE id = '" + Convert.ToInt32(Furni) + "'"); dFurni = dbClient.getRow(); } Session.GetHabbo().GetInventoryComponent().AddNewItem(0, Convert.ToInt32(Furni), Convert.ToString(dFurni["public_name"]), 1, true, false, 0, 0); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } System.Threading.Thread.Sleep(5000); // Quinta mensagem. BotUser.Chat(Chat5, false, 0); Room.GetGameMap().RemoveUserFromMap(BotUser, new System.Drawing.Point(0, 0)); Room.GetRoomUserManager().RemoveBot(BotUser.VirtualId, false); } else { Console.WriteLine("O Bot não irá mais aparecer para esse usuário."); } } }
public override void Execute() { RetCode rc; Debug.Assert(Enum.IsDefined(typeof(Direction), Direction) || DoorGateArtifact != null); Debug.Assert(gCharMonster != null); ProcessEvents(EventType.BeforeCanMoveToRoomCheck); if (GotoCleanup) { goto Cleanup; } // Special blocking artifacts BlockingArtifact = gEngine.GetBlockedDirectionArtifact(gGameState.Ro, gGameState.R2, Direction); if (BlockingArtifact != null) { PrintObjBlocksTheWay(BlockingArtifact); goto Cleanup; } if (gGameState.R2 > 0 && gRDB[gGameState.R2] != null) { if (gCharMonster.CanMoveToRoomUid(gGameState.R2, Fleeing)) { NextState = Globals.CreateInstance <IAfterPlayerMoveState>(x => { x.Direction = Direction; x.DoorGateArtifact = DoorGateArtifact; }); } else { PrintCantVerbThere(Fleeing ? "flee" : "move"); } goto Cleanup; } OldRoom = gRDB[gGameState.Ro]; Debug.Assert(OldRoom != null); DoorGateArtifactUid = DoorGateArtifact != null ? DoorGateArtifact.Uid : OldRoom.GetDirectionDoorUid(Direction); if (DoorGateArtifactUid > 0) { if (DoorGateArtifact == null) { DoorGateArtifact = gADB[DoorGateArtifactUid]; Debug.Assert(DoorGateArtifact != null); } gEngine.CheckDoor(OldRoom, DoorGateArtifact, ref _doorGateFound, ref _newRoomUid); if (_doorGateFound) { if (OldRoom.IsLit()) { gEngine.RevealEmbeddedArtifact(OldRoom, DoorGateArtifact); } gGameState.R2 = _newRoomUid; if (gGameState.R2 > 0 && gRDB[gGameState.R2] != null) { NextState = Globals.CreateInstance <IPlayerMoveCheckState>(x => { x.Direction = Direction; x.DoorGateArtifact = DoorGateArtifact; x.Fleeing = Fleeing; }); goto Cleanup; } else if (gGameState.R2 == 0 && OldRoom.IsLit()) { PrintObjBlocksTheWay(DoorGateArtifact); goto Cleanup; } } } ProcessEvents(EventType.AfterBlockingArtifactCheck); if (GotoCleanup) { goto Cleanup; } if (gGameState.R2 != Constants.DirectionExit) { PrintCantGoThatWay(); goto Cleanup; } PrintRideOffIntoSunset(); gOut.Write("{0}Leave this adventure (Y/N): ", Environment.NewLine); Globals.Buf.Clear(); rc = Globals.In.ReadField(Globals.Buf, Constants.BufSize02, null, ' ', '\0', false, null, gEngine.ModifyCharToUpper, gEngine.IsCharYOrN, null); Debug.Assert(gEngine.IsSuccess(rc)); if (Globals.Buf.Length > 0 && Globals.Buf[0] == 'Y') { gGameState.Die = 0; Globals.ExitType = ExitType.FinishAdventure; Globals.MainLoop.ShouldShutdown = true; } Cleanup: if (NextState == null) { NextState = Globals.CreateInstance <IStartState>(); } Globals.NextState = NextState; }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { Room OldRoom; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return; } Room.SendObjects(Session); if (Room.HideWired && Room.CheckRights(Session, true, false)) { Session.SendMessage(new RoomCustomizedAlertComposer("Wired está escondido en esta habitación.")); } //Status updating for messenger, do later as buggy. try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { RavenEnvironment.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, RavenEnvironment.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } if (!Session.GetHabbo().Effects().HasEffect(0) && Session.GetHabbo().Rank < 2) { Session.GetHabbo().Effects().ApplyEffect(0); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); if (Session.GetHabbo().Rank > 3 && !Session.GetHabbo().StaffOk) { Session.SendMessage(new GnomeBoxComposer(0)); } if (Room.poolQuestion != string.Empty) { Session.SendMessage(new QuickPollMessageComposer(Room.poolQuestion)); if (Room.yesPoolAnswers.Contains(Session.GetHabbo().Id) || Room.noPoolAnswers.Contains(Session.GetHabbo().Id)) { Session.SendMessage(new QuickPollResultsMessageComposer(Room.yesPoolAnswers.Count, Room.noPoolAnswers.Count)); } } if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (Room.ForSale && Room.SalePrice > 0 && (Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) != null)) { Session.SendWhisper("Esta Sala esta en venta, en " + Room.SalePrice + " Duckets. Escribe :buyroom si deseas comprarla!"); } else if (Room.ForSale && Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) == null) { foreach (RoomUser _User in Room.GetRoomUserManager().GetRoomUsers()) { if (_User.GetClient() != null && _User.GetClient().GetHabbo() != null && _User.GetClient().GetHabbo().Id != Session.GetHabbo().Id) { _User.GetClient().SendWhisper("Esta Sala ya no se encuentra a la venta."); } } Room.ForSale = false; Room.SalePrice = 0; } RoomPoll poll = null; if (RavenEnvironment.GetGame().GetPollManager().TryGetPollForRoom(Room.Id, out poll) && poll.Type == RoomPollType.Poll) { if (!Session.GetHabbo().GetPolls().CompletedPolls.Contains(poll.Id)) { Session.SendMessage(new PollOfferComposer(poll)); } } if (RavenEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)RavenEnvironment.GetUnixTimestamp())); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { if (!CloudServer.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return;//TODO: Remove? } Room.SendObjects(Session); //Status updating for messenger, do later as buggy. try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { CloudServer.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, CloudServer.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); // AQUI EL IF DE SI LA SALA TIENE POLL if (Room.poolQuestion != string.Empty) { Session.SendMessage(new QuickPollMessageComposer(Room.poolQuestion)); if (Room.yesPoolAnswers.Contains(Session.GetHabbo().Id) || Room.noPoolAnswers.Contains(Session.GetHabbo().Id)) { Session.SendMessage(new QuickPollResultsMessageComposer(Room.yesPoolAnswers.Count, Room.noPoolAnswers.Count)); } } if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (Room.ForSale && Room.SalePrice > 0 && (Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) != null)) { Session.SendWhisper("Esta sala esta a venda, em " + Room.SalePrice + " Duckets. Escreva :buyroom se deseja comprar!"); } else if (Room.ForSale && Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) == null) { foreach (RoomUser _User in Room.GetRoomUserManager().GetRoomUsers()) { if (_User.GetClient() != null && _User.GetClient().GetHabbo() != null && _User.GetClient().GetHabbo().Id != Session.GetHabbo().Id) { _User.GetClient().SendWhisper("Esta sala não se encontra a venda!"); } } Room.ForSale = false; Room.SalePrice = 0; } if (Session.GetHabbo().Effects().CurrentEffect == 77) { Session.GetHabbo().Effects().ApplyEffect(0); } if (CloudServer.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)CloudServer.GetUnixTimestamp())); } }