Пример #1
0
 public override void OnUserEnterRoom(RoomUser User)
 {
     if (User.GetClient() != null && User.GetClient().GetHabbo() != null)
     {
         RoomUser Pet = GetRoomUser();
         if (Pet != null)
         {
             if (User.GetClient().GetHabbo().Username == Pet.PetData.OwnerName)
             {
                 string[] Speech  = QuasarEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("welcome.speech.pet" + Pet.PetData.Type);
                 string   rSpeech = Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)];
                 Pet.Chat(rSpeech, false);
             }
         }
     }
 }
Пример #2
0
 public override void OnUserEnterRoom(RoomUser User)
 {
     if (User.GetClient() != null && User.GetClient().GetHabbo() != null)
     {
         var Pet = GetRoomUser();
         if (Pet != null)
         {
             if (User.GetClient().GetHabbo().Username == Pet.PetData.OwnerName)
             {
                 var Speech  = Program.GameContext.GetChatManager().GetPetLocale().GetValue("welcome.speech.pet" + Pet.PetData.Type);
                 var rSpeech = Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)];
                 Pet.Chat(rSpeech);
             }
         }
     }
 }
Пример #3
0
        private int HandleRotation(int mode, int rotation)
        {
            switch (mode)
            {
            case 1:
            {
                rotation += 2;
                if (rotation > 6)
                {
                    rotation = 0;
                }
                break;
            }

            case 2:
            {
                rotation -= 2;
                if (rotation < 0)
                {
                    rotation = 6;
                }
                break;
            }

            case 3:
            {
                if (RandomNumber.GenerateRandom(0, 2) == 0)
                {
                    rotation += 2;
                    if (rotation > 6)
                    {
                        rotation = 0;
                    }
                }
                else
                {
                    rotation -= 2;
                    if (rotation < 0)
                    {
                        rotation = 6;
                    }
                }
                break;
            }
            }
            return(rotation);
        }
Пример #4
0
        public override void OnUserShout(RoomUser User, string Message)
        {
            if (User == null || User.GetClient() == null || User.GetClient().GetHabbo() == null)
            {
                return;
            }

            if (Gamemap.TileDistance(GetRoomUser().X, GetRoomUser().Y, User.X, User.Y) > 8)
            {
                return;
            }

            BotResponse Response = PlusEnvironment.GetGame().GetBotManager().GetResponse(GetBotData().AiType, Message);

            if (Response == null)
            {
                return;
            }

            switch (Response.ResponseType.ToLower())
            {
            case "say":
            case "dizer":
                GetRoomUser().Chat(Response.ResponseText.Replace("{username}", User.GetClient().GetHabbo().Username), false);
                break;

            case "shout":
            case "gritar":
                GetRoomUser().Chat(Response.ResponseText.Replace("{username}", User.GetClient().GetHabbo().Username), true);
                break;

            case "whisper":
            case "sussurrar":
                User.GetClient().SendMessage(new WhisperComposer(GetRoomUser().VirtualId, Response.ResponseText.Replace("{username}", User.GetClient().GetHabbo().Username), 0, 0));
                break;
            }

            if (Response.BeverageIds.Count > 0)
            {
                User.CarryItem(Response.BeverageIds[RandomNumber.GenerateRandom(0, (Response.BeverageIds.Count - 1))]);
            }
        }
Пример #5
0
        public override void OnUserShout(RoomUser User, string Message)
        {
            if (User == null || User.GetClient() == null || User.GetClient().GetHabbo() == null)
            {
                return;
            }

            if (Gamemap.TileDistance(GetRoomUser().X, GetRoomUser().Y, User.X, User.Y) > 8)
            {
                return;
            }

            var Response = Program.GameContext.GetBotManager().GetResponse(GetBotData().AiType, Message);

            if (Response == null)
            {
                return;
            }

            switch (Response.ResponseType.ToLower())
            {
            case "say":
                GetRoomUser().Chat(Response.ResponseText.Replace("{username}", User.GetClient().GetHabbo().Username));
                break;

            case "shout":
                GetRoomUser().Chat(Response.ResponseText.Replace("{username}", User.GetClient().GetHabbo().Username));
                break;

            case "whisper":
                User.GetClient().SendPacket(new WhisperComposer(GetRoomUser().VirtualId, Response.ResponseText.Replace("{username}", User.GetClient().GetHabbo().Username), 0, 0));
                break;
            }

            if (Response.BeverageIds.Count > 0)
            {
                User.CarryItem(Response.BeverageIds[RandomNumber.GenerateRandom(0, Response.BeverageIds.Count - 1)]);
            }
        }
Пример #6
0
        public override void OnUserSay(RoomUser User, string Message)
        {
            if (User == null)
            {
                return;
            }

            RoomUser Pet = GetRoomUser();

            if (Pet == null)
            {
                return;
            }

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

            if (Message.ToLower().Equals(Pet.PetData.Name.ToLower()))
            {
                Pet.SetRot(Rotation.Calculate(Pet.X, Pet.Y, User.X, User.Y), false);
                return;
            }

            //if (!Pet.Statusses.ContainsKey("gst thr"))
            //    Pet.Statusses.Add("gst, TextHandling.GetString(Pet.Z));

            if ((Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && User.GetClient().GetHabbo().Username.ToLower() == Pet.PetData.OwnerName.ToLower()) || (Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && BiosEmuThiago.GetGame().GetChatManager().GetPetCommands().TryInvoke(Message.Substring(Pet.PetData.Name.ToLower().Length + 1)) == 8))
            {
                string Command = Message.Substring(Pet.PetData.Name.ToLower().Length + 1);

                int r = RandomNumber.GenerateRandom(1, 8); // Made Random
                if (Pet.PetData.Energy > 10 && r < 6 || Pet.PetData.Level > 15 || BiosEmuThiago.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command) == 8)
                {
                    RemovePetStatus(); // Remove Status

                    switch (BiosEmuThiago.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command))
                    {
                        // TODO - Level you can use the commands at...



                        #region free

                    case 1:
                        RemovePetStatus();

                        //int randomX = BiosEmuThiago.GetRandomNumber(0, GetRoom().Model.MapSizeX);
                        //int randomY = BiosEmuThiago.GetRandomNumber(0, GetRoom().Model.MapSizeY);
                        Point nextCoord = GetRoom().GetGameMap().GetRandomWalkableSquare();
                        Pet.MoveTo(nextCoord.X, nextCoord.Y);

                        Pet.PetData.Addexperience(10);     // Give XP

                        break;

                        #endregion

                        #region here

                    case 2:

                        RemovePetStatus();

                        int NewX = User.X;
                        int NewY = User.Y;

                        ActionTimer = 30;     // Reset ActionTimer

                        #region Rotation

                        if (User.RotBody == 4)
                        {
                            NewY = User.Y + 1;
                        }
                        else if (User.RotBody == 0)
                        {
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 6)
                        {
                            NewX = User.X - 1;
                        }
                        else if (User.RotBody == 2)
                        {
                            NewX = User.X + 1;
                        }
                        else if (User.RotBody == 3)
                        {
                            NewX = User.X + 1;
                            NewY = User.Y + 1;
                        }
                        else if (User.RotBody == 1)
                        {
                            NewX = User.X + 1;
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 7)
                        {
                            NewX = User.X - 1;
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 5)
                        {
                            NewX = User.X - 1;
                            NewY = User.Y + 1;
                        }

                        #endregion

                        Pet.PetData.Addexperience(10);     // Give XP

                        Pet.MoveTo(NewX, NewY);
                        break;

                        #endregion

                        #region sit

                    case 3:
                        // Remove Status
                        RemovePetStatus();

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Add Status
                        Pet.Statusses.Add("sit", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        ActionTimer = 25;
                        EnergyTimer = 10;
                        break;

                        #endregion

                        #region lay

                    case 4:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        ActionTimer = 30;
                        EnergyTimer = 5;
                        break;

                        #endregion

                        #region dead

                    case 5:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("ded", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        SpeechTimer = 45;
                        ActionTimer = 30;

                        break;

                        #endregion

                        #region sleep

                    case 6:
                        // Remove Status
                        RemovePetStatus();

                        Pet.Chat("ZzzZZZzzzzZzz", false);
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        EnergyTimer = 5;
                        SpeechTimer = 30;
                        ActionTimer = 45;
                        break;

                        #endregion

                        #region jump

                    case 7:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("jmp", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        EnergyTimer = 5;
                        SpeechTimer = 10;
                        ActionTimer = 5;
                        break;

                        #endregion

                        #region breed
                    case 46:

                        break;
                        #endregion

                    default:
                        string[] Speech = BiosEmuThiago.GetGame().GetChatManager().GetPetLocale().GetValue("pet.unknowncommand");

                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);
                        break;
                    }
                    Pet.PetData.PetEnergy(false); // Remove Energy
                }
                else
                {
                    RemovePetStatus(); // Remove Status

                    if (Pet.PetData.Energy < 10)
                    {
                        //GetRoomUser refers to the pet
                        //User refers to Owner

                        RoomUser UserRiding = GetRoom().GetRoomUserManager().GetRoomUserByVirtualId(Pet.HorseID);;

                        if (UserRiding.RidingHorse)
                        {
                            Pet.Chat("Getof my sit", false);
                            UserRiding.RidingHorse = false;
                            Pet.RidingHorse        = false;
                            UserRiding.ApplyEffect(-1);
                            UserRiding.MoveTo(new Point(GetRoomUser().X + 1, GetRoomUser().Y + 1));
                        }

                        string[] Speech = BiosEmuThiago.GetGame().GetChatManager().GetPetLocale().GetValue("pet.tired");

                        var RandomSpeech = new Random();
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);

                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        SpeechTimer = 50;
                        ActionTimer = 45;
                        EnergyTimer = 5;
                    }
                    else
                    {
                        string[] Speech = BiosEmuThiago.GetGame().GetChatManager().GetPetLocale().GetValue("pet.lazy");

                        var RandomSpeech = new Random();
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);

                        Pet.PetData.PetEnergy(false); // Remove Energy
                    }
                }
            }
            //Pet = null;
        }
