Example #1
0
 internal MoplaBreed(Pet Pet, uint PetId, int Rarity, string MoplaName, string BreedData, int LiveState, int GrowingStatus)
 {
     this.Pet = Pet;
     this.PetId = PetId;
     this.Rarity = Rarity;
     this.MoplaName = MoplaName;
     this.BreedData = BreedData;
     this.LiveState = (MoplaState)LiveState;
     this.GrowingStatus = GrowingStatus;
 }
Example #2
0
 internal static MoplaBreed CreateMonsterplantBreed(Pet Pet)
 {
     MoplaBreed breed = null;
     if (Pet.Type == 16)
     {
         Tuple<string, string> tuple = GeneratePlantData(Pet.Rarity);
         breed = new MoplaBreed(Pet, Pet.PetId, Pet.Rarity, tuple.Item1, tuple.Item2, 0, 1);
         using (IQueryAdapter adapter = CyberEnvironment.GetDatabaseManager().getQueryReactor())
         {
             adapter.setQuery("INSERT INTO bots_monsterplants (pet_id, rarity, plant_name, plant_data) VALUES (@petid , @rarity , @plantname , @plantdata)");
             adapter.addParameter("petid", Pet.PetId);
             adapter.addParameter("rarity", Pet.Rarity);
             adapter.addParameter("plantname", tuple.Item1);
             adapter.addParameter("plantdata", tuple.Item2);
             adapter.runQuery();
         }
     }
     return breed;
 }
Example #3
0
        internal static Pet CreatePet(uint UserId, string Name, int Type, string Race, string Color, int Rarity = 0)
        {
            checked
            {
                Pet pet = new Pet(404u, UserId, 0u, Name, (uint)Type, Race, Color, 0, 100, 100, 0, (double)CyberEnvironment.GetUnixTimestamp(), 0, 0, 0.0, false, 0, 0, -1, Rarity, DateTime.Now.AddHours(36.0), DateTime.Now.AddHours(48.0), null);
                pet.DBState = DatabaseUpdateState.NeedsUpdate;
                using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
                {
                    queryreactor.setQuery(string.Concat(new object[]
					{
						"INSERT INTO bots (user_id,name, ai_type) VALUES (",
						pet.OwnerId,
						",@",
						pet.PetId,
						"name, 'pet')"
					}));
                    queryreactor.addParameter(pet.PetId + "name", pet.Name);
                    pet.PetId = (uint)queryreactor.insertQuery();
                    queryreactor.setQuery(string.Concat(new object[]
					{
						"INSERT INTO bots_petdata (id,type,race,color,experience,energy,createstamp,rarity,lasthealth_stamp,untilgrown_stamp) VALUES (",
						pet.PetId,
						", ",
						pet.Type,
						",@",
						pet.PetId,
						"race,@",
						pet.PetId,
						"color,0,100,UNIX_TIMESTAMP(), ",
						Rarity,
						", UNIX_TIMESTAMP(now() + INTERVAL 36 HOUR), UNIX_TIMESTAMP(now() + INTERVAL 48 HOUR))"
					}));
                    queryreactor.addParameter(pet.PetId + "race", pet.Race);
                    queryreactor.addParameter(pet.PetId + "color", pet.Color);
                    queryreactor.runQuery();
                }
                if (pet.Type == 16u)
                {
                    pet.MoplaBreed = MoplaBreed.CreateMonsterplantBreed(pet);
                    pet.Name = pet.MoplaBreed.Name;
                    pet.DBState = DatabaseUpdateState.NeedsUpdate;
                }
                return pet;
            }
        }
		internal void AddPet(Pet Pet)
		{
			this.isUpdated = false;
			if (Pet == null || this.InventoryPets.ContainsKey(Pet.PetId))
			{
				return;
			}
			Pet.PlacedInRoom = false;
			Pet.RoomId = 0u;
			this.InventoryPets.Add(Pet.PetId, Pet);
			ServerMessage message = new ServerMessage(603);
			Pet.SerializeInventory(message);
			this.GetClient().SendMessage(message);
		}
