Ejemplo n.º 1
0
        public void Execute(GameClient Session, Room Room, RoomUser UserRoom, string[] Params)
        {
            Room room = Session.GetHabbo().CurrentRoom;

            if (room == null)
            {
                return;
            }
            RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id);

            if (roomUserByHabbo == null)
            {
                return;
            }

            if (roomUserByHabbo._statusses.ContainsKey("sit") || roomUserByHabbo._statusses.ContainsKey("lay"))
            {
                return;
            }
            if (roomUserByHabbo.RotBody % 2 == 0)
            {
                if (UserRoom.transformation)
                {
                    roomUserByHabbo.SetStatus("sit", "");
                }
                else
                {
                    roomUserByHabbo.SetStatus("sit", "0.5");
                }
                roomUserByHabbo.IsSit        = true;
                roomUserByHabbo.UpdateNeeded = true;
            }
        }
Ejemplo n.º 2
0
        public void Parse(GameClient session, ClientPacket packet)
        {
            int groupId = packet.PopInt();
            int userId = packet.PopInt();

            if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(groupId, out Group group))
                return;

            if (session.Habbo.Id != group.CreatorId || !group.IsMember(userId))
                return;

            Habbo habbo = PlusEnvironment.GetHabboById(userId);
            if (habbo == null)
            {
                session.SendNotification("Oops, an error occurred whilst finding this user.");
                return;
            }

            group.MakeAdmin(userId);

            if (PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(group.RoomId, out Room room))
            {
                RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(userId);
                if (user != null)
                {
                    if (!user.Statusses.ContainsKey("flatctrl 3"))
                        user.SetStatus("flatctrl 3");
                    user.UpdateNeeded = true;
                    if (user.GetClient() != null)
                        user.GetClient().SendPacket(new YouAreControllerComposer(3));
                }
            }

            session.SendPacket(new GroupMemberUpdatedComposer(groupId, habbo, 1));
        }
Ejemplo n.º 3
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (Session == null || Session.GetHabbo() == null)
            {
                return;
            }

            int UserId = Packet.PopInt();

            Room Room = null;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room))
            {
                return;
            }

            if (!Room.CheckRights(Session, true))
            {
                return;
            }

            if (Room.UsersWithRights.Contains(UserId))
            {
                Session.SendNotification(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("room_rights_has_rights_error"));
                return;
            }

            Room.UsersWithRights.Add(UserId);

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("INSERT INTO `room_rights` (`room_id`,`user_id`) VALUES ('" + Room.RoomId + "','" + UserId + "')");
            }

            RoomUser RoomUser = Room.GetRoomUserManager().GetRoomUserByHabbo(UserId);

            if (RoomUser != null && !RoomUser.IsBot)
            {
                RoomUser.SetStatus("flatctrl 1", "");
                RoomUser.UpdateNeeded = true;
                if (RoomUser.GetClient() != null)
                {
                    RoomUser.GetClient().SendMessage(new YouAreControllerComposer(1));
                }

                Session.SendMessage(new FlatControllerAddedComposer(Room.RoomId, RoomUser.GetClient().GetHabbo().Id, RoomUser.GetClient().GetHabbo().Username));
            }
            else
            {
                using (UserCache User = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(UserId))
                {
                    if (User != null)
                    {
                        Session.SendMessage(new FlatControllerAddedComposer(Room.RoomId, User.Id, User.Username));
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            if (Session.GetHabbo() == null)
            {
                return;
            }

            int UserId = Packet.PopInt();

            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null)
            {
                return;
            }

            if (room == null || !room.CheckRights(Session, true))
            {
                return;
            }

            if (room.UsersWithRights.Contains(UserId))
            {
                Session.SendNotification(ButterflyEnvironment.GetLanguageManager().TryGetValue("user.giverights.error", Session.Langue));
            }
            else
            {
                Habbo Userright = ButterflyEnvironment.GetHabboById(UserId);
                if (Userright == null)
                {
                    return;
                }

                room.UsersWithRights.Add(UserId);

                using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                    queryreactor.RunQuery("INSERT INTO room_rights (room_id,user_id) VALUES (" + room.Id + "," + UserId + ")");

                ServerPacket Response = new ServerPacket(ServerPacketHeader.FlatControllerAddedMessageComposer);
                Response.WriteInteger(room.Id);
                Response.WriteInteger(UserId);
                Response.WriteString(Userright.Username);
                Session.SendPacket(Response);

                RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserId);
                if (roomUserByHabbo == null || roomUserByHabbo.IsBot)
                {
                    return;
                }

                roomUserByHabbo.RemoveStatus("flatctrl 0");
                roomUserByHabbo.SetStatus("flatctrl 1", "");
                roomUserByHabbo.UpdateNeeded = true;

                roomUserByHabbo.GetClient().SendPacket(new YouAreControllerComposer(1));
            }
        }
