View Full Version: Prob avec une stone

RunUO.FR Support > Probleme de script > Prob avec une stone


Title: Prob avec une stone


Ragnaroth - August 12, 2004 02:42 PM (GMT)
Bon voila j'ai essayer de me faire une stone de controle pour race(genre une guild ) mais j'arrive pas a la faire marcher.
Ca se compile mais quand je dbl clik dessus ca fait crasher le serveur :(
Voila le script:
CODE

using System;
using Server;
using Server.Items;
using Server.Gumps;
using Server.Network;
using Server.Mobiles;
using Server.Guilds;

namespace Server.Items
{
 public class ControlStone : Item
 {
    private Guild m_Guild;
 
     [Constructable]
     public ControlStone() : base( 0xED4 )
     {
       Movable = false;
       Hue = 0x250;
     }

     public override void OnDoubleClick( Mobile from )
     {
       from.SendGump(new RaceStoneGump(from, m_Guild) );
     }

     public ControlStone( 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();
     }
 
 }

}

Merci d'avance.

Didi - August 12, 2004 05:45 PM (GMT)
copie rapport de crah ainsi que racestonegump

slade15 - August 12, 2004 05:49 PM (GMT)
une chose est sur le prob ne vien pas de la pierre , et donc probablement du gump

et sans le rapport d'error c'est impossible de t'aider

Ragnaroth - August 13, 2004 03:56 PM (GMT)
Voila le gump et pour l'erro j'ai jamais le temps de la copier
CODE

using System;
using System.Collections;
using Server;
using Server.Guilds;
using Server.Network;
using Server.Prompts;
using Server.Targeting;

namespace Server.Gumps
{
public class RaceStoneGump : Gump
{
 private Mobile m_Mobile;
 private Guild m_Guild;
 
 public RaceStoneGump( Mobile mobile, Guild guild ) : base( 20, 30 )
 {
  m_Mobile = mobile;
  m_Guild = guild;
 
  this.Closable=true;
  this.Disposable=true;
  this.Dragable=true;
  this.Resizable=false;
  this.AddPage(0);
  this.AddBackground(0, 0, 400, 400, 9200);
  this.AddBackground(5, 5, 390, 390, 3000);
  this.AddHtml( 5, 5, 390, 20, String.Format( "<center><i>{0} RACE</i></center>", m_Guild.Name.ToUpper() ), false, false);
  this.AddHtml( 5, 25, 390, 20, String.Format( "<center>Chef Actuel: {0}</center>", m_Guild.Leader != null ? m_Guild.Leader.Name : "pas de chef" ), false, false);
  Mobile leader = guild.Leader;

  if ( leader != null )
  {
   string leadTitle;

   if ( (leadTitle = leader.GuildTitle) != null && (leadTitle = leadTitle.Trim()).Length > 0 )
    leadTitle += ": ";
   else
    leadTitle = "";

   string leadName;

   if ( (leadName = leader.Name) == null || (leadName = leadName.Trim()).Length <= 0 )
    leadName = "(empty)";

   AddHtml( 220, 15, 250, 35, leadTitle + leadName, false, false );
  }
 
  this.AddButton(20, 50, 4005, 4007, 1, GumpButtonType.Reply, 0);
  this.AddLabel(55, 52, 0, @"Liste des Membres");
 
  this.AddButton(20, 70, 4005, 4007, 1, GumpButtonType.Reply, 0);
  this.AddLabel(55, 72, 0, @"Voir le Background de la Race");
 
  if ( mobile.AccessLevel >= AccessLevel.GameMaster || mobile == leader )
  {
   this.AddButton(20, 90, 4005, 4007, 1, GumpButtonType.Reply, 0);
   this.AddLabel(55, 92, 0, @"Section du Chef");
  }
 
 
 }
 public override void OnResponse ( NetState sender, RelayInfo info )
 {
  switch( info.ButtonID )
  {
   case 1:
    m_Mobile.CloseGump( typeof( ListeMembres ) );
       m_Mobile.SendGump( new ListeMembres( m_Mobile, m_Guild ) );
    break;
   case 2:
    m_Mobile.CloseGump( typeof( BgRace ) );
    m_Mobile.SendGump( new BgRace( m_Mobile, m_Guild ) );
    break;
   case 3:
    m_Mobile.CloseGump( typeof( SectionChef ) );
    m_Mobile.SendGump( new SectionChef( m_Mobile, m_Guild ) );
    break;
  }
 }
}
}


Didi - August 13, 2004 06:17 PM (GMT)
ton m_Guild est null ctout :P

slade15 - August 13, 2004 11:37 PM (GMT)
oui effectivement tu a creer ta veriable private Guild m_Guild;
dans le raceStone et tu l'a passe au gump dans jamais mettre une valeur dedans ce qui veux dire qu'il y a null dedans , et donc quand tu essaye d'utiliser cette valuer ca crach

Ragnaroth - August 14, 2004 08:30 AM (GMT)
:blink: Et bien vous pourriez pas m'aider a resoudre le prob?Parceque la je seche :P

Didi - August 15, 2004 01:08 AM (GMT)
CODE

using System;
using Server;
using Server.Items;
using Server.Gumps;
using Server.Network;
using Server.Mobiles;
using Server.Guilds;

namespace Server.Items
{
 public class ControlStone : Item
 {
    private Guild m_Guild;
 
     [Constructable]
     public ControlStone() : base( 0xED4 )
     {
       Movable = false;
       Hue = 0x250;
     }

     public override void OnDoubleClick( Mobile from )
     {
       if (m_Guild != null)
           from.SendGump(new RaceStoneGump(from, m_Guild) );
     }

     public ControlStone( 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();
     }
 
 }

}


Ragnaroth - August 15, 2004 07:00 AM (GMT)
Bon ben la pierre fait ne fait plus crasher le serveur mais quand je double clik desus ya rien qui s'ouvre :( .Encore un peu d'aide si possible :P .
Merci d'avance.

Nezumi - August 15, 2004 09:50 AM (GMT)
ton m_guild doit être = null.

QUOTE
[CommandProperty( AccessLevel.GameMaster )]
public Guild CurentGuild
{
get{ return m_Guild; }
set{ m_Guild = value; InvalidateProperties(); }
}

essaie ça, tu devrais pouvoir réglé la guild a partir du .props

Injall - August 15, 2004 10:17 AM (GMT)
QUOTE (Ragnaroth @ Aug 13 2004, 04:56 PM)
pour l'erro j'ai jamais le temps de la copier

pour copier une erreur d'une console, clic droit sur l'icone de la console en haut à gauche > Modifier > Sélectionner tout
Puis Modifier > Copier

;) c'est toujours utile

