| CODE |
| // created on 10/07/2003 at 21:35 //Crafting d'objets divers en creant une ressource hors metal et bois //je me suis base sur un script de loup garou poste sur le forum runuo //creer l'objet : using System; using Server; namespace Server.Items { public class WereWolfCloak : FurCape { public override int PhysicalResistance{ get{ return 0; } } public override int FireResistance{ get{ return -2; } } public override int ColdResistance{ get{ return 11; } } public override int PoisonResistance{ get{ return 0; } } public override int EnergyResistance{ get{ return 0; } } [Constructable] public WereWolfCloak() { Name = "Cape du Lycanthrope"; } public WereWolfCloak( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } } } /* ici j'ai cree l'objet WereWolfCloak qui prend la FurCape comme reference, c'est plus rapide puisque ma cape * est calquee sur la cape en fourrure de base dans AOS. * les proprietes magiques sont une resistance au froid et un malus au feu*/ // creer la ressource necessaire a la fabrication : using System; using Server; namespace Server.Items { [FlipableAttribute( 0x11F4, 0x11F8 )] public class LightFur : Item, ICommodity { string ICommodity.Description { get { return String.Format( Amount == 1 ? "{0} lightfur" : "{0} lightfurs", Amount ); } } [Constructable] public LightFur() : this( 1 ) { } [Constructable] public LightFur( int amount ) : base( 0x11F4 ) { Stackable = true; Weight = 2.0; Amount = amount; Hue = 0x4EA; } public LightFur( Serial serial ) : base( serial ) { } public override void Serialize( GenericWriter writer ) { base.Serialize( writer ); writer.Write( (int) 0 ); // version } public override void Deserialize( GenericReader reader ) { base.Deserialize( reader ); int version = reader.ReadInt(); } public override Item Dupe( int amount ) { return base.Dupe( new LightFur(), amount ); } } } /*Ici la fourrure est cree de toute piece, le flipable attribut designe le modele d'objet (trouvable avec * insideUO) le nom de la ressource est LightFur, elle est designee empilable (stackable), son poid (weight) * et sa couleur (Hue)*/ // Rendre la cape fabricable par les tailleurs // ouvrir DefTailoring.cs dans engine/craft/ et a la fin du script on dois trouver ceci : int index = -1; // Bone Armor index = AddCraft( typeof( BoneHelm ), 1049149, 1025206, 85.0, 110.0, typeof( Leather ), 1044462, 4, 1044463 ); AddRes( index, typeof( Bone ), 1049064, 2, 1049063 ); index = AddCraft( typeof( BoneGloves ), 1049149, 1025205, 89.0, 114.0, typeof( Leather ), 1044462, 6, 1044463 ); AddRes( index, typeof( Bone ), 1049064, 2, 1049063 ); index = AddCraft( typeof( BoneArms ), 1049149, 1025203, 92.0, 117.0, typeof( Leather ), 1044462, 8, 1044463 ); AddRes( index, typeof( Bone ), 1049064, 4, 1049063 ); index = AddCraft( typeof( BoneLegs ), 1049149, 1025202, 95.0, 120.0, typeof( Leather ), 1044462, 10, 1044463 ); AddRes( index, typeof( Bone ), 1049064, 6, 1049063 ); index = AddCraft( typeof( BoneChest ), 1049149, 1025199, 96.0, 121.0, typeof( Leather ), 1044462, 12, 1044463 ); AddRes( index, typeof( Bone ), 1049064, 10, 1049063 ); index = AddCraft( typeof( WereWolfCloak ), "Artefacts", "Cape du Lycanthrope", 75.0, 100.0, typeof( LightFur ), "Fourrure", 3, 1044287 ); AddRes( index, typeof( SpoolOfThread ), "Bobine de fil", 2, "?" ); /*Donc rajoutez la derniere ligne, alors pour l'explication les nombres sont des Cliloc qui correspondent a une * phrase ou un mot unique donc il suffit de remplacer par la description correspondante qui apparaitra dans le * menu de tailoring, autrement on a ajoute une 2eme ressource qui est le fil (75 et 100 sont les niveaux de * skill pour la fabriquer et le 3 et 2 sont les quantites de chaque ressource necessaire). * Une chose importante quand on veux rajouter une deuxieme ressource est de placer la ligne de commande apres * le : int index = -1 */ /*a ce niveau l'objet sera fabricable mais il ne gardera pas la couleur de la ressource originelle (fourrure) *donc pour permettre cela il suffit d'aller dans engine/craft/core/ et ouvrir CraftItem.cs. * vers la ligne 200 on dois trouver ceci: */ private static Type[][] m_TypesTable = new Type[][] { new Type[]{ typeof( Log ), typeof( Board ) }, new Type[]{ typeof( Leather ), typeof( Hides ) }, new Type[]{ typeof( SpinedLeather ), typeof( SpinedHides ) }, new Type[]{ typeof( HornedLeather ), typeof( HornedHides ) }, new Type[]{ typeof( BarbedLeather ), typeof( BarbedHides ) }, new Type[]{ typeof( BlankMap ), typeof( BlankScroll ) }, new Type[]{ typeof( Cloth ), typeof( UncutCloth ) }, new Type[]{ typeof( LightFur ) } }; private static Type[] m_ColoredItemTable = new Type[] { typeof( BaseWeapon ), typeof( BaseArmor ), typeof( BaseClothing ) }; private static Type[] m_ColoredResourceTable = new Type[] { typeof( BaseIngot ), typeof( BaseOre ), typeof( BaseLeather ), typeof( BaseHides ), typeof( UncutCloth ), typeof( Cloth ), typeof( BaseGranite ), typeof( LightFur ) }; /* il suffit de rajouter le nouveau type de ressource ici 'new Type[]{ typeof( LightFur ) }' et 'typeof( LightFur )' * en oubliant pas de rajouter la virgule sur la ligne precedente.*/ |