View Full Version: Nouvelle ressource

RunUO.FR Support > System > Nouvelle ressource


Title: Nouvelle ressource
Description: par un gros nul


Horacio - July 10, 2003 09:01 PM (GMT)
Mon premier script jai du passer une semaine dessus mais j'en suis tres content.
J'ai mis des notes si ca peux aider les neophytes comme moi a comprendre un peu mieux le fonctionnement general d'un script.

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.*/




Hosted for free by InvisionFree