Ejemplo n.º 5
0
        public void Parse(GameClient session, ClientPacket packet)
        {
            if (session == null || session.GetHabbo() == null)
            {
                return;
            }

            int userId = packet.PopInt();

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().CurrentRoomId, out Room room))
            {
                return;
            }

            if (!room.CheckRights(session, true))
            {
                return;
            }

            if (room.UsersWithRights.Contains(userId))
            {
                session.SendNotification(PlusEnvironment.GetLanguageManager().TryGetValue("room.rights.user.has_rights"));
                return;
            }

            room.UsersWithRights.Add(userId);

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("INSERT INTO `room_rights` (`room_id`,`user_id`) VALUES ('" + room.RoomId + "','" + userId + "')");
            }

            RoomUser roomUser = room.GetRoomUserManager().GetRoomUserByHabbo(userId);

            if (roomUser != null && !roomUser.IsBot)
            {
                roomUser.SetStatus("flatctrl 1");
                roomUser.UpdateNeeded = true;
                if (roomUser.GetClient() != null)
                {
                    roomUser.GetClient().SendPacket(new YouAreControllerComposer(1));
                }

                session.SendPacket(new FlatControllerAddedComposer(room.RoomId, roomUser.GetClient().GetHabbo().Id, roomUser.GetClient().GetHabbo().Username));
            }
            else
            {
                UserCache user = PlusEnvironment.GetGame().GetCacheManager().GenerateUser(userId);
                if (user != null)
                {
                    session.SendPacket(new FlatControllerAddedComposer(room.RoomId, user.Id, user.Username));
                }
            }
        }
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int GroupId = Packet.PopInt();
            int UserId  = Packet.PopInt();

            Group Group = null;

            if (!BiosEmuThiago.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            if (Session.GetHabbo().Id != Group.CreatorId || !Group.IsMember(UserId))
            {
                return;
            }

            Habbo Habbo = BiosEmuThiago.GetHabboById(UserId);

            if (Habbo == null)
            {
                Session.SendNotification("Ocorreu um erro ao encontrar esse usuário!");
                return;
            }

            Group.MakeAdmin(UserId);

            Room Room = null;

            if (BiosEmuThiago.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room))
            {
                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(UserId);
                if (User != null)
                {
                    if (!User.Statusses.ContainsKey("flatctrl 3"))
                    {
                        User.SetStatus("flatctrl 3", "");
                    }
                    User.UpdateNeeded = true;
                    if (User.GetClient() != null)
                    {
                        User.GetClient().SendMessage(new YouAreControllerComposer(3));
                    }
                }
            }

            Session.SendMessage(new GroupMemberUpdatedComposer(GroupId, Habbo, 1));
        }
Ejemplo n.º 7
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int GroupId = Packet.PopInt();
            int UserId  = Packet.PopInt();

            Group Group = null;

            if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            if (Session.GetHabbo().Id != Group.CreatorId || !Group.IsMember(UserId))
            {
                return;
            }

            Habbo Habbo = PlusEnvironment.GetHabboById(UserId);

            if (Habbo == null)
            {
                Session.SendNotification("Oops, an error occurred whilst finding this user.");
                return;
            }

            Group.MakeAdmin(UserId);

            Room Room = null;

            if (PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room))
            {
                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(UserId);
                if (User != null)
                {
                    if (!User.Statusses.ContainsKey("flatctrl 3"))
                    {
                        User.SetStatus("flatctrl 3", "");
                    }
                    User.UpdateNeeded = true;
                    if (User.GetClient() != null)
                    {
                        User.GetClient().SendPacket(new YouAreControllerComposer(3));
                    }
                }
            }

            Session.SendPacket(new GroupMemberUpdatedComposer(GroupId, Habbo, 1));
        }
Ejemplo n.º 8
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int GroupId = Packet.PopInt();
            int UserId  = Packet.PopInt();

            Group Group = null;

            if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group))
            {
                return;
            }

            if (Session.GetHabbo().Id != Group.CreatorId || !Group.IsMember(UserId))
            {
                return;
            }

            Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId);

            if (Habbo == null)
            {
                return;
            }

            Group.MakeAdmin(UserId);

            Room Room = null;

            if (ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room))
            {
                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(UserId);
                if (User != null)
                {
                    if (!User._statusses.ContainsKey("flatctrl 3"))
                    {
                        User.SetStatus("flatctrl 3", "");
                    }
                    User.UpdateNeeded = true;
                    if (User.GetClient() != null)
                    {
                        User.GetClient().SendPacket(new YouAreControllerComposer(3));
                    }
                }
            }

            Session.SendPacket(new GroupMemberUpdatedComposer(GroupId, Habbo, 1));
        }
Ejemplo n.º 9
0
        public void Parse(GameClient session, ClientPacket packet)
        {
            int signId = packet.PopInt();

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().CurrentRoomId, out Room room))
            {
                return;
            }

            RoomUser user = room.GetRoomUserManager().GetRoomUserByHabbo(session.GetHabbo().Id);

            if (user == null)
            {
                return;
            }


            user.UnIdle();

            user.SetStatus("sign", Convert.ToString(signId));
            user.UpdateNeeded = true;
            user.SignTime     = PlusEnvironment.GetUnixTimestamp() + 5;
        }
Ejemplo n.º 10
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null)
            {
                return;
            }
            RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id);

            if (roomUserByHabbo == null)
            {
                return;
            }
            roomUserByHabbo.Unidle();
            int num = Packet.PopInt();

            if (roomUserByHabbo._statusses.ContainsKey("sign"))
            {
                roomUserByHabbo.RemoveStatus("sign");
            }
            roomUserByHabbo.SetStatus("sign", Convert.ToString(num));
            roomUserByHabbo.UpdateNeeded = true;
        }