Пример #7
0
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int Data1      = Packet.PopInt(); // ELEMENTO 1
            int Data2      = Packet.PopInt(); // ELEMENTO 2
            int Data3      = Packet.PopInt(); // ELEMENTO 3
            int Data4      = Packet.PopInt(); // SELECTOR
            var RewardName = "";
            var NuxGift    = RavenEnvironment.GetGame().GetNuxUserGiftsListManager().NuxUserGiftsList;

            switch (Data4)
            {
            case 0:
                switch (NuxGift.Type[0])
                {
                case "diamonds":
                    string[] Posibility = NuxGift.Reward[0].Split(',');

                    int Posibility1 = int.Parse(Posibility[0]);
                    int Posibility2 = int.Parse(Posibility[1]);

                    int RewardDiamonds           = RandomNumber.GenerateRandom(Posibility1, Posibility2);
                    Session.GetHabbo().Diamonds += RewardDiamonds;
                    Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, RewardDiamonds, 5));
                    break;

                case "honor":
                    string[] Posibilitya = NuxGift.Reward[0].Split(',');

                    int Posibility1a = int.Parse(Posibilitya[0]);
                    int Posibility2a = int.Parse(Posibilitya[1]);

                    int RewardHonor = RandomNumber.GenerateRandom(Posibility1a, Posibility2a);
                    Session.GetHabbo().GOTWPoints += RewardHonor;
                    Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, RewardHonor, 103));
                    break;

                case "item":
                    int      RewardItem = RandomNumber.GenerateRandom(1, 10);
                    string[] Furnis     = NuxGift.Reward[0].Split(',');

                    string[] Present  = Furnis[0].Split(':');
                    string[] Present1 = Furnis[1].Split(':');
                    string[] Present2 = Furnis[2].Split(':');
                    string[] Present3 = Furnis[3].Split(':');
                    string[] Present4 = Furnis[4].Split(':');
                    string[] Present5 = Furnis[5].Split(':');
                    string[] Present6 = Furnis[6].Split(':');
                    string[] Present7 = Furnis[7].Split(':');
                    string[] Present8 = Furnis[8].Split(':');
                    string[] Present9 = Furnis[9].Split(':');

                    var RewardItemId = 0;

                    switch (RewardItem)
                    {
                    case 1:
                        RewardItemId = int.Parse(Present[0]);             // VIP - club_sofa
                        RewardName   = Present[1];
                        break;

                    case 2:
                        RewardItemId = int.Parse(Present1[0]);             // VIP - club_sofa
                        RewardName   = Present1[1];
                        break;

                    case 3:
                        RewardItemId = int.Parse(Present2[0]);             // VIP - club_sofa
                        RewardName   = Present2[1];
                        break;

                    case 4:
                        RewardItemId = int.Parse(Present3[0]);             // VIP - club_sofa
                        RewardName   = Present3[1];
                        break;

                    case 5:
                        RewardItemId = int.Parse(Present4[0]);             // VIP - club_sofa
                        RewardName   = Present4[1];
                        break;

                    case 6:
                        RewardItemId = int.Parse(Present5[0]);             // VIP - club_sofa
                        RewardName   = Present5[1];
                        break;

                    case 7:
                        RewardItemId = int.Parse(Present6[0]);             // VIP - club_sofa
                        RewardName   = Present6[1];
                        break;

                    case 8:
                        RewardItemId = int.Parse(Present7[0]);             // VIP - club_sofa
                        RewardName   = Present7[1];
                        break;

                    case 9:
                        RewardItemId = int.Parse(Present8[0]);             // VIP - club_sofa
                        RewardName   = Present8[1];
                        break;

                    case 10:
                        RewardItemId = int.Parse(Present9[0]);             // VIP - club_sofa
                        RewardName   = Present9[1];
                        break;
                    }

                    ItemData Item = null;
                    if (!RavenEnvironment.GetGame().GetItemManager().GetItem(RewardItemId, out Item))
                    {
                        return;
                    }

                    Item GiveItem = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "", "");
                    if (GiveItem != null)
                    {
                        Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem);
                        Session.SendMessage(RoomNotificationComposer.SendBubble("image2", "Acabas de recibir un " + RewardName + ".\n\n¡Corre, " + Session.GetHabbo().Username + ", revisa tu inventario, hay algo nuevo al parecer!", "inventory/open/furni"));
                        Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1));
                        Session.SendMessage(new FurniListUpdateComposer());
                    }

                    Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                    break;
                }
                break;

            case 1:
                switch (NuxGift.Type[1])
                {
                case "diamonds":
                    string[] Posibility = NuxGift.Reward[1].Split(',');

                    int Posibility1 = int.Parse(Posibility[0]);
                    int Posibility2 = int.Parse(Posibility[1]);

                    int RewardDiamonds           = RandomNumber.GenerateRandom(Posibility1, Posibility2);
                    Session.GetHabbo().Diamonds += RewardDiamonds;
                    Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, RewardDiamonds, 5));
                    break;

                case "honor":
                    string[] Posibilitya = NuxGift.Reward[1].Split(',');

                    int Posibility1a = int.Parse(Posibilitya[0]);
                    int Posibility2a = int.Parse(Posibilitya[1]);

                    int RewardHonor = RandomNumber.GenerateRandom(Posibility1a, Posibility2a);
                    Session.GetHabbo().GOTWPoints += RewardHonor;
                    Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, RewardHonor, 103));
                    break;

                case "item":
                    int      RewardItem = RandomNumber.GenerateRandom(1, 10);
                    string[] Furnis     = NuxGift.Reward[1].Split(',');

                    string[] Present  = Furnis[0].Split(':');
                    string[] Present1 = Furnis[1].Split(':');
                    string[] Present2 = Furnis[2].Split(':');
                    string[] Present3 = Furnis[3].Split(':');
                    string[] Present4 = Furnis[4].Split(':');
                    string[] Present5 = Furnis[5].Split(':');
                    string[] Present6 = Furnis[6].Split(':');
                    string[] Present7 = Furnis[7].Split(':');
                    string[] Present8 = Furnis[8].Split(':');
                    string[] Present9 = Furnis[9].Split(':');

                    var RewardItemId = 0;

                    switch (RewardItem)
                    {
                    case 1:
                        RewardItemId = int.Parse(Present[0]);             // VIP - club_sofa
                        RewardName   = Present[1];
                        break;

                    case 2:
                        RewardItemId = int.Parse(Present1[0]);             // VIP - club_sofa
                        RewardName   = Present1[1];
                        break;

                    case 3:
                        RewardItemId = int.Parse(Present2[0]);             // VIP - club_sofa
                        RewardName   = Present2[1];
                        break;

                    case 4:
                        RewardItemId = int.Parse(Present3[0]);             // VIP - club_sofa
                        RewardName   = Present3[1];
                        break;

                    case 5:
                        RewardItemId = int.Parse(Present4[0]);             // VIP - club_sofa
                        RewardName   = Present4[1];
                        break;

                    case 6:
                        RewardItemId = int.Parse(Present5[0]);             // VIP - club_sofa
                        RewardName   = Present5[1];
                        break;

                    case 7:
                        RewardItemId = int.Parse(Present6[0]);             // VIP - club_sofa
                        RewardName   = Present6[1];
                        break;

                    case 8:
                        RewardItemId = int.Parse(Present7[0]);             // VIP - club_sofa
                        RewardName   = Present7[1];
                        break;

                    case 9:
                        RewardItemId = int.Parse(Present8[0]);             // VIP - club_sofa
                        RewardName   = Present8[1];
                        break;

                    case 10:
                        RewardItemId = int.Parse(Present9[0]);             // VIP - club_sofa
                        RewardName   = Present9[1];
                        break;
                    }

                    ItemData Item = null;
                    if (!RavenEnvironment.GetGame().GetItemManager().GetItem(RewardItemId, out Item))
                    {
                        return;
                    }

                    Item GiveItem = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "", "");
                    if (GiveItem != null)
                    {
                        Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem);
                        Session.SendMessage(RoomNotificationComposer.SendBubble("image2", "Acabas de recibir un " + RewardName + ".\n\n¡Corre, " + Session.GetHabbo().Username + ", revisa tu inventario, hay algo nuevo al parecer!", "inventory/open/furni"));
                        Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1));
                        Session.SendMessage(new FurniListUpdateComposer());
                    }

                    Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                    break;
                }
                break;

            case 2:
                switch (NuxGift.Type[2])
                {
                case "diamonds":
                    string[] Posibility = NuxGift.Reward[2].Split(',');

                    int Posibility1 = int.Parse(Posibility[0]);
                    int Posibility2 = int.Parse(Posibility[1]);

                    int RewardDiamonds           = RandomNumber.GenerateRandom(Posibility1, Posibility2);
                    Session.GetHabbo().Diamonds += RewardDiamonds;
                    Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, RewardDiamonds, 5));
                    break;

                case "honor":
                    string[] Posibilitya = NuxGift.Reward[2].Split(',');

                    int Posibility1a = int.Parse(Posibilitya[0]);
                    int Posibility2a = int.Parse(Posibilitya[1]);

                    int RewardHonor = RandomNumber.GenerateRandom(Posibility1a, Posibility2a);
                    Session.GetHabbo().GOTWPoints += RewardHonor;
                    Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, RewardHonor, 103));
                    break;

                case "item":
                    int      RewardItem = RandomNumber.GenerateRandom(1, 10);
                    string[] Furnis     = NuxGift.Reward[2].Split(',');

                    string[] Present  = Furnis[0].Split(':');
                    string[] Present1 = Furnis[1].Split(':');
                    string[] Present2 = Furnis[2].Split(':');
                    string[] Present3 = Furnis[3].Split(':');
                    string[] Present4 = Furnis[4].Split(':');
                    string[] Present5 = Furnis[5].Split(':');
                    string[] Present6 = Furnis[6].Split(':');
                    string[] Present7 = Furnis[7].Split(':');
                    string[] Present8 = Furnis[8].Split(':');
                    string[] Present9 = Furnis[9].Split(':');

                    var RewardItemId = 0;

                    switch (RewardItem)
                    {
                    case 1:
                        RewardItemId = int.Parse(Present[0]);             // VIP - club_sofa
                        RewardName   = Present[1];
                        break;

                    case 2:
                        RewardItemId = int.Parse(Present1[0]);             // VIP - club_sofa
                        RewardName   = Present1[1];
                        break;

                    case 3:
                        RewardItemId = int.Parse(Present2[0]);             // VIP - club_sofa
                        RewardName   = Present2[1];
                        break;

                    case 4:
                        RewardItemId = int.Parse(Present3[0]);             // VIP - club_sofa
                        RewardName   = Present3[1];
                        break;

                    case 5:
                        RewardItemId = int.Parse(Present4[0]);             // VIP - club_sofa
                        RewardName   = Present4[1];
                        break;

                    case 6:
                        RewardItemId = int.Parse(Present5[0]);             // VIP - club_sofa
                        RewardName   = Present5[1];
                        break;

                    case 7:
                        RewardItemId = int.Parse(Present6[0]);             // VIP - club_sofa
                        RewardName   = Present6[1];
                        break;

                    case 8:
                        RewardItemId = int.Parse(Present7[0]);             // VIP - club_sofa
                        RewardName   = Present7[1];
                        break;

                    case 9:
                        RewardItemId = int.Parse(Present8[0]);             // VIP - club_sofa
                        RewardName   = Present8[1];
                        break;

                    case 10:
                        RewardItemId = int.Parse(Present9[0]);             // VIP - club_sofa
                        RewardName   = Present9[1];
                        break;
                    }

                    ItemData Item = null;
                    if (!RavenEnvironment.GetGame().GetItemManager().GetItem(RewardItemId, out Item))
                    {
                        return;
                    }

                    Item GiveItem = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "", "");
                    if (GiveItem != null)
                    {
                        Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem);
                        Session.SendMessage(RoomNotificationComposer.SendBubble("image2", "Acabas de recibir un " + RewardName + ".\n\n¡Corre, " + Session.GetHabbo().Username + ", revisa tu inventario, hay algo nuevo al parecer!", "inventory/open/furni"));
                        Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1));
                        Session.SendMessage(new FurniListUpdateComposer());
                    }

                    Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
                    break;
                }
                break;
            }
        }
