public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Variables RoomUser User = Session.GetRoomUser(); Group Group = GroupManager.GetJob(Session.GetRoleplay().JobId); GroupRank GroupRank = GroupManager.GetJobRank(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank); #endregion #region Conditions if (User == null) { return; } if (Params.Length == 1) { Session.SendWhisper("Digite [:servir (item)]! Você só pode servir os seguintes itens: " + FoodManager.GetServableItems(Session) + "!", 1); return; } string FoodName = Params[1].ToString(); Food Food = FoodManager.GetFoodAndDrink(FoodName); if (!Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você deve estar trabalhando para fazer isso!", 1); return; } if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode servir alimentos ou bebidas enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode servir alimentos ou bebidas enquanto está preso!", 1); return; } if (!GroupManager.HasJobCommand(Session, "serve")) { Session.SendWhisper("Você não tem permissão para usar este comando!", 1); return; } if (!GroupRank.CanWorkHere(Session.GetHabbo().CurrentRoomId)) { Session.SendWhisper("Você não trabalha aqui! Seu(s) quarto de trabalho é [Quarto ID(s): " + String.Join(",", GroupRank.WorkRooms) + "]", 1); return; } if (Food == null) { Session.SendWhisper("Este não é um tipo de alimento ou bebida válido! Você só pode servir: " + FoodManager.GetServableItems(Session) + "!", 1); return; } if (!FoodManager.CanServe(User)) { Session.SendWhisper("Encontre uma mesa agradável para servir!", 1); return; } if (Food.Type == "food" && !GroupManager.HasJobCommand(Session, "food")) { Session.SendWhisper("Desculpe! Você só pode servir: " + FoodManager.GetServableItems(Session) + "!", 1); return; } if (Food.Type == "drink" && !GroupManager.HasJobCommand(Session, "drinks")) { Session.SendWhisper("Desculpe! Você só pode servir: " + FoodManager.GetServableItems(Session) + "!", 1); return; } if (!Food.Servable) { if (Food.Type == "drink") { Session.SendWhisper("Desculpe! Você só pode servir: " + FoodManager.GetServableItems(Session) + "!", 1); } else { Session.SendWhisper("Desculpe! Você só pode servir: " + FoodManager.GetServableItems(Session) + "!", 1); } return; } #endregion #region Execute double MaxHeight = 0.0; Item ItemInFront; if (Room.GetGameMap().GetHighestItemForSquare(User.SquareInFront, out ItemInFront)) { if (ItemInFront != null) { MaxHeight = ItemInFront.TotalHeight; } } Session.Shout(Food.ServeText, 4); RoleplayManager.PlaceItemToRoom(Session, Food.ItemId, 0, User.SquareInFront.X, User.SquareInFront.Y, MaxHeight, User.RotBody, false, Room.Id, false, Food.ExtraData, true); #endregion }
public override void HandleRequest(GameClient Client, string Message) { if (!OnDuty) { return; } if (RespondToSpeech(Client, Message)) { return; } string Name = GetBotRoleplay().Name.ToLower(); var ServableFoods = FoodManager.GetServableBotItems("food"); #region Serving Food if (Message.ToLower().Contains("serve") && Message.ToLower() != "serve") { string[] Params = Message.Split(' '); if (Params.Length == 1) { return; } else { if (Client.GetRoleplay().Hunger <= 0) { string WhisperMessage = "Você não parece com fome " + Client.GetHabbo().Username + "!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } if (GetBotRoleplay().WalkingToItem) { string WhisperMessage = "Eu já estou servindo alguém! Espera aí."; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); return; } string DesiredFood = Params[1].ToLower(); var Food = FoodManager.GetFood(DesiredFood); if (Food == null) { string WhisperMessage = "Este alimento não existe! Digite 'comidas' para ver o que posso lhe fornecer."; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); } else { if (FoodManager.CanServe(Client.GetRoomUser())) { BeginServingFood(Food, Client); } else { string WhisperMessage = "Encontre uma mesa vazia para que eu sirva comida para você!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); } } } } #endregion else if (Message.ToLower() == Name) { GetRoomUser().Chat("Sim " + Client.GetHabbo().Username + ", você precisa de algo?", true); } else { switch (Message.ToLower()) { #region Food List case "food": case "hunger": case "serve": case "sirva": { if (Client.GetRoleplay().Hunger <= 0) { string WhisperMessage = "Você não parece com fome " + Client.GetHabbo().Username + "!"; Client.SendMessage(new WhisperComposer(GetRoomUser().VirtualId, WhisperMessage, 0, 2)); } else { GetRoomUser().Chat("Bem vindo(a) " + Client.GetHabbo().Username + ", você parece com fome! O que você gostaria de comer?", true); StringBuilder FoodList = new StringBuilder().Append("<----- Comidas Disponíveis ----->\n"); FoodList.Append("Para solicitar qualquer uma das comidas, digite 'serve <nome da comida>', esteja em uma mesa vazia!\n\n"); foreach (var Food in ServableFoods.OrderBy(x => x.Cost)) { if (Food != null) { string RealName = Food.Name.Substring(0, 1).ToUpper() + Food.Name.Substring(1); FoodList.Append("<----- " + RealName + " ----->\n"); FoodList.Append("Preço: R$" + Food.Cost + " <---> Fome: -" + Food.Hunger + "\n"); FoodList.Append("Sangue: +" + Food.Health + " <---> Energia: +" + Food.Energy + "\n\n"); } } Client.SendMessage(new MOTDNotificationComposer(FoodList.ToString())); } break; } #endregion } } }