الفكره سهله بس فى ناس مبتدئه لسه متعرفش الكلام دا
المهم لو مثلا عاوز كوسته معينه عندك تدى اللى يكسب توب وايتم معين انت اللى تحطو
مثال
دا انبسى اللى بيسلم الجايزه بتاع الكوسته
#region [Bird]PK Prize case 81509: switch (npcRequest.OptionID) { case 0: { dialog.Text("Hey there > " + client.Player.Name + " < Would you like to claim your Prize?."); dialog.Option("Yes Please", 1); dialog.Option("I Need To Leave", 2); dialog.Option("I don't care.", 0xff); dialog.Send(); break; } case 1: { Daily.CheackAlive184(); var Now64 = DateTime.Now; if (DateTime.Now.Minute >= 31 && DateTime.Now.Minute <= 33) { if (Daily.howmanyinmap184 == 1) { client.Player.ConquerPoints += 250000; int R = Kernel.Random.Next(1, 4); if (R == 1) client.Inventory.Add(730001, 1, 1); if (R == 2) client.Inventory.Add(730002, 2, 1); if (R == 3) client.Inventory.Add(730003, 3, 1); if (R == 4) client.Inventory.Add(730004, 4, 1); client.Player.RemoveFlag((ulong)MsgUpdate.Flags.Ride); client.Player.AddTopStatus((ulong)MsgUpdate.Flags2.Top8Water, 2, DateTime.Now.AddHours(1)); Kernel.SendWorldMessage(new MsgTalk("Congratulations! > " + client.Player.Name + " < You Wenner Quest [Bird]PK Prize " + 2000 + " CPs && Stone.", System.Drawing.Color.Black, MsgTalk.Center), Server.GamePool); client.Player.SendSpawn(client, true); client.Player.Teleport(1002, 344, 440); EntityTable.SaveEntity(client); } else { dialog.Text("There are still " + Daily.howmanyinmap184 + " players in the map kill it first to claim prize!"); dialog.Option("okay", 0xff); dialog.Send(); } } else { dialog.Text("Hey there > " + client.Player.Name + " < You can only claim the prize when the time on or after 30:33"); dialog.Option("okay", 0xff); dialog.Send(); } break; } case 2: { { client.Player.Teleport(1002, 410, 354); } break; } } break; #endregion
عندك الكود دا معناه
if (DateTime.Now.Minute >= 31 && DateTime.Now.Minute <= 33) الوقت لو دقيقه 33
if (Daily.howmanyinmap184 == 1) لو اللى فى الماب 1 شخص واحد
والوقت جه بتاع استلام الجايزه وكلم الانبسى
الانبسى يديلو الحجات دى
سبى وايتم والتوب
ويخرجو للتون
الكود دا
client.Inventory.Add(730002, 2, 1);
تقدر تحطو فى اى انبسى بيسلم جوايز انت عاوزو
الرقم دا ID الايتم 730002//Stone+2
ودا بتجيبو من ملف items.text فى السورس
تقدر تجيب id اى ايتم من items.text
دا الكود تقدر تحطو فى اى انبسى بيسلم جوايز وتغير ارقام الايتم دى من items.text
int R = Kernel.Random.Next(1, 4); if (R == 1) client.Inventory.Add(730001, 1, 1); if (R == 2) client.Inventory.Add(730002, 2, 1); if (R == 3) client.Inventory.Add(730003, 3, 1); if (R == 4) client.Inventory.Add(730004, 4, 1);
نخش على الوحوش
الكبيره او الصغيره
هتفتح MonsterTable.cs
عندك مثلا الوحش دا
#region ChillingSpook if (Name.Contains("ChillingSpook")) { killer.ConquerPoints += 1000000; killer.SubProStages.StudyPoints += 500; SubProStages.UpdateStundyPoints(killer.Owner, 500); killer.Owner.Player.Update(MsgName.Mode.Effect, "zf2-e300", true); uint ItemID = 0; byte type1 = 27; if (Kernel.Rate(100)) { if (killer.MapID == 2102) return; uint b = 0; uint ban = (uint)Kernel.Random.Next(1, 12); switch (ban) { case 1: b = 100000; break; case 2: b = 100000 * 2; break; case 3: b = 100000 * 3; break; case 4: b = 100000 * 4; break; case 5: b = 50000; break; case 6: b = 50000 * 2; break; case 7: b = 50000 * 3; break; case 8: b = 50000 * 4; break; case 9: b = 25000; break; case 10: b = 25000 * 2; break; case 11: b = 25000 * 3; break; case 12: b = 25000 * 4; break; } uint ItemID2 = ItemHandler.MoneyItemID(b); ushort X = Owner.X, Y = Owner.Y; Game.Map Map = Kernel.Maps[Owner.MapID]; if (Map.SelectCoordonates(ref X, ref Y)) { Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true); MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Money; MsgMapItem.Value = b; MsgMapItem.ItemID = ItemID2; MsgMapItem.MapID = 10137; MsgMapItem.MapObjType = Game.MapObjectType.Item; MsgMapItem.X = X; MsgMapItem.Y = Y; MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop; MsgMapItem.OnFloor = Time32.Now; MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; while (Map.Npcs.ContainsKey(MsgMapItem.UID)) MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; Map.AddFloorItem(MsgMapItem); SendScreenSpawn(MsgMapItem); } } if (Kernel.Rate(100)) { for (int i = 0; i < 1; i++) { type1 = (byte)Kernel.Random.Next(2, 2); switch (type1) { case 1: ItemID = 730003;//DraginBall break; case 2: ItemID = 730002; break; } var infos = Database.ConquerItemInformation.BaseInformations[ItemID]; ushort X = Owner.X, Y = Owner.Y; Game.Map Map = Kernel.Maps[Owner.MapID]; if (Map.SelectCoordonates(ref X, ref Y)) { Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true); MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true); MsgMapItem.Item.Color = (AboGamil.Game.Enums.Color)Kernel.Random.Next(4, 8); MsgMapItem.Item.ID = ItemID; MsgMapItem.Item.MaximDurability = infos.Durability; MsgMapItem.Item.Durability = infos.Durability; MsgMapItem.Item.MobDropped = true; MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item; MsgMapItem.ItemID = ItemID; MsgMapItem.MapID = 10137; MsgMapItem.MapObjType = Game.MapObjectType.Item; MsgMapItem.X = X; MsgMapItem.Y = Y; if (MsgMapItem.Item.ID == 730002) MsgMapItem.Item.Plus = 2; if (MsgMapItem.Item.ID == 730003) MsgMapItem.Item.Plus = 3; MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop; MsgMapItem.OnFloor = Time32.Now; MsgMapItem.ItemColor = MsgMapItem.Item.Color; MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; while (Map.Npcs.ContainsKey(MsgMapItem.UID)) MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; Map.AddFloorItem(MsgMapItem); SendScreenSpawn(MsgMapItem); } } if (Kernel.Rate(100)) { for (int i = 0; i < 1; i++) { type1 = (byte)Kernel.Random.Next(1, 1); switch (type1) { case 1: ItemID = 720891;//DraginBall break; } var infos = Database.ConquerItemInformation.BaseInformations[ItemID]; ushort X = Owner.X, Y = Owner.Y; Game.Map Map = Kernel.Maps[Owner.MapID]; if (Map.SelectCoordonates(ref X, ref Y)) { Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true); MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true); MsgMapItem.Item.Color = (AboGamil.Game.Enums.Color)Kernel.Random.Next(4, 8); MsgMapItem.Item.ID = ItemID; MsgMapItem.Item.MaximDurability = infos.Durability; MsgMapItem.Item.Durability = infos.Durability; MsgMapItem.Item.MobDropped = true; MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item; MsgMapItem.ItemID = ItemID; MsgMapItem.MapID = 10137; MsgMapItem.MapObjType = Game.MapObjectType.Item; MsgMapItem.X = X; MsgMapItem.Y = Y; if (MsgMapItem.Item.ID == 730002) MsgMapItem.Item.Plus = 2; if (MsgMapItem.Item.ID == 730003) MsgMapItem.Item.Plus = 3; MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop; MsgMapItem.OnFloor = Time32.Now; MsgMapItem.ItemColor = MsgMapItem.Item.Color; MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; while (Map.Npcs.ContainsKey(MsgMapItem.UID)) MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; Map.AddFloorItem(MsgMapItem); SendScreenSpawn(MsgMapItem); } } } for (int i = 0; i < 1; i++) { type1 = (byte)Kernel.Random.Next(1, 27); switch (type1) { case 1: ItemID = 1088000; break; case 2: ItemID = 800913; break; case 3: ItemID = 824015; break; case 4: ItemID = 800720; break; case 5: ItemID = 822053; break; case 6: ItemID = 822055; break; case 7: ItemID = 820071; break; case 8: ItemID = 820072; break; case 9: ItemID = 823055; break; case 10: ItemID = 823056; break; case 11: ItemID = 823057; break; case 12: ItemID = 821031; break; case 13: ItemID = 821032; break; case 14: ItemID = 800000; break; case 15: ItemID = 824017; break; case 16: ItemID = 800421; break; case 17: ItemID = 800110; break; case 18: ItemID = 800017; break; case 19: ItemID = 800254; break; case 20: ItemID = 800513; break; case 21: ItemID = 800320; break; case 22: ItemID = 800722; break; case 23: ItemID = 800616; break; case 24: ItemID = 800809; break; case 25: ItemID = 800804; break; case 26: ItemID = 800916; break; case 27: ItemID = 3007108; break; } var infos = Database.ConquerItemInformation.BaseInformations[ItemID]; ushort X = Owner.X, Y = Owner.Y; Game.Map Map = Kernel.Maps[Owner.MapID]; if (Map.SelectCoordonates(ref X, ref Y)) { Network.GamePackets.MsgMapItem MsgMapItem = new Network.GamePackets.MsgMapItem(true); MsgMapItem.Item = new Network.GamePackets.MsgItemInfo(true); MsgMapItem.Item.Color = (AboGamil.Game.Enums.Color)Kernel.Random.Next(4, 8); MsgMapItem.Item.ID = ItemID; MsgMapItem.Item.Plus = MsgMapItem.Item.Plus; MsgMapItem.Item.MaximDurability = infos.Durability; MsgMapItem.Item.Durability = infos.Durability; MsgMapItem.Item.MobDropped = true; MsgMapItem.ValueType = Network.GamePackets.MsgMapItem.FloorValueType.Item; MsgMapItem.ItemID = ItemID; MsgMapItem.MapID = 10137; MsgMapItem.MapObjType = Game.MapObjectType.Item; MsgMapItem.X = X; MsgMapItem.Y = Y; MsgMapItem.Type = Network.GamePackets.MsgMapItem.Drop; MsgMapItem.OnFloor = Time32.Now; MsgMapItem.ItemColor = MsgMapItem.Item.Color; MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; while (Map.Npcs.ContainsKey(MsgMapItem.UID)) MsgMapItem.UID = Network.GamePackets.MsgMapItem.FloorUID.Next; Map.AddFloorItem(MsgMapItem); SendScreenSpawn(MsgMapItem); } } } Kernel.ChillingSpook = false; return; } #endregion
دا الكود بتاع الايتم
type1 = (byte)Kernel.Random.Next(1, 27); switch (type1) { case 1: ItemID = 1088000; break; case 2: ItemID = 800913; break; case 3: ItemID = 824015; break; case 4: ItemID = 800720; break; case 5: ItemID = 822053; break; case 6: ItemID = 822055; break; case 7: ItemID = 820071; break; case 8: ItemID = 820072; break; case 9: ItemID = 823055; break; case 10: ItemID = 823056; break; case 11: ItemID = 823057; break; case 12: ItemID = 821031; break; case 13: ItemID = 821032; break; case 14: ItemID = 800000; break; case 15: ItemID = 824017; break; case 16: ItemID = 800421; break; case 17: ItemID = 800110; break; case 18: ItemID = 800017; break; case 19: ItemID = 800254; break; case 20: ItemID = 800513; break; case 21: ItemID = 800320; break; case 22: ItemID = 800722; break; case 23: ItemID = 800616; break; case 24: ItemID = 800809; break; case 25: ItemID = 800804; break; case 26: ItemID = 800916; break; case 27: ItemID = 3007108; break;
وبرضو بتجيب id الايتم من ملف items.text
انا بديك مثال عشان انت تطبقو المسئله سهله جدا مش صعبه
طيب لو عاوز تخلى الوحوش توقع صناديق برضو فى ملف items.text كل حاجه الصول وصناديق صول
دول صناديق سبى بتوقع من الوحوش هتلاقيهم فى items لو مش عندك ضيفهم
721016@@GreenCPBag@@0@@0@@0@@0@@0@@0@@0@@0@@9@@0@@0@@9162800@@0@@0@@0@@0@@0@@0@@0@@1@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@800@@0@@0@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@QuestItem@@Right~click~to~obtain~5~CPs.@@5@@0@@0@@0@@0@@500@@0@@0@@0@@0@@0@@ 721017@@BlueCPBag@@0@@0@@0@@0@@0@@0@@0@@0@@9@@0@@0@@9162810@@0@@0@@0@@0@@0@@0@@0@@1@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@800@@0@@0@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@QuestItem@@Right~click~to~obtain~10~CPs.@@5@@0@@0@@0@@0@@500@@0@@0@@0@@0@@0@@ 721018@@PurpleCPBag@@0@@0@@0@@0@@0@@0@@0@@0@@9@@0@@0@@9162820@@0@@0@@0@@0@@0@@0@@0@@1@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@800@@0@@0@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@QuestItem@@Right~click~to~obtain~20~CPs.@@5@@0@@0@@0@@0@@500@@0@@0@@0@@0@@0@@ 721019@@TanCPBag@@0@@0@@0@@0@@0@@0@@0@@0@@9@@0@@0@@9162830@@0@@0@@0@@0@@0@@0@@0@@1@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@1@@800@@0@@0@@1@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@0@@QuestItem@@Right~click~to~obtain~25~CPs.@@5@@0@@0@@0@@0@@500@@0@@0@@0@@0@@0@@
وتخش PacketHandler
تحط الكود دا
#region CpsPacks #region CpsPack case 721018: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.ConquerPoints += 20; break;//Mr,GemY :P } case 721019: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.ConquerPoints += 25; break;//Mr,GemY :P } case 721016: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.ConquerPoints += 5; break;//Mr,GemY :P } case 721017: { client.Inventory.Remove(item, Game.Enums.ItemUse.Remove); client.Entity.ConquerPoints += 10; break;//Mr,GemY :P } #endregion #endregion
وبعدين MonsterTable.cs
كود الدروب تقدر تبدلو بالى عندك او تعدل عليه من دا
#region CPssDrop #region Quest Letter & Fruit 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 = 723911; break; case 4: Uid = 720027; break; case 5: Uid = 1200001; 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 #region Quest Letter & Fruit if (killer != null && killer.EntityFlag == Game.EntityFlag.Player) { byte times = (byte)Kernel.Random.Next(1, 2); byte ref_times = (byte)Kernel.Random.Next(1, 100); for (byte i = 0; i < times; i++) { uint Uid = 0; byte type = (byte)Kernel.Random.Next(1, 100); switch (type) { case 1: Uid = 1088000; 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(1, 100); 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 #endregion
لو فى مشكله مع حد هتتحل ان شاء الله
سلام