Example #5
0
        internal static Dictionary<short, bool> GetPetCommands(Pet Pet)
        {
            Dictionary<short, bool> Output = new Dictionary<short, bool>();
            short qLevel = (short)Pet.Level;

            switch (Pet.Type)
            {
                default:
                case 0: // perro
                case 1: // gato
                case 2: // cocodrilo
                case 3: // Terrier
                case 4: // Oso
                case 5: // Jabali
                case 6: // León
                case 7: // Rhino
                    {
                        
                        Output.Add(0, true); // SIÉNTATE
                        Output.Add(1, true); // DESCANSA
                        Output.Add(13, true); // A CASA
                        Output.Add(2, qLevel >= 2); // TÚMBATE
                        Output.Add(4, qLevel >= 3); // PIDE
                        Output.Add(3, qLevel >= 4); // VEN AQUÍ
                        Output.Add(5, qLevel >= 4); // HAZ EL MUERTO
                        Output.Add(43, qLevel >= 5); // COMER
                        Output.Add(14, qLevel >= 5); // BEBE
                        Output.Add(6, qLevel >= 6); // QUIETO
                        Output.Add(17, qLevel >= 6); // FÚTBOL
                        Output.Add(8, qLevel >= 8); // LEVANTA
                        Output.Add(7, qLevel >= 9); // SÍGUEME
                        Output.Add(9, qLevel >= 11); // SALTA
                        Output.Add(11, qLevel >= 11); // JUEGA
                        Output.Add(12, qLevel >= 12); // CALLA
                        Output.Add(10, qLevel >= 12); // HABLA
                        Output.Add(15, qLevel >= 16); // IZQUIERDA
                        Output.Add(16, qLevel >= 16); // DERECHA
                        Output.Add(24, qLevel >= 17); // ADELANTE
                        
                        if (Pet.Type == 3 || Pet.Type == 4)
                        {
                            Output.Add(46, true);
                        }
                    }
                    break;

                case 8: // Araña
                    Output.Add(1, true); // DESCANSA
                    Output.Add(2, true); // TÚMBATE
                    Output.Add(3, qLevel >= 2); // VEN AQUÍ
                    Output.Add(17, qLevel >= 3); // FÚTBOL
                    Output.Add(6, qLevel >= 4); // QUIETO
                    Output.Add(5, qLevel >= 4); // HAZ EL MUERTO
                    Output.Add(7, qLevel >= 5); // SÍGUEME
                    Output.Add(23, qLevel >= 6); // ENCIENDE TV
                    Output.Add(9, qLevel >= 7); // SALTA
                    Output.Add(10, qLevel >= 8); // HABLA
                    Output.Add(11, qLevel >= 8); // JUEGA
                    Output.Add(24, qLevel >= 9); // ADELANTE
                    Output.Add(15, qLevel >= 10); // IZQUIERDA
                    Output.Add(16, qLevel >= 10); // DERECHA
                    Output.Add(13, qLevel >= 12); // A CASA
                    Output.Add(14, qLevel >= 13); // BEBE
                    Output.Add(19, qLevel >= 14); // BOTA
                    Output.Add(20, qLevel >= 14); // ESTATUA
                    Output.Add(22, qLevel >= 15); // GIRA
                    Output.Add(21, qLevel >= 16); // BAILA
                    break;

                case 16:
                    break;
            }

            return Output;
        }
Example #6
0
 internal RoomUser DeployBot(RoomBot Bot, Pet PetData)
 {
     int virtualId = this.primaryPrivateUserID++;
     RoomUser roomUser = new RoomUser(0u, this.room.RoomId, virtualId, this.room, false);
     int num = this.secondaryPrivateUserID++;
     roomUser.InternalRoomID = num;
     this.userlist.Add(num, roomUser);
     DynamicRoomModel model = this.room.GetGameMap().Model;
     Point coord = new Point(Bot.X, Bot.Y);
     if (Bot.X > 0 && Bot.Y > 0 && Bot.X < model.MapSizeX && Bot.Y < model.MapSizeY)
     {
         this.room.GetGameMap().AddUserToMap(roomUser, coord);
         roomUser.SetPos(Bot.X, Bot.Y, Bot.Z);
         roomUser.SetRot(Bot.Rot, false);
     }
     else
     {
         Bot.X = model.DoorX;
         Bot.Y = model.DoorY;
         roomUser.SetPos(model.DoorX, model.DoorY, model.DoorZ);
         roomUser.SetRot(model.DoorOrientation, false);
     }
     roomUser.BotData = Bot;
     checked
     {
         roomUser.BotAI = Bot.GenerateBotAI(roomUser.VirtualId, (int)Bot.BotId);
         if (roomUser.IsPet)
         {
             roomUser.BotAI.Init(Bot.BotId, roomUser.VirtualId, this.room.RoomId, roomUser, this.room);
             roomUser.PetData = PetData;
             roomUser.PetData.VirtualId = roomUser.VirtualId;
         }
         else
         {
             roomUser.BotAI.Init(Bot.BotId, roomUser.VirtualId, this.room.RoomId, roomUser, this.room);
         }
         this.UpdateUserStatus(roomUser, false);
         roomUser.UpdateNeeded = true;
         ServerMessage serverMessage = new ServerMessage(Outgoing.SetRoomUserMessageComposer);
         serverMessage.AppendInt32(1);
         roomUser.Serialize(serverMessage, this.room.GetGameMap().gotPublicPool);
         this.room.SendMessage(serverMessage);
         roomUser.BotAI.OnSelfEnterRoom();
         if (roomUser.IsPet)
         {
             if (this.pets.Contains(roomUser.PetData.PetId))
             {
                 this.pets[roomUser.PetData.PetId] = roomUser;
             }
             else
             {
                 this.pets.Add(roomUser.PetData.PetId, roomUser);
             }
             this.petCount++;
         }
         if (roomUser.BotData.AiType == AIType.Generic)
         {
             if (this.bots.Contains(roomUser.BotData.BotId))
             {
                 this.bots[roomUser.BotData.BotId] = roomUser;
             }
             else
             {
                 this.bots.Add(roomUser.BotData.BotId, roomUser);
             }
             serverMessage.Init(Outgoing.DanceStatusMessageComposer);
             serverMessage.AppendInt32(roomUser.VirtualId);
             serverMessage.AppendInt32(roomUser.BotData.DanceId);
             this.room.SendMessage(serverMessage);
             this.petCount++;
         }
         return roomUser;
     }
 }