Ejemplo n.º 11
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int  SignId = Packet.PopInt();
            Room Room;

            if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room))
            {
                return;
            }

            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

            if (User == null)
            {
                return;
            }


            User.UnIdle();

            User.SetStatus("sign", Convert.ToString(SignId));
            User.UpdateNeeded = true;
            User.SignTime     = PlusEnvironment.GetUnixTimestamp() + 5;
        }
Ejemplo n.º 12
0
        public void Execute(GameClient Session, Room Room, RoomUser UserRoom, string[] Params)
        {
            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null)
            {
                return;
            }
            RoomUser roomUserByHabbo = UserRoom;

            if (roomUserByHabbo == null)
            {
                return;
            }

            try
            {
                /*if (roomUserByHabbo.sentadoBol)
                 * {
                 * roomUserByHabbo.sentadoBol = false;
                 * roomUserByHabbo.RemoveStatus("sit");
                 * }*/
                if (roomUserByHabbo._statusses.ContainsKey("lay") || roomUserByHabbo._statusses.ContainsKey("sit"))
                {
                    return;
                }
                if (roomUserByHabbo.RotBody % 2 == 0 || roomUserByHabbo.transformation)
                {
                    if (roomUserByHabbo.RotBody == 4 || roomUserByHabbo.RotBody == 0 || roomUserByHabbo.transformation)
                    {
                        if (room.GetGameMap().CanWalk(roomUserByHabbo.X, roomUserByHabbo.Y + 1))
                        {
                            roomUserByHabbo.RotBody = 0;
                        }
                        else
                        {
                            return;
                        }
                    }
                    else
                    {
                        if (!room.GetGameMap().CanWalk(roomUserByHabbo.X + 1, roomUserByHabbo.Y))
                        {
                            return;
                        }
                    }

                    //roomUserByHabbo.AddStatus("lay", Convert.ToString((double) room.GetGameMap().Model.SqFloorHeight[roomUserByHabbo.X, roomUserByHabbo.Y] + 0.85).Replace(",", "."));
                    if (UserRoom.transformation)
                    {
                        roomUserByHabbo.SetStatus("lay", "");
                    }
                    else
                    {
                        roomUserByHabbo.SetStatus("lay", "0.7");
                    }
                    roomUserByHabbo.IsLay        = true;
                    roomUserByHabbo.UpdateNeeded = true;
                }
            }
            catch
            {
            }
        }
Ejemplo n.º 13
0
        public void Execute(GameClient Session, Room Room, RoomUser UserRoom, string[] Params)
        {
            if (Params.Length != 2)
            {
                return;
            }

            if (!Room.RpRoom || !Room.Pvp)
            {
                return;
            }

            RolePlayer Rp = UserRoom.Roleplayer;

            if (Rp == null)
            {
                return;
            }

            if (Rp.Dead || Rp.SendPrison)
            {
                return;
            }

            RoomUser TargetRoomUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Params[1].ToString());

            if (TargetRoomUser == null)
            {
                return;
            }

            RolePlayer RpTwo = TargetRoomUser.Roleplayer;

            if (RpTwo == null)
            {
                return;
            }

            if (TargetRoomUser.GetClient().GetHabbo().Id == Session.GetHabbo().Id)
            {
                return;
            }

            if (RpTwo.Dead || RpTwo.SendPrison)
            {
                return;
            }

            if (RpTwo.SendPrison)
            {
                return;
            }

            if (Math.Floor((double)((double)RpTwo.Health / (double)RpTwo.HealthMax) * 100) > 75)
            {
                UserRoom.OnChat("*Tente d'arrêter " + TargetRoomUser.GetUsername() + "*");
                UserRoom.SendWhisperChat(ButterflyEnvironment.GetLanguageManager().TryGetValue("rp.prisonnotallowed", Session.Langue));
                return;
            }

            if (!((Math.Abs((TargetRoomUser.X - UserRoom.X)) >= 2) || (Math.Abs((TargetRoomUser.Y - UserRoom.Y)) >= 2)))
            {
                UserRoom.OnChat("*Arrête et envoie en prison " + TargetRoomUser.GetUsername() + "*");

                TargetRoomUser.ApplyEffect(729, true);
                TargetRoomUser.RotBody = 2;
                TargetRoomUser.RotHead = 2;
                TargetRoomUser.SetStatus("sit", "0.5");
                TargetRoomUser.Freeze           = true;
                TargetRoomUser.FreezeEndCounter = 0;
                TargetRoomUser.IsSit            = true;
                TargetRoomUser.UpdateNeeded     = true;

                RpTwo.SendPrison  = true;
                RpTwo.PrisonTimer = 10 * 2;
            }

            //UserRoom.ApplyEffect(737, true);
            //UserRoom.TimerResetEffect = 2;

            if (UserRoom.FreezeEndCounter <= 2)
            {
                UserRoom.Freeze           = true;
                UserRoom.FreezeEndCounter = 2;
            }
        }
