View Full Version: Target = crash

RunUO.FR Support > Probleme de script > Target = crash


Title: Target = crash


Belladonne - September 2, 2004 09:13 AM (GMT)
Bonjour,

Voila j'ai pondu un script pour changer de race a l'aide d'une commande

.turntonain qui fonctionne avec un target. QUand je l'essayes moi sur moi tout va bien, quand l'autre admin du shard l'utilise lui sur lui crash serveur .... j'arrive pas a trouver pourquoi peut etre auriez vous une idée ?

le rapport de crash :
QUOTE
Exception:
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
  at Server.Scripts.Commands.MicTarget.OnTarget(Mobile from, Object targeted)
  at Server.Targeting.Target.Invoke(Mobile from, Object targeted)
  at Server.Network.PacketHandlers.TargetResponse(NetState state, PacketReader pvSrc)
  at Server.Network.MessagePump.HandleReceive(NetState ns)
  at Server.Network.MessagePump.Slice()
  at Server.Core.Main(String[] args)



cela proviens du code suivant:
QUOTE

public static void Turntonain_OnCommand ( CommandEventArgs e )
  {
  e.Mobile.Target = new MicTarget();
  }
  public class MicTarget : Target
  {
  public MicTarget() : base( -1, false, TargetFlags.None )
  {
  }

  protected override void OnTarget( Mobile from, object targeted )
  {
    if ( targeted is Mobile )
    {
    Mobile targ = (Mobile)targeted;

    if ( targ.NetState != null )
    {
      Mobile m_From = targ;
      PlayerMobile m_pm = m_From as PlayerMobile;
      m_From.SendMessage( "Vous êtes maintenant un Nain !..." );
      if (m_From.Beard != null) m_From.Beard.Delete(); //retire la barbe
      Item i_Beard = new Item(0x203E);
      i_Beard.Hue =m_From.Hair.Hue ;
      i_Beard.Layer = Layer.FacialHair ;
      i_Beard.Movable = false;
      m_From.AddItem (i_Beard);
      m_From.Hue = 0xF1;
      m_pm.Race = 2 ;
       
   
    }
    }
  }
  }



Didi - September 2, 2004 12:10 PM (GMT)
il ne vise pas un playermobile ?

Belladonne - September 2, 2004 01:30 PM (GMT)
ben normalement il vise son personnage qui doit bien etre un player mobile en toute logique.
De plus si je vise mon cheval avecou le sol rien ne se passe :S
DOnc ca viens pas d'une mauvaise visée qui ne porte pas a conséquence enfin apparement.

slade15 - September 2, 2004 02:04 PM (GMT)
essaye avec ceci on sais jamais

CODE
protected override void OnTarget( Mobile from, object targeted )
 {
   if ( targeted is PlayerMobile && targeted != null)
   {
     PlayerMobile m_From =(PlayerMobile) targeted;
     m_From.SendMessage( "Vous êtes maintenant un Nain !..." );
     if (m_From.Beard != null) m_From.Beard.Delete(); //retire la barbe
     Item i_Beard = new Item(0x203E);
     i_Beard.Hue =m_From.Hair.Hue;
     i_Beard.Layer = Layer.FacialHair;
     i_Beard.Movable = false;
     m_From.AddItem (i_Beard);
     m_From.Hue = 0xF1;
     m_From.Race = 2;
       
   
   }
   }


ce que tu peut aussi faire c'est mettre quelques m_From.SendMessage( "test 1" );
2, 3 ... un peut partout dans le OnTarget affin de voir exactement sur quel ligne il crach

Belladonne - September 2, 2004 04:09 PM (GMT)
merci j'essayes ca des que je mets la main sur mon ami le crasheur de serveur

parce que moi j'ai beau le faire ca marche parfaitement sans crash :S

Didi - September 3, 2004 12:53 AM (GMT)
QUOTE (Belladonne @ Sep 2 2004, 10:13 AM)
i_Beard.Hue =m_From.Hair.Hue ;

Wela, poru ceux que sa interesse :P Apres divers essai pas trop concluant, on a fini par trouver (en fait c belladone qui a trouver :rolleyes: )

Le prob était si le perso était chauve: crash

Belladonne - September 3, 2004 03:08 AM (GMT)
le crash venais du port d'un mask merci :)




Hosted for free by InvisionFree