Пример #8
0
        public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights)
        {
            if ((!string.IsNullOrEmpty(Item.FoundBy)))
            {
                if (Session.GetHabbo().Username != Item.FoundBy)
                {
                    Session.SendMessage(RoomNotificationComposer.SendBubble("easteregg", "¡Este huevo ya ha sido encontrado por " + Item.FoundBy + "!", ""));
                    return;
                }
            }
            else

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

            Room Room = Session.GetHabbo().CurrentRoom;

            if (Room == null)
            {
                return;
            }

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

            if (Actor == null)
            {
                return;
            }

            if (Gamemap.TileDistance(Actor.X, Actor.Y, Item.GetX, Item.GetY) < 2)
            {
                Item.FoundBy = Session.GetHabbo().Username;
            }

            var tick = int.Parse(Item.ExtraData);

            if (tick < 19)
            {
                if (Gamemap.TileDistance(Actor.X, Actor.Y, Item.GetX, Item.GetY) < 2)
                {
                    tick++;
                    Item.ExtraData = tick.ToString();
                    Item.UpdateState(true, true);
                    int    X = Item.GetX, Y = Item.GetY, Rot = Item.Rotation;
                    Double Z = Item.GetZ;
                    if (tick == 19)
                    {
                        using (var dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
                        {
                            Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id);
                            dbClient.runFastQuery("DELETE FROM items WHERE id = " + Item.Id);
                        }

                        // Empezamos a generar el tipo de premio según lotería.
                        int RewardType = RandomNumber.GenerateRandom(1, 20);
                        switch (RewardType)
                        {
                        case 1:
                            int RewardDiamonds           = RandomNumber.GenerateRandom(1, 10);
                            Session.GetHabbo().Diamonds += RewardDiamonds;
                            Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, RewardDiamonds, 5));
                            Session.SendWhisper("Acabas de ganar " + RewardDiamonds + " diamantes con este Huevo de Pascua, ¡qué suerte!.", 34);
                            break;

                        case 2:
                        case 3:
                        case 4:
                        case 5:
                        case 6:
                        case 8:
                        case 10:
                        case 11:
                        case 12:
                        case 13:
                        case 14:
                        case 15:
                        case 16:
                        case 17:
                        case 18:
                        case 19:
                        case 20:
                            Session.GetHabbo().GOTWPoints += 1;
                            Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, 1, 103));
                            Session.SendMessage(RoomNotificationComposer.SendBubble("easteregg", "Acabas de conseguir un Huevo de Pascua, colecciona varios para canjearlos por premios.", ""));
                            break;

                        case 7:
                            ItemData RewardItemPrize = null;
                            if (!RavenEnvironment.GetGame().GetItemManager().GetItem(9780, out RewardItemPrize))
                            {
                                return;
                            }

                            Item GiveItem = ItemFactory.CreateSingleItemNullable(RewardItemPrize, Session.GetHabbo(), "", "");
                            if (GiveItem != null)
                            {
                                Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem);
                                Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1));
                                Session.SendMessage(new FurniListUpdateComposer());
                                Session.SendMessage(RoomNotificationComposer.SendBubble("easteregg", "Acabas de recibir un Huevo de Pascua raro.\n\n¡Corre, " + Session.GetHabbo().Username + ", haz click aquí y revisa tu inventario!", "inventory/open"));
                            }

                            Session.GetHabbo().GetInventoryComponent().UpdateItems(true);
                            break;
                        }

                        RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Actor.GetClient(), "ACH_EggCracker", 1);
                    }
                }
            }
        }
