public async Task NotifyTamingBuildSuccessMessageHandler(NotifyTamingBuildSuccessMessage message, Player player) { await player.OnNotifyTamingBuildSuccessMessage.InvokeAsync(message); }
public async Task OnNotifyTamingBuildSuccessMessage(NotifyTamingBuildSuccessMessage msg) { var player = (msg.Associate as Player); await player.GetComponent <MissionInventoryComponent>().TamePetAsync(GameObject.Lot); player.PlayFX("", "petceleb"); // We need to create the build object /*CdClientContext context = new CdClientContext(); TODO: fix * var model = GameObject.Instantiate(default, * new Lot(context.TamingBuildPuzzlesTable.Where(i => i.NPCLot.Value == GameObject.Lot).First() * .PuzzleModelLot.Value), msg.BuildPosition); * * Start(model);*/ player.Message(new NotifyTamingModelLoadedOnServerMessage { Associate = player }); player.Message(new PetResponseMessage { Associate = player, Pet = GameObject, PetCommandType = 0, Response = 10, // Not entirely sure what this response ID is TypeId = 0 }); var inventoryComponent = player.GetComponent <InventoryManagerComponent>(); await inventoryComponent.AddLotAsync(GameObject.Lot, 1); var pet = inventoryComponent.FindItem(GameObject.Lot); player.Message(new AddPetToPlayerMessage { Associate = player, ElementalType = 0, // This appears to be just unused, they are in the DB but they weren't sent correctly in the packet captures Name = GameObject.Name, PetDBId = pet, PetLot = GameObject.Lot }); player.Message(new RegisterPetIdMessage { Associate = player, Pet = GameObject, }); player.Message(new RegisterPetDbIdMessage { Associate = player, Pet = pet, }); player.Message(new MarkInventoryItemAsActiveMessage { Associate = player, Active = true, ItemId = pet, }); // TODO: Add listener for name select }