/// <summary> /// Called when a pet has been unsummoned /// </summary> /// <param name="uniqueID"></param> public void OnPetUnsummoned(SRCoService CoS) { if (CoS.isAttackPet()) { tUsingHGP.Stop(); } }
/// <summary> /// Called when a pet has been summoned /// </summary> /// <param name="uniqueID"></param> public void OnPetSummoned(SRCoService CoS) { if (CoS.isAttackPet()) { CheckUsingHGP(); } }
private void CheckUsingAbnormalPill(object sender, ElapsedEventArgs e) { Window w = Window.Get; if (w.Character_cbxUsePetsPill.Checked) { // Checking pet bad status for using abnormal SRCoService pet = null; // As priority pet transport pet = InfoManager.MyPets.Find(p => (p.isHorse() || p.isTransport()) && p.BadStatusFlags != SRModel.BadStatus.None); if (pet == null) { pet = InfoManager.MyPets.Find(p => p.isAttackPet() && p.BadStatusFlags != SRModel.BadStatus.None); } // At least one pet has bad status if (pet != null) { byte slot = 0; // dummy if (FindItem(3, 2, 7, ref slot)) { PacketBuilder.UseItem(InfoManager.Character.Inventory[slot], slot, pet.UniqueID); tUsingAbnormalPill.Start(); } } } }
private void CheckUsingHGP(object sender, ElapsedEventArgs e) { Window w = Window.Get; if (w.Character_cbxUsePetHGP.Checked) { SRCoService pet = InfoManager.MyPets.Find(p => p.isAttackPet()); if (pet != null) { SRAttackPet atkPet = (SRAttackPet)pet; byte usePercent = 0; w.Character_tbxUsePetHGP.InvokeIfRequired(() => { usePercent = byte.Parse(w.Character_tbxUsePetHGP.Text); }); // Check hgp % int HGPPercent = (int)(atkPet.HGP * 0.01); // 10000 = 100% if (HGPPercent <= usePercent) { byte slot = 0; if (FindItem(3, 1, 9, ref slot)) { PacketBuilder.UseItem(InfoManager.Character.Inventory[slot], slot, pet.UniqueID); tUsingHGP.ResetTimer(1000); return; } } tUsingHGP.ResetTimer(300000); // 1% decrease : -100 HGP every 5min } } }
private void CheckUsingRecoveryKit(object sender, ElapsedEventArgs e) { // Checking pet using recovery kit by priority Window w = Window.Get; // Vehicle or Transport if (w.Character_cbxUseTransportHP.Checked) { SRCoService pet = InfoManager.MyPets.Find(p => p.isHorse() || p.isTransport()); // Check % if there is at least one pet if (pet != null) { byte useHP = 0; // dummy w.Character_tbxUseTransportHP.InvokeIfRequired(() => { useHP = byte.Parse(w.Character_tbxUseTransportHP.Text); }); if (pet.GetHPPercent() <= useHP) { byte slot = 0; if (FindItem(3, 1, 4, ref slot)) { PacketBuilder.UseItem(InfoManager.Character.Inventory[slot], slot, pet.UniqueID); tUsingRecoveryKit.Start(); } return; // Avoid checking other pets } } } // Attacking pet if (w.Character_cbxUsePetHP.Checked) { SRCoService pet = InfoManager.MyPets.Find(p => p.isAttackPet()); // Check % if there is at least one pet if (pet != null) { byte useHP = 0; // dummy w.Character_tbxUsePetHP.InvokeIfRequired(() => { useHP = byte.Parse(w.Character_tbxUsePetHP.Text); }); if (pet.GetHPPercent() <= useHP) { byte slot = 0; if (FindItem(3, 1, 4, ref slot)) { PacketBuilder.UseItem(InfoManager.Character.Inventory[slot], slot, pet.UniqueID); tUsingRecoveryKit.Start(); } return; // Avoid checking other pets } } } }