Ejemplo n.º 14
0
        public void Execute(GameClient Session, Room Room, RoomUser UserRoom, string[] Params)
        {
            if (Params.Length < 3)
            {
                return;
            }

            RoomUser Bot = Room.GetRoomUserManager().GetBotByName(Params[1]);

            if (Bot == null)
            {
                return;
            }

            switch (Params[2])
            {
            case "enable":
            {
                if (Params.Length < 4)
                {
                    break;
                }

                int.TryParse(Params[3], out int IntValue);

                if (!ButterflyEnvironment.GetGame().GetEffectsInventoryManager().EffectExist(IntValue, false))
                {
                    return;
                }

                if (Bot.CurrentEffect != IntValue)
                {
                    Bot.ApplyEffect(IntValue);
                }

                if (Bot.BotData.Enable != IntValue)
                {
                    Bot.BotData.Enable = IntValue;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET enable = '" + IntValue + "' WHERE id = " + Bot.BotData.Id);
                }
                break;
            }

            case "handitem":
            {
                if (Params.Length < 4)
                {
                    break;
                }

                int.TryParse(Params[3], out int IntValue);

                if (Bot.CarryItemID != IntValue)
                {
                    Bot.CarryItem(IntValue, true);
                }

                if (Bot.BotData.Handitem != IntValue)
                {
                    Bot.BotData.Handitem = IntValue;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET handitem = '" + IntValue + "' WHERE id = " + Bot.BotData.Id);
                }
                break;
            }

            case "rot":
            {
                if (Params.Length < 4)
                {
                    break;
                }

                int.TryParse(Params[3], out int IntValue);
                IntValue = (IntValue > 7 || IntValue < 0) ? 0 : IntValue;

                if (Bot.RotBody != IntValue)
                {
                    Bot.RotBody      = IntValue;
                    Bot.RotHead      = IntValue;
                    Bot.UpdateNeeded = true;
                }

                if (Bot.BotData.Rot != IntValue)
                {
                    Bot.BotData.Rot = IntValue;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET rotation = '" + Bot.RotBody + "' WHERE id = " + Bot.BotData.Id);
                }
                break;
            }

            case "sit":
            {
                if (Bot.BotData.Status == 1)
                {
                    Bot.BotData.Status = 0;

                    Bot.RemoveStatus("sit");
                    Bot.IsSit        = false;
                    Bot.UpdateNeeded = true;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET status = '0' WHERE id = " + Bot.BotData.Id);
                }
                else
                {
                    if (!Bot.IsSit)
                    {
                        Bot.SetStatus("sit", (Bot.IsPet) ? "" : "0.5");
                        Bot.IsSit        = true;
                        Bot.UpdateNeeded = true;
                    }

                    Bot.BotData.Status = 1;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET status = '1' WHERE id = " + Bot.BotData.Id);
                }
                break;
            }

            case "lay":
            {
                if (Bot.BotData.Status == 2)
                {
                    Bot.BotData.Status = 0;

                    Bot.RemoveStatus("lay");
                    Bot.IsSit        = false;
                    Bot.UpdateNeeded = true;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET status = '0' WHERE id = " + Bot.BotData.Id);
                }
                else
                {
                    if (!Bot.IsLay)
                    {
                        Bot.SetStatus("lay", (Bot.IsPet) ? "" : "0.7");
                        Bot.IsLay        = true;
                        Bot.UpdateNeeded = true;
                    }

                    Bot.BotData.Status = 2;

                    using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                        queryreactor.RunQuery("UPDATE bots SET status = '2' WHERE id = " + Bot.BotData.Id);
                }
                break;
            }
            }
        }
Ejemplo n.º 15
0
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            int UserId = Packet.PopInt();

            if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom)
            {
                return;
            }

            Room Room = Session.GetHabbo().CurrentRoom;

            if (Room == null)
            {
                return;
            }

            RoomUser RoomUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);

            if (RoomUser == null)
            {
                return;
            }

            RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByVirtualId(UserId);

            if (TargetUser == null)
            {
                return;
            }

            if (Session.GetHabbo().TradingLockExpiry > 0)
            {
                if (Session.GetHabbo().TradingLockExpiry > PlusEnvironment.GetUnixTimestamp())
                {
                    Session.SendNotification("You're currently banned from trading.");
                    return;
                }
                else
                {
                    Session.GetHabbo().TradingLockExpiry = 0;
                    Session.SendNotification("Your trading ban has now expired.");

                    using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                    {
                        dbClient.RunQuery("UPDATE `user_info` SET `trading_locked` = '0' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1");
                    }
                }
            }

            if (!Session.GetHabbo().GetPermissions().HasRight("room_trade_override"))
            {
                if (Room.TradeSettings == 0)
                {
                    Session.SendPacket(new TradingErrorComposer(6, TargetUser.GetUsername()));
                    return;
                }
                else if (Room.TradeSettings == 1 && Room.OwnerId != Session.GetHabbo().Id)
                {
                    Session.SendPacket(new TradingErrorComposer(6, TargetUser.GetUsername()));
                    return;
                }
            }

            if (RoomUser.IsTrading && RoomUser.TradePartner != TargetUser.UserId)
            {
                Session.SendPacket(new TradingErrorComposer(7, TargetUser.GetUsername()));
                return;
            }
            else if (TargetUser.IsTrading && TargetUser.TradePartner != RoomUser.UserId)
            {
                Session.SendPacket(new TradingErrorComposer(8, TargetUser.GetUsername()));
                return;
            }
            else if (!TargetUser.GetClient().GetHabbo().AllowTradingRequests)
            {
                Session.SendPacket(new TradingErrorComposer(4, TargetUser.GetUsername()));
                return;
            }
            else if (TargetUser.GetClient().GetHabbo().TradingLockExpiry > 0)
            {
                Session.SendPacket(new TradingErrorComposer(4, TargetUser.GetUsername()));
                return;
            }

            Trade Trade = null;

            if (!Room.GetTrading().StartTrade(RoomUser, TargetUser, out Trade))
            {
                Session.SendNotification("An error occured trying to start this trade");
                return;
            }

            if (TargetUser.HasStatus("trd"))
            {
                TargetUser.RemoveStatus("trd");
            }
            if (RoomUser.HasStatus("trd"))
            {
                RoomUser.RemoveStatus("trd");
            }

            TargetUser.SetStatus("trd");
            TargetUser.UpdateNeeded = true;
            RoomUser.SetStatus("trd");
            RoomUser.UpdateNeeded = true;

            Trade.SendPacket(new TradingStartComposer(RoomUser.UserId, TargetUser.UserId));
        }
