ChuMChuM
06-01-2012, 06:39 AM
النهاردة انا جبت كيفية اضافة بوينتات الستدي Study Points
عشان الناس اللي عايزة تكمل السورس بتاعها في كلينت 5375
كل الشغل هايبقي في ملفيند وهم PacketHandler.cs و MonsterTable.cs
اول حاجة وان شاء الله هي اللي هايبقي فيها الشغل
هاندور على الكود ده
كود PHP:
client.AddSpell(new Spell(true) { ID = 1165 });
و هانطلع بره و هانلاقي break و endregion
نحط بعدها الكود ده
كود PHP:
#region StudyBooks
case 723340:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Entity.SubClasses.StudyPoints += 5;
break;
}
case 723341:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Entity.SubClasses.StudyPoints += 20;
break;
}
case 723342:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Entity.SubClasses.StudyPoints += 500;
break;
}
#endregion
كده احنا ضفنا التعريفات بتاعة الكتب اللي بتدي البوينتات دي
ناقص حاجة
احنا عايزين نخلي الوحوش توقع الكتب دي
و طريقتها سهلة اوي
نفتح MonsterTable.cs
وندور على الكود ده
كود PHP:
if (Name == "SnowBanshee")
وحط الكود ده فوقيه علطول
كود PHP:
if (Game.Entity.ChanceSuccess(2.5))
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
switch (type)
{
case 1: Uid = 723340; break;
case 2: Uid = 723340; break;
case 3: Uid = 723340; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = Uid;
floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
وكده الوحوش هاتوقع ثلاث انواع من الكتب
كتاب بيدي 5 بوينتات
كتاب بيدي 20 بوينت
و الاخير بيدي 500 بوينت
عفواً لايمكن عرض الروابط في الإرشيف
وارجو التقييم
عشان الناس اللي عايزة تكمل السورس بتاعها في كلينت 5375
كل الشغل هايبقي في ملفيند وهم PacketHandler.cs و MonsterTable.cs
اول حاجة وان شاء الله هي اللي هايبقي فيها الشغل
هاندور على الكود ده
كود PHP:
client.AddSpell(new Spell(true) { ID = 1165 });
و هانطلع بره و هانلاقي break و endregion
نحط بعدها الكود ده
كود PHP:
#region StudyBooks
case 723340:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Entity.SubClasses.StudyPoints += 5;
break;
}
case 723341:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Entity.SubClasses.StudyPoints += 20;
break;
}
case 723342:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Entity.SubClasses.StudyPoints += 500;
break;
}
#endregion
كده احنا ضفنا التعريفات بتاعة الكتب اللي بتدي البوينتات دي
ناقص حاجة
احنا عايزين نخلي الوحوش توقع الكتب دي
و طريقتها سهلة اوي
نفتح MonsterTable.cs
وندور على الكود ده
كود PHP:
if (Name == "SnowBanshee")
وحط الكود ده فوقيه علطول
كود PHP:
if (Game.Entity.ChanceSuccess(2.5))
{
byte times = (byte)ServerBase.Kernel.Random.Next(1, 3);
byte ref_times = (byte)ServerBase.Kernel.Random.Next(1, 6);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)ServerBase.Kernel.Random.Next(1, 21);
switch (type)
{
case 1: Uid = 723340; break;
case 2: Uid = 723340; break;
case 3: Uid = 723340; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = ServerBase.Kernel.Maps[Owner.MapID];
if (Map.SelectCoordonates(ref X, ref Y))
{
Network.GamePackets.FloorItem floorItem = new Network.GamePackets.FloorItem(true);
floorItem.Item = new Network.GamePackets.ConquerItem(true);
floorItem.Item.Color = (Conquer_Online_Server.Game.Enums.Color)ServerBase .Kernel.Random.Next(4, 8);
floorItem.Item.ID = Uid;
floorItem.Item.MaximDurability = floorItem.Item.Durability = 65535;
floorItem.Item.UID = Network.GamePackets.ConquerItem.ItemUID.Next;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = Uid;
floorItem.MapID = Owner.MapID;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Type = Network.GamePackets.FloorItem.Drop;
floorItem.OnFloor = Time32.Now;
floorItem.ItemColor = floorItem.Item.Color;
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
while (Map.Npcs.ContainsKey(floorItem.UID))
floorItem.UID = Network.GamePackets.FloorItem.FloorUID.Next;
Map.AddFloorItem(floorItem);
SendScreenSpawn(floorItem);
}
}
}
}
وكده الوحوش هاتوقع ثلاث انواع من الكتب
كتاب بيدي 5 بوينتات
كتاب بيدي 20 بوينت
و الاخير بيدي 500 بوينت
عفواً لايمكن عرض الروابط في الإرشيف
وارجو التقييم