Hassan Emprator
2019-09-28, 02:07 AM
السلام عليكم
كانت في ناس طالبه ازاي تخلي الوحوش توقع
اكسبولات
وكدا
انا عملت ليهم الموضوع دا
اولا
نسمي الله ونبدا
اول حاجه تفتح ملف ايتمز هتلاقوه في
bin/debug/Items
بعد كدا تضيفو فيه الكود اد
722136@@ExpBall(Event)@@0@@0@@0@@0@@0@@0@@0@@0@@11 @@0@@0@@9017600@@0@@0@@0@@0@@0@@0@@0@@1@@1@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@ @0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@RareItem@@Use~it ~to~gain~much~EXP.~Can`t~be~stored~in~Warehouse~or ~traded.~Disappear~if~discarded.@@5@@0@@0@@0@@0@@5 00@@0@@0@@0@@0@@0@@
بعد كدا تفتح كلاس PacketHandler
ابحث عن دي
#region ExpBall
وضيف دي تحتها
#region ExpBallEventByHassan
case 722136:
{
// if (client.ExpBalls < 10)
// {
if (client.Entity.Level < 137)
{
client.IncreaseExperience(client.ExpBall, false);
client.Inventory.Remove(item, Game.Enums.ItemUse.RemoveFromStack);
client.ExpBalls++;
// }
}
else
client.Send(Constants.ExpBallsUsed);
break;
}
#endregion
تمام كدا انا كدا ضفتها انا حبيت بقا اضيف دي تقع من اي وحش
اعمل ايه ؟
تضيف الكود دا في MonsterTable
#region DropItemsByHassan
if (killer != null && killer.EntityFlag == Game.EntityFlag.Player)
{
byte times = (byte)Kernel.Random.Next(1, 2);
byte ref_times = (byte)Kernel.Random.Next(1, 60);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)Kernel.Random.Next(1, 60);
switch (type)
{
case 1: Uid = 721016; break;
case 2: Uid = 721019; break;
//case 3: Uid = 723744; break;
case 3: Uid = 722136; break;
case 4: Uid = 720027; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = 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 = (Game.Enums.Color)Kernel.Random.Next(4, 60);
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);
}
}
}
}
#endregion
طبعا الكود دا في دروب شنط من 5 لي 25
وفي ميتور سكرول
وفي الي هوا الاكسبولات حبيت امسح اي حاجه واضيف
هتعمل كداج
case 5: Uid = 720027; break;
وتمشي بي الترتيب بقا بي كود بتاع الايتم
اتمنا اكود فدتكم هيا حاجه بسيطه حاجه للناس الي عايزه بس
والسلام عليكم ورحمت الله وبركاته :)
تعديل : لو حد جاله ايرور في Playerيخليها Entity ولو جاله في Entityيخليها Player
كانت في ناس طالبه ازاي تخلي الوحوش توقع
اكسبولات
وكدا
انا عملت ليهم الموضوع دا
اولا
نسمي الله ونبدا
اول حاجه تفتح ملف ايتمز هتلاقوه في
bin/debug/Items
بعد كدا تضيفو فيه الكود اد
722136@@ExpBall(Event)@@0@@0@@0@@0@@0@@0@@0@@0@@11 @@0@@0@@9017600@@0@@0@@0@@0@@0@@0@@0@@1@@1@@0@@0@@ 0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@ @0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@RareItem@@Use~it ~to~gain~much~EXP.~Can`t~be~stored~in~Warehouse~or ~traded.~Disappear~if~discarded.@@5@@0@@0@@0@@0@@5 00@@0@@0@@0@@0@@0@@
بعد كدا تفتح كلاس PacketHandler
ابحث عن دي
#region ExpBall
وضيف دي تحتها
#region ExpBallEventByHassan
case 722136:
{
// if (client.ExpBalls < 10)
// {
if (client.Entity.Level < 137)
{
client.IncreaseExperience(client.ExpBall, false);
client.Inventory.Remove(item, Game.Enums.ItemUse.RemoveFromStack);
client.ExpBalls++;
// }
}
else
client.Send(Constants.ExpBallsUsed);
break;
}
#endregion
تمام كدا انا كدا ضفتها انا حبيت بقا اضيف دي تقع من اي وحش
اعمل ايه ؟
تضيف الكود دا في MonsterTable
#region DropItemsByHassan
if (killer != null && killer.EntityFlag == Game.EntityFlag.Player)
{
byte times = (byte)Kernel.Random.Next(1, 2);
byte ref_times = (byte)Kernel.Random.Next(1, 60);
for (byte i = 0; i < times; i++)
{
uint Uid = 0;
byte type = (byte)Kernel.Random.Next(1, 60);
switch (type)
{
case 1: Uid = 721016; break;
case 2: Uid = 721019; break;
//case 3: Uid = 723744; break;
case 3: Uid = 722136; break;
case 4: Uid = 720027; break;
}
if (Uid != 0)
{
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = 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 = (Game.Enums.Color)Kernel.Random.Next(4, 60);
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);
}
}
}
}
#endregion
طبعا الكود دا في دروب شنط من 5 لي 25
وفي ميتور سكرول
وفي الي هوا الاكسبولات حبيت امسح اي حاجه واضيف
هتعمل كداج
case 5: Uid = 720027; break;
وتمشي بي الترتيب بقا بي كود بتاع الايتم
اتمنا اكود فدتكم هيا حاجه بسيطه حاجه للناس الي عايزه بس
والسلام عليكم ورحمت الله وبركاته :)
تعديل : لو حد جاله ايرور في Playerيخليها Entity ولو جاله في Entityيخليها Player