Пример #9
0
        public override void OnTimerTick()
        {
            if (GameLength == 95)
            {
                // Notice to users that betting is enabled during this timelapse.
                GetRoomUser().Chat("Apuestas activas, abran juego.", false, 33);
                BetsOpen = true;
            }

            if (GameLength == 15)
            {
                // Notice to users that betting is enabled during this timelapse.

                GetRoomUser().Chat("Apuestas cerradas, buena suerte.", false, 33);
                BetsOpen = false;
            }

            if (GameLength <= 0)
            {
                // Generate the number from the roullette.
                #region Serialize Numbers

                int num = RandomNumber.GenerateRandom(0, 36);

                switch (num)
                {
                case 0:
                    GetRoomUser().Chat("<font color=\"#04B404\"><b>0</b>.</font>", false, 33);
                    break;

                case 1:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>1</b>, rojo impar y falta.</font>", false, 33);
                    break;

                case 2:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>2</b>, negro par y falta.</font>", false, 33);
                    break;

                case 3:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>3</b>, rojo impar y falta.</font>", false, 33);
                    break;

                case 4:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>4</b>, negro par y falta.</font>", false, 33);
                    break;

                case 5:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>5</b>, rojo impar y falta.</font>", false, 33);
                    break;

                case 6:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>6</b>, negro par y falta.</font>", false, 33);
                    break;

                case 7:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>7</b>, rojo impar y falta.</font>", false, 33);
                    break;

                case 8:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>8</b>, negro par y falta.</font>", false, 33);
                    break;

                case 9:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>9</b>, rojo impar y falta.</font>", false, 33);
                    break;

                case 10:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>10</b>, negro par y falta.</font>", false, 33);
                    break;

                case 11:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>11</b>, negro impar y falta.</font>", false, 33);
                    break;

                case 12:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>12</b>, rojo par y falta.</font>", false, 33);
                    break;

                case 13:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>13</b>, negro impar y falta.</font>", false, 33);
                    break;

                case 14:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>14</b>, rojo par y falta.</font>", false, 33);
                    break;

                case 15:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>15</b>, negro impar y falta.</font>", false, 33);
                    break;

                case 16:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>16</b>, rojo par y falta.</font>", false, 33);
                    break;

                case 17:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>17</b>, negro impar y falta.</font>", false, 33);
                    break;

                case 18:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>18</b>, rojo par y falta.</font>", false, 33);
                    break;

                case 19:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>19</b>, rojo impar y pasa.</font>", false, 33);
                    break;

                case 20:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>20</b>, negro par y pasa.</font>", false, 33);
                    break;

                case 21:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>21</b>, rojo impar y pasa.</font>", false, 33);
                    break;

                case 22:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>22</b>, negro par y pasa.</font>", false, 33);
                    break;

                case 23:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>23</b>, rojo impar y pasa.</font>", false, 33);
                    break;

                case 24:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>24</b>, negro par y pasa.</font>", false, 33);
                    break;

                case 25:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>25</b>, rojo impar y pasa.</font>", false, 33);
                    break;

                case 26:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>26</b>, negro par y pasa.</font>", false, 33);
                    break;

                case 27:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>27</b>, rojo impar y pasa.</font>", false, 33);
                    break;

                case 28:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>28</b>, negro par y pasa.</font>", false, 33);
                    break;

                case 29:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>29</b>, negro impar y pasa.</font>", false, 33);
                    break;

                case 30:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>30</b>, rojo par y pasa.</font>", false, 33);
                    break;

                case 31:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>31</b>, negro impar y pasa.</font>", false, 33);
                    break;

                case 32:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>32</b>, rojo par y pasa.</font>", false, 33);
                    break;

                case 33:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>33</b>, negro impar y pasa.</font>", false, 33);
                    break;

                case 34:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>34</b>, rojo par y pasa.</font>", false, 33);
                    break;

                case 35:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>35</b>, negro impar y pasa.</font>", false, 33);
                    break;

                case 36:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>36</b>, rojo par y pasa.</font>", false, 33);
                    break;
                }
                #endregion

                foreach (KeyValuePair <int, CasinoDataLocura> pair in Data1)
                {
                    int userId             = pair.Key;
                    CasinoDataLocura Data2 = pair.Value;

                    if (Data2.bet == num)
                    {
                        GameClient client = NeonEnvironment.GetGame().GetClientManager().GetClientByUserID(Data2.userId);
                        if (client is GameClient)
                        {
                            int d = (int)Math.Ceiling(Data2.quantity * offerMultiplier);
                            client.GetHabbo().Diamonds += d;
                            client.SendMessage(new HabboActivityPointNotificationComposer(client.GetHabbo().Diamonds, d, 5));
                        }
                    }
                }

                Data1.Clear();
                offerMultiplier = 1.2;
                Bets            = 1;



                // Reset the timer of the round.
                GameLength = 100;
            }
            else
            {
                GameLength--;
            }

            GetRoomUser().Chat(GameLength + "", false, 33);
        }
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            int Data1      = Packet.PopInt(); // ELEMENTO 1
            int Data2      = Packet.PopInt(); // ELEMENTO 2
            int Data3      = Packet.PopInt(); // ELEMENTO 3
            int Data4      = Packet.PopInt(); // SELECTOR
            var RewardName = "";

            switch (Data4)
            {
            case 0:
                int RewardDiamonds           = RandomNumber.GenerateRandom(0, 5);
                Session.GetHabbo().Diamonds += RewardDiamonds;
                Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, 0, 5));
                Session.SendMessage(RoomNotificationComposer.SendBubble("diamonds", "Você acabou de ganha " + RewardDiamonds + " diamantes.", ""));
                break;

            case 1:
                int RewardGotw = RandomNumber.GenerateRandom(25, 50);
                Session.GetHabbo().GOTWPoints += RewardGotw;
                Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, RewardGotw, 103));
                break;

            case 2:
                int RewardItem   = RandomNumber.GenerateRandom(1, 10);
                var RewardItemId = 0;

                switch (RewardItem)
                {
                case 1:
                    RewardItemId = 49231247;         // Pacos de Notas
                    RewardName   = "Pacos de Notas";
                    break;

                case 2:
                    RewardItemId = 2607;         // CD Antigo
                    RewardName   = "CD Antigo";
                    break;

                case 3:
                    RewardItemId = 179;         // Pato de Borracha
                    RewardName   = "Pato de Borracha";
                    break;

                case 4:
                    RewardItemId = 3226;         // Gnoma
                    RewardName   = "Gnoma";
                    break;

                case 5:
                    RewardItemId = 3155;         // Cadeira Mursh
                    RewardName   = "Cadeira Mursh";
                    break;

                case 6:
                    RewardItemId = 3291;         // Mão
                    RewardName   = "Mão";
                    break;

                case 7:
                    RewardItemId = 206;         // Abóbora
                    RewardName   = "Abóbora";
                    break;

                case 8:
                    RewardItemId = 9159;         // Teia de Aranha
                    RewardName   = "Teia de Aranha";
                    break;

                case 9:
                    RewardItemId = 2064;         // Moeda
                    RewardName   = "Moeda";
                    break;

                case 10:
                    RewardItemId = 2064;         // Moeda
                    RewardName   = "Moeda";
                    break;
                }
                ItemData Item = null;
                if (!BiosEmuThiago.GetGame().GetItemManager().GetItem(RewardItemId, out Item))
                {
                    return;
                }

                Item GiveItem = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "", "");
                if (GiveItem != null)
                {
                    Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem);

                    Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1));
                    Session.SendMessage(new FurniListUpdateComposer());
                    Session.SendMessage(RoomNotificationComposer.SendBubble("voucher", "Você acabou de receber um " + RewardName + ".\n\nCorre, " + Session.GetHabbo().Username + ", Verifique o seu inventário, há algo novo aparentemente!", ""));
                }

                Session.GetHabbo().GetInventoryComponent().UpdateItems(true);
                break;
            }
            BiosEmuThiago.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_AnimationRanking", 1);
        }
Пример #11
0
        public override void OnUserSay(RoomUser User, string Message)
        {
            if (User == null)
            {
                return;
            }

            var Pet = GetRoomUser();

            if (Pet == null)
            {
                return;
            }

            if (Pet.PetData.DbState != DatabaseUpdateState.NeedsInsert)
            {
                Pet.PetData.DbState = DatabaseUpdateState.NeedsUpdate;
            }
            if (Message.ToLower().Equals(Pet.PetData.Name.ToLower()))
            {
                Pet.SetRot(Rotation.Calculate(Pet.X, Pet.Y, User.X, User.Y), false);
                return;
            }

            //if (!Pet.Statusses.ContainsKey("gst thr"))
            //    Pet.Statusses.Add("gst thr", TextHandling.GetString(Pet.Z));
            if (Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") &&
                User.GetClient().GetHabbo().Username.ToLower() == Pet.PetData.OwnerName.ToLower() ||
                Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") &&
                PlusEnvironment.GetGame().GetChatManager().GetPetCommands()
                .TryInvoke(Message.Substring(Pet.PetData.Name.ToLower().Length + 1)) == 8)
            {
                var Command = Message.Substring(Pet.PetData.Name.ToLower().Length + 1);
                var r       = RandomNumber.GenerateRandom(1, 8); // Made Random
                if (Pet.PetData.Energy > 10 && r < 6 ||
                    Pet.PetData.Level > 15 ||
                    PlusEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command) == 8)
                {
                    RemovePetStatus(); // Remove Status
                    switch (PlusEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command))
                    {
                    // TODO - Level you can use the commands at...
                    case 1:
                        RemovePetStatus();

                        //int randomX = PlusEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeX);
                        //int randomY = PlusEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeY);
                        var nextCoord = GetRoom().GetGameMap().GetRandomWalkableSquare();
                        Pet.MoveTo(nextCoord.X, nextCoord.Y);
                        Pet.PetData.Addexperience(10);     // Give XP
                        break;

                    case 2:
                        RemovePetStatus();
                        var NewX = User.X;
                        var NewY = User.Y;
                        ActionTimer = 30;     // Reset ActionTimer
                        if (User.RotBody == 4)
                        {
                            NewY = User.Y + 1;
                        }
                        else if (User.RotBody == 0)
                        {
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 6)
                        {
                            NewX = User.X - 1;
                        }
                        else if (User.RotBody == 2)
                        {
                            NewX = User.X + 1;
                        }
                        else if (User.RotBody == 3)
                        {
                            NewX = User.X + 1;
                            NewY = User.Y + 1;
                        }
                        else if (User.RotBody == 1)
                        {
                            NewX = User.X + 1;
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 7)
                        {
                            NewX = User.X - 1;
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 5)
                        {
                            NewX = User.X - 1;
                            NewY = User.Y + 1;
                        }
                        Pet.PetData.Addexperience(10);     // Give XP
                        Pet.MoveTo(NewX, NewY);
                        break;

                    case 3:

                        // Remove Status
                        RemovePetStatus();
                        Pet.PetData.Addexperience(10);     // Give XP

                        // Add Status
                        Pet.Statusses.Add("sit", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;
                        ActionTimer      = 25;
                        EnergyTimer      = 10;
                        break;

                    case 4:

                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;
                        Pet.PetData.Addexperience(10);     // Give XP
                        ActionTimer = 30;
                        EnergyTimer = 5;
                        break;

                    case 5:

                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("ded", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;
                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        SpeechTimer = 45;
                        ActionTimer = 30;
                        break;

                    case 6:

                        // Remove Status
                        RemovePetStatus();
                        Pet.Chat("ZzzZZZzzzzZzz", false);
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;
                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        EnergyTimer = 5;
                        SpeechTimer = 30;
                        ActionTimer = 45;
                        break;

                    case 7:

                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("jmp", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;
                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        EnergyTimer = 5;
                        SpeechTimer = 10;
                        ActionTimer = 5;
                        break;

                    case 46:
                        break;

                    default:
                        var Speech = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.unknowncommand");
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);
                        break;
                    }

                    Pet.PetData.PetEnergy(false); // Remove Energy
                }
                else
                {
                    RemovePetStatus(); // Remove Status
                    if (Pet.PetData.Energy < 10)
                    {
                        var Speech       = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.tired");
                        var RandomSpeech = new Random();
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;
                        SpeechTimer      = 50;
                        ActionTimer      = 45;
                        EnergyTimer      = 5;
                    }
                    else
                    {
                        var Speech       = PlusEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.lazy");
                        var RandomSpeech = new Random();
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);
                        Pet.PetData.PetEnergy(false); // Remove Energy
                    }
                }
            }

            //Pet = null;
        }
        public override void OnTimerTick()
        {
            if (GameLength == 95)
            {
                GetRoomUser().Chat("Apostas ativas, jogo aberto.", false, 33);
                BetsOpen = true;
            }

            if (GameLength == 15)
            {
                GetRoomUser().Chat("Apostas fechadas, boa sorte.", false, 33);
                BetsOpen = false;
            }

            if (GameLength <= 0)
            {
                #region Serialize Numbers

                int num = RandomNumber.GenerateRandom(0, 36);

                switch (num)
                {
                case 0:
                    GetRoomUser().Chat("<font color=\"#04B404\"><b>0</b>.</font>", false, 33);
                    break;

                case 1:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>1</b>, vermelho e desaparecido.</font>", false, 33);
                    break;

                case 2:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>2</b>, par preto e falha.</font>", false, 33);
                    break;

                case 3:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>3</b>, vermelho e desaparecido.</font>", false, 33);
                    break;

                case 4:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>4</b>, par preto e falha.</font>", false, 33);
                    break;

                case 5:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>5</b>, vermelho e desaparecido.</font>", false, 33);
                    break;

                case 6:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>6</b>, par preto e falha.</font>", false, 33);
                    break;

                case 7:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>7</b>, vermelho e desaparecido.</font>", false, 33);
                    break;

                case 8:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>8</b>, par preto e falha.</font>", false, 33);
                    break;

                case 9:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>9</b>, vermelho e desaparecido.</font>", false, 33);
                    break;

                case 10:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>10</b>, par preto e falha.</font>", false, 33);
                    break;

                case 11:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>11</b>, preto estranho e desaparecido.</font>", false, 33);
                    break;

                case 12:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>12</b>, par vermelho e falha.</font>", false, 33);
                    break;

                case 13:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>13</b>, preto estranho e desaparecido.</font>", false, 33);
                    break;

                case 14:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>14</b>, par vermelho e falha.</font>", false, 33);
                    break;

                case 15:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>15</b>, preto estranho e desaparecido.</font>", false, 33);
                    break;

                case 16:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>16</b>, par vermelho e falha.</font>", false, 33);
                    break;

                case 17:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>17</b>, preto estranho e desaparecido.</font>", false, 33);
                    break;

                case 18:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>18</b>, par vermelho e falha.</font>", false, 33);
                    break;

                case 19:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>19</b>, vermelho estranho e vai.</font>", false, 33);
                    break;

                case 20:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>20</b>, par preto e passas.</font>", false, 33);
                    break;

                case 21:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>21</b>, vermelho estranho e vai.</font>", false, 33);
                    break;

                case 22:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>22</b>, par preto e passas.</font>", false, 33);
                    break;

                case 23:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>23</b>, vermelho estranho e vai.</font>", false, 33);
                    break;

                case 24:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>24</b>, par preto e passas.</font>", false, 33);
                    break;

                case 25:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>25</b>, vermelho estranho e vai.</font>", false, 33);
                    break;

                case 26:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>26</b>, par preto e passas.</font>", false, 33);
                    break;

                case 27:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>27</b>, vermelho estranho e vai.</font>", false, 33);
                    break;

                case 28:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>28</b>, par preto e passas.</font>", false, 33);
                    break;

                case 29:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>29</b>, estranho e preto.</font>", false, 33);
                    break;

                case 30:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>30</b>, par vermelho e passas.</font>", false, 33);
                    break;

                case 31:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>31</b>, estranho e preto.</font>", false, 33);
                    break;

                case 32:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>32</b>, par vermelho e passas.</font>", false, 33);
                    break;

                case 33:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>33</b>, estranho e preto.</font>", false, 33);
                    break;

                case 34:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>34</b>, par vermelho e passas.</font>", false, 33);
                    break;

                case 35:
                    GetRoomUser().Chat("<font color=\"#1C1C1C\"><b>35</b>, estranho e preto.</font>", false, 33);
                    break;

                case 36:
                    GetRoomUser().Chat("<font color=\"#B40404\"><b>36</b>, par vermelho e passas.</font>", false, 33);
                    break;
                }
                #endregion

                foreach (KeyValuePair <int, CasinoDataLocura> pair in Data1)
                {
                    int userId             = pair.Key;
                    CasinoDataLocura Data2 = pair.Value;

                    if (Data2.bet == num)
                    {
                        GameClient client = BiosEmuThiago.GetGame().GetClientManager().GetClientByUserID(Data2.userId);
                        if (client is GameClient)
                        {
                            int d = (int)Math.Ceiling(Data2.quantity * offerMultiplier);
                            client.GetHabbo().Diamonds += d;
                            client.SendMessage(new HabboActivityPointNotificationComposer(client.GetHabbo().Diamonds, d, 5));
                        }
                    }
                }

                Data1.Clear();
                offerMultiplier = 1.2;
                Bets            = 1;

                GameLength = 100;
            }
            else
            {
                GameLength--;
            }

            if (GameLength == 20)
            {
                GetRoomUser().Chat("90/100 segundos", false, 33);
            }

            if (GameLength == 30)
            {
                GetRoomUser().Chat("70/100 segundos", false, 33);
            }

            if (GameLength == 50)
            {
                GetRoomUser().Chat("50/100 segundos", false, 33);
            }

            if (GameLength == 70)
            {
                GetRoomUser().Chat("30/100 segundos", false, 33);
            }

            if (GameLength == 90)
            {
                GetRoomUser().Chat("10/100 segundos", false, 33);
            }
        }