Ejemplo n.º 16
0
        public void Hit(RoomUser Bot, int Dmg, Room Room, int pAggroVId, int pTeamId)
        {
            if (this.Dead)
            {
                return;
            }

            if (this.Health <= Dmg)
            {
                RoomUser User = Room.GetRoomUserManager().GetRoomUserByVirtualId(this.AggroVirtuelId);
                if (User != null && !User.IsBot)
                {
                    RolePlayer Rp = User.Roleplayer;
                    if (Rp != null)
                    {
                        Rp.AddExp(this.Config.Health);
                    }
                }

                this.Health         = 0;
                this.Dead           = true;
                this.DeadTimer      = this.Config.DeadTimer;
                this.AggroVirtuelId = 0;
                this.AggroTimer     = 0;
                this.ResetBot       = false;
                this.ResetBotTimer  = 0;
                this.HitCount       = 0;
                this.Dodge          = false;
                this.DodgeTimer     = 0;

                Bot.SetStatus("lay", (Bot.IsPet) ? "" : "0.7");
                Bot.Freeze           = true;
                Bot.FreezeEndCounter = 0;
                Bot.IsLay            = true;
                Bot.UpdateNeeded     = true;

                if (this.Config.MoneyDrop > 0)
                {
                    Room.GetRoomItemHandler().AddTempItem(Bot.VirtualId, this.Config.DropScriptId, Bot.SetX, Bot.SetY, Bot.Z, "1", this.Config.MoneyDrop, InteractionTypeTemp.MONEY);
                }
                if (this.Config.LootItemId > 0)
                {
                    RPItem Item = ButterflyEnvironment.GetGame().GetRoleplayManager().GetItemManager().GetItem(this.Config.LootItemId);
                    if (Item != null)
                    {
                        Room.GetRoomItemHandler().AddTempItem(Bot.VirtualId, 3996, Bot.SetX, Bot.SetY, Bot.Z, Item.Name, this.Config.LootItemId, InteractionTypeTemp.RPITEM);
                    }
                }

                Bot.OnChat("A été mis K.O. ! [" + this.Health + "/" + this.Config.Health + "]", (Bot.IsPet) ? 0 : 2, true);
            }
            else
            {
                this.Health   -= Dmg;
                this.SlowTimer = 6;

                this.ResetBot      = false;
                this.ResetBotTimer = 60;

                this.AggroTimer = 0;

                if (pTeamId == -1 || pTeamId != this.Config.TeamId)
                {
                    this.AggroVirtuelId = pAggroVId;
                }

                if (!this.Dodge)
                {
                    this.HitCount += 1;
                    if (this.HitCount % this.DodgeStartCount == 0)
                    {
                        this.Dodge           = true;
                        this.DodgeTimer      = 3;
                        this.DodgeStartCount = ButterflyEnvironment.GetRandomNumber(2, 4);
                    }
                }

                Bot.OnChat(string.Format(ButterflyEnvironment.GetLanguageManager().TryGetValue("rp.hit", Room.RoomData.Langue), this.Health, this.Config.Health, Dmg), (Bot.IsPet) ? 0 : 2, true);
            }
        }
Ejemplo n.º 17
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
			Room room = Session.GetHabbo().CurrentRoom;
            if (room == null)
Ejemplo n.º 18
0
        private void FreeTimeCycle(RoomUser Bot)
        {
            if (!this.IsAllowZone(Bot) || this.Health != this.Config.Health)
            {
                this.ResetBot      = true;
                this.ResetBotTimer = 60;

                if (this.Config.ResetPosition && !this.IsAllowZone(Bot))
                {
                    Bot.MoveTo(Bot.BotData.X, Bot.BotData.Y);
                }


                if (this.Health != this.Config.Health)
                {
                    Bot.ApplyEffect(4, true);
                    Bot.TimerResetEffect = 4;
                }

                return;
            }

            //Action bot
            if (this.ActionTimer > 0)
            {
                this.ActionTimer--;
                return;
            }

            if (Bot.IsWalking)
            {
                return;
            }

            this.ActionTimer = ButterflyEnvironment.GetRandomNumber(15, 30);
            if (this.ActionTimer >= 25 && !this.Config.ZombieMode)
            {
                if (this.ActionTimer == 30)
                {
                    if (Bot.RotBody != Bot.BotData.Rot)
                    {
                        Bot.RotHead      = Bot.BotData.Rot;
                        Bot.RotBody      = Bot.BotData.Rot;
                        Bot.UpdateNeeded = true;
                    }
                }
                else
                {
                    if (Bot.IsSit)
                    {
                        Bot.RemoveStatus("sit");
                        Bot.IsSit        = false;
                        Bot.UpdateNeeded = true;
                    }
                    else
                    {
                        if (Bot.RotBody % 2 == 0)
                        {
                            if (Bot.IsPet)
                            {
                                Bot.SetStatus("sit", "");
                            }
                            else
                            {
                                Bot.SetStatus("sit", "0.5");
                            }
                            Bot.IsSit        = true;
                            Bot.UpdateNeeded = true;
                        }
                    }
                }
            }
            else
            {
                if (this.Config.ZoneDistance > 0)
                {
                    //Bouge le bot aléatoirement dans sa zone
                    int LenghtX = ButterflyEnvironment.GetRandomNumber(0, this.Config.ZoneDistance);
                    int LenghtY = ButterflyEnvironment.GetRandomNumber(0, this.Config.ZoneDistance);
                    Bot.MoveTo(Bot.BotData.X + ((ButterflyEnvironment.GetRandomNumber(1, 2) == 2) ? -LenghtX : LenghtX), Bot.BotData.Y + ((ButterflyEnvironment.GetRandomNumber(1, 2) == 2) ? -LenghtY : LenghtY), true);
                }
            }
        }
