public bool Execute(params object[] Params) { if (Params.Length == 0 || Instance == null || string.IsNullOrEmpty(StringData)) { return(false); } Habbo Player = (Habbo)Params[0]; if (Player == null) { return(false); } RoomUser User = Instance.GetRoomUserManager().GetRoomUserByHabbo(Player.Id); if (User == null) { return(false); } TEAM ToJoin = (int.Parse(StringData) == 1 ? TEAM.RED : int.Parse(StringData) == 2 ? TEAM.GREEN : int.Parse(StringData) == 3 ? TEAM.BLUE : int.Parse(StringData) == 4 ? TEAM.YELLOW : TEAM.NONE); TeamManager Team = Instance.GetTeamManagerForFreeze(); if (Team != null) { if (Team.CanEnterOnTeam(ToJoin)) { if (User.Team != TEAM.NONE) { Team.OnUserLeave(User); } User.Team = ToJoin; Team.AddUser(User); if (User.GetClient().GetHabbo().Effects().CurrentEffect != Convert.ToInt32(ToJoin + 39)) { User.GetClient().GetHabbo().Effects().ApplyEffect(Convert.ToInt32(ToJoin + 39)); } User.GetClient().SendMessage(new HideUserOnPlaying(true)); } } return(true); }
public bool Execute(params object[] Params) { if (Params.Length == 0 || Instance == null || String.IsNullOrEmpty(StringData)) { return(false); } Habbo Player = (Habbo)Params[0]; if (Player == null) { return(false); } RoomUser User = Instance.GetRoomUserManager().GetRoomUserByHabbo(Player.Id); if (User == null) { return(false); } Team ToJoin = (int.Parse(StringData) == 1 ? Rooms.Games.Teams.Team.Red : int.Parse(StringData) == 2 ? Rooms.Games.Teams.Team.Green : int.Parse(StringData) == 3 ? Rooms.Games.Teams.Team.Blue : int.Parse(StringData) == 4 ? Rooms.Games.Teams.Team.Yellow : Rooms.Games.Teams.Team.None); TeamManager Team = Instance.GetTeamManagerForFreeze(); if (Team != null) { if (Team.CanEnterOnTeam(ToJoin)) { if (User.Team != Rooms.Games.Teams.Team.None) { Team.OnUserLeave(User); } User.Team = ToJoin; Team.AddUser(User); if (User.GetClient().Habbo.Effects().CurrentEffect != Convert.ToInt32(ToJoin + 39)) { User.GetClient().Habbo.Effects().ApplyEffect(Convert.ToInt32(ToJoin + 39)); } } } return(true); }
public bool Execute(params object[] stuff) { if (stuff[0] == null) { return(false); } RoomUser roomUser = (RoomUser)stuff[0]; int team = Delay / 500; TeamManager t = roomUser.GetClient().GetHabbo().CurrentRoom.GetTeamManagerForFreeze(); if (roomUser.Team != Team.None) { t.OnUserLeave(roomUser); roomUser.Team = Team.None; } switch (team) { case 1: roomUser.Team = Team.Red; break; case 2: roomUser.Team = Team.Green; break; case 3: roomUser.Team = Team.Blue; break; case 4: roomUser.Team = Team.Yellow; break; } t.AddUser(roomUser); roomUser.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent().ActivateCustomEffect(Delay + 39); return(true); }
public void Handle(RoomUser user, Item TriggerItem) { if (user != null && !user.IsBot && user.GetClient() != null && user.mRoom != null) { TeamManager managerForFreeze = user.mRoom.GetTeamManager(); //if (!managerForFreeze.CanEnterOnTeam(this.team)) //return; if (user.team != Team.none) { managerForFreeze.OnUserLeave(user); } user.team = this.team; managerForFreeze.AddUser(user); user.mRoom.GetGameManager().UpdateGatesTeamCounts(); int EffectId = ((int)this.team + 39); user.ApplyEffect(EffectId); } }
internal void UpdateUserStatus(RoomUnit unit, bool cyclegameitems) { try { if (unit == null) { return; } RoomUser user = unit as RoomUser; bool isBot = user == null; if (isBot) { cyclegameitems = false; } if (unit.Statuses.ContainsKey("lay") || unit.Statuses.ContainsKey("sit")) { unit.Statuses.Remove("lay"); unit.Statuses.Remove("sit"); unit.UpdateNeeded = true; } if (unit.Statuses.ContainsKey("sign")) { unit.Statuses.Remove("sign"); unit.UpdateNeeded = true; } //List<RoomItem> ItemsOnSquare = GetFurniObjects(User.X, User.Y); CoordItemSearch ItemSearch = new CoordItemSearch(room.GetGameMap().CoordinatedItems); List <RoomItem> ItemsOnSquare = ItemSearch.GetAllRoomItemForSquare(unit.X, unit.Y); double newZ; //if (user.isMounted == true && user.IsPet == false) //{ // newZ = room.GetGameMap().SqAbsoluteHeight(user.X, user.Y, ItemsOnSquare) + 1; //} //else { newZ = room.GetGameMap().SqAbsoluteHeight(unit.X, unit.Y, ItemsOnSquare); } if (!isBot) { if (newZ != user.Z) { user.Z = newZ; if (user.IsFlying) { user.Z += 4 + (0.5 * Math.Sin(0.7 * user.FlyCounter)); } user.UpdateNeeded = true; } } DynamicRoomModel Model = room.GetGameMap().Model; if (Model.SqState[unit.X, unit.Y] == SquareState.SEAT) { if (!unit.Statuses.ContainsKey("sit")) { unit.Statuses.Add("sit", "1.0"); } unit.Z = Model.SqFloorHeight[unit.X, unit.Y]; if (!isBot && user.IsFlying) { user.Z += 4 + (0.5 * Math.Sin(0.7 * user.FlyCounter)); } unit.RotHead = Model.SqSeatRot[unit.X, unit.Y]; unit.RotBody = Model.SqSeatRot[unit.X, unit.Y]; unit.UpdateNeeded = true; } foreach (RoomItem Item in ItemsOnSquare) { if (cyclegameitems) { Item.UserWalksOnFurni(user); } if (Item.GetBaseItem().IsSeat) { if (!unit.Statuses.ContainsKey("sit")) { unit.Statuses.Add("sit", TextHandling.GetString(Item.GetBaseItem().Height)); } unit.Z = Item.GetZ; if (!isBot && user.IsFlying) { user.Z += 4 + (0.5 * Math.Sin(0.7 * user.FlyCounter)); } unit.RotHead = Item.Rot; unit.RotBody = Item.Rot; unit.UpdateNeeded = true; } switch (Item.GetBaseItem().InteractionType) { case InteractionType.bed: { if (!unit.Statuses.ContainsKey("lay")) { unit.Statuses.Add("lay", TextHandling.GetString(Item.GetBaseItem().Height) + " null"); } unit.Z = Item.GetZ; if (!isBot && user.IsFlying) { user.Z += 4 + (0.2 * 0.5 * Math.Sin(0.7 * user.FlyCounter)); } unit.RotHead = Item.Rot; unit.RotBody = Item.Rot; unit.UpdateNeeded = true; break; } case InteractionType.fbgate: { if (cyclegameitems) { if (user.Team != Item.team) { user.Team = Item.team; } else if (user.Team == Item.team) { user.Team = Team.none; } if (!string.IsNullOrEmpty(Item.Figure)) { //User = GetUserForSquare(Item.Coordinate.X, Item.Coordinate.Y); if (user != null) { if (user.Coordinate == Item.Coordinate) { if (user.GetClient().GetHabbo().Gender != Item.Gender && user.GetClient().GetHabbo().Look != Item.Figure) { user.GetClient().GetHabbo().tempGender = user.GetClient().GetHabbo().Gender; user.GetClient().GetHabbo().tempLook = user.GetClient().GetHabbo().Look; user.GetClient().GetHabbo().Gender = Item.Gender; user.GetClient().GetHabbo().Look = Item.Figure; } else { user.GetClient().GetHabbo().Gender = user.GetClient().GetHabbo().tempGender; user.GetClient().GetHabbo().Look = user.GetClient().GetHabbo().tempLook; } ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(user.VirtualID); RoomUpdate.AppendStringWithBreak(user.GetClient().GetHabbo().Look); RoomUpdate.AppendStringWithBreak(user.GetClient().GetHabbo().Gender.ToLower()); RoomUpdate.AppendStringWithBreak(user.GetClient().GetHabbo().Motto); RoomUpdate.AppendInt32(user.GetClient().GetHabbo().AchievementPoints); room.SendMessage(RoomUpdate); } } } } break; } //33: Red //34: Green //35: Blue //36: Yellow case InteractionType.banzaigategreen: case InteractionType.banzaigateblue: case InteractionType.banzaigatered: case InteractionType.banzaigateyellow: { if (cyclegameitems) { int effectID = (int)Item.team + 32; TeamManager t = user.GetClient().GetHabbo().CurrentRoom.GetTeamManagerForBanzai(); AvatarEffectsInventoryComponent efectmanager = user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent(); if (user.Team != Item.team) { if (t.CanEnterOnTeam(Item.team)) { if (user.Team != Team.none) { t.OnUserLeave(user); } user.Team = Item.team; t.AddUser(user); if (efectmanager.CurrentEffect != effectID) { efectmanager.ApplyCustomEffect(effectID); } } } else { //usersOnTeam--; t.OnUserLeave(user); if (efectmanager.CurrentEffect == effectID) { efectmanager.ApplyCustomEffect(0); } user.Team = Team.none; } //((StringData)Item.data).Data = usersOnTeam.ToString(); //Item.UpdateState(false, true); } break; } case InteractionType.freezeyellowgate: case InteractionType.freezeredgate: case InteractionType.freezegreengate: case InteractionType.freezebluegate: { if (cyclegameitems) { int effectID = (int)Item.team + 39; TeamManager t = user.GetClient().GetHabbo().CurrentRoom.GetTeamManagerForFreeze(); //int usersOnTeam = 0; //if (((StringData)Item.data).Data != "") //usersOnTeam = int.Parse(((StringData)Item.data).Data); AvatarEffectsInventoryComponent efectmanager = user.GetClient().GetHabbo().GetAvatarEffectsInventoryComponent(); if (user.Team != Item.team) { if (t.CanEnterOnTeam(Item.team)) { if (user.Team != Team.none) { t.OnUserLeave(user); } user.Team = Item.team; t.AddUser(user); if (efectmanager.CurrentEffect != effectID) { efectmanager.ApplyCustomEffect(effectID); } } } else { //usersOnTeam--; t.OnUserLeave(user); if (efectmanager.CurrentEffect == effectID) { efectmanager.ApplyCustomEffect(0); } user.Team = Team.none; } //((StringData)Item.data).Data = usersOnTeam.ToString(); //Item.UpdateState(false, true); ServerMessage message = new ServerMessage(700); message.AppendBoolean((user.Team != Team.none)); user.GetClient().SendMessage(message); } break; } case InteractionType.banzaitele: { room.GetGameItemHandler().onTeleportRoomUserEnter(user, Item); break; } } } if (cyclegameitems) { if (room.GotSoccer()) { room.GetSoccer().OnUserWalk(user); } if (room.GotBanzai()) { room.GetBanzai().OnUserWalk(user); } //if (room.GotFreeze()) room.GetFreeze().OnUserWalk(user); } } catch (Exception e) { } }