Does anyone have a chart that shows the success rate of applying each lvl of poison (not magery application) based on skill level?
public class Poisoning { public static void Initialize() { SkillInfo.Table[(int)SkillName.Poisoning].Callback = new SkillUseCallback( OnUse ); } public static TimeSpan OnUse( Mobile m ) { m.Target = new InternalTargetPoison(); m.SendLocalizedMessage( 502137 ); // Select the poison you wish to use return TimeSpan.FromSeconds( 10.0 ); // 10 second delay before beign able to re-use a skill } private class InternalTargetPoison : Target { public InternalTargetPoison() : base ( 2, false, TargetFlags.None ) { } protected override void OnTarget( Mobile from, object targeted ) { if ( targeted is BasePoisonPotion ) { from.SendLocalizedMessage( 502142 ); // To what do you wish to apply the poison? from.Target = new InternalTarget( (BasePoisonPotion)targeted ); } else // Not a Poison Potion { from.SendLocalizedMessage( 502139 ); // That is not a poison potion. } } private class InternalTarget : Target { private BasePoisonPotion m_Potion; public InternalTarget( BasePoisonPotion potion ) : base ( 2, false, TargetFlags.None ) { m_Potion = potion; } protected override void OnTarget( Mobile from, object targeted ) { if ( m_Potion.Deleted ) return; bool startTimer = false; if ( targeted is Food || targeted is FukiyaDarts || targeted is Shuriken ) { startTimer = true; } else if ( targeted is BaseWeapon ) { BaseWeapon weapon = (BaseWeapon)targeted; if ( Core.AOS ) { startTimer = ( weapon.PrimaryAbility == WeaponAbility.InfectiousStrike || weapon.SecondaryAbility == WeaponAbility.InfectiousStrike ); } else if ( weapon.Layer == Layer.OneHanded ) { // Only Bladed or Piercing weapon can be poisoned startTimer = ( weapon.Type == WeaponType.Slashing || weapon.Type == WeaponType.Piercing ); } } if ( startTimer ) { new InternalTimer( from, (Item)targeted, m_Potion ).Start(); from.PlaySound( 0x4F ); if ( !Engines.ConPVP.DuelContext.IsFreeConsume( from ) ) { m_Potion.Consume(); from.AddToBackpack( new Bottle() ); } } else // Target can't be poisoned { if ( Core.AOS ) from.SendLocalizedMessage( 1060204 ); // You cannot poison that! You can only poison infectious weapons, food or drink. else from.SendLocalizedMessage( 502145 ); // You cannot poison that! You can only poison bladed or piercing weapons, food or drink. } } private class InternalTimer : Timer { private Mobile m_From; private Item m_Target; private Poison m_Poison; private double m_MinSkill, m_MaxSkill; public InternalTimer( Mobile from, Item target, BasePoisonPotion potion ) : base( TimeSpan.FromSeconds( 2.0 ) ) { m_From = from; m_Target = target; m_Poison = potion.Poison; m_MinSkill = potion.MinPoisoningSkill; m_MaxSkill = potion.MaxPoisoningSkill; Priority = TimerPriority.TwoFiftyMS; } protected override void OnTick() { if ( m_From.CheckTargetSkill( SkillName.Poisoning, m_Target, m_MinSkill, m_MaxSkill ) ) { if ( m_Target is Food ) { ((Food)m_Target).Poison = m_Poison; } else if ( m_Target is BaseWeapon ) { ((BaseWeapon)m_Target).Poison = m_Poison; ((BaseWeapon)m_Target).PoisonCharges = 18 - (m_Poison.Level * 2); } else if ( m_Target is FukiyaDarts ) { ((FukiyaDarts)m_Target).Poison = m_Poison; ((FukiyaDarts)m_Target).PoisonCharges = Math.Min( 18 - (m_Poison.Level * 2), ((FukiyaDarts)m_Target).UsesRemaining ); } else if ( m_Target is Shuriken ) { ((Shuriken)m_Target).Poison = m_Poison; ((Shuriken)m_Target).PoisonCharges = Math.Min( 18 - (m_Poison.Level * 2), ((Shuriken)m_Target).UsesRemaining ); } m_From.SendLocalizedMessage( 1010517 ); // You apply the poison Misc.Titles.AwardKarma( m_From, -20, true ); } else // Failed { // 5% of chance of getting poisoned if failed if ( m_From.Skills[SkillName.Poisoning].Base < 80.0 && Utility.Random( 20 ) == 0 ) { m_From.SendLocalizedMessage( 502148 ); // You make a grave mistake while applying the poison. m_From.ApplyPoison( m_From, m_Poison ); } else { if ( m_Target is BaseWeapon ) { BaseWeapon weapon = (BaseWeapon)m_Target; if ( weapon.Type == WeaponType.Slashing ) m_From.SendLocalizedMessage( 1010516 ); // You fail to apply a sufficient dose of poison on the blade else m_From.SendLocalizedMessage( 1010518 ); // You fail to apply a sufficient dose of poison } else { m_From.SendLocalizedMessage( 1010518 ); // You fail to apply a sufficient dose of poison }
even if you dont know Java or C# or whatever that is, you can take a crack at deciphering some information, as code is intended to be read by other humans. For example, calculations are likely what youre looking for, like this: Code: 18 - (m_Poison.Level * 2) If @wylwrk would be so kind as to wrap his class definition in code blocks, and have proper indentation, I might have enough cognitive bandwidth left after a day of coding to read through it and figure out the formulas more precisely . Im 1 beer away from my Balmer Peak though, betta hurry!
I just want to know at what skills lvl (show real), will I not fail to apply each lvl of posion to a weapon.
I'm guessing no one here has cared enough to research percentages towards applying poisons with the ability to spam cures, so this might be as close as you're gonna get to the information you asked for. I present to you with very little research and basic knowledge of google search engine:
Thank you. I'm a little disappointed to learn that I need 50 points in poison to never fail at applying lesser poison. @El Horno because it's for a pvp template, so I figured show real would give a mistake free answer.
I was actually hoping to hear that something like 30 poison would be good enough, that way I could run with 70 magery and 30 poison.
I'm serious. 30 for LP is gr8. Granted you might fail once in a blue moon but make if you macro it (the language below is for example and is not to be copied/pasted) use skill poisoning pause 300 target by type ((kryss or w/e) or insert a pause significant enough to manual target on the fly)) if sys message = "you failed to... blah blah w/e" whisper " - " play macro "name of your poisoning macro" end if whisper " + "