بسم الله الرحمن الرحيم
انهردا معانا موضوع اطلب منى كتير وهوا اضافة كويستة الكينج دوم لكونكر تهيس لان طبعا أغلب السورسات مفهاش السيستم كامل يعنى محدش بيهتم بيه غير لو واحد عايز اللعبة صعبة وناس اشتغل بسورسات فى المدونة قديمة ومضفتش السيستم دا الا اخر سورس نزلناه طبعا اللى عايز السورس فى السيستم مضاف فيه هوا دا سورس سيرفر LordsRoad الجديد الرائع كلينت 6318
نبدأ نشرح اضافة الكويستة نشوف صور الاول
نبدأ الاضافة بقى هتعمل كلاس جديد اسمه KingdomMissionTable.cs
هضيف فيه الكود دا
using System;
using xEmper.Network.GamePackets;
namespace xEmper.Database
{
public class KingdomMissionTable
{
public static void Load(Client.GameState client)
{
using (var cmd = new MySqlCommand(MySqlCommandType.SELECT).Select("KingdomMission").Where("UID", client.Entity.UID))
using (var reader = new MySqlReader(cmd))
{
while (reader.Read())
{
client.Entity.KingdomDeed = reader.ReadUInt32("KingdomDeeds");
client.Entity.StrikePoints = reader.ReadUInt32("StrikePoints");
return;
}
Insert(client);
}
}
public static void Insert(Client.GameState client)
{
using (var cmd = new MySqlCommand(MySqlCommandType.INSERT).Insert("KingdomMission")
.Insert("UID", client.Entity.UID))
cmd.Execute();
}
public static void Save(Client.GameState client, MySql.Data.MySqlClient.MySqlConnection conn)
{
using (var cmd = new MySqlCommand(MySqlCommandType.UPDATE).Update("KingdomMission"))
cmd.Set("KingdomDeeds", client.Entity.KingdomDeed)
.Set("StrikePoints", client.Entity.StrikePoints)
.Where("UID", client.Entity.UID)
.Execute(conn);
}
}
}
وبعدين افتح كلاس وضيف الوحوش فيه تحت اى وحوش عندك MonestorTable.cs
#region ThunderStrike
if (killer.MapID == 3935)
{
if (killer.Owner.Quests.GetQuest(QuestID.ThunderStrike) == null || killer.Owner.Quests.CheckQuest(QuestID.ThunderStrike) == QuestPacket.QuestData.QuestStatus.Available)
killer.Owner.Quests.Accept(QuestID.ThunderStrike);
if (killer.StrikePoints != 500)
{
if (killer.StrikePoints < 300)
{
int R = 5;
if (Name == "RealmSolider")
{
R = Kernel.Random.Next(1, 5);
}
if (Name.Contains("MilitaryOfficer"))
{
killer.Owner.Send(new Message("A flood of enemy soldiers emerged from the haze when their leader was killed. Go and clear them!", System.Drawing.Color.Red, 2005));
R = Kernel.Random.Next(20, 20);
}
if (Name == "KylinChariot")
{
R = Kernel.Random.Next(50, 50);
}
killer.StrikePoints += (uint)R;
killer.StrikePoints += (uint)R;
killer.Owner.Quests.ThunderStrike(QuestID.ThunderStrike, (uint)R);
if (killer.StrikePoints >= 300)
{
killer.StrikePoints = 300;
killer.StrikePoints = 300;
}
killer.Owner.Send(new Message("You've received " + killer.StrikePoints + " Strike Points by killing enemies firecrely. When you earn 300 Strike Points , you can claim a reward from the Kingdom Mission Envoy.", System.Drawing.Color.Red, Message.System));
}
else
{
killer.Owner.MessageBox("You`ve completed the [Thunder Strike] mission in the realm. Report back to the Kingdom Mission Envoy to claim your reward.");
killer.Owner.Send(new Message("You've earend 300 Strike Points by killing enemies firercely. Go claim your reward from the Kingdom Mission Envoy.", System.Drawing.Color.Red, Message.System));
}
}
}
#endregion
#region BrightFortune
#region AngerRat
if (Name == "AngerRat")
{
#region AngerRat
if (killer.Owner.Quests.GetQuest(QuestID.BloodVengeance) != null && killer.Owner.Quests.GetQuest(QuestID.BloodVengeance).Kills < 10)
{
killer.Owner.Quests.IncreaseQuestKills(QuestID.BloodVengeance, 1);
}
else if (killer.Owner.Quests.GetQuest(QuestID.BloodVengeance) != null && killer.Owner.Quests.GetQuest(QuestID.BloodVengeance).Kills >= 10)
{
killer.Owner.MessageBox("You`ve eliminated enough number of Anger Rats. Hurry and report back to Chong Yan Elder!",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19162;
data.ID = 162;
data.wParam1 = 142;
data.wParam2 = 320;
p.Send(data);
}, null);
}
#endregion
}
#endregion
#region FlameRockMonste
if (Name.Contains("FlameRockMonste"))
{
#region FlameRockMonste
if (killer.Owner.Inventory.Contains(3008752, 8))
{
killer.Owner.MessageBox("You`ve collected enough number of Rune Fragments. Go and try to complete the runes on the Forge Furnace.",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19163;
data.ID = 162;
data.wParam1 = 311;
data.wParam2 = 449;
p.Send(data);
}, null);
}
else
{
if (Kernel.Rate(20))
{
killer.Owner.Inventory.Add(3008752, 0, 1);
_String str = new _String(true);
str.UID = killer.Owner.Entity.UID;
str.TextsCount = 1;
str.Type = _String.Effect;
str.Texts.Add("zf2-e123");
killer.Owner.SendScreen(str, true);
}
}
#endregion
}
#endregion
#region VioletBatKing
if (Name == "VioletBatKing")
{
#region VioletBatKing
if (!killer.Owner.Inventory.Contains(3008750, 1) && killer.Owner.Quests.GetQuest(QuestID.SecretOfBright) != null)
{
killer.Owner.Inventory.Add(3008750, 0, 1);
killer.Owner.MessageBox("The Violet Bat King fell down and dropped an ancient-style hammer. Hurry and take this hammer to the Forge Furnace.",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19163;
data.ID = 162;
data.wParam1 = 311;
data.wParam2 = 449;
p.Send(data);
}, null);
killer.Owner.Quests.IncreaseQuestKills(QuestID.SecretOfBright, 1);
}
#endregion
}
#endregion
#region LavaScorpion
if (Name == "LavaScorpion")
{
#region LavaScorpion
if (killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead) != null && killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead).Kills >= 15)
{
killer.Owner.MessageBox("You`ve defeated enough number of Lava Scorpions. Now, you can appease the sacrificed Bright people.",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19164;
data.ID = 162;
data.wParam1 = 251;
data.wParam2 = 277;
p.Send(data);
}, null);
}
else if (killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead) != null && killer.Owner.Quests.GetQuest(QuestID.SacrificetotheDead).Kills1 < 15)
{
killer.Owner.Quests.IncreaseQuestKills5(QuestID.SacrificetotheDead, 1);
}
#endregion
}
#endregion
#region RoaringSnake
if (Name == "RoaringSnake")
{
#region RoaringSnake
if (killer.Owner.Inventory.Contains(3008742, 50) && killer.Owner.Quests.GetQuest(QuestID.SorrowofDesolation) != null)
{
killer.Owner.MessageBox("You`ve collect enough number of Building Stones. Go and try to restore the ruined altar.",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.ID = 162;
data.wParam1 = 578;
data.wParam2 = 419;
p.Send(data);
}, null);
}
else
{
killer.Owner.Inventory.Add(3008742, 0, 1);
}
#endregion
}
#endregion
#region ClawedRockDevil
if (Name == "ClawedRockDevil")
{
#region ClawedRockDevil
if (killer.Owner.Inventory.Contains(3008743, 1))
{
}
else
{
if (Kernel.Rate(40))
{
killer.Owner.Inventory.Add(3008743, 0, 1);
killer.Owner.MessageBox("You`ve retrieved the Wheel of Nature from the Clawed Rock Devil. Hurry and take the next action at the altar.",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19165;
data.ID = 162;
data.wParam1 = 573;
data.wParam2 = 423;
p.Send(data);
}, null);
}
}
#endregion
}
#endregion
#region HornedRockBeast
if (Name == "HornedRockBeast")
{
#region HornedRockBeast
if (!killer.Owner.Inventory.Contains(3008745, 1))
{
if (killer.Owner.Inventory.Contains(3008754, 5))
{
killer.Owner.Inventory.Add(3008745, 0, 1);
killer.Owner.Inventory.Remove(3008754, 5);
killer.Owner.MessageBox("You received the Earth Force! Hurry and transform it into Metal Force through the Wheel of Nature!",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19165;
data.ID = 162;
data.wParam1 = 578;
data.wParam2 = 419;
p.Send(data);
}, null);
}
else
{
if (Kernel.Rate(40))
{
killer.Owner.Inventory.Add(3008754, 0, 1);
}
}
}
#endregion
}
#endregion
#region HellfireBeast
if (Name == "HellfireBeast")
{
#region HellfireBeast
if (killer.Owner.Inventory.Contains(3008748, 100))
{
killer.Owner.MessageBox("You`ve collected enough number of Star Ores. Go and try to extract the Essence of Star at the altar.",
p =>
{
Data data = new Data(true);
data.UID = p.Entity.UID;
data.TimeStamp2 = 19165;
data.ID = 162;
data.wParam1 = 571;
data.wParam2 = 424;
p.Send(data);
}, null);
}
else
{
killer.Owner.Inventory.Add(3008748, 0, 5);
}
#endregion
}
#endregion
#endregion
#region CrystalBounty
if (killer.MapID == 3935)
{
if (killer.Owner.Quests.CheckQuest(QuestID.CrystalBounty) != QuestPacket.QuestData.QuestStatus.Finished)
{
if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty) == null || killer.Owner.Quests.CheckQuest(QuestID.CrystalBounty) == QuestPacket.QuestData.QuestStatus.Available)
killer.Owner.Quests.Accept(QuestID.CrystalBounty);
if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty).Kills < 50)
{
int R = 5;
if (Name == "RealmSolider")
{
R = Kernel.Random.Next(1, 1);
}
if (Name.Contains("MilitaryOfficer"))
{
R = Kernel.Random.Next(1, 1);
}
if (Name == "KylinChariot")
{
R = Kernel.Random.Next(10, 10);
}
killer.Owner.Quests.CrystalBounty(QuestID.CrystalBounty, (uint)R);
if (killer.Owner.Quests.GetQuest(QuestID.CrystalBounty).Kills >= 50)
{
killer.Owner.Send(new Message("You've eliminated 50 enemies. Hurry and claim a bounty from the Realm Crystal.", System.Drawing.Color.Red, Message.System));
}
}
else
{
killer.Owner.Send(new Message("You've eliminated 50 enemies. Hurry and claim a bounty from the Realm Crystal.", System.Drawing.Color.Red, Message.System));
}
}
}
#endregion
#region BeastsOfLegend
if (killer.MapID == 3935)
{
if (killer.Owner.Quests.GetQuest(QuestID.BeastsOfLegend) == null || killer.Owner.Quests.CheckQuest(QuestID.BeastsOfLegend) == QuestPacket.QuestData.QuestStatus.Available)
killer.Owner.Quests.Accept(QuestID.BeastsOfLegend);
if (killer.Owner.Quests.GetQuest(QuestID.BeastsOfLegend).QItem.Status != QuestPacket.QuestData.QuestStatus.Finished)
{
if (Name.Contains("VermilionBirdDef") || Name.Contains("WhiteTigerDefend") || Name.Contains("AzureDragonDefen") || Name.Contains("BlackTurtleDefen"))
{
if (Kernel.Rate(30))
{
Database.MonsterInformation monster = new Database.MonsterInformation();
monster.Hitpoints = 500000;
monster.Level = 140;
if (Name.Contains("AzureDragonDefen"))
{
monster.Mesh = 711;
monster.Name = "AzureDragon";
monster.ID = 7885;
}
if (Name.Contains("BlackTurtleDefen"))
{
monster.Mesh = 712;
monster.Name = "BlackTurtle";
monster.ID = 7888;
}
if (Name.Contains("WhiteTigerDefend"))
{
monster.Mesh = 709;
monster.Name = "WhiteTiger";
monster.ID = 7886;
}
if (Name.Contains("VermilionBirdDef"))
{
monster.Mesh = 710;
monster.Name = "VermilionBird";
monster.ID = 7887;
}
monster.MaxAttack = 2100;
monster.AttackRange = 3;
monster.AttackType = 2;
monster.AttackSpeed = 1000;
monster.ViewRange = 20;
monster.MoveSpeed = 1000;
monster.RunSpeed = 1000;
monster.MinAttack = 1000;
Game.Entity entity = new Game.Entity(Game.EntityFlag.Monster, false);
entity.MapObjType = Game.MapObjectType.Monster;
entity.MonsterInfo = monster;
entity.MonsterInfo.Owner = entity;
entity.Name = monster.Name;
entity.MinAttack = monster.MinAttack;
entity.MaxAttack = entity.MagicAttack = monster.MaxAttack;
entity.Hitpoints = entity.MaxHitpoints = monster.Hitpoints;
entity.Body = monster.Mesh;
entity.Level = monster.Level;
entity.Defence = 90;
entity.X = killer.X;
entity.Y = killer.Y;
entity.UID = Kernel.Maps[3935].EntityUIDCounter.Next;
entity.MapID = 3935;
entity.SendUpdates = true;
killer.Owner.Map.RemoveEntity(entity);
killer.Owner.Map.AddEntity(entity);
killer.Owner.Screen.Reload(null);
}
}
if (Name == "AzureDragon" || Name == "WhiteTiger" || Name == "BlackTurtle" || Name == "VermilionBird")
{
if (killer.Owner.Quests.GetQuest(QuestID.BeastsOfLegend).Kills == 0)
{
killer.Owner.Quests.IncreaseQuestKills(QuestID.BeastsOfLegend, 1);
killer.Owner.MessageBox("You`ve defeated the divine beast. Hurry and claim your reward from the Kingdom Mission Envoy!");
}
}
}
}
#endregion
#region Scramble
if (killer.MapID == 3935)
{
if (killer.Owner.Quests.GetQuest(QuestID.ScrambleforJustice) == null || killer.Owner.Quests.CheckQuest(QuestID.ScrambleforJustice) == QuestPacket.QuestData.QuestStatus.Available)
killer.Owner.Quests.Accept(QuestID.ScrambleforJustice);
if (killer.Owner.Quests.GetQuest(QuestID.ScrambleforJustice).QItem.Status != QuestPacket.QuestData.QuestStatus.Finished)
{
if (Name == "AlluringWitch")
{
killer.Owner.MessageBox("You`ve defeated the AlluringWitch! Here's your reward!");
killer.Owner.Quests.FinishQuest(QuestID.ScrambleforJustice);
killer.Owner.Inventory.Add("SavageBone");
}
}
}
#endregion
#region SnakeIsland
if (Name == "SnakeKing")
{
int R = Kernel.Random.Next(1, 6);
if (R == 1)
{
int r = Kernel.Random.Next(1, 5);
for (int x = 0; x < r; x++)
{
uint ItemID = 1088001;
var infos6 = Database.ConquerItemInformation.BaseInformations[ItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = xEmper.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 =
(xEmper.Game.Enums.Color)xEmper.Kernel.Random.Next(4, 8);
floorItem.Item.ID = ItemID;
floorItem.Item.MaximDurability = infos6.Durability;
floorItem.Item.Durability = infos6.Durability;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = ItemID;
floorItem.MapID = Owner.MapID;
floorItem.OwnerUID = killer.UID;
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos6.StackSize;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Owner = killer.Owner;
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);
}
}
}
if (R == 2)
{
uint ItemID = 1088000;
var infos6 = Database.ConquerItemInformation.BaseInformations[ItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = xEmper.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 =
(xEmper.Game.Enums.Color)xEmper.Kernel.Random.Next(4, 8);
floorItem.Item.ID = ItemID;
floorItem.Item.MaximDurability = infos6.Durability;
floorItem.Item.Durability = infos6.Durability;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = ItemID;
floorItem.MapID = Owner.MapID;
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos6.StackSize;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Owner = killer.Owner;
floorItem.Owner = killer.Owner;
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);
}
}
if (R == 3)
{
uint ItemID = 700013;
var infos6 = Database.ConquerItemInformation.BaseInformations[ItemID];
ushort X = Owner.X, Y = Owner.Y;
Game.Map Map = xEmper.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 =
(xEmper.Game.Enums.Color)xEmper.Kernel.Random.Next(4, 8);
floorItem.Item.ID = ItemID;
floorItem.Item.MaximDurability = infos6.Durability;
floorItem.Item.Durability = infos6.Durability;
floorItem.Item.MobDropped = true;
floorItem.ValueType = Network.GamePackets.FloorItem.FloorValueType.Item;
floorItem.ItemID = ItemID;
floorItem.MapID = Owner.MapID;
floorItem.Item.StackSize = 1;
floorItem.Item.MaxStackSize = infos6.StackSize;
floorItem.MapObjType = Game.MapObjectType.Item;
floorItem.X = X;
floorItem.Y = Y;
floorItem.Owner = killer.Owner;
floorItem.Owner = killer.Owner;
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);
}
}
if (R == 4)
{
killer.SubClasses.StudyPoints += (ushort)Kernel.Random.Next(1, 2000);
}
if (R == 5)
{
uint ItemID = 0;
int x = Kernel.Random.Next(1, 10);
if (x == 1)
ItemID = 723713;
if (x == 2)
ItemID = 723714;
if (x == 3)
ItemID = 723715;
if (x == 4)
ItemID = 723716;
if (x == 5)
ItemID = 723717;
if (x == 6)
ItemID = 723718;
if (x == 7)
ItemID = 723719;
if (x == 8)
ItemID = 723720;
if (x == 9)
ItemID = 723721;
if (x == 10)
ItemID = 723722;
killer.Owner.Inventory.Add(ItemID, 0, 1);
}
}
#endregion
#region Labirinth
#region Slinger-GoldGhost
if (Name == "Slinger" || Name == "GoldGhost")
{
uint Uid = 0;
byte type = (byte)Kernel.Random.Next(1, 45);
switch (type)
{
case 5:
case 4:
case 6:
case 8:
if (!killer.Owner.Inventory.Contains(3007529, 5))
{
killer.Owner.Inventory.Add(3007529, 0, 1);
}
break;
case 32:
case 30:
if (killer.Owner.Inventory.Contains(3007528, 5))
return;
killer.Owner.Inventory.Add(3007528, 0, 1);
killer.Update(_String.Effect, "waybee", true);
break;
case 25:
case 24:
if (!killer.Owner.Inventory.Contains(721537, 5))
{
killer.Owner.Inventory.Add(721537, 0, 1);
}
break;
case 2:
case 7:
case 9:
Uid = 721533;
break;
case 19:
case 20:
case 21:
case 22:
case 23:
killer.CycloneStamp = Time32.Now;
killer.CycloneTime = 20;
killer.AddFlag(Update.Flags.Cyclone);
killer.Owner.Send(new Message("You received Storm effect!", System.Drawing.Color.CadetBlue, Message.System));
break;
}
if (Uid != 0)
{
killer.Owner.Inventory.Add(Uid, 0, 1);
}
}
#endregion
#region Bladeling-AgileRat
if (Name == "Bladeling" || Name == "AgileRat")
{
uint Uid = 0;
byte type = (byte)Kernel.Random.Next(1, 45);
switch (type)
{
case 5:
case 6:
case 8:
case 4:
if (!killer.Owner.Inventory.Contains(3007529, 5))
killer.Owner.Inventory.Add(3007529, 0, 1);
break;
case 30:
case 32:
if (!killer.Owner.Inventory.Contains(3007528, 5))
{
killer.Owner.Inventory.Add(3007528, 0, 1);
killer.Update(_String.Effect, "waybee", true);
}
break;
case 24:
if (!killer.Owner.Inventory.Contains(721538, 5))
killer.Owner.Inventory.Add(721538, 0, 1);
break;
case 25:
if (!killer.Owner.Inventory.Contains(721538, 5))
killer.Owner.Inventory.Add(721538, 0, 1);
break;
case 2:
case 7:
case 9:
Uid = 721534;
break;
case 19:
case 20:
case 21:
case 22:
case 23:
killer.CycloneStamp = Time32.Now;
killer.CycloneTime = 20;
killer.AddFlag(Update.Flags.Cyclone);
killer.Owner.Send(new Message("You received Storm effect!", System.Drawing.Color.CadetBlue, Message.System));
break;
}
if (Uid != 0)
{
killer.Owner.Inventory.Add(Uid, 0, 1);
}
}
#endregion
#region FiendBat-BlueBird
if (Name == "FiendBat" || Name == "BlueBird")
{
uint Uid = 0;
byte type = (byte)Kernel.Random.Next(1, 45);
switch (type)
{
case 5:
case 4:
case 6:
case 8:
if (!killer.Owner.Inventory.Contains(3007529, 5))
killer.Owner.Inventory.Add(3007529, 0, 1);
break;
case 30:
case 32:
if (!killer.Owner.Inventory.Contains(3007528, 5))
{
killer.Owner.Inventory.Add(3007528, 0, 1);
killer.Update(_String.Effect, "waybee", true);
}
break;
case 24:
case 25:
if (killer.Owner.Inventory.Contains(721539, 5))
killer.Owner.Inventory.Add(721539, 0, 1);
break;
case 2:
case 7:
case 9:
Uid = 721535;
break;
case 19:
case 20:
case 21:
case 22:
case 23:
killer.CycloneStamp = Time32.Now;
killer.CycloneTime = 20;
killer.AddFlag(Update.Flags.Cyclone);
killer.Owner.Send(new Message("You received Storm effect!", System.Drawing.Color.CadetBlue, Message.System));
break;
}
if (Uid != 0)
{
killer.Owner.Inventory.Add(Uid, 0, 1);
}
}
#endregion
#region MinotaurL120
if (Name == "MinotaurL120")
{
uint Uid = 0;
byte type = (byte)Kernel.Random.Next(1, 45);
switch (type)
{
case 5:
case 4:
case 6:
case 8:
if (!killer.Owner.Inventory.Contains(3007529, 5))
killer.Owner.Inventory.Add(3007529, 0, 1);
break;
case 30:
case 32:
if (!killer.Owner.Inventory.Contains(3007528, 5))
{
killer.Owner.Inventory.Add(3007528, 0, 1);
killer.Update(_String.Effect, "waybee", true);
}
break;
case 2:
case 7:
case 9:
Uid = 721536;
break;
case 19:
case 20:
case 21:
case 22:
case 23:
killer.CycloneStamp = Time32.Now;
killer.CycloneTime = 20;
killer.AddFlag(Update.Flags.Cyclone);
killer.Owner.Send(new Message("You received Storm effect!", System.Drawing.Color.CadetBlue, Message.System));
break;
}
if (Uid != 0)
{
killer.Owner.Inventory.Add(Uid, 0, 1);
}
}
#endregion
#endregion
#region Ganoderma and titan
if (Name.Contains("Ganoderma") || Name.Contains("Titan"))
{
killer.DoubleExperienceTime = 3600;
}
#endregion
وبعد كيدا افتح كلاس Inventory.cs وضيف الكود دا فيه
public void Add(string Name)
{
foreach (var item in Database.ConquerItemInformation.BaseInformations.Values)
{
if (item.Name == Name)
{
Add(item.ID, 0, 1);
break;
}
}
}
public bool AddTime(uint id, uint seconds, bool bound = false)
{
try
{
Database.ConquerItemInformation infos = new Database.ConquerItemInformation(id, 0);
if (Count <= 39)
{
ConquerItem item;
item = new ConquerItem(true);
{
item.ID = id;
item.Plus = 0;
item.Bless = 0;
item.Enchant = 0;
item.SocketOne = 0;
item.SocketTwo = 0;
item.Bound = bound;
item.TimeStamp = DateTime.Now;
item.Minutes = (seconds / 60);
item.TimeLeftInMinutes = seconds;
item.Durability = item.MaximDurability = infos.BaseInformation.Durability;
};
Add(item, Enums.ItemUse.CreateAndAdd);
}
else
{
return false;
}
}
catch (Exception)
{
}
return true;
}
وبعدين ابحث عن الكود دا public enum QuestID : uint
فى كلاس QuestPacket.cs وضيف الكود دا تحت القوس
SorrowofDesolation = 3644,
FireForce = 3647,
GloryOfThePast= 3637,
SecretOfBright = 3638,
HealingTheDying = 3642,
PathToFlameTemple = 3643,
TheWayofTommorow = 3631,
UnexceptedDiscovery = 3639,
BloodVengeance = 3634,
MetalForce = 3646,
MysteriousMetal = 3640,
EvilRoot = 3635,
ForgeFurance = 3636,
EndHomelessness = 3649,
SacrificetotheDead = 3641,
WaitingForMiracle = 3648,
UnknownDangers = 3632,
WheelofNature = 3645,
ScrambleforJustice = 35034,
CrystalBounty = 35028,
AshesOfAnger = 35024,
BeastsOfLegend = 35025,
DisCity1 = 6472,
MonsterSage = 3633,
Discity2 = 6473,
DisCity3 = 6474,
DisCity4 = 6475,
ThunderStrike = 35007,
WorshipLeaders = 6329,
Spirit_Beads = 2375,
TowerOfMystery = 6126,
EvilLabyrinth = 6467,
HeavenTreasury = 6390,
Magnolias = 6014,
TempestWing = 200,
EveryThingHasAPrice = 6245,
Release_the_souls = 6049,
RareMaterials = 6366,
SecondQuestStageOne = 2414,
SkyPass = 6350,
SecondQuestStageTwo = 2416,
SecondQuestStageThree = 2418,
SecondQuestStageFour = 2419,
Secret_in_the_Chest = 3679,
Weird_Formation = 3680,
Mind_of_Evil = 3682,
وبعدين ابحث عن الكود دا فى نفس الكلاس public void IncreaseQuestKills(QuestID
هتقفله بالسالب وتحوط الكود دا تحته
#region Realm
public void ThunderStrike(QuestID UID, uint Kills)
{
if (src.ContainsKey(UID) && IsActiveQuest(UID))
{
var item = src[UID];
item.Kills += Kills;
src[UID] = item;
QuestData dataq = new QuestData(true);
dataq.UID = UID;
dataq.ThunderStrike = item.Kills;
Player.Send(dataq);
}
}
public void CrystalBounty(QuestID UID, uint Kills)
{
if (src.ContainsKey(UID) && IsActiveQuest(UID))
{
var item = src[UID];
item.Kills += Kills;
src[UID] = item;
QuestData dataq = new QuestData(true);
dataq.UID = UID;
dataq.CrystalBounty = item.Kills;
Player.Send(dataq);
}
}
public void AshesOfAnger/*Realm*/(QuestID UID, uint Kills1)
{
if (src.ContainsKey(UID))
{
var item = src[UID];
item.Kills += Kills1;
src[UID] = item;
QuestData dataq = new QuestData(true);
dataq.UID = UID;
dataq.AshesOfAnger = item.Kills;
Player.Send(dataq);
}
}
#endregion
وبعدين ابحث عن الكود دا فى نفس الكلاس بردو public class QuestData : Writer,
هتحط تحت القوس الكود دا
public uint Bright
{
get { return BitConverter.ToUInt32(Buffer, 16); }
set { Write(value, 16, Buffer); }
}
public uint AshesOfAnger
{
get { return BitConverter.ToUInt32(Buffer, 16); }
set { Write(value, 16, Buffer); }
}
public uint CrystalBounty
{
get { return BitConverter.ToUInt32(Buffer, 12); }
set { Write(value, 12, Buffer); }
}
public uint ThunderStrike
{
get { return BitConverter.ToUInt32(Buffer, 32); }
set { Write(value, 32, Buffer); }
}
وابحث عن الكود دا دا public void IncreaseQuestKills
هتقفله بالسالب وتحط الكود دا فوقه
public void IncreaseQuestKills5(QuestID UID, uint Kills)
{
if (src.ContainsKey(UID) && IsActiveQuest(UID))
{
var item = src[UID];
item.Kills += Kills;
src[UID] = item;
QuestData dataq = new QuestData(true);
dataq.UID = UID;
dataq[1] = item.Kills;
if (item.Kills == 15)
{
dataq.Bright = 1;
}
Player.Send(dataq);
}
}
وبعدين بقى هنتنقل لكلاس تانى وهوا Entity.cs
وضيف تحت اى public عندك الكود دا
public uint KingdomDeed = 0;
وبعدين هتفتح كلاس Conqueritem.cs وضيف فيه دول
ulong minutes = 0;
public ulong Minutes
{
get
{
return minutes;
}
set
{
minutes = value;
Database.ConquerItemTable.UpdateMinutes(this);
}
}
DateTime timestamp;
public DateTime TimeStamp
{
get
{
return timestamp;
}
set
{
timestamp = value;
Database.ConquerItemTable.UpdateTimeStamp(this);
}
}
هتفتح كلاس ConquerItemTable.cs وضيف فيه دول
public static void UpdateMinutes(ConquerItem Item)
{
UpdateData(Item, "MinutesLeft", Item.Minutes);
}
public static void UpdateTimeStamp(ConquerItem Item)
{
UpdateData(Item, "TimeStamp", Item.TimeStamp);
}
وبعدين افتح كلاس PacketHandler.cs
وبعدين ابحث عن static void UseItem(ConquerItem item, Client.Game
تحت القوس اللى تحت كلمة switch ضيف دول
#region RealmCrytalFragment
case 3600029:
{
if (client.Inventory.Count <= 39)
{
int R = Kernel.Random.Next(1, 4);
if (R == 1) client.Inventory.Add(3008994, 0, 1);
if (R == 2) client.Inventory.Add(3006539, 0, 1);
if (R == 3) client.Inventory.Add(3002030, 0, 3);
else client.Inventory.Add(3002030, 0, 3);
client.Entity.KingdomDeed += 6;
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
}
else client.Send(Constants.FullInventory);
break;
}
#endregion
#region KingdomMissionItems
case 3007108:
{
client.Entity.InnerPower.AddPotency(null, client, 400);
client.UnionExploits += 50;
if (client.Union != null)
{
client.Union.UnionFund += 100;
}
client.MessageBox("You got 50 War Exploits, 400 PotencyPoints and 100 Union Fund!");
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
break;
}
case 3007109:
{
client.Entity.InnerPower.AddPotency(null, client, 600);
client.UnionExploits += 100;
if (client.Union != null)
{
client.Union.UnionFund += 160;
}
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.MessageBox("You got 100 War Exploits, 600 PotencyPoints, 50 ChampionPoints and 160 Union Fund!");
break;
}
case 3007110:
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.UnionExploits += 150;
client.Entity.InnerPower.AddPotency(null, client, 1000);
if (client.Union != null)
{
client.Union.UnionFund += 360;
}
client.MessageBox("You got 150 War Exploits, 1000 PotencyPoints, 100 ChampionPoints and 360 Union Fund!");
break;
}
#endregion
#region Bounties
case 3200000:
{
if (client.Inventory.Count <= 37)
{
client.Send(new Message("Your excellent performance in the battle has earned yourself a wonderful bountry!", Color.Red, Message.System));
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
client.Inventory.AddTime(3200334, 1 * 24 * 60 * 60);
client.Inventory.AddTime(3007109, 7 * 24 * 60 * 60);
client.Inventory.Add(3006539, 0, 1);
client.Entity.KingdomDeed += 90;
}
else client.Send(Constants.FullInventory);
break;
}
case 3200005:
{
if (client.Inventory.Count <= 38)
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
int R = Kernel.Random.Next(1, 3);
if (R == 1) client.Inventory.AddTime(3008965, 2 * 24 * 60 * 60);
else client.Inventory.AddTime(3008963, 2 * 24 * 60 * 60);
int x = Kernel.Random.Next(1, 3);
if (x == 1) client.Inventory.Add(3002926, 0, 2);
if (x == 2) client.Inventory.Add(3002030, 0, 2);
else client.Inventory.Add(3003125, 0, 2);
client.Entity.KingdomDeed += 60;
}
else client.Send(Constants.FullInventory);
break;
}
case 3200004:
{
if (client.Inventory.Count <= 38)
{
client.Inventory.Remove(item, Game.Enums.ItemUse.Remove);
int R = Kernel.Random.Next(1, 3);
if (R == 1) client.Inventory.AddTime(3008965, 2 * 24 * 60 * 60);
else client.Inventory.AddTime(3008963, 2 * 24 * 60 * 60);
int x = Kernel.Random.Next(1, 3);
if (x == 1) client.Inventory.Add(3002926, 0, 2);
if (x == 2) client.Inventory.Add(3002030, 0, 2);
else client.Inventory.Add(3003125, 0, 2);
client.Entity.KingdomDeed += 30;
}
else client.Send(Constants.FullInventory);
break;
}
#endregion
نخوش بقى على شغل القاعدة هتخوش على Table
monsterinfo
monsterinfo
ضيف فيه الاكواد دى بس الافضل تضفهم بايدك احسن مش كوبى
7861 SmallCrystal 1 916 20 0 1 1 10000 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7860 BigCrystal 1 916 80 0 1 1 10000 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7896 RealmSoldier 1 290 50000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7897 MilitaryOfficer 1 910 100000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7898 KylinChariot 1 788 100000 0 2100 1000 90 1 15 1000 4000000000 135 3 4000000000 0 100 0 0 0 0 0 0
7891 VermilionBirdDef 1 197 50000 0 2100 100 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7890 WhiteTigerDefend 1 384 50000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7889 AzureDragonDefen 1 255 50000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7892 BlackTurtleDefen 1 168 50000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7883 AlluringWitch 1 919 22500000 0 2100 1000 80000 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7884 DarkCrystalofSky 1 916 5000000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7971 DarkCrystalofWin 1 916 5000000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7972 ThunderCrystal 1 916 5000000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
7973 DarkCrystalofFir 1 916 5000000 0 2100 1000 90 1 15 1000 500 135 3 500 0 100 0 0 0 0 0 0
4151 LavaBeast 1 251 15000000 0 20000 20000 20000 3 15 1000 1000 135 3 500 0 100 0 0 0 0 0 0
2760 VioletBatKing 1 210 109800 0 2100 1000 500 1 8 1000 1000 122 3 500 0 100 0 0 0 0 0 0
7565 PurpleBanshee 1 951 54000000 0 5000 5000 50000 14 15 800 500 138 3 500 0 100 0 0
وبعدين تدخل فى تابلى Table
monsterspwans
وضيف الاكواد دول
945446 3935 1 1 700 700 600 1 600 7896
5466 3935 1 1 700 700 100 1 100 7897
45646 3935 397 256 6 1 1 30 1 7898
456464 3935 400 296 1 1 1 30 1 7898
456445 3935 348 263 1 1 1 30 1 7898
45646456 3935 349 275 1 1 1 30 1 7898
56464 3935 382 293 15 15 25 1 25 7891
56616 3935 367 458 15 15 25 1 25 7890
5464564 3935 471 370 15 15 25 1 25 7889
21615 3935 296 340 15 15 25 1 25 7892
54564 3935 307 277 1 1 1 30 1 7898
456456 3935 288 413 1 1 1 30 1 7898
4544949 3935 298 434 1 1 1 30 1 7898
656463 3935 315 461 1 1 1 30 1 7898
56446 3935 397 504 1 1 1 30 1 7898
44494949 3935 410 502 1 1 1 30 1 7898
456456145 3935 433 493 1 1 1 30 1 7898
8894984 3935 421 491 1 1 1 30 1 7898
545464 3935 475 497 1 1 1 30 1 7898
6161464 3935 441 492 1 1 1 30 1 7898
6545664 3935 417 502 1 1 1 30 1 7898
565645456 3935 389 507 1 1 1 30 1 7898
44944 3935 317 474 1 1 1 30 1 7898
0 التعليقات لموضوع "شرح اضافة كويستة الكينج دوم كاملة KingDom Quest"
شروط التعليق :
■ يجب على التعليق أن يكون بلا روابط إشهارية
■ لاستعمال خط عريض ضع الكود : النص هنا...
■ لاستعمال خط مائل ضع الكود : النص هنا...
■ لإضافة صورة ضعها بهذا الكود : ... رابط الصورة هنا ...
الابتسامات الابتسامات