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 void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { #region Conditions if (Session.GetRoleplay().IsWorking) { Session.SendWhisper("Você já está trabalhando!", 1); return; } if (Session.GetRoleplay().IsDead) { Session.SendWhisper("Você não pode trabalhar enquanto está morto!", 1); return; } if (Session.GetRoleplay().IsJailed) { Session.SendWhisper("Você não pode trabalhar enquanto está preso!", 1); return; } if (Session.GetRoleplay().JobId == 1) { Session.SendWhisper("Você não pode trabalhar, você está desempregado!", 1); return; } if (Session.GetRoleplay().IsWorkingOut) { Session.SendWhisper("Você não pode trabalhar enquanto está malhando!", 1); return; } if (Session.GetRoleplay().TimerManager.ActiveTimers.ContainsKey("sendhome")) { Session.SendWhisper("Você não pode trabalhar enquanto foi enviado para casa!", 1); return; } if (!GroupManager.JobExists(Session.GetRoleplay().JobId, Session.GetRoleplay().JobRank)) { Session.GetRoleplay().TimeWorked = 0; Session.GetRoleplay().JobId = 1; Session.GetRoleplay().JobRank = 1; Session.GetRoleplay().JobRequest = 0; Group NewJob = GroupManager.GetJob(Session.GetRoleplay().JobId); NewJob.AddNewMember(Session.GetHabbo().Id); NewJob.SendPackets(Session); Session.SendWhisper("Desculpe, seu trabalho não existe! Ele foi removido.", 1); return; } Group Job = GroupManager.GetJob(Session.GetRoleplay().JobId); GroupRank Rank = GroupManager.GetJobRank(Job.Id, Session.GetRoleplay().JobRank); if (!Rank.CanWorkHere(Room.Id)) { Session.SendWhisper("Este não é um dos seus quartos de trabalho! Você trabalha no(s) Quarto(s): [" + String.Join(",", Rank.WorkRooms) + "].", 1); return; } if (Session.GetRoleplay().CurEnergy <= 0) { Session.SendWhisper("Você não tem energia suficiente para trabalhar!", 1); return; } if (GroupManager.HasJobCommand(Session, "policial") && RoleplayManager.PurgeStarted) { Session.SendWhisper("Você não pode começar a trabalhar como policial em uma purga!", 1); return; } if (GroupManager.HasJobCommand(Session, "policial") && Room.RoomData.TurfEnabled) { Session.SendWhisper("Você não pode trabalhar como policial dentro de um território!", 1); return; } if (Session.GetRoleplay().TryGetCooldown("startwork", true)) { return; } #endregion #region Execute if (GroupManager.HasJobCommand(Session, "guide")) { Session.SendMessage(new HelperToolConfigurationComposer(Session)); return; } #region Farming Level Check int JobRank = 1; if (GroupManager.HasJobCommand(Session, "farming")) { if (!Session.GetRoleplay().FarmingStats.HasPlantSatchel&& !Session.GetRoleplay().FarmingStats.HasSeedSatchel) { Session.SendWhisper("O agricultor precisa de um Saco de plantas e um Saco de sementes para que eles possam começar a trabalhar! Compre um no supermercado.", 1); return; } if (Session.GetRoleplay().FarmingStats.Level < 6) { JobRank = 1; } else if (Session.GetRoleplay().FarmingStats.Level >= 6 && Session.GetRoleplay().FarmingStats.Level < 11) { JobRank = 2; } else if (Session.GetRoleplay().FarmingStats.Level >= 11) { JobRank = 3; } if (JobRank != Session.GetRoleplay().JobRank) { Session.GetRoleplay().JobRank = JobRank; Job.UpdateJobMember(Session.GetHabbo().Id); } } #endregion Session.GetRoleplay().IsWorking = true; RoleplayManager.GetLookAndMotto(Session); WorkManager.AddWorkerToList(Session); Session.GetRoleplay().TimerManager.CreateTimer("work", 1000, true); Session.GetRoleplay().CooldownManager.CreateCooldown("startwork", 1000, 10); return; #endregion }