Пример #13
0
        public FurniMaticRewards GetRandomReward()
        {
            int level = 0;
            int rand5 = RandomNumber.GenerateRandom(1, 2000);

            if (rand5 == 1999)
            {
                level = 5;
                List <FurniMaticRewards> Reward = GetRewardsByLevel(level);
                int prize5 = RandomNumber.GenerateRandom(1, 2);
                if (prize5 == 1)
                {
                    return(Reward[0]);
                }
                else
                {
                    return(Reward[1]);
                }
            }

            int rand4 = RandomNumber.GenerateRandom(1, 250);

            if (rand4 == 199)
            {
                level = 4;
                List <FurniMaticRewards> Reward = GetRewardsByLevel(level);
                int prize4 = RandomNumber.GenerateRandom(1, 2);
                if (prize4 == 1)
                {
                    return(Reward[0]);
                }
                else
                {
                    return(Reward[1]);
                }
            }

            int rand3 = RandomNumber.GenerateRandom(1, 100);

            if (rand3 == 80)
            {
                level = 3;
                List <FurniMaticRewards> Reward = GetRewardsByLevel(level);
                int prize3 = RandomNumber.GenerateRandom(1, 4);
                if (prize3 == 1)
                {
                    return(Reward[0]);
                }
                if (prize3 == 2)
                {
                    return(Reward[1]);
                }
                if (prize3 == 3)
                {
                    return(Reward[2]);
                }
                if (prize3 == 4)
                {
                    return(Reward[3]);
                }
            }

            int rand2 = RandomNumber.GenerateRandom(1, 25);

            if (rand2 == 20)
            {
                level = 2;
                List <FurniMaticRewards> Reward = GetRewardsByLevel(level);
                int prize2 = RandomNumber.GenerateRandom(1, 3);
                if (prize2 == 1)
                {
                    return(Reward[0]);
                }
                if (prize2 == 2)
                {
                    return(Reward[1]);
                }
                if (prize2 == 3)
                {
                    return(Reward[2]);
                }
            }

            else
            {
                level = 1;
            }

            List <FurniMaticRewards> possibleRewards = GetRewardsByLevel(level);

            if (possibleRewards != null && possibleRewards.Count >= 1)
            {
                return(possibleRewards[new Random().Next(0, (possibleRewards.Count - 1))]);
            }
            else
            {
                return(new FurniMaticRewards(0, 470, 0));
            }
        }
Пример #14
0
        public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights)
        {
            // Revisar la cantidad de diamantes que tiene.
            if (Session.GetHabbo().Diamonds <= 0)
            {
                Session.SendWhisper("Para poder apostar debes tener diamantes, ahora mismo tienes 0.", 34);
                return;
            }

            if (Session.GetHabbo()._bet > Session.GetHabbo().Diamonds)
            {
                Session.SendWhisper("Estás apostando más diamantes de los que tienes.", 34);
                return;
            }

            if (Session.GetHabbo()._bet <= 0)
            {
                Session.SendWhisper("No puedes apostar 0 diamantes. Utiliza el siguiente comando para apostar:", 34);
                Session.SendWhisper("\":apostar %cantidad%\"", 34);

                return;
            }

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

            Room Room = Session.GetHabbo().CurrentRoom;

            if (Room == null)
            {
                return;
            }

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

            if (Actor == null)
            {
                return;
            }

            if (Gamemap.TileDistance(Actor.X, Actor.Y, Item.GetX, Item.GetY) < 2)
            {
                int Bet = Session.GetHabbo()._bet;

                Session.GetHabbo().Diamonds -= Bet;
                Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, -Bet, 5));

                int Random1 = RandomNumber.GenerateRandom(1, 3);
                switch (Random1)
                {
                case 1:
                    Rand1 = "¥";
                    break;

                case 2:
                    Rand1 = "|";
                    break;

                case 3:
                    Rand1 = "ª";
                    break;
                }

                int Random2 = RandomNumber.GenerateRandom(1, 3);
                switch (Random2)
                {
                case 1:
                    Rand2 = "¥";
                    break;

                case 2:
                    Rand2 = "|";
                    break;

                case 3:
                    Rand2 = "ª";
                    break;
                }

                int Random3 = RandomNumber.GenerateRandom(1, 3);
                switch (Random3)
                {
                case 1:
                    Rand3 = "¥";
                    break;

                case 2:
                    Rand3 = "|";
                    break;

                case 3:
                    Rand3 = "ª";
                    break;
                }
                RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
                if (User == null || User.GetClient() == null)
                {
                    return;
                }

                Session.SendWhisper("[ " + Rand1 + " - " + Rand2 + " - " + Rand3 + " ]", 34);
                Item.ExtraData = "1";
                Item.UpdateState(true, true);

                new Thread(() =>
                {
                    Thread.Sleep(1000);
                    Item.ExtraData = "0";
                    Item.UpdateState(true, true);
                }).Start();

                int Paga = RandomNumber.GenerateRandom(1, 5);
                switch (Paga)
                {
                case 1:
                    paga = 1;
                    break;

                case 2:
                    paga = 2;
                    break;

                case 3:
                    paga = 3;
                    break;

                case 4:
                    paga = 4;
                    break;

                case 5:
                    paga = 5;
                    break;

                case 6:
                    paga = 6;
                    break;
                }

                if (Random1 == Random2 && Random1 == Random3 && Random3 == Random2)
                {
                    //  ¥ - Estrella - » Trebol - ª Calavera
                    switch (Random1)
                    {
                    case 1:
                        Session.GetHabbo().Diamonds += Bet * 7;
                        Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, -Bet, 5));
                        Session.SendWhisper("Has ganado " + Bet * 7 + " diamantes con una triple estrella.", 34);
                        RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Actor.GetClient(), "ACH_StarBet", 1);
                        break;

                    case 2:
                        Session.GetHabbo().Diamonds += Bet * paga;
                        Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, -Bet, 5));
                        Session.SendWhisper("Has ganado " + Bet * paga + " diamantes con un triple corazón.", 34);
                        RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Actor.GetClient(), "ACH_HeartBet", 1);
                        break;

                    case 3:
                        Session.GetHabbo().Diamonds += Bet * paga;
                        Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, -Bet, 5));
                        Session.SendWhisper("Has ganado " + Bet * paga + " diamantes con una triple calavera.", 34);
                        RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Actor.GetClient(), "ACH_SkullBet", 1);
                        break;
                    }
                }

                RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Actor.GetClient(), "ACH_GeneralBet", 1);
                return;
            }
        }