Ejemplo n.º 19
0
        public void Parse(GameClient session, ClientPacket packet)
        {
            int userId = packet.PopInt();

            if (session == null || session.Habbo == null || !session.Habbo.InRoom)
            {
                return;
            }

            Room room = session.Habbo.CurrentRoom;

            if (room == null)
            {
                return;
            }

            RoomUser roomUser = room.GetRoomUserManager().GetRoomUserByHabbo(session.Habbo.Id);

            if (roomUser == null)
            {
                return;
            }

            RoomUser targetUser = room.GetRoomUserManager().GetRoomUserByVirtualId(userId);

            if (targetUser == null)
            {
                return;
            }

            if (session.Habbo.TradingLockExpiry > 0)
            {
                if (session.Habbo.TradingLockExpiry > PlusEnvironment.GetUnixTimestamp())
                {
                    session.SendNotification("You're currently banned from trading.");
                    return;
                }

                session.Habbo.TradingLockExpiry = 0;
                session.SendNotification("Your trading ban has now expired.");

                using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                {
                    dbClient.RunQuery("UPDATE `user_info` SET `trading_locked` = '0' WHERE `id` = '" + session.Habbo.Id + "' LIMIT 1");
                }
            }

            if (!session.Habbo.GetPermissions().HasRight("room_trade_override"))
            {
                if (room.TradeSettings == 0)
                {
                    session.SendPacket(new TradingErrorComposer(6, targetUser.GetUsername()));
                    return;
                }

                if (room.TradeSettings == 1 && room.OwnerId != session.Habbo.Id)
                {
                    session.SendPacket(new TradingErrorComposer(6, targetUser.GetUsername()));
                    return;
                }
            }

            if (roomUser.IsTrading && roomUser.TradePartner != targetUser.UserId)
            {
                session.SendPacket(new TradingErrorComposer(7, targetUser.GetUsername()));
                return;
            }

            if (targetUser.IsTrading && targetUser.TradePartner != roomUser.UserId)
            {
                session.SendPacket(new TradingErrorComposer(8, targetUser.GetUsername()));
                return;
            }

            if (!targetUser.GetClient().Habbo.AllowTradingRequests)
            {
                session.SendPacket(new TradingErrorComposer(4, targetUser.GetUsername()));
                return;
            }

            if (targetUser.GetClient().Habbo.TradingLockExpiry > 0)
            {
                session.SendPacket(new TradingErrorComposer(4, targetUser.GetUsername()));
                return;
            }

            if (!room.GetTrading().StartTrade(roomUser, targetUser, out Trade trade))
            {
                session.SendNotification("An error occured trying to start this trade");
                return;
            }

            if (targetUser.HasStatus("trd"))
            {
                targetUser.RemoveStatus("trd");
            }
            if (roomUser.HasStatus("trd"))
            {
                roomUser.RemoveStatus("trd");
            }

            targetUser.SetStatus("trd");
            targetUser.UpdateNeeded = true;
            roomUser.SetStatus("trd");
            roomUser.UpdateNeeded = true;

            trade.SendPacket(new TradingStartComposer(roomUser.UserId, targetUser.UserId));
        }
