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; }
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; }
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); }
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; }
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; } }