مشاهدة النسخة كاملة : خش بسرعه يا رايدر xddd
uncelsam
2019-10-27, 11:08 PM
اول حاجه بسم الله
عاوز اخلي الوحوش بتاعت المدن كلها لما تموت توقع فلوس و ايتمز زي مثلا الميتور
واستاني التاني راخر :)
بالنسبه للفلوس
فولس هيه نفس فكرة الايتم الي بتقع ف الارض و الاكونت بيلمها هنروح ل Monstertable.cs
جزء خاص ب Drop
و هنحط كود ده
#region DropMoney
byte morepercent = 0;
byte lessrate = 0;
if (Kernel.Rate(Constants.MoneyDropRate - lessrate + morepercent))
{
if (killer.MapID == 1002) return;
uint amount = (uint)Kernel.Random.Next((int)MinMoneyDropAmount, (int)MaxMoneyDropAmount);
amount *= Constants.MoneyDropMultiple;
if (amount > 100000)
amount = 500000;
if (amount == 0) return;
uint ItemID = Network.PacketHandler.MoneyItemID(amount);
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.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money ;
floorItem.Value = amount;
floorItem.ItemID = ItemID;
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.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
طب كود ده بيعمل ايه
#region DropMoney
byte morepercent = 0;
byte lessrate = 0;
if (Kernel.Rate(Constants.MoneyDropRate - lessrate + morepercent)) سطر ده نسبة حظ يعني لو ضربت وحش احتمال 5 ف ميه انه يوقع فلوس طب انا مش فاهم حاجه من كلام ده
خليه كده if (Kernel.Rate(30)) كده هيوقع فلوس بس بسهوله نسبيا و ممكن تغير رقم 30 برحتك لحد ما يظبط
{
if (killer.MapID == 1002) return; دي لو عايز مابه معينه متوقعش فلوس
uint amount = (uint)Kernel.Random.Next((int)MinMoneyDropAmount, (int)MaxMoneyDropAmount); دي بقا مقدار فلوس
مش فاهم اقولك لو عملناها كده من 10 ل 20
uint amount = (uint)Kernel.Random.Next(10, 20);
فلوس هتتقع 10 11 12 13 14 15 16 17 18 19 20 تمام كده الي بعده
amount *= Constants.MoneyDropMultiple; دي لو لاعب معاه توكت بتخلي دروب فلوس في 2 او 3 او اي رقم بياخد رقم الي فوق و يضربه في رقم بتاع Constants.MoneyDropMultiple
if (amount > 100000) هنا لو واد هيقعله اكتر من 100 الف
amount = 500000; هيقعله 500 الف
if (amount == 0) return; طب لو هيقعله 0 متقعش خالص سبيكة فلوس
بس كده دول اهم حاجاه انته عايز تعرفهم
uint ItemID = Network.PacketHandler.MoneyItemID(amount);
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.ValueType = Network.GamePackets.FloorItem.FloorValueType.Money ;
floorItem.Value = amount;
floorItem.ItemID = ItemID;
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.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
uncelsam
2019-10-28, 01:22 PM
الله ينور عااش اقسم بالله
vBulletin® v3.8.8 Beta 1, Copyright ©2000-2024, TranZ by code