コード例 #1
0
ファイル: PullCommand.cs プロジェクト: aromaa/Skylight
        public override bool OnUse(GameClient session, string[] args)
        {
            if (args.Length >= 2)
            {
                if (session.GetHabbo().HasPermission("cmd_push"))
                {
                    GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(args[1]);
                    if (target != null)
                    {
                        RoomUnit me    = session.GetHabbo().GetRoomSession().GetRoomUser();
                        RoomUnit other = target.GetHabbo().GetRoomSession().GetRoomUser();
                        if (target.GetHabbo().GetRoomSession().IsInRoom&& target.GetHabbo().GetRoomSession().CurrentRoomID == session.GetHabbo().GetRoomSession().CurrentRoomID&& (other.RestrictMovementType & RestrictMovementType.Client) == 0)
                        {
                            if (Math.Abs(me.X - other.X) < 3 && Math.Abs(me.Y - other.Y) < 3)
                            {
                                me.Speak("*pulls " + target.GetHabbo().Username + " to them*", false);
                                if (me.HeadRotation == 0)
                                {
                                    other.MoveTo(session.GetHabbo().GetRoomSession().GetRoomUser().X, session.GetHabbo().GetRoomSession().GetRoomUser().Y - 1);
                                }
                                else if (me.HeadRotation == 2)
                                {
                                    other.MoveTo(session.GetHabbo().GetRoomSession().GetRoomUser().X + 1, session.GetHabbo().GetRoomSession().GetRoomUser().Y);
                                }
                                else if (me.HeadRotation == 4)
                                {
                                    other.MoveTo(session.GetHabbo().GetRoomSession().GetRoomUser().X, session.GetHabbo().GetRoomSession().GetRoomUser().Y + 1);
                                }
                                else if (me.HeadRotation == 6)
                                {
                                    other.MoveTo(session.GetHabbo().GetRoomSession().GetRoomUser().X - 1, session.GetHabbo().GetRoomSession().GetRoomUser().Y);
                                }
                                else
                                {
                                    other.MoveTo(session.GetHabbo().GetRoomSession().GetRoomUser().X, session.GetHabbo().GetRoomSession().GetRoomUser().Y + 1);
                                }

                                return(true);
                            }
                        }
                    }
                }
            }

            return(false);
        }
コード例 #2
0
ファイル: PushCommand.cs プロジェクト: aromaa/Skylight
        public override bool OnUse(GameClient session, string[] args)
        {
            if (args.Length >= 2)
            {
                if (session.GetHabbo().HasPermission("cmd_push"))
                {
                    GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(args[1]);
                    if (target != null)
                    {
                        RoomUnit me    = session.GetHabbo().GetRoomSession().GetRoomUser();
                        RoomUnit other = target.GetHabbo().GetRoomSession().GetRoomUser();
                        if (target.GetHabbo().GetRoomSession().IsInRoom&& target.GetHabbo().GetRoomSession().CurrentRoomID == session.GetHabbo().GetRoomSession().CurrentRoomID&& (other.RestrictMovementType & RestrictMovementType.Client) == 0)
                        {
                            bool doit = true;
                            if ((me.X + 1 != other.X || me.Y != other.Y) && (me.X - 1 != other.X || me.Y != other.Y) && (me.Y + 1 != other.Y || me.X != other.X))
                            {
                                bool skip = false;
                                if (me.X - 1 == other.X)
                                {
                                    if (me.Y == other.Y)
                                    {
                                        skip = true;
                                    }
                                }

                                if (!skip)
                                {
                                    doit = me.X == other.X || me.Y == other.Y;
                                }
                            }

                            if (doit)
                            {
                                me.Speak("*pushes " + target.GetHabbo().Username + "*", false);
                                if (me.HeadRotation == 0)
                                {
                                    other.MoveTo(target.GetHabbo().GetRoomSession().GetRoomUser().X, target.GetHabbo().GetRoomSession().GetRoomUser().Y - 1);
                                }
                                else if (me.HeadRotation == 2)
                                {
                                    other.MoveTo(target.GetHabbo().GetRoomSession().GetRoomUser().X + 1, target.GetHabbo().GetRoomSession().GetRoomUser().Y);
                                }
                                else if (me.HeadRotation == 4)
                                {
                                    other.MoveTo(target.GetHabbo().GetRoomSession().GetRoomUser().X, target.GetHabbo().GetRoomSession().GetRoomUser().Y + 1);
                                }
                                else if (me.HeadRotation == 6)
                                {
                                    other.MoveTo(target.GetHabbo().GetRoomSession().GetRoomUser().X - 1, target.GetHabbo().GetRoomSession().GetRoomUser().Y);
                                }
                                else
                                {
                                    other.MoveTo(target.GetHabbo().GetRoomSession().GetRoomUser().X, target.GetHabbo().GetRoomSession().GetRoomUser().Y + 1);
                                }
                            }

                            return(true);
                        }
                    }
                }
            }

            return(false);
        }