public void FinishSequence(Mobile cible) { Owner.Animate(17, 7, 1, true, false, 0); //SortNubiaHelper.MakeEffect( Owner, cible, this, true, mustExplose ); if (!(cible is NubiaCreature)) { return; } NubiaCreature creat = cible as NubiaCreature; if (creat.Hits < Math.Max(8, (creat.HitsMax / 5))) { SortNubiaHelper.makeBigSmoke(creat.Location, creat.Map); RuneVie rune = new RuneVie(); rune.creature = NubiaHelper.CopyCreature(creat); rune.MoveToWorld(creat.Location, creat.Map); creat.Delete(); } else { Owner.SendMessage("La créature n'est pas assez affaibli"); } EndSortNubia(); //important ;) }
public static void Configure() { string space = "Server.Mobiles.Dons"; List <string> donsClasses = NubiaHelper.getAllClasses(space); Console.ForegroundColor = ConsoleColor.Yellow; foreach (string clstr in donsClasses) { Type cltype = Type.GetType(space + "." + clstr); // Console.WriteLine("Type: " + cltype); if (cltype != null) { if (cltype.IsSubclassOf(typeof(BaseDon)) && !cltype.IsAbstract) { try { BaseDon don = (BaseDon)cltype.GetConstructor(Type.EmptyTypes).Invoke(new object[0]); Console.WriteLine("- Don: " + don.Name + " (DonEnum." + don.DType.ToString() + ")"); DonBank.Add(don.DType.ToString().ToLower(), don); don = null; } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } Console.WriteLine("## {0} dons au total", DonBank.Count); Console.WriteLine(""); Console.ForegroundColor = ConsoleColor.White; }
public override void OnResponse(NetState sender, RelayInfo info) { Mobile f = sender.Mobile; NubiaPlayer from = f as NubiaPlayer; if (info.ButtonID >= 100 && info.ButtonID < 200) //Jutsu Cast { from.Magie.executeSort(info.ButtonID - 100); } if (info.ButtonID >= 200 && info.ButtonID < 300) { from.CloseGump(typeof(SortInfoGump)); from.SendGump(new SortInfoGump(m_owner.Magie.getSort(info.ButtonID - 200))); } if (info.ButtonID >= 300 && info.ButtonID < 500) { from.CloseGump(typeof(SortInfoGump)); from.SendGump(new PropertiesGump(from, m_owner.Magie.getSort(info.ButtonID - 300))); } if (info.ButtonID >= 500) //Extraire un parchemin { from.CloseGump(typeof(SortInfoGump)); try { SortNubia jutsu = (SortNubia)NubiaHelper.CopyItem(m_owner.Magie.getSort(info.ButtonID - 500)); jutsu.MoveToWorld(from.Location, from.Map); from.SendMessage("Copy faite"); } catch { from.SendMessage("Copy impossible!"); } //from.SendGump( new PropertiesGump( from, from.getJutsu(info.ButtonID-300) ) ); } }
public static void ScanItems() { Console.WriteLine("."); Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("## Scans craftable item ##"); string space = "Server.Items"; List <string> classes = NubiaHelper.getAllClasses(space); foreach (string clstr in classes) { // Console.WriteLine(" - "+clstr); Type cltype = Type.GetType(space + "." + clstr); // Console.WriteLine("Type: " + cltype); if (cltype != null) { /* Type[] interfaces = cltype.GetInterfaces(); * for (int i = 0; i < interfaces.Length; i++) * { * Console.WriteLine("interface: "+interfaces[i]); * } * if (cltype.GetInterface(typeof(IEntity).ToString()) != null) * { * Console.WriteLine(" Match IEntity: " + clstr); * }*/ if (cltype.GetInterface(typeof(INubiaCraftable).ToString()) != null) { Console.WriteLine("- INubiaCraftable: " + clstr); } } } Console.ResetColor(); }
//STATIC PART public static void Configure() { Console.ForegroundColor = ConsoleColor.Green; Console.WriteLine("## Réputation configuration ##"); FactionsBank = new Dictionary <FactionEnum, BaseFaction>(); string space = "Server.Mobiles"; List <string> classes = NubiaHelper.getAllClasses(space); foreach (string clstr in classes) { // Console.WriteLine(" - "+clstr); Type cltype = Type.GetType(space + "." + clstr); // Console.WriteLine("Type: " + cltype); if (cltype != null) { if (cltype.IsSubclassOf(typeof(BaseFaction))) { try { BaseFaction fac = (BaseFaction)cltype.GetConstructor(Type.EmptyTypes).Invoke(new object[0]); FactionsBank.Add(fac.Faction, fac); Console.WriteLine("- Faction: " + fac.Name + " (FactionEnum." + fac.Faction.ToString() + ")"); fac = null; } catch (Exception ex) { Console.WriteLine(ex.Message); } } } } Console.ResetColor(); }
public void FinishSequence(Mobile cible) { Owner.Animate(17, 7, 1, true, false, 0); double time = (int)(Owner.Niveau / 3) * (Maitrise / 5.0); time *= getRatio(); SortNubiaHelper.makeBigSmoke(Owner.Location, Owner.Map); //SAVES m_saveItems = new ArrayList(); m_copyItems = new ArrayList(); /*private int m_hair = 0; * private int m_beard = 0;*/ m_hair = Owner.HairItemID; m_beard = Owner.FacialHairItemID; m_hue = Owner.Hue; m_hairHue = Owner.HairHue; m_body = Owner.BodyValue; m_name = Owner.Name; for (int i = 0; i < 24; i++) { Item it = Owner.FindItemOnLayer((Layer)i) as Item; if (it != null && !(it is Backpack)) { m_saveItems.Add(it); try{ Owner.Backpack.AddItem(it); } catch {} } } //Clone for (int c = 0; c < 24; c++) { Item it = NubiaHelper.CopyItem(cible.FindItemOnLayer((Layer)c) as Item); if (it != null && !(it is Backpack)) { m_copyItems.Add(it); Owner.EquipItem(it); it.Movable = false; } } Owner.Name = cible.Name; Owner.BodyValue = cible.BodyValue; Owner.HueMod = cible.Hue; Owner.HairItemID = cible.HairItemID; Owner.HairHue = cible.HairHue; Owner.FacialHairItemID = cible.FacialHairItemID; Owner.FacialHairHue = cible.FacialHairHue; m_timer = new InternalTimer(this, time); Owner.SendMessage("Vous garderez cette apparence pour {0} secondes", ((int)time).ToString()); m_timer.Start(); return; }
public GardeMoff() : base(AIType.AI_Melee, FightMode.Closest, 15, 2, 0.1, 0.2) { SpeechHue = Utility.RandomDyedHue(); Title = "(Garde d'Edgar Moff)"; Hue = Utility.RandomList(new int[] { 1025, 1032, 1049, 1057, 1878 }); if (this.Female = Utility.RandomBool()) { Body = 401; Name = NameList.RandomName("female"); } else { Body = 400; Name = NameList.RandomName("male"); } AddItem(new Boots(Utility.RandomNeutralHue())); AddItem(new ChainLegs()); AddItem(new ChainChest()); AddItem(new PlateArms()); AddItem(new PlateGloves()); AddItem(new PlateGorget()); AddItem(new Helmet()); AddItem(new Cloak(2121)); AddItem(new BodySash(2121)); switch (Utility.Random(4)) { case 0: AddItem(new Spear()); break; case 1: AddItem(new Halberd()); break; case 2: AddItem(new DoubleBladedStaff()); break; case 3: AddItem(new Bardiche()); break; } mMonsterHits = Utility.RandomMinMax(150, 200); NiveauCreature = 8; AddCompetence(CompType.Detection, 3); AddCompetence(CompType.PerceptionAuditive, 3); AddCompetence(CompType.DeplacementSilencieux, 3); AddCompetence(CompType.PerceptionAuditive, 3); AddCompetence(CompType.Survie, 1); //Utility.AssignRandomHair( this ); NubiaHelper.RandomHair(this); Faction = FactionEnum.EdgarMoff; }
public override void OnDoubleClick(Mobile f) { if (f is NubiaPlayer) { SortNubia cop = (SortNubia)NubiaHelper.CopyItem(this); ((NubiaPlayer)f).Magie.addSort(cop); f.SendMessage("Sort {0} assimilé", Name); Delete(); } }
public override bool Cast() { if (!base.Cast()) { return(false); } double time = (int)(Owner.Niveau) * (Maitrise / 10.0); time *= getRatio(); if (m_toClone == null) { return(false); } if (m_invoc != null) { m_invoc.Delete(); m_invoc = null; } NubiaCreature m = NubiaHelper.CopyCreature(m_toClone); m_invoc = m; m_invoc.Summoned = true; m_invoc.ControlMaster = Owner; m_invoc.ControlOrder = OrderType.Guard; m_invoc.Controlled = true; m.MoveToWorld(Owner.Location, Owner.Map); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z - 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z - 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 7), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 3), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z - 1), m.Map, 0x3728, 13); Owner.PlaySound(0x228); m_timer = new InternalTimer(this, time); m_timer.Start(); return(true); }
public override void OnResponse(NetState sender, RelayInfo info) { Mobile f = sender.Mobile; NubiaPlayer from = f as NubiaPlayer; if (info.ButtonID == 6) //refus { m_maitre.SendMessage("Votre élève refuse votre proposition d'apprentissage"); m_eleve.SendMessage("Vous refusez l'apprentissage"); return; } if (info.ButtonID >= 10) //Choix { SortNubia newSortNubia; newSortNubia = (SortNubia)NubiaHelper.CopyItem(m_owner); newSortNubia.energie = (SortEnergie)m_cp[info.ButtonID - 10]; // newSortNubia.skill = KonohaCompHelper.getSkillFromCat(newSortNubia.categorie); if (!newSortNubia.canCast(m_eleve, false)) { m_eleve.SendMessage("Vous n'arrivez pas à adapter ces connaissances pour ce SortNubia"); m_eleve.SendGump(new enseignementSortChoixComp(m_owner, m_maitre, m_eleve, m_cp)); } else { m_eleve.SendMessage("Vous arrivez à adapter ces connaissances pour ce SortNubia !"); m_maitre.SendMessage("Votre élève s'en sort plutôt bien et adapte votre technique"); if (newSortNubia.couleur == MagieColor.Chakra && (newSortNubia.energie != SortEnergie.Mental && newSortNubia.energie != SortEnergie.Terre)) { newSortNubia.couleur = MagieColor.Connaissance; } newSortNubia.Maitrise = 0.0; newSortNubia.Owner = m_eleve; if (newSortNubia is SortNubiaTransformation) { m_eleve.Target = new InternalTransformationTarget((SortNubiaTransformation)newSortNubia, m_maitre, m_eleve); } else { if (!newSortNubia.isUnique) { m_eleve.SendGump(new enseignementSortPerso(newSortNubia, m_maitre, m_eleve)); } else { from.SendMessage("Nouveau SortNubia '" + newSortNubia.Nom + "' appris. Félicitation !"); from.SendGump(new SortCreationConfirm(m_eleve, newSortNubia, false)); } } } return; } }
protected override void OnTarget(Mobile from, object o) { if (o is RuneVie) { RuneVie rune = o as RuneVie; if (rune.creature == null) { player.SendMessage("Cette rune est vide"); } else { m_Owner.toClone = NubiaHelper.CopyCreature(rune.creature); // m_Owner.competence = rune.creature.competenceLie; } player.CloseGump(typeof(SortCreationGump)); player.SendGump(new SortCreationGump(player, m_Owner)); } }
public int CheckForOpportuniteResult(NubiaMobile agressor) //Attention, agressor peut être null { if (!agressor.getCanDoOpportunite()) { return(0); } //Backstab ! if (NubiaHelper.LookAt(agressor, this) && (NubiaHelper.GetDirectionFrom((int)Direction) == NubiaHelper.GetDirectionFrom((int)agressor.Direction) || agressor.Hidden)) { ExposeToOpportunite(); } if (CheckForOpportunite() && agressor != null) { /*1d20 + Bonus Reflexes + Modificateur dexterité * contre * 1d20 + Bonus Reflexes + Modificateur dexterité - 8 */ int rollDef = Utility.RandomMinMax(1, 20); int rollAgr = Utility.RandomMinMax(1, 20); if (agressor.Weapon is BaseRanged) { rollAgr -= 10; } int difference = (rollAgr + agressor.getBonusReflexe() + (int)DndHelper.GetCaracMod(agressor, DndStat.Dexterite)) - (rollDef + getBonusReflexe() + (int)DndHelper.GetCaracMod(this, DndStat.Dexterite) - 8); agressor.mLastOpportuniteAction = DateTime.Now; if (difference <= 0) { agressor.SendMessage("Vous ratez une attaque d'opportunité"); } return(difference); } else { return(0); } }
public static void roule_OnCommand(CommandEventArgs e) { NubiaMobile p = e.Mobile as NubiaMobile; if (p.Competences[CompType.Acrobaties].getMaitrise() < 1) { p.SendMessage("Vous devez avoir au moin 1 en acrobatie"); } else { if (p.Combatant == null) { p.SendMessage("vous n'avez pas de combatant"); } else { p.Emote("*roulé boulé*"); p.SetLocation(NubiaHelper.getRandomPointAround(p.Combatant.Location, p.Map), true); } } }
public Brigand() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.25, 0.4) { SpeechHue = Utility.RandomDyedHue(); Title = "le brigand"; Hue = Utility.RandomList(new int[] { 1025, 1032, 1049, 1057, 1878 }); if (this.Female = Utility.RandomBool()) { Body = 401; Name = NameList.RandomName("female"); AddItem(new Skirt(Utility.RandomNeutralHue())); } else { Body = 400; Name = NameList.RandomName("male"); AddItem(new ShortPants(Utility.RandomNeutralHue())); } if (Utility.RandomDouble() > .8) { int hueOrc = Utility.RandomList(new int[] { 1450, 1451, 1452, 2420, 1441, 1442, 1443, 1444, 1025, 1032, 1049, 1057, 1878 }); TNRaceSkinHalforc skin = new TNRaceSkinHalforc(hueOrc); this.Hue = hueOrc; skin.Movable = false; AddItem(skin); } AddItem(new Boots(Utility.RandomNeutralHue())); if (Utility.RandomBool()) { AddItem(new Shirt()); } else { AddItem(new LeatherChest()); } AddItem(new Bandana()); switch (Utility.Random(7)) { case 0: AddItem(new Longsword()); break; case 1: AddItem(new Cutlass()); break; case 2: AddItem(new Broadsword()); break; case 3: AddItem(new Axe()); break; case 4: AddItem(new Club()); break; case 5: AddItem(new Dagger()); break; case 6: AddItem(new Spear()); break; } NiveauCreature = 7; AddCompetence(CompType.Detection, 3); AddCompetence(CompType.PerceptionAuditive, 3); AddCompetence(CompType.DeplacementSilencieux, 3); AddCompetence(CompType.PerceptionAuditive, 3); AddCompetence(CompType.Survie, 1); //Utility.AssignRandomHair( this ); NubiaHelper.RandomHair(this); VirtualArmor = 3; }
public MonstreBrigandEcarlate() : base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.1, 0.4) { SpeechHue = Utility.RandomDyedHue(); Title = " de la main écarlate"; Hue = Utility.RandomList(new int[] { 1025, 1032, 1049, 1057, 1878 }); if (this.Female = Utility.RandomBool()) { Body = 401; Name = NameList.RandomName("female"); AddItem(new Skirt(Utility.RandomNeutralHue())); } else { Body = 400; Name = NameList.RandomName("male"); AddItem(new ShortPants(Utility.RandomNeutralHue())); } if (Utility.RandomDouble() > .8) { int hueOrc = Utility.RandomList(new int[] { 1450, 1451, 1452, 2420, 1441, 1442, 1443, 1444, 1025, 1032, 1049, 1057, 1878 }); TNRaceSkinHalforc skin = new TNRaceSkinHalforc(hueOrc); this.Hue = hueOrc; skin.Movable = false; AddItem(skin); } AddItem(new Boots(Utility.RandomNeutralHue())); if (Utility.RandomBool()) { AddItem(new StuddedChest()); } else { AddItem(new RingmailChest()); } AddItem(new RingmailLegs()); AddItem(new RingmailArms()); AddItem(new RingmailGloves()); AddItem(new PlateGorget()); if (Utility.RandomBool()) { AddItem(new SkullCap(2118)); } else { AddItem(new Bandana(2118)); } AddItem(new BodySash(2118)); switch (Utility.Random(7)) { case 0: AddItem(new Longsword()); break; case 1: AddItem(new Cutlass()); break; case 2: AddItem(new Broadsword()); break; case 3: AddItem(new Axe()); break; case 4: AddItem(new Club()); break; case 5: AddItem(new Dagger()); break; case 6: AddItem(new Spear()); break; } if (FindItemOnLayer(Layer.OneHanded) != null) { if (FindItemOnLayer(Layer.OneHanded) is BaseSword && Utility.RandomBool()) { AddItem(new WoodenShield()); } } NiveauCreature = Utility.RandomMinMax(6, 8); Faction = FactionEnum.MainEcarlate; AddCompetence(CompType.Detection, 3); AddCompetence(CompType.PerceptionAuditive, 3); AddCompetence(CompType.DeplacementSilencieux, 3); AddCompetence(CompType.PerceptionAuditive, 3); AddCompetence(CompType.Survie, 1); //Utility.AssignRandomHair( this ); NubiaHelper.RandomHair(this); VirtualArmor = 3; }
public override bool Cast() { if (!base.Cast()) { return(false); } double time = (int)(Owner.Niveau) * (Maitrise / 2.0); time *= getRatio(); if (m_toClone == null) { return(false); } if (!Owner.makeTransfo(this)) { Owner.SendMessage("Vous êtes déjà sous l'effet d'une transformation"); return(true); } NubiaPlayer m = Owner as NubiaPlayer; Owner.BodyValue = m_toClone.BodyValue; Owner.HueMod = m_toClone.Hue; m_nom = Owner.Name; if (m_toClone.Name != "noname") { Owner.NameMod = m_toClone.Name; } Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z + 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y, m.Z - 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z + 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X, m.Y + 1, m.Z - 4), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 11), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 7), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z + 3), m.Map, 0x3728, 13); Effects.SendLocationEffect(new Point3D(m.X + 1, m.Y + 1, m.Z - 1), m.Map, 0x3728, 13); m.PlaySound(0x228); m_listItem = new ArrayList(); for (int i = 0; i < m_toClone.Items.Count; i++) { Item item = NubiaHelper.CopyItem(m_toClone.Items[i]); Owner.AddItem(item); item.Movable = false; m_listItem.Add(item); } int level = m_toClone.Niveau;// KonohaSkillHelper.getCreatureNiveau(m_toClone); m_bonusStr = (int)((level * 2) * TransfoHelper.getModusStr(energie)); m_bonusDex = (int)((level * 2) * TransfoHelper.getModusDex(energie)); m_bonusInt = (int)((level * 2) * TransfoHelper.getModusInt(energie)); m_bonusStr = (int)(m_bonusStr * getRatio()); m_bonusDex = (int)(m_bonusDex * getRatio()); m_bonusInt = (int)(m_bonusInt * getRatio()); m_bonusSkill = (level * 2); m_bonusSkill *= getRatio(); Owner.Str += m_bonusStr; Owner.Dex += m_bonusDex; Owner.Int += m_bonusInt; /*SkillName[] sk = TransfoHelper.getSkillBonus(competence); * for(int i = 0; i < sk.Length; i++) * { * Owner.Skills[sk[i]].Cap += m_bonusSkill; * Owner.Skills[sk[i]].Base += m_bonusSkill; * }*/ m_timer = new InternalTimer(this, time); m_timer.Start(); return(true); }