Aile Sistemi v1.0 [Runuo 1.0]
Yazan Orhan KALAYCI Tarih 22 October 2008 | 8 Yorum
Evet, Ilk Yazi Bu, Bu Konuda Yazacagimi Tahmin Etmezdim Ama Yaziyorum i$te neyse Uzun Lafin Kisasi, Kendi Geli$tirdigim Bir Aile Scripti, Alin Kullanin Anasini Satayim, Gik Dersem Namerdim,
[Burdan Indirip Serverda Denedim Hicbir Sorun Yok gayet Guzel Cali$iyor, Guncel Surumu Indirip Ayarlari Tam Yaparsaniz Cali$acaktir]
Burdan Buyrun, [ Yeni Versiyon Buglar Fixlendi, Yeni Komutlar Eklendi ]
PlayerMobile.cs De Yapilacak ayarlamalar:
[CommandProperty( AccessLevel.GameMaster )]
public bool PublicMyRunUO
{
get{ return GetFlag( PlayerFlag.PublicMyRunUO ); }
set{ SetFlag( PlayerFlag.PublicMyRunUO, value );
InvalidateMyRunUO();
}
// Yukardaki Satiri Bulup Altina :
private ArrayList pFamilyMembers;
[CommandProperty(AccessLevel.GameMaster)]
public ArrayList FamilyMembers
{
get { return pFamilyMembers; }
set { pFamilyMembers = value; }
}
private FamilyEars pFamilyEars;
[CommandProperty( AccessLevel.GameMaster)]
public FamilyEars FamilyEars
{
get { return pFamilyEars; }
set { pFamilyEars = value; InvalidateProperties(); }
}
private string pFamilyName;
[CommandProperty(AccessLevel.GameMaster)]
public string FamilyName
{
get { return pFamilyName; }
set { pFamilyName = value; InvalidateProperties(); }
}
private bool pHaveFamily;
[CommandProperty(AccessLevel.GameMaster)]
public bool HaveFamily
{
get { return pHaveFamily; }
set { pHaveFamily = value; InvalidateProperties(); }
}
private bool pIsFamilyLeader;
[CommandProperty(AccessLevel.GameMaster)]
public bool IsFamilyLeader
{
get { return pIsFamilyLeader; }
set { pIsFamilyLeader = value; InvalidateProperties(); }
}
//Bu Satirlari Ekliyoruz,
Ardindan PlayerMobile in 2 Constructor ini (serialize ve normal) $u $ekilde Degi$tiriyoruz:
public PlayerMobile( Serial s ) : base( s )
{
m_VisList = new ArrayList();
pFamilyMembers = new ArrayList(); // Eklenecek Satir..
m_AntiMacroTable = new Hashtable();
InvalidateMyRunUO();
}
public PlayerMobile()
{
m_VisList = new ArrayList();
pFamilyMembers = new ArrayList(); // Eklenecek satir.
m_PermaFlags = new ArrayList();
m_AntiMacroTable = new Hashtable();
m_BOBFilter = new Engines.BulkOrders.BOBFilter();
m_GameTime = TimeSpan.Zero;
m_ShortTermElapse = TimeSpan.FromHours( 8.0 );
m_LongTermElapse = TimeSpan.FromHours( 40.0 );
m_JusticeProtectors = new ArrayList();
InvalidateMyRunUO();
}
//EGER Ailesi Olmayan Playerlarin Soy Adini Silmek Istiyorsaniz
//PlayerMobile.cs Nin Icinde OnLogin Methodunun Icine:
PlayerMobile Player = (PlayerMobile)e.Mobile;
if (!Player.HaveFamily && Player.FamilyEars == null
&& Player.FamilyName == null)
{
string[] NameArray = Player.Name.Split(' ');
Player.Name = NameArray[0];
}
//Satirlarini Eklemeniz Yeterli Olacaktir.
//Bunlari Ekledikten Sora Serialize
//ve Deserialize Methodlarinda
//Duzeltme yapmaya geldi sira:
public override void Serialize( GenericWriter writer )
{
base.Serialize( writer );
writer.Write( (int) 19 ); // Burdaki 19 Artik Kac //Ise 1 Artiracaksiniz... Ve Altina
writer.Write((FamilyEars)pFamilyEars);
writer.Write(pIsFamilyLeader);
writer.Write(pFamilyName);
writer.Write(pHaveFamily);
//Satirlarini Ekleyeceksiniz..
//Sorasinda DeSerialize Methodu..
}
public override void Deserialize( GenericReader reader )
{
base.Deserialize( reader );
int version = reader.ReadInt();
switch ( version )
{
// Bunlari Ekliyeceksiniz..
case 19: // 19 Yukariya Yazdiginiz Versiyon...
{
pFamilyEars = reader.ReadItem() as FamilyEars;
pIsFamilyLeader = reader.ReadBool();
pFamilyName = reader.ReadString();
pHaveFamily = reader.ReadBool();
goto case 18;
// Bir Alt Satir Olmasi Lazim Yani Versiyon 20 ise
// sizin GoTo 19 yapmaniz Gerek.
}
// Burda Yukariya yazdiginiz Versiyonun 1 Eksigi Olacak
Case 18: // Bir Alt Versiyon......
}
}
PlayerMobile ida Duzelttiginizde Indirdiginiz Dosyalari Direkt Olarak Scripts Klasorune Acin Ve Server a Restart Atin..
[AileKur: Aile Kurmaniz Icin Gereken Komut : 500k Dir
[AileyeDavet: Ba$ka Bir Playeri Aileye Davet Etmek Icin Gerekli Olan Komut( Aileye Girecek Karakterin Bankasinda 50k Olmalidir)
[AileOnline: O An Oyunda Olan Aile Uyelerinin Listesini Gormenizi Saglar.
[AiledenAt: Aile Reisi Iseniz Aile Uyelerini Aileden Atmaya Yarar.
[AileChat: Ailedeki online Playerlara Mesaj Gonderimi Saglar
[AileAyril: Aileden Ayrilmanizi Saglar ( Kupeniz Silinir Soyadiniz Silinir ) Ayrica Aile Reisi Iseniz Aile Dagilir Ve Tum Uyelerin Soyadlari Ve Kupeleri Silinir. Ek Bir Komut:
[DeleteLastNames Soyad: Soyad Parametresine Girilen Soyad A Sahip Ki$ilerin Soyadlarini Siler. Hadi Kolay Gelsin…
Etiketler: aile sistemi, c#, runuo script, runuo scripts, Ultima Online
Kategori: Ultima Online
Yorumlar (8)


Eline sağlık. .
Teşekkürler Güle Güle Kullanın.
Öncelikle eline sağlık fakat bi sorun var scrptte yada bende chras yedi
Eğer Crash Log u atarsan buraya yardımcı olabilirm
e-mail adresini yazabilirmisin, *
İletişim sayfasında var
yada ben size buradan yazayım
[code]Server Crash Report
===================
RunUO Version 1.0.0, Build 36918
Operating System: Microsoft Windows NT 5.1.2600.0
.NET Framework: 1.1.4322.2407
Time: 01.07.2009 12:10:06
Mobiles: 952
Items: 76680
Clients:
- Count: 1
+ 5.116.109.231: (account = Admin) (mobile = 0x3 'Eric CAN')
Exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Server.Gumps.FamilyCreateGump.OnResponse(NetState sender, RelayInfo info)
at Server.Network.PacketHandlers.DisplayGumpResponse(NetState state, PacketReader pvSrc)
at Server.Network.MessagePump.HandleReceive(NetState ns)
at Server.Network.MessagePump.Slice()
at Server.Core.Main(String[] args)
[/code]
NGU dada bu scripti görmek dileğiyle