Ejemplo n.º 20
0
        public override void OnUserSay(RoomUser User, string Message)
        {
            RoomUser roomUser = this.GetRoomUser();

            if (roomUser.PetData.DBState != DatabaseUpdateState.NeedsInsert)
            {
                roomUser.PetData.DBState = DatabaseUpdateState.NeedsUpdate;
            }

            if (roomUser.PetData.OwnerId != User.GetClient().GetHabbo().Id)
            {
                return;
            }

            if (!Message.ToLower().StartsWith(roomUser.PetData.Name.ToLower() + " "))
            {
                return;
            }

            if (Message.ToLower().Equals(roomUser.PetData.Name.ToLower()))
            {
                roomUser.SetRot(Rotation.Calculate(roomUser.X, roomUser.Y, User.X, User.Y), false);
            }
            else
            {
                string input        = Message.Substring(roomUser.PetData.Name.ToLower().Length + 1);
                int    randomNumber = ButterflyEnvironment.GetRandomNumber(1, 8);
                if (roomUser.PetData.Energy > 10 && randomNumber < 6)
                {
                    this.RemovePetStatus();
                    switch (ButterflyEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(input))
                    {
                    case 0:     //Libre
                        this.RemovePetStatus();
                        Point randomWalkableSquare = this.GetRoom().GetGameMap().getRandomWalkableSquare(this.GetBotData().X, this.GetBotData().Y);
                        roomUser.MoveTo(randomWalkableSquare.X, randomWalkableSquare.Y);
                        roomUser.PetData.AddExpirience(10);
                        break;

                    case 1:     //Assis
                        this.RemovePetStatus();
                        roomUser.PetData.AddExpirience(10);
                        roomUser.SetStatus("sit", TextHandling.GetString(roomUser.Z));
                        roomUser.IsSit        = true;
                        roomUser.UpdateNeeded = true;
                        this.ActionTimer      = 25;
                        this.EnergyTimer      = 10;
                        break;

                    case 2:     //Couché
                        this.RemovePetStatus();
                        roomUser.SetStatus("lay", TextHandling.GetString(roomUser.Z));
                        roomUser.IsLay        = true;
                        roomUser.UpdateNeeded = true;
                        roomUser.PetData.AddExpirience(10);
                        this.ActionTimer = 30;
                        this.EnergyTimer = 5;
                        break;

                    case 3:
                        this.RemovePetStatus();
                        int pX = User.X;
                        int pY = User.Y;
                        this.ActionTimer = 30;
                        if (User.RotBody == 4)
                        {
                            pY = User.Y + 1;
                        }
                        else if (User.RotBody == 0)
                        {
                            pY = User.Y - 1;
                        }
                        else if (User.RotBody == 6)
                        {
                            pX = User.X - 1;
                        }
                        else if (User.RotBody == 2)
                        {
                            pX = User.X + 1;
                        }
                        else if (User.RotBody == 3)
                        {
                            pX = User.X + 1;
                            pY = User.Y + 1;
                        }
                        else if (User.RotBody == 1)
                        {
                            pX = User.X + 1;
                            pY = User.Y - 1;
                        }
                        else if (User.RotBody == 7)
                        {
                            pX = User.X - 1;
                            pY = User.Y - 1;
                        }
                        else if (User.RotBody == 5)
                        {
                            pX = User.X - 1;
                            pY = User.Y + 1;
                        }
                        roomUser.PetData.AddExpirience(10);
                        roomUser.MoveTo(pX, pY);
                        break;

                    case 4:     //demande
                        this.RemovePetStatus();
                        roomUser.PetData.AddExpirience(10);
                        roomUser.SetRot(Rotation.Calculate(roomUser.X, roomUser.Y, User.X, User.Y), false);
                        roomUser.SetStatus("beg", TextHandling.GetString(roomUser.Z));
                        roomUser.UpdateNeeded = true;
                        this.ActionTimer      = 25;
                        this.EnergyTimer      = 10;
                        break;

                    case 5:
                        this.RemovePetStatus();
                        roomUser.SetStatus("ded", TextHandling.GetString(roomUser.Z));
                        roomUser.UpdateNeeded = true;
                        roomUser.PetData.AddExpirience(10);
                        this.SpeechTimer = 45;
                        this.ActionTimer = 30;
                        break;

                    case 6:
                        break;

                    case 7:
                        break;

                    case 8:
                        break;

                    case 9:
                        this.RemovePetStatus();
                        roomUser.SetStatus("jmp", TextHandling.GetString(roomUser.Z));
                        roomUser.UpdateNeeded = true;
                        roomUser.PetData.AddExpirience(10);
                        this.EnergyTimer = 5;
                        this.SpeechTimer = 10;
                        this.ActionTimer = 5;
                        break;

                    case 10:
                        break;

                    case 11:
                        break;

                    case 12:
                        break;

                    case 13:     //Panier ?
                        this.RemovePetStatus();
                        roomUser.OnChat("ZzzZZZzzzzZzz", 0, false);
                        roomUser.SetStatus("lay", TextHandling.GetString(roomUser.Z));
                        roomUser.IsLay        = true;
                        roomUser.UpdateNeeded = true;
                        roomUser.PetData.AddExpirience(10);
                        this.EnergyTimer = 5;
                        this.SpeechTimer = 30;
                        this.ActionTimer = 45;
                        break;

                    case 14:
                        break;

                    case 15:
                        break;

                    case 16:
                        break;

                    case 17:
                        break;

                    case 18:
                        break;

                    case 19:
                        break;

                    case 20:
                        break;

                    default:
                        string[] strArray = ButterflyEnvironment.GetLanguageManager().TryGetValue("pet.unknowncommand", roomUser.mRoom.RoomData.Langue).Split(new char[1] {
                            ','
                        });
                        Random random = new Random();
                        roomUser.OnChat(strArray[random.Next(0, strArray.Length - 1)], 0, false);
                        break;
                    }
                    roomUser.PetData.PetEnergy(false);
                    roomUser.PetData.PetEnergy(false);
                }
                else
                {
                    this.RemovePetStatus();
                    if (!roomUser.mRoom.RoomMutePets)
                    {
                        if (roomUser.PetData.Energy < 10)
                        {
                            string[] strArray = ButterflyEnvironment.GetLanguageManager().TryGetValue("pet.tired", roomUser.mRoom.RoomData.Langue).Split(new char[1] {
                                ','
                            });
                            Random random = new Random();
                            roomUser.OnChat(strArray[random.Next(0, strArray.Length - 1)], 0, false);
                            roomUser.SetStatus("lay", TextHandling.GetString(roomUser.Z));
                            roomUser.IsLay   = true;
                            this.SpeechTimer = 50;
                            this.ActionTimer = 45;
                            this.EnergyTimer = 5;
                        }
                        else
                        {
                            string[] strArray = ButterflyEnvironment.GetLanguageManager().TryGetValue("pet.lazy", roomUser.mRoom.RoomData.Langue).Split(new char[1] {
                                ','
                            });
                            Random random = new Random();
                            roomUser.OnChat(strArray[random.Next(0, strArray.Length - 1)], 0, false);
                            roomUser.PetData.PetEnergy(false);
                        }
                    }
                }
            }
        }