Ragnaroth - August 15, 2004 10:27 AM (GMT)
Il me dit que la class est expected pour public Guild Current Guild.
Merci pour l'info injall

Ragnaroth - August 16, 2004 12:38 PM (GMT)
Et puis pourquoi CurrentGuild? ;)

Didi - August 16, 2004 02:55 PM (GMT)
QUOTE (Injall @ Aug 15 2004, 11:17 AM)
pour l'erro j'ai jamais le temps de la copier

a chaque crash server, il cré un log a la racine de ton server.

Cherche un fichier avec comme nom la date et lheure du crash, et taura l'error

Ragnaroth - August 16, 2004 03:09 PM (GMT)
Ok bon ben voila l'erreur (avec le script ss ajout ):
QUOTE

Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
  at Server.Gumps.RaceStoneGump..ctor(Mobile mobile, Guild guild)
  at Server.Items.ControlStone.OnDoubleClick(Mobile from)
  at Server.Mobile.Use(Item item)
  at Server.Network.PacketHandlers.UseReq(NetState state, PacketReader pvSrc)
  at Server.Network.MessagePump.HandleReceive(NetState ns)
  at Server.Network.MessagePump.Slice()
  at Server.Core.Main(String[] args)

slade15 - August 16, 2004 10:27 PM (GMT)
ca confirme que tu utilise un objet null soit le mobile ou guild
et c'est probablement le guild comme ils ont dit avant

Didi - August 17, 2004 01:05 AM (GMT)
javais visé juste :P

Il accepte pas que ta guild soit null

Ragnaroth - August 17, 2004 05:51 AM (GMT)
Et donc faut que je lui assigne un nombre mais lequel?
Merci d'avance.

slade15 - August 17, 2004 08:23 AM (GMT)
je croi qu'il faut que tu fasse une sorte de guilde par defaud

Ragnaroth - August 17, 2004 08:37 AM (GMT)
J'ai essayer de reprendre la stone d'une guilde normale mais j'arrive pa a inserer un constructable :( .

Nezumi - August 17, 2004 10:30 AM (GMT)
tu a repris un script de runuo de base?
Si c'est le cas ta valeur par défault doit être m_guild = guild.none ou du style

Ragnaroth - August 21, 2004 07:50 AM (GMT)
Vous pourriez pas me donner un exemple de guildstone avec un Constructable parceque la j'y arrive pas du tout.
Merci d'avance.




Hosted for free by InvisionFree