Title: OnDragDrop
Description: que faut il pour s'en servir ?
Hughlander - September 24, 2004 02:25 PM (GMT)
La méthode OnDragDrop* d'un item est normalement lancé lorsque l'on glice un autre item dessus (comme par exemple sur le potion keg lorsque l'on glisse une potion dessus) il fonctionne sur certain items (comme le keg ou les container) mais pas tous j'aimerai savoir si possible dans quelle circonstance cette méthode peut être utilisée ?
Mon but est de réalyser une potion dont l'effet changerait lorsque l'on y introduirait différent item le hic c'est que la méthode ne fonctionne pas sur les bouteilles je peut bien entendu faire d'uneautre façon en demandant de cibler l'item au lieu de l'y faire glisser mais c'est moin bien et puis pourquoi faire simple quand on peut faire compliqué :P
(*) public override bool OnDragDrop( Mobile from, Item item )
slade15 - September 24, 2004 04:17 PM (GMT)
je sais pas mais j'airai plutot essayé d'utiliser
virtual bool OnMoveOver( Mobile m )
edit : haaa c vrai que ici c'est Mobile, donc c quand on le glise sur un Mobile et pas sur un autre Item
Dihel - September 24, 2004 07:08 PM (GMT)
humm... creer de nouvelles bouteilles considerées comme un contener mais sans la possibilitée de l'ouvrir ?
Didi - September 24, 2004 08:38 PM (GMT)
l'intégrale de la fonction
| CODE |
public virtual bool OnDragDrop(Mobile from, Item dropped) { if ((this.Parent as Container) != null) { return ((Container) this.Parent).OnStackAttempt(from, this, dropped); } return this.StackWith(from, dropped); }
|
| CODE |
public virtual bool OnStackAttempt(Mobile from, Item stack, Item dropped) { if (!this.CheckHold(from, dropped, 1, 0)) { return false; } return stack.StackWith(from, dropped); }
|
| CODE |
public virtual bool StackWith(Mobile from, Item dropped) { return this.StackWith(from, dropped, 1); }
|
| CODE |
public virtual bool StackWith(Mobile from, Item dropped, bool playSound) { int num1; if (((this.Stackable && dropped.Stackable) && ((dropped.GetType() == base.GetType()) && (dropped.ItemID == this.ItemID))) && ((dropped.Hue == this.Hue) && ((dropped.Amount + this.Amount) <= 60000))) { if (this.m_LootType != dropped.m_LootType) { this.m_LootType = 0; } this.Amount = (this.Amount + dropped.Amount); dropped.Delete(); if (playSound) { num1 = this.GetDropSound(); if (num1 == -1) { num1 = 66; } from.SendSound(num1, this.GetWorldLocation()); } return true; } return false; }
|
Hughlander - September 27, 2004 12:42 PM (GMT)
Merci didi de t'etre cassé la tête mais c'était pas tout à fait ca la question (enfin je crois :( )
Par contre dihel je crois bien que c'est ça (OnDragDrop c'est que sur les container et rien d'autre alors ?)
Hughlander - September 27, 2004 03:09 PM (GMT)
Euh bon bah en fait c'est au niveau du tiledata.mul que c'est géré ya un attribut "container" dedans