Ejemplo n.º 21
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            if (Session.GetHabbo() == null)
            {
                return;
            }

            Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);

            if (room == null || !room.CheckRights(Session, true))
            {
                return;
            }

            StringBuilder DeleteParams = new StringBuilder();
            int           Amount       = Packet.PopInt();

            for (int index = 0; index < Amount; ++index)
            {
                if (index > 0)
                {
                    DeleteParams.Append(" OR ");
                }

                int UserId = Packet.PopInt();
                if (room.UsersWithRights.Contains(UserId))
                {
                    room.UsersWithRights.Remove(UserId);
                }

                DeleteParams.Append("room_id = '" + room.Id + "' AND user_id = '" + UserId + "'");

                RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserId);
                if (roomUserByHabbo != null && !roomUserByHabbo.IsBot)
                {
                    roomUserByHabbo.GetClient().SendPacket(new YouAreControllerComposer(0));

                    roomUserByHabbo.RemoveStatus("flatctrl 1");
                    roomUserByHabbo.SetStatus("flatctrl 0", "");
                    roomUserByHabbo.UpdateNeeded = true;
                }
                ServerPacket Response2 = new ServerPacket(ServerPacketHeader.FlatControllerRemovedMessageComposer);
                Response2.WriteInteger(room.Id);
                Response2.WriteInteger(UserId);
                Session.SendPacket(Response2);

                if (room.UsersWithRights.Count <= 0)
                {
                    ServerPacket Response3 = new ServerPacket(ServerPacketHeader.RoomRightsListMessageComposer);
                    Response3.WriteInteger(room.RoomData.Id);
                    Response3.WriteInteger(0);
                    Session.SendPacket(Response3);
                }
                else
                {
                    ServerPacket Response = new ServerPacket(ServerPacketHeader.RoomRightsListMessageComposer);
                    Response.WriteInteger(room.RoomData.Id);
                    Response.WriteInteger(room.UsersWithRights.Count);
                    foreach (int UserId2 in room.UsersWithRights)
                    {
                        Habbo habboForId = ButterflyEnvironment.GetHabboById(UserId2);
                        Response.WriteInteger(UserId2);
                        Response.WriteString((habboForId == null) ? "Undefined (error)" : habboForId.Username);
                    }
                    Session.SendPacket(Response);
                }
            }

            using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor())
                queryreactor.RunQuery("DELETE FROM room_rights WHERE " + (DeleteParams).ToString());
        }
Ejemplo n.º 22
0
        public void Hit(RoomUser User, int Dmg, Room Room, bool Ralentie = false, bool Murmur = false, bool Aggro = true)
        {
            if (this.Dead || this.SendPrison)
            {
                return;
            }

            if (this.Health <= Dmg)
            {
                this.Health    = 0;
                this.Dead      = true;
                this.DeadTimer = 30;

                User.SetStatus("lay", "0.7");
                User.Freeze           = true;
                User.FreezeEndCounter = 0;
                User.IsLay            = true;
                User.UpdateNeeded     = true;

                if (User.GetClient() != null)
                {
                    User.SendWhisperChat(ButterflyEnvironment.GetLanguageManager().TryGetValue("rp.userdead", User.GetClient().Langue));
                }

                int monaiePerdu = 0;
                if (this.Money > 10)
                {
                    monaiePerdu = (int)Math.Floor((double)(this.Money / 100) * 20);
                    this.Money -= monaiePerdu;
                }
                Room.GetRoomItemHandler().AddTempItem(User.VirtualId, 5461, User.SetX, User.SetY, User.Z, "1", monaiePerdu + 10, InteractionTypeTemp.MONEY);
                User.OnChat("A été mis K.O. ! [" + this.Health + "/" + this.HealthMax + "]", 0, true);
            }
            else
            {
                this.Health -= Dmg;
                if (Ralentie)
                {
                    if (this.SlowTimer == 0)
                    {
                        if (User.GetClient() != null)
                        {
                            User.SendWhisperChat(ButterflyEnvironment.GetLanguageManager().TryGetValue("rp.hitslow", User.GetClient().Langue));
                        }
                    }
                    this.SlowTimer = 6;
                }

                if (Aggro)
                {
                    this.AggroTimer = 30;
                }

                if (User.GetClient() != null)
                {
                    if (Murmur)
                    {
                        User.SendWhisperChat(string.Format(ButterflyEnvironment.GetLanguageManager().TryGetValue("rp.hit", User.GetClient().Langue), this.Health, this.HealthMax, Dmg), false);
                    }
                    else
                    {
                        User.OnChat(string.Format(ButterflyEnvironment.GetLanguageManager().TryGetValue("rp.hit", User.GetClient().Langue), this.Health, this.HealthMax, Dmg), 0, true);
                    }
                }
            }

            this.SendUpdate();
        }