Lucian
Member
My scripts are:
And
But when I add the stone somewhere and doubleclick it , server crashes and gives me this crash report :
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Server.Mobiles;
using Server.Regions;
using Server.Items;
namespace Server.Regions
{
public class RegionStone : Item
{
public EgitimAlani Register(RegionStone tas)
{
if (tas != null)
{
Point2D start = new Point2D(tas.X + Size, tas.Y + Size);
Point2D end = new Point2D(tas.X - Size, tas.Y - Size);
Rectangle2D arena = new Rectangle2D(start, end);
EgitimAlani alan = new EgitimAlani(tas, tas.Map, arena, tas.AreaName);
alan.Register();
return alan;
}
else return null;
}
public void UnRegister(RegionStone tas)
{
if(tas!= null)
{
tas.Alan.Unregister();
}
}
private int m_Size;
[CommandProperty(AccessLevel.GameMaster)]
public int Size
{
get { return m_Size; }
set { m_Size = value; }
}
private Map m_Map;
[CommandProperty(AccessLevel.GameMaster)]
public Map Map
{
get { return m_Map; }
set { m_Map = value; }
}
private string m_EnterMessage;
[CommandProperty(AccessLevel.GameMaster)]
public string EnterMessage
{
get { return m_EnterMessage; }
set { m_EnterMessage = value; }
}
private bool m_AllowPets;
[CommandProperty(AccessLevel.GameMaster)]
public bool AllowPets
{
get { return m_AllowPets; }
set { m_AllowPets = value; }
}
private string m_AreaName;
[CommandProperty(AccessLevel.GameMaster)]
public string AreaName
{
get { return m_AreaName; }
set { m_AreaName = value; }
}
private EgitimAlani m_Alan;
public EgitimAlani Alan
{
get { return m_Alan; }
set { m_Alan = value; }
}
[Constructable]
public RegionStone() : base(0xED4)
{
AreaName = "Henüz Adlandırılmamış Alan";
EnterMessage = String.Format("{0}'a hoş geldiniz", AreaName);
AllowPets = true;
Size = 3;
Map = this.Map;
Movable = false;
Name = AreaName;
}
public RegionStone(Serial serial):base(serial)
{ }
public override void OnDoubleClick(Mobile from)
{
// base.OnDoubleClick(from);
this.PublicOverheadMessage(Network.MessageType.Regular, 1153, false ,"Hey! , wait a little bit.");
if(from.AccessLevel > AccessLevel.GameMaster)
{
UnRegister(this);
Alan= Register(this);
this.Name = "" + "" + this.AreaName + " için kontrol taşı";
if (Alan != null)
from.SendMessage(34, "Dungeon Region Updated");
}
//from.SendMessage(1153, "Alan yenilendi..");
}
public override void OnDelete()
{
base.OnDelete();
UnRegister(this);
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
m_AllowPets = reader.ReadBool();
m_AreaName = reader.ReadString();
m_EnterMessage = reader.ReadString();
m_Size = reader.ReadInt();
m_Map = reader.ReadMap();
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0);
writer.Write(m_AllowPets);
writer.Write(m_AreaName);
writer.Write(m_EnterMessage);
writer.Write(m_Size);
writer.Write(m_Map);
}
}
}
And
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Server.Items;
using Server.Regions;
namespace Server.Regions
{
public class EgitimAlani : Region
{
private RegionStone m_Tas;
public RegionStone Tas
{
get { return m_Tas; }
//set { m_Tas = value; } This should be read-only
}
public EgitimAlani(RegionStone tas,Map map , Rectangle2D area , string name) : base(name , map , 0, area)
{
m_Tas = tas; tas.Alan = this;
}
public override void OnEnter(Mobile m)
{
base.OnEnter(m);
m.SendMessage(String.Format("{0}'a hoşgeldin!", m_Tas.AreaName));
}
}
}
But when I add the stone somewhere and doubleclick it , server crashes and gives me this crash report :
Code:
Server Crash Report
===================
ServUO Version 0.5, Build 6376.24745
Operating System: Microsoft Windows NT 6.1.7601 Service Pack 1
.NET Framework: 4.0.30319.42000
Time: 16.06.2017 13:39:10
Mobiles: 965
Items: 5246
Exception:
System.NullReferenceException: Nesne başvurusu bir nesnenin örneğine ayarlanmadı.
konum: Server.Regions.RegionStone.OnDoubleClick(Mobile from)
konum: Server.Mobile.Use(Item item) c:\Users\Klyc\Desktop\ServUO-master\Server\Mobile.cs içinde: satır 4417
konum: Server.Engines.XmlSpawner2.XmlAttach.UseReq(NetState state, PacketReader pvSrc)
konum: Server.Network.MessagePump.HandleReceive(NetState ns) c:\Users\Klyc\Desktop\ServUO-master\Server\Network\MessagePump.cs içinde: satır 187
konum: Server.Network.MessagePump.Slice() c:\Users\Klyc\Desktop\ServUO-master\Server\Network\MessagePump.cs içinde: satır 121
konum: Server.Core.Main(String[] args) c:\Users\Klyc\Desktop\ServUO-master\Server\Main.cs içinde: satır 587
Clients:
- Count: 1
+ 127.0.0.1: (account = klyc) (mobile = 0x3C4 'Lucian')