public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseBashing) { damage += 5; } else { damage -= 30; } } else if (weapon2 != null) { if (weapon2 is BaseBashing) { damage += 5; } else { damage -= 30; } } } } }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseBashing) { damage += 1; } else if (weapon1 is SkeletalAxe) { damage += 2; } else if (weapon1 is SkeletalScimitar) { damage += 2; } else { damage -= 15; from.SendMessage("Your weapon deals little damage to the skeletal pawn's durable bones."); } } else if (weapon2 != null) { if (weapon2 is BaseBashing) { damage += 1; } else if (weapon2 is SkeletalAxe) { damage += 2; } else if (weapon2 is SkeletalScimitar) { damage += 2; } else { damage -= 15; from.SendMessage("Your weapon deals little damage to the skeletal pawn's durable bones."); } } } } }
public override bool OnBeforeDeath() { this.Hits = 100; this.Blessed = true; if (!(QuestPlayer.Backpack.FindItemByType(typeof(NecromancerSpellbook)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(NecromancerSpellbook)))) { if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfNinjitsu)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfNinjitsu)))) { if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfChivalry)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfChivalry)))) { if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfBushido)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfBushido)))) { Say("Vous vous êtes battu avec Honneur, prenez ce livre et poursuivez dans cette voie."); BookOfBushido b = new BookOfBushido(); b.Content = 3; QuestPlayer.Backpack.AddItem(b); if (QuestPlayer.Skills.Bushido.Base < 25.0) { QuestPlayer.Skills.Bushido.Base = 25.0; } } } } } Say("C'est toujours agréable de se dégourdir un peu."); QuestPlayer.Criminal = false; this.Combatant = null; this.QuestPlayer = null; this.Warmode = false; return(false); }
private bool isEnnemi(PlayerMobile from, TownStone town) { PomiCloak pomicloak = from.FindItemOnLayer(Layer.Cloak) as PomiCloak; if(pomicloak != null && pomicloak.Name == "Ambassadeur") return false; foreach (TownStone ville in town.Guerre) if (ville.isCitoyen(from)) return true; return false; }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (Flying) { damage = 0; // no melee damage when flying } if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseRanged) { damage *= 2; } else { damage += 0; } } else if (weapon2 != null) { if (weapon2 is BaseRanged) { damage *= 2; } else { damage += 0; } } } } }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseAxe) { damage += 1; } else { damage -= 15; from.SendMessage("Your weapon deals little damage to the blackthorn's bark exterior."); } } else if (weapon2 != null) { if (weapon2 is BaseAxe) { damage += 1; } else { damage -= 15; from.SendMessage("Your weapon deals little damage to the blackthorn's bark exterior."); } } } } }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseBashing) { damage *= 25; } else { damage -= 35; from.SendMessage("Your weapon deals little damage to the patrol unit."); } } else if (weapon2 != null) { if (weapon2 is BaseBashing) { damage *= 25; } else { damage -= 35; from.SendMessage("Your weapon deals little damage to the patrol."); } } } } }
public override void OnTalk( PlayerMobile player, bool contextMenu ) { Direction = this.GetDirectionTo( player ); Animate( 33, 20, 1, true, false, 0 ); QuestSystem qs = player.Quest; if ( qs is WitchApprenticeQuest ) { FindIngredientObjective obj = qs.FindObjective( typeof( FindIngredientObjective ) ) as FindIngredientObjective; if ( obj != null && !obj.Completed && obj.Ingredient == Ingredient.Whiskey ) { PlaySound( Utility.RandomBool() ? 0x42E : 0x43F ); Item hat = player.FindItemOnLayer( Layer.Helm ); bool tricorne = hat is TricorneHat; if ( tricorne && player.BAC >= 20 ) { obj.Complete(); if ( obj.BlackheartMet ) { qs.AddConversation( new BlackheartPirateConversation( false ) ); } else { qs.AddConversation( new BlackheartPirateConversation( true ) ); } } else if ( !obj.BlackheartMet ) { obj.Complete(); qs.AddConversation( new BlackheartFirstConversation() ); } else { qs.AddConversation( new BlackheartNoPirateConversation( tricorne, player.BAC > 0 ) ); } return; } } PlaySound( 0x42C ); SayTo( player, 1055041 ); // The drunken pirate shakes his fist at you and goes back to drinking. }
private static double GetArmourBiteProtection( PlayerMobile pm ) { double biteProtection = 0; // Protection based on a fixed rate of 2% for regular zombies // So full armour would block all of the chance of zombie bites // If you're wearing a shield double shieldFactor = 0.3; if ( pm.ShieldArmor as BaseShield != null ) biteProtection += shieldFactor; // If you're wearing boots double feetFactor = 0.1; Item shoes = pm.FindItemOnLayer( Layer.Shoes ); if( shoes != null ) { if( shoes is Shoes ) { biteProtection += feetFactor * 0.66; } else if ( shoes is Boots || shoes is ThighBoots ) { biteProtection += feetFactor; } } Dictionary<BaseArmor, double> armourRatings = new Dictionary<BaseArmor, double>(); if ( pm.NeckArmor as BaseArmor != null ) armourRatings.Add( pm.NeckArmor as BaseArmor, 0.3 ); if ( pm.HeadArmor as BaseArmor != null ) armourRatings.Add( pm.HeadArmor as BaseArmor, 0.3 ); if ( pm.ChestArmor as BaseArmor != null ) armourRatings.Add( pm.ChestArmor as BaseArmor, 0.2 ); if ( pm.LegsArmor as BaseArmor != null ) armourRatings.Add( pm.LegsArmor as BaseArmor, 0.2 ); if ( pm.HandArmor as BaseArmor != null ) armourRatings.Add( pm.HandArmor as BaseArmor, 0.3 ); if ( pm.ArmsArmor as BaseArmor != null ) armourRatings.Add( pm.ArmsArmor as BaseArmor, 0.3 ); foreach(KeyValuePair<BaseArmor, double> entry in armourRatings) { if( entry.Key != null ) biteProtection += GetResourceScale( entry.Key.Resource ) * entry.Value; } return biteProtection; }
private bool isEnnemi(PlayerMobile from, TownStone town) { PomiCloak pomicloak = from.FindItemOnLayer(Layer.Cloak) as PomiCloak; if (pomicloak != null && pomicloak.Name == "Ambassadeur") { return(false); } foreach (TownStone ville in town.Guerre) { if (ville.isCitoyen(from)) { return(true); } } return(false); }
public override bool OnBeforeDeath() { this.Hits = 100; this.Blessed = true; if (!(QuestPlayer.Backpack.FindItemByType(typeof(NecromancerSpellbook)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(NecromancerSpellbook)))) { if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfNinjitsu)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfNinjitsu)))) { if (!(QuestPlayer.Backpack.FindItemByType(typeof(BookOfChivalry)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfChivalry)))) { if ((QuestPlayer.Backpack.FindItemByType(typeof(BookOfBushido)) != null || (QuestPlayer.FindItemOnLayer(Layer.FirstValid) != null && QuestPlayer.FindItemOnLayer(Layer.FirstValid).GetType() == typeof(BookOfBushido)))) { BookOfBushido b = (BookOfBushido)QuestPlayer.Backpack.FindItemByType(typeof(BookOfBushido)); if (b != null) { if (!(b.HasSpell(402))) { Say("J'ai vu ce que je voulais voir. Je vais t'apprendre ce que je sais."); QuestPlayer.Backpack.AddItem(new EvasionScroll()); QuestPlayer.Backpack.AddItem(new LightningStrikeScroll()); } } } } } } Say("T'as du cran c'est vrai. Bien joué moussaillon."); QuestPlayer.Criminal = false; this.Combatant = null; this.QuestPlayer = null; this.Warmode = false; return(false); }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseEquipableLight) { damage *= 9999; } else { damage = 0; from.SendMessage("Your attack phases through the wraith."); if (0.5 >= Utility.RandomDouble()) { damage = 0; from.RawStr -= (Utility.Random(0, 1)); from.RawDex -= (Utility.Random(0, 1)); from.RawInt -= (Utility.Random(0, 1)); from.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); from.PlaySound(0x1FB); from.PlaySound(from.Female ? 814 : 1088); from.SendMessage("Your stats has been slowly drained!"); } } } else if (weapon2 != null) { if (weapon2 is BaseEquipableLight) { damage *= 9999; } else { damage = 0; from.SendMessage("Your attack phases through the wraith."); if (0.5 >= Utility.RandomDouble()) { damage = 0; from.RawStr -= (Utility.Random(1, 2)); from.RawDex -= (Utility.Random(1, 2)); from.RawInt -= (Utility.Random(1, 2)); from.FixedParticles(0x374A, 10, 15, 5028, EffectLayer.Waist); from.PlaySound(0x1FB); from.PlaySound(from.Female ? 814 : 1088); from.SendMessage("Your stats has been slowly drained!"); } } } } } }
public void LoadPlayer(PlayerMobile pm) { Backpack pack = (Backpack)pm.Backpack; //pm.SendMessage(String.Format("SettingBackpack")); TeleportAllPets( pm, (Point3D)PlayerLocations[pm.Serial], (Map)PlayerMaps[pm.Serial] ); pm.Location = (Point3D)PlayerLocations[pm.Serial]; PlayerLocations.Remove(pm.Serial); //pm.SendMessage(String.Format("SettingLocation")); pm.Map = (Map)PlayerMaps[pm.Serial]; PlayerMaps.Remove(pm.Serial); //pm.SendMessage(String.Format("SettingMap")); ArrayList items = (ArrayList)PlayerItems[pm.Serial]; PlayerItems.Remove(pm.Serial); //pm.SendMessage(String.Format("Setting Arraylist of Items")); for (int i = 0; i < items.Count; ++i) { //pm.SendMessage(String.Format("LoadPlayer() {0} / {1}.", i , items.Count)); Item item = (Item)items[i]; if (item.Layer == Layer.Invalid) { //pm.SendMessage(String.Format("Layer Invalid!")); item.Location = (Point3D)ItemLocations[item.Serial]; ItemLocations.Remove(item.Serial); pack.AddItem(item); } else { Item test = (Item)pm.FindItemOnLayer(item.Layer); if (test == null || test == item) { ItemLocations.Remove(item.Serial); pm.EquipItem(item); test = (Item)pm.FindItemOnLayer(item.Layer); if ( test == null ) pack.AddItem(item); } else { item.Location = (Point3D)ItemLocations[item.Serial]; ItemLocations.Remove(item.Serial); if (item != pm.Backpack && item != pm.BankBox) pack.AddItem(item); } } } }
public static void FreeThem( PlayerMobile player ) { if ( null == player ) return; // Take away any JailRock // No need to recurse containers since all their items were removed when jailed RemoveRockFromList( new ArrayList( player.Items ) ); RemoveRockFromList( new ArrayList( player.Backpack.Items ) ); // Restore their access level JailHammer hammer = player.FindItemOnLayer( Layer.OneHanded ) as JailHammer; if ( null != hammer ) { player.AccessLevel = hammer.PlayerAccessLevel; hammer.Delete(); } if ( player.Kills >= 5 ) player.MoveToWorld( JailConfig.FreeMurdererLocation, JailConfig.FreeMurdererMap ); else player.MoveToWorld( JailConfig.FreeLocation, JailConfig.FreeMap ); player.SendMessage( "You have been released from Jail!" ); }
public static void CheckPenalty( PlayerMobile m, Layer layer ) { BaseArmor armor = m.FindItemOnLayer( layer ) as BaseArmor; if( armor != null && armor is BaseArmor ) { if( armor.ArmourType == ArmourWeight.Light ) { if( armor.Attributes.BonusStam < 1 ) m.LightPieces++; m.LightPenalty += armor.Attributes.BonusStam; } else if( armor.ArmourType == ArmourWeight.Medium ) { m.MediumPenalty += armor.Attributes.BonusStam; m.MediumPieces++; } else { m.HeavyPenalty += armor.Attributes.BonusStam; m.HeavyPieces++; } m.ArmourPieces++; } }
public void RemoveRobe( PlayerMobile pm ) { if ( pm != null ) { GameRobe gr = pm.FindItemOnLayer( Layer.OuterTorso ) as GameRobe; if ( gr != null ) gr.Delete(); if ( pm.Backpack != null ) { Item[] items = pm.Backpack.FindItemsByType( typeof(GameRobe) ); for ( int i = items.Length-1; i > 0; i-- ) items[i].Delete(); } } }
public void DoSpecialAbility(Mobile target) { if (target is PlayerMobile) { int resnum = 0; PlayerMobile owner = target as PlayerMobile; BaseArmor helm1 = new PlateHelm(); BaseArmor gorget1 = new PlateGorget(); BaseArmor tunic1 = new PlateChest(); BaseArmor arms1 = new PlateArms(); BaseArmor gloves1 = new PlateGloves(); BaseArmor legs1 = new PlateLegs(); BaseShield shield1 = new HeaterShield(); BaseWeapon wep1 = new Kryss(); Item helm = owner.FindItemOnLayer(Layer.Helm); if (helm != null) { helm1 = helm as BaseArmor; } Item gorget = owner.FindItemOnLayer(Layer.Neck); if (gorget != null) { gorget1 = gorget as BaseArmor; } Item tunic = owner.FindItemOnLayer(Layer.InnerTorso); if (tunic != null) { tunic1 = tunic as BaseArmor; } Item arms = owner.FindItemOnLayer(Layer.Arms); if (arms != null) { arms1 = arms as BaseArmor; } Item gloves = owner.FindItemOnLayer(Layer.Gloves); if (gloves != null) { gloves1 = gloves as BaseArmor; } Item legs = owner.FindItemOnLayer(Layer.Pants); if (legs != null) { legs1 = legs as BaseArmor; } Item shield = owner.FindItemOnLayer(Layer.TwoHanded); if (shield != null) { shield1 = shield as BaseShield; } Item wep = owner.FindItemOnLayer(Layer.FirstValid); if (wep != null) { wep1 = wep as BaseWeapon; } if (shield1 != null) { resnum = (int)(shield1.Resource); if (resnum >= 1 && resnum <= 99 && shield1.HitPoints >= 21) { shield1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (tunic1 != null) { resnum = (int)(tunic1.Resource); if (resnum >= 1 && resnum <= 99 && tunic1.HitPoints >= 21) { tunic1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (legs1 != null) { resnum = (int)(legs1.Resource); if (resnum >= 1 && resnum <= 99 && legs1.HitPoints >= 21) { legs1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (arms1 != null) { resnum = (int)(arms1.Resource); if (resnum >= 1 && resnum <= 99 && arms1.HitPoints >= 21) { arms1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (helm1 != null) { resnum = (int)(helm1.Resource); if (resnum >= 1 && resnum <= 99 && helm1.HitPoints >= 21) { helm1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (gloves1 != null) { resnum = (int)(gloves1.Resource); if (resnum >= 1 && resnum <= 99 && gloves1.HitPoints >= 21) { gloves1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (gorget1 != null) { resnum = (int)(gorget1.Resource); if (resnum >= 1 && resnum <= 99 && gorget1.HitPoints >= 21) { gorget1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (wep1 != null) { resnum = (int)(wep1.Resource); if (resnum >= 1 && resnum <= 99 && wep1.HitPoints >= 21) { wep1.HitPoints -= 20; target.SendMessage("one of your items has been affected by rust"); return; } } if (shield1 != null) { resnum = (int)(shield1.Resource); if (resnum >= 1 && resnum <= 99 && shield1.HitPoints >= 11) { shield1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (tunic1 != null) { resnum = (int)(tunic1.Resource); if (resnum >= 1 && resnum <= 99 && tunic1.HitPoints >= 11) { tunic1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (legs1 != null) { resnum = (int)(legs1.Resource); if (resnum >= 1 && resnum <= 99 && legs1.HitPoints >= 11) { legs1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (arms1 != null) { resnum = (int)(arms1.Resource); if (resnum >= 1 && resnum <= 99 && arms1.HitPoints >= 11) { arms1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (helm1 != null) { resnum = (int)(helm1.Resource); if (resnum >= 1 && resnum <= 99 && helm1.HitPoints >= 11) { helm1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (gloves1 != null) { resnum = (int)(gloves1.Resource); if (resnum >= 1 && resnum <= 99 && gloves1.HitPoints >= 11) { gloves1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (gorget1 != null) { resnum = (int)(gorget1.Resource); if (resnum >= 1 && resnum <= 99 && gorget1.HitPoints >= 11) { gorget1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } if (wep1 != null) { resnum = (int)(wep1.Resource); if (resnum >= 1 && resnum <= 99 && wep1.HitPoints >= 11) { wep1.HitPoints -= 10; target.SendMessage("one of your items has been affected by rust"); return; } } } return; }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseEquipableLight) { damage *= 100; } else if (weapon1 is BaseAxe) { damage += 0; } else if (weapon1 is BaseBashing) { damage += 0; } else if (weapon1 is BaseKnife) { damage += 0; } else if (weapon1 is BasePoleArm) { damage += 0; } else if (weapon1 is BaseRanged) { damage += 0; } else if (weapon1 is BaseSpear) { damage += 0; } else if (weapon1 is BaseStaff) { damage += 0; } else if (weapon1 is BaseSword) { damage += 0; } else { damage += 0; } } else if (weapon2 != null) { if (weapon2 is BaseEquipableLight) { damage *= 100; } else if (weapon2 is BaseAxe) { damage += 0; } else if (weapon2 is BaseBashing) { damage += 0; } else if (weapon2 is BaseKnife) { damage += 0; } else if (weapon2 is BasePoleArm) { damage += 0; } else if (weapon2 is BaseRanged) { damage += 0; } else if (weapon2 is BaseSpear) { damage += 0; } else if (weapon2 is BaseStaff) { damage += 0; } else if (weapon2 is BaseSword) { damage += 0; } else { damage += 0; } } } } }
public override void AlterMeleeDamageFrom(Mobile from, ref int damage) { if (from != null && from != this) { if (from is PlayerMobile) { PlayerMobile p_PlayerMobile = from as PlayerMobile; Item weapon1 = p_PlayerMobile.FindItemOnLayer(Layer.OneHanded); Item weapon2 = p_PlayerMobile.FindItemOnLayer(Layer.TwoHanded); if (weapon1 != null) { if (weapon1 is BaseAxe) { damage += 4; } else if (weapon1 is BaseKnife) { damage += 2; } else if (weapon1 is BasePoleArm) { damage += 5; } else if (weapon1 is BaseSpear) { damage += 5; } else if (weapon1 is BaseSword) { damage += 3; } else { damage -= 25; } } else if (weapon2 != null) { if (weapon2 is BaseAxe) { damage += 4; } else if (weapon2 is BaseKnife) { damage += 2; } else if (weapon2 is BasePoleArm) { damage += 5; } else if (weapon2 is BaseSpear) { damage += 5; } else if (weapon2 is BaseSword) { damage += 3; } else { damage -= 25; } } } } }