| CODE |
| public Point3D i_pointA; public int id; //i_pointA : doit contenir la Location du item //id : doit contenir le Item_ID du item Map map = from.Map; ArrayList liste = new ArrayList(); //definir un rectange dans le quel on prendra les item, car on vas pas ranger tout les item de la carte //dans le sac //ici on vas prendre un rectangle 10X10 avec centre le 1er item selectioné Rectangle2D rect = new Rectangle2D( i_pointA.X-5, i_pointA.Y-5, i_pointA.X+5, i_pointA.Y+5 ); //suis pas sur pour les valeur du rectange IPooledEnumerable eable; eable = map.GetObjectsInBounds( rect ); foreach ( object obj in eable ) { if ( (obj is Item)) liste.Add( obj ); } eable.Free(); //voila tout les item on ete copié dans liste for ( int i = 0; i < liste.Count; ++i ) { if ( liste[i] is Item ) { Item item = ((Item)liste[i]); //on prend item par item et on les traite //Attention il a compié tout les item qui son dans le rectagle, donc fait traiter que ceux qui nous interesse if(item.ItemID==id) { //ici faut deplacer le item dans le sac } } } |
| CODE |
| using System; using System.Collections; using Server; using Server.Items; using Server.Mobiles; namespace Server.Scripts.Commands { public class Ranger { public static void Initialize() { Server.Commands.Register( "Ranger", AccessLevel.Player, new CommandEventHandler( Ranger_OnCommand ) ); } [Usage( "Ranger" )] [Description( "Ranger tous les mêmes objets dans le sac sélectioné." )] public static void Ranger_OnCommand( CommandEventArgs e ) { e.Mobile.SendMessage( "Que voulez vous ranger ?" ); e.Mobile.Target = new RangerItemTarget(); } } public class RangerItemTarget : Target { public RangerItemTarget() : base( 10, false, TargetFlags.None) { } protected override void OnTarget( Mobile from, object targeted ) { } } |
| CODE |
using System; using System.Collections; using Server; using Server.Items; using Server.Mobiles; using Server.Targeting; namespace Server.Scripts.Commands { public class Ranger { public static void Initialize() { Server.Commands.Register( "Ranger", AccessLevel.Player, new CommandEventHandler( Ranger_OnCommand ) ); } [Usage( "Ranger" )] [Description( "Ranger tous les mêmes objets dans le sac sélectioné." )] public static void Ranger_OnCommand( CommandEventArgs e ) { e.Mobile.SendMessage( "Que voulez vous ranger ?" ); e.Mobile.Target = new RangerItemTarget(); } } public class RangerItemTarget : Target { public RangerItemTarget() : base( 10, false, TargetFlags.None) { } protected override void OnTarget( Mobile from, object targeted ) { PlayerMobile player = (PlayerMobile) from; if(targeted is Item) { Item item = (Item) targeted; player.SendMessage("Ou voulez vous les ranger ? "); player.Target = new RangerSacTarget(item); } else { player.SendMessage("Vous n'avez pas selectioné un Item"); } } } public class RangerSacTarget : Target { private Item i_itemSelectione; public RangerSacTarget(Item i) : base( 10, false, TargetFlags.None) { i_itemSelectione = i; } protected override void OnTarget( Mobile from, object targeted ) { PlayerMobile player = (PlayerMobile) from; if(targeted is Container) { Container container = (Container) targeted; //range Container sacados = player.Backpack; ArrayList listsac = new ArrayList( sacados.Items ); for (int i=0;i<listsac.Count;i++) { Item item =(Item) listsac[i]; if(item.ItemID==i_itemSelectione.ItemID) { container.AddItem(item); } } } else { player.SendMessage("Vous n'avez pas selectioné un Container"); } } } } |