Пример #15
0
        public override void OnTimerTick()
        {
            var Pet = GetRoomUser();

            if (Pet == null)
            {
                return;
            }


            #region Speech

            if (SpeechTimer <= 0)
            {
                if (Pet.PetData.DBState != PetDatabaseUpdateState.NeedsInsert)
                {
                    Pet.PetData.DBState = PetDatabaseUpdateState.NeedsUpdate;
                }

                if (Pet != null)
                {
                    var RandomSpeech = new Random();
                    RemovePetStatus();

                    var Speech  = Program.GameContext.GetChatManager().GetPetLocale().GetValue("speech.pet" + Pet.PetData.Type);
                    var rSpeech = Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)];

                    if (rSpeech.Length != 3)
                    {
                        Pet.Chat(rSpeech);
                    }
                    else
                    {
                        Pet.Statusses.Add(rSpeech, StringUtilities.GetString(Pet.Z));
                    }
                }
                SpeechTimer = RandomNumber.GenerateNewRandom(20, 120);
            }
            else
            {
                SpeechTimer--;
            }

            #endregion

            #region Actions

            if (ActionTimer <= 0)
            {
                try
                {
                    RemovePetStatus();
                    ActionTimer = RandomNumber.GenerateRandom(15, 40 + GetRoomUser().PetData.VirtualId);
                    if (!GetRoomUser().RidingHorse)
                    {
                        // Remove Status
                        RemovePetStatus();

                        var nextCoord = GetRoom().GetGameMap().GetRandomWalkableSquare();
                        if (GetRoomUser().CanWalk)
                        {
                            GetRoomUser().MoveTo(nextCoord.X, nextCoord.Y);
                        }
                    }
                }
                catch (Exception e)
                {
                    Logger.Error(e);
                }
            }
            else
            {
                ActionTimer--;
            }

            #endregion

            #region Energy

            if (EnergyTimer <= 0)
            {
                RemovePetStatus();                                  // Remove Status

                Pet.PetData.PetEnergy(true);                        // Add Energy

                EnergyTimer = RandomNumber.GenerateRandom(30, 120); // 2 Min Max
            }
            else
            {
                EnergyTimer--;
            }

            #endregion
        }
