المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طريقة اضافة StudyPoints عشان السب كلاس لكلينت 5375


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 بوينت

عفواً لايمكن عرض الروابط في الإرشيف

وارجو التقييم