Пример #16
0
        public bool TryAuthenticate(string AuthTicket)
        {
            try
            {
                UserData userData = UserDataFactory.GetUserData(AuthTicket, out byte errorCode);
                if (errorCode == 1 || errorCode == 2)
                {
                    Disconnect();
                    return(false);
                }

                #region Ban Checking

                //Let's have a quick search for a ban before we successfully authenticate..
                ModerationBan BanRecord;
                if (!string.IsNullOrEmpty(MachineId))
                {
                    if (NeonEnvironment.GetGame().GetModerationManager().IsBanned(MachineId, out BanRecord))
                    {
                        if (NeonEnvironment.GetGame().GetModerationManager().MachineBanCheck(MachineId))
                        {
                            Disconnect();
                            return(false);
                        }
                    }
                }

                if (NeonEnvironment.GetGame().GetModerationManager().IsBanned(userData.user.Username, out BanRecord))
                {
                    if (NeonEnvironment.GetGame().GetModerationManager().UsernameBanCheck(userData.user.Username))
                    {
                        Disconnect();
                        return(false);
                    }
                }

                #endregion

                NeonEnvironment.GetGame().GetClientManager().RegisterClient(this, userData.userID, userData.user.Username);
                _habbo = userData.user;


                if (_habbo != null)
                {
                    ssoTicket = AuthTicket;
                    userData.user.Init(this, userData);


                    SendMessage(new AuthenticationOKComposer());
                    SendMessage(new AvatarEffectsComposer(_habbo.Effects().GetAllEffects));
                    SendMessage(new NavigatorSettingsComposer(_habbo.HomeRoom));
                    SendMessage(new FavouritesComposer(userData.user.FavoriteRooms));
                    SendMessage(new FigureSetIdsComposer(_habbo.GetClothing().GetClothingAllParts));
                    SendMessage(new UserRightsComposer(_habbo));
                    SendMessage(new AvailabilityStatusComposer());
                    SendMessage(new AchievementScoreComposer(_habbo.GetStats().AchievementPoints));


                    //var habboClubSubscription = new ServerPacket(ServerPacketHeader.HabboClubSubscriptionComposer);
                    //habboClubSubscription.WriteString("club_habbo");
                    //habboClubSubscription.WriteInteger(0);
                    //habboClubSubscription.WriteInteger(0);
                    //habboClubSubscription.WriteInteger(0);
                    //habboClubSubscription.WriteInteger(2);
                    //habboClubSubscription.WriteBoolean(false);
                    //habboClubSubscription.WriteBoolean(false);
                    //habboClubSubscription.WriteInteger(0);
                    //habboClubSubscription.WriteInteger(0);
                    //habboClubSubscription.WriteInteger(0);
                    //SendMessage(habboClubSubscription);

                    SendMessage(new BuildersClubMembershipComposer());
                    SendMessage(new CfhTopicsInitComposer());

                    SendMessage(new BadgeDefinitionsComposer(NeonEnvironment.GetGame().GetAchievementManager()._achievements));
                    SendMessage(new SoundSettingsComposer(_habbo.ClientVolume, _habbo.ChatPreference, _habbo.AllowMessengerInvites, _habbo.FocusPreference, FriendBarStateUtility.GetInt(_habbo.FriendbarState)));

                    if (GetHabbo().GetMessenger() != null)
                    {
                        GetHabbo().GetMessenger().OnStatusChanged(true);
                    }

                    if (_habbo.Rank < 2 && !NeonStaticGameSettings.HotelOpenForUsers)
                    {
                        SendMessage(new SendHotelAlertLinkEventComposer("Actualmente solo el Equipo Adminsitrativo puede entrar al hotel para comprobar que todo está bien antes de que los usuarios puedan entrar. Vuelve a intentarlo en unos minutos, podrás encontrar más información en nuestro Facebook.", NeonEnvironment.GetDBConfig().DBData["facebook_url"]));
                        Thread.Sleep(10000);
                        Disconnect();
                        return(false);
                    }

                    if (!string.IsNullOrEmpty(MachineId))
                    {
                        if (_habbo.MachineId != MachineId)
                        {
                            using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor())
                            {
                                dbClient.SetQuery("UPDATE `users` SET `machine_id` = @MachineId WHERE `id` = @id LIMIT 1");
                                dbClient.AddParameter("MachineId", MachineId);
                                dbClient.AddParameter("id", _habbo.Id);
                                dbClient.RunQuery();
                            }
                        }

                        _habbo.MachineId = MachineId;
                    }
                    if (NeonEnvironment.GetGame().GetPermissionManager().TryGetGroup(_habbo.Rank, out PermissionGroup PermissionGroup))
                    {
                        if (!string.IsNullOrEmpty(PermissionGroup.Badge))
                        {
                            if (!_habbo.GetBadgeComponent().HasBadge(PermissionGroup.Badge))
                            {
                                _habbo.GetBadgeComponent().GiveBadge(PermissionGroup.Badge, true, this);
                            }
                        }
                    }

                    if (NeonEnvironment.GetGame().GetSubscriptionManager().TryGetSubscriptionData(_habbo.VIPRank, out SubscriptionData SubData))
                    {
                        if (!string.IsNullOrEmpty(SubData.Badge))
                        {
                            if (!_habbo.GetBadgeComponent().HasBadge(SubData.Badge))
                            {
                                _habbo.GetBadgeComponent().GiveBadge(SubData.Badge, true, this);
                            }
                        }
                    }

                    if (!NeonEnvironment.GetGame().GetCacheManager().ContainsUser(_habbo.Id))
                    {
                        NeonEnvironment.GetGame().GetCacheManager().GenerateUser(_habbo.Id);
                    }

                    _habbo.InitProcess();

                    GetHabbo()._lastitems = new Dictionary <int, CatalogItem>();
                    //ICollection<MessengerBuddy> Friends = new List<MessengerBuddy>();
                    //foreach (MessengerBuddy Buddy in this.GetHabbo().GetMessenger().GetFriends().ToList())
                    //{
                    //    if (Buddy == null)
                    //        continue;

                    //    GameClient Friend = NeonEnvironment.GetGame().GetClientManager().GetClientByUserID(Buddy.Id);
                    //    if (Friend == null)
                    //        continue;
                    //    string figure = this.GetHabbo().Look;


                    //    Friend.SendMessage(RoomNotificationComposer.SendBubble("usr/look/" + this.GetHabbo().Username + "", this.GetHabbo().Username + " se ha conectado a " + NeonEnvironment.GetDBConfig().DBData["hotel.name"] + ".", ""));

                    //}

                    if (GetHabbo()._NUX)
                    {
                        SendMessage(new MassEventComposer("habbopages/bienvenida.txt"));
                    }
                    else
                    {
                        SendMessage(new MassEventComposer("habbopages/welk.txt?249"));
                    }


                    if (NeonEnvironment.GetDBConfig().DBData["pin.system.enable"] == "0")
                    {
                        GetHabbo().StaffOk = true;
                    }

                    if (GetHabbo().StaffOk)
                    {
                        if (GetHabbo().GetPermissions().HasRight("mod_tickets"))
                        {
                            SendMessage(new ModeratorInitComposer(
                                            NeonEnvironment.GetGame().GetModerationManager().UserMessagePresets,
                                            NeonEnvironment.GetGame().GetModerationManager().RoomMessagePresets,
                                            NeonEnvironment.GetGame().GetModerationManager().GetTickets));
                        }
                    }

                    if (GetHabbo().Rank > 5 || GetHabbo()._guidelevel > 0)
                    {
                        HelperToolsManager.AddHelper(_habbo.GetClient(), false, true, true);
                        SendMessage(new HandleHelperToolComposer(true));
                    }

                    //SendMessage(new CampaignCalendarDataComposer(_habbo.calendarGift));
                    //if (int.Parse(NeonEnvironment.GetDBConfig().DBData["advent.calendar.enable"]) == 1) // Tk Custom By Whats
                    //    SendMessage(new MassEventComposer("openView/calendar"));

                    if (NeonEnvironment.GetGame().GetTargetedOffersManager().TargetedOffer != null)
                    {
                        NeonEnvironment.GetGame().GetTargetedOffersManager().Initialize(NeonEnvironment.GetDatabaseManager().GetQueryReactor());
                        TargetedOffers TargetedOffer = NeonEnvironment.GetGame().GetTargetedOffersManager().TargetedOffer;

                        if (TargetedOffer.Expire > NeonEnvironment.GetIUnixTimestamp())
                        {
                            if (TargetedOffer.Limit != GetHabbo()._TargetedBuy)
                            {
                                SendMessage(NeonEnvironment.GetGame().GetTargetedOffersManager().TargetedOffer.Serialize());
                            }
                        }
                        else if (TargetedOffer.Expire == -1)
                        {
                            if (TargetedOffer.Limit != GetHabbo()._TargetedBuy)
                            {
                                SendMessage(NeonEnvironment.GetGame().GetTargetedOffersManager().TargetedOffer.Serialize());
                            }
                        }
                        else
                        {
                            using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor())
                            {
                                dbClient.runFastQuery("UPDATE targeted_offers SET active = 'false'");
                            }

                            using (IQueryAdapter dbClient2 = NeonEnvironment.GetDatabaseManager().GetQueryReactor())
                            {
                                dbClient2.runFastQuery("UPDATE users SET targeted_buy = '0' WHERE targeted_buy > 0");
                            }
                        }
                    }

                    if (_habbo.MysticBoxes.Count == 0 && _habbo.MysticKeys.Count == 0)
                    {
                        int    box      = RandomNumber.GenerateRandom(1, 8);
                        string boxcolor = "";
                        switch (box)
                        {
                        case 1:
                            boxcolor = "purple";
                            break;

                        case 2:
                            boxcolor = "blue";
                            break;

                        case 3:
                            boxcolor = "green";
                            break;

                        case 4:
                            boxcolor = "yellow";
                            break;

                        case 5:
                            boxcolor = "lilac";
                            break;

                        case 6:
                            boxcolor = "orange";
                            break;

                        case 7:
                            boxcolor = "turquoise";
                            break;

                        case 8:
                            boxcolor = "red";
                            break;
                        }

                        int    key      = RandomNumber.GenerateRandom(1, 8);
                        string keycolor = "";
                        switch (key)
                        {
                        case 1:
                            keycolor = "purple";
                            break;

                        case 2:
                            keycolor = "blue";
                            break;

                        case 3:
                            keycolor = "green";
                            break;

                        case 4:
                            keycolor = "yellow";
                            break;

                        case 5:
                            keycolor = "lilac";
                            break;

                        case 6:
                            keycolor = "orange";
                            break;

                        case 7:
                            keycolor = "turquoise";
                            break;

                        case 8:
                            keycolor = "red";
                            break;
                        }

                        _habbo.MysticKeys.Add(keycolor);
                        _habbo.MysticBoxes.Add(boxcolor);

                        using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor())
                        {
                            dbClient.runFastQuery("INSERT INTO user_mystic_data(user_id, mystic_keys, mystic_boxes) VALUES(" + GetHabbo().Id + ", '" + keycolor + "', '" + boxcolor + "');");
                        }
                    }

                    SendMessage(new MysteryBoxDataComposer(_habbo.GetClient()));

                    SendMessage(new HCGiftsAlertComposer());

                    //if(!GetHabbo()._NUX)
                    //{
                    //    DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
                    //    dtDateTime = dtDateTime.AddSeconds(GetHabbo().LastOnline);

                    //    if ((DateTime.Now - dtDateTime).TotalDays > 2)
                    //    {
                    //        //NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(_habbo.GetClient(), "ACH_Login", 1, true);
                    //        NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(_habbo.GetClient(), "ACH_RegistrationDuration", 1);
                    //    }

                    //    else if ((DateTime.Now - dtDateTime).TotalDays > 1 && (DateTime.Now - dtDateTime).TotalDays < 2)
                    //    {
                    //        NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(_habbo.GetClient(), "ACH_Login", 1);
                    //        NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(_habbo.GetClient(), "ACH_RegistrationDuration", 1);

                    //        if(GetHabbo().Rank > 2 || GetHabbo()._guidelevel > 0)
                    //        {
                    //            NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(_habbo.GetClient(), "ACH_GuideEnrollmentLifetime", 1);
                    //        }
                    //    }
                    //}


                    NeonEnvironment.GetGame().GetRewardManager().CheckRewards(this);

                    if (GetHabbo()._NUX)
                    {
                        NeonEnvironment.GetGame().GetClientManager().StaffAlert(new RoomInviteComposer(int.MinValue, GetHabbo().Username + " acaba de registrarse en Keko."));

                        GetHabbo()._NUX = false;
                        using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor())
                        {
                            dbClient.runFastQuery("UPDATE users SET nux_user = '******' WHERE id = " + GetHabbo().Id + ";");
                        }
                    }

                    return(true);
                }
            }
            catch (Exception e)
            {
                Logging.LogCriticalException("Bug during user login: " + e);
            }
            return(false);
        }
Пример #17
0
        public override void OnUserSay(RoomUser User, string Message)
        {
            if (User == null)
            {
                return;
            }

            RoomUser Pet = GetRoomUser();

            if (Pet == null)
            {
                return;
            }

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

            if (Message.ToLower().Equals(Pet.PetData.Name.ToLower()))
            {
                Pet.SetRot(Rotation.Calculate(Pet.X, Pet.Y, User.X, User.Y), false);
                return;
            }

            //if (!Pet.Statusses.ContainsKey("gst thr"))
            //    Pet.Statusses.Add("gst thr", TextHandling.GetString(Pet.Z));

            if ((Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && User.GetClient().GetHabbo().Username.ToLower() == Pet.PetData.OwnerName.ToLower()) || (Message.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && QuasarEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Message.Substring(Pet.PetData.Name.ToLower().Length + 1)) == 8))
            {
                string Command = Message.Substring(Pet.PetData.Name.ToLower().Length + 1);

                int r = RandomNumber.GenerateRandom(1, 8); // Made Random
                if (Pet.PetData.Energy > 10 && r < 6 || Pet.PetData.Level > 15 || QuasarEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command) == 8)
                {
                    RemovePetStatus(); // Remove Status

                    switch (QuasarEnvironment.GetGame().GetChatManager().GetPetCommands().TryInvoke(Command))
                    {
                        // TODO - Level you can use the commands at...



                        #region [1] Rennen

                    case 1:
                        RemovePetStatus();

                        //int randomX = QuasarEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeX);
                        //int randomY = QuasarEnvironment.GetRandomNumber(0, GetRoom().Model.MapSizeY);
                        Point nextCoord = GetRoom().GetGameMap().getRandomWalkableSquare();
                        Pet.MoveTo(nextCoord.X, nextCoord.Y);

                        Pet.PetData.Addexperience(10);     // Give XP

                        break;

                        #endregion

                        #region [2] Kom Hier

                    case 2:

                        RemovePetStatus();

                        int NewX = User.X;
                        int NewY = User.Y;

                        ActionTimer = 30;     // Reset ActionTimer

                        #region Draaien

                        if (User.RotBody == 4)
                        {
                            NewY = User.Y + 1;
                        }
                        else if (User.RotBody == 0)
                        {
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 6)
                        {
                            NewX = User.X - 1;
                        }
                        else if (User.RotBody == 2)
                        {
                            NewX = User.X + 1;
                        }
                        else if (User.RotBody == 3)
                        {
                            NewX = User.X + 1;
                            NewY = User.Y + 1;
                        }
                        else if (User.RotBody == 1)
                        {
                            NewX = User.X + 1;
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 7)
                        {
                            NewX = User.X - 1;
                            NewY = User.Y - 1;
                        }
                        else if (User.RotBody == 5)
                        {
                            NewX = User.X - 1;
                            NewY = User.Y + 1;
                        }

                        #endregion

                        Pet.PetData.Addexperience(10);     // Give XP

                        Pet.MoveTo(NewX, NewY);
                        break;

                        #endregion

                        #region [3] Zitten

                    case 3:
                        // Remove Status
                        RemovePetStatus();

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Add Status
                        Pet.Statusses.Add("sit", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        ActionTimer = 25;
                        EnergyTimer = 10;
                        break;

                        #endregion

                        #region [4] Liggen

                    case 4:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        ActionTimer = 30;
                        EnergyTimer = 5;
                        break;

                        #endregion

                        #region [5] Lig Dood

                    case 5:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("ded", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        SpeechTimer = 45;
                        ActionTimer = 30;

                        break;

                        #endregion

                        #region [6] Slapen

                    case 6:
                        // Remove Status
                        RemovePetStatus();

                        Pet.Chat("ZzzZZZzzzzZzz", false);
                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        EnergyTimer = 5;
                        SpeechTimer = 30;
                        ActionTimer = 45;
                        break;

                        #endregion

                        #region [7] Springen

                    case 7:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Statusses.Add("jmp", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        EnergyTimer = 5;
                        SpeechTimer = 10;
                        ActionTimer = 5;
                        break;

                        #endregion

                        #region [8] Tellen
                    case 8:
                        // Remove Status
                        RemovePetStatus();

                        // Add Status
                        Pet.Chat("1..3...39 : 3 = 13 tot de macht 38,5.. huh?", false);
                        Pet.Statusses.Add("count", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        Pet.PetData.Addexperience(10);     // Give XP

                        // Don't move to speak for a set amount of time.
                        SpeechTimer = 45;
                        ActionTimer = 30;
                        break;
                        #endregion

                    default:
                        string[] Speech = QuasarEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.unknowncommand");

                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);
                        break;
                    }
                    Pet.PetData.PetEnergy(false); // Remove Energy
                }
                else
                {
                    RemovePetStatus(); // Remove Status

                    if (Pet.PetData.Energy < 10)
                    {
                        string[] Speech = QuasarEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.tired");

                        var RandomSpeech = new Random();
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);

                        Pet.Statusses.Add("lay", TextHandling.GetString(Pet.Z));
                        Pet.UpdateNeeded = true;

                        SpeechTimer = 50;
                        ActionTimer = 45;
                        EnergyTimer = 5;
                    }
                    else
                    {
                        string[] Speech = QuasarEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("pet.lazy");

                        var RandomSpeech = new Random();
                        Pet.Chat(Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)], false);

                        Pet.PetData.PetEnergy(false); // Remove Energy
                    }
                }
            }
            //Pet = null;
        }
Пример #18
0
        private Point HandleMovement(int Mode, Point Position)
        {
            Point NewPos = new Point();

            switch (Mode)
            {
            case 0:
            {
                NewPos = Position;
                break;
            }

            case 1:
            {
                switch (RandomNumber.GenerateRandom(1, 8))
                {
                case 1:
                    NewPos = new Point(Position.X + 1, Position.Y);
                    break;

                case 2:
                    NewPos = new Point(Position.X - 1, Position.Y);
                    break;

                case 3:
                    NewPos = new Point(Position.X, Position.Y + 1);
                    break;

                case 4:
                    NewPos = new Point(Position.X, Position.Y - 1);
                    break;

                case 5:
                    NewPos = new Point(Position.X + 1, Position.Y + 1);
                    break;

                case 6:
                    NewPos = new Point(Position.X - 1, Position.Y - 1);
                    break;

                case 7:
                    NewPos = new Point(Position.X - 1, Position.Y + 1);
                    break;

                case 8:
                    NewPos = new Point(Position.X + 1, Position.Y - 1);
                    break;
                }
                break;
            }

            case 2:
            {
                if (RandomNumber.GenerateRandom(0, 2) == 1)
                {
                    NewPos = new Point(Position.X - 1, Position.Y);
                }
                else
                {
                    NewPos = new Point(Position.X + 1, Position.Y);
                }
                break;
            }

            case 3:
            {
                if (RandomNumber.GenerateRandom(0, 2) == 1)
                {
                    NewPos = new Point(Position.X, Position.Y - 1);
                }
                else
                {
                    NewPos = new Point(Position.X, Position.Y + 1);
                }
                break;
            }

            case 4:
            {
                NewPos = new Point(Position.X, Position.Y - 1);
                break;
            }

            case 5:
            {
                NewPos = new Point(Position.X + 1, Position.Y);
                break;
            }

            case 6:
            {
                NewPos = new Point(Position.X, Position.Y + 1);
                break;
            }

            case 7:
            {
                NewPos = new Point(Position.X - 1, Position.Y);
                break;
            }
            }

            return(NewPos);
        }
Пример #19
0
        public override void OnTimerTick()
        {
            RoomUser Pet = GetRoomUser();

            if (Pet == null)
            {
                return;
            }


            #region Speech

            if (SpeechTimer <= 0)
            {
                if (Pet.PetData.DBState != DatabaseUpdateState.NeedsInsert)
                {
                    Pet.PetData.DBState = DatabaseUpdateState.NeedsUpdate;
                }

                if (Pet != null)
                {
                    var RandomSpeech = new Random();
                    RemovePetStatus();

                    string[] Speech  = QuasarEnvironment.GetGame().GetChatManager().GetPetLocale().GetValue("speech.pet" + Pet.PetData.Type);
                    string   rSpeech = Speech[RandomNumber.GenerateRandom(0, Speech.Length - 1)];

                    if (rSpeech.Length != 3)
                    {
                        Pet.Chat(rSpeech, false);
                    }
                    else
                    {
                        Pet.Statusses.Add(rSpeech, TextHandling.GetString(Pet.Z));
                    }
                }
                SpeechTimer = QuasarEnvironment.GetRandomNumber(20, 120);
            }
            else
            {
                SpeechTimer--;
            }

            #endregion

            #region Actions

            if (ActionTimer <= 0)
            {
                try
                {
                    RemovePetStatus();
                    ActionTimer = RandomNumber.GenerateRandom(15, 40 + GetRoomUser().PetData.VirtualId);
                    if (!GetRoomUser().RidingHorse)
                    {
                        // Remove Status
                        RemovePetStatus();

                        Point nextCoord = GetRoom().GetGameMap().getRandomWalkableSquare();
                        if (GetRoomUser().CanWalk)
                        {
                            GetRoomUser().MoveTo(nextCoord.X, nextCoord.Y);
                        }
                    }
                }
                catch (Exception e)
                {
                    Logging.HandleException(e, "PetBot.OnTimerTick");
                }
            }
            else
            {
                ActionTimer--;
            }

            #endregion

            #region Energy

            if (EnergyTimer <= 0)
            {
                RemovePetStatus();                                  // Remove Status

                Pet.PetData.PetEnergy(true);                        // Add Energy

                EnergyTimer = RandomNumber.GenerateRandom(30, 120); // 2 Min Max
            }
            else
            {
                EnergyTimer--;
            }

            #endregion
        }
Пример #20
0
        private int HandleRotation(int mode, int rotation, int rotuser)
        {
            switch (mode)
            {
            case 1:
            {
                /*if (rotuser == 0)
                 *  rotation = 1;
                 * if (rotuser == 1)
                 *  rotation = 2;
                 * if (rotuser == 2)
                 *  rotation = 3;
                 * if (rotuser == 3)
                 *  rotation = 4;
                 * if (rotuser == 4)
                 *  rotation = 5;
                 * if (rotuser == 5)
                 *  rotation = 6;
                 * if (rotuser == 6)
                 *  rotation = 7;
                 * if (rotuser == 7)
                 *  rotation = 0;*/
                /*if (rotuser == 0 || rotuser == 1)
                 *  rotation = 2;
                 * if (rotuser == 2 || rotuser == 3)
                 *  rotation = 4;
                 * if (rotuser == 4 || rotuser == 5)
                 *  rotation = 6;
                 * if (rotuser == 6 || rotuser == 7)
                 *  rotation = 0;*/
                if (rotuser == 0 || rotuser == 7)
                {
                    rotation = 2;
                }
                if (rotuser == 2 || rotuser == 1)
                {
                    rotation = 4;
                }
                if (rotuser == 4 || rotuser == 3)
                {
                    rotation = 6;
                }
                if (rotuser == 6 || rotuser == 5)
                {
                    rotation = 0;
                }
                break;
            }

            case 2:
            {
                /*if (rotuser == 0)
                 *   rotation = 7;
                 * if (rotuser == 7)
                 *   rotation = 6;
                 * if (rotuser == 6)
                 *   rotation = 5;
                 * if (rotuser == 5)
                 *   rotation = 4;
                 * if (rotuser == 4)
                 *   rotation = 3;
                 * if (rotuser == 3)
                 *   rotation = 2;
                 * if (rotuser == 2)
                 *   rotation = 1;
                 * if (rotuser == 1)
                 *   rotation = 0;*/
                /*if (rotuser == 0 || rotuser == 7)
                 *  rotation = 6;
                 * if (rotuser == 6 || rotuser == 5)
                 *  rotation = 4;
                 * if (rotuser == 4 || rotuser == 3)
                 *  rotation = 2;
                 * if (rotuser == 2 || rotuser == 1)
                 *  rotation = 0;*/
                if (rotuser == 0 || rotuser == 1)
                {
                    rotation = 6;
                }
                if (rotuser == 6 || rotuser == 3)
                {
                    rotation = 4;
                }
                if (rotuser == 4 || rotuser == 5)
                {
                    rotation = 2;
                }
                if (rotuser == 2 || rotuser == 7)
                {
                    rotation = 0;
                }
                break;
            }

            case 3:

                switch (RandomNumber.GenerateRandom(1, 8))
                {
                case 1:
                    rotation = 0;
                    break;

                case 2:
                    rotation = 1;
                    break;

                case 3:
                    rotation = 2;
                    break;

                case 4:
                    rotation = 3;
                    break;

                case 5:
                    rotation = 4;
                    break;

                case 6:
                    rotation = 5;
                    break;

                case 7:
                    rotation = 6;
                    break;

                case 8:
                    rotation = 7;
                    break;
                }
                break;
            }
            return(rotation);
        }