Mero
2019-04-28, 07:17 PM
عفواً لايمكن عرض الروابط في الإرشيف
السيستم ده مش عند اي حد غير منتدي ' اكواد ' ده بيخليك تقدر تلعب ارينا مع السيرفر نفسه بشخصية وهمية بتقنية الزكاء الاصطناعي
بعدة مستويات .
فعلا السيستم ده حاجة زي الفل بمعني الكلمة فحبيت انزله ليكم
الان ندخل علي تركب السيستم.
اولاً حمل الملف ده وحطه في فولدر Network
عفواً لايمكن عرض الروابط في الإرشيف
هنفتح الباكت هندلر PacketHandler
هتبحث عن
case "chi":
{
client.Send(new ChiPowers(true).Query(client));
break;
}
ضع تحتها الاكواد ديه
#region MaTrix Epic
case "aibot":
{
ProjectX_V3_Game.Entities.AIBot bot = new ProjectX_V3_Game.Entities.AIBot(ProjectX_V3_Game.E ntities.BotLevel.MaTrix);
client.AIBot = new ProjectX_V3_Game.Entities.AIBot(ProjectX_V3_Game.E ntities.BotLevel.MaTrix);
bot.LoadBot(ProjectX_V3_Game.Entities.BotType.Duel Bot, client);
bot.BeginJumpBot(client);
}
break;
case "baibot":
{
if (Data.Length == 3)
{
var array = LoadEntityUIDs(int.Parse(Data[2]));
int x = int.Parse(Data[1]);
int y = int.Parse(Data[2]);
for (int i = x; i < y; i++)
{
var fClient = new GameClient(null);
fClient.FakeLoad(array[i]);
int xP = Kernel.Random.Sign() * Kernel.Random.Next(8);
int yP = Kernel.Random.Sign() * Kernel.Random.Next(8);
if (fClient.FakeLoaded)
{
fClient.Entity.Teleport(client.Entity.MapID, (ushort)(client.Entity.X + xP), (ushort)(client.Entity.Y + yP));
if (fClient.Booth == null)
{
fClient.Send(new MapStatus() { BaseID = fClient.Map.BaseID, ID = fClient.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status });
fClient.Booth = new Game.ConquerStructures.Booth(fClient, new Data(true) { UID = fClient.Entity.UID });
fClient.Send(new Data(true) { ID = GamePackets.Data.ChangeAction, UID = fClient.Entity.UID, dwParam = 0 });
for (int ii = x; i < y; i++)
{
Game.ConquerStructures.BoothItem item = new Game.ConquerStructures.BoothItem();
item.Cost = 50000;
item.Item = new GamePackets.ConquerItem(true);
item.Item.ID = 613429;
item.Item.UID = AuthClient.nextID; AuthClient.nextID++;
item.Item.Plus = 12;
item.Item.Enchant = 255;
item.Item.Bless = 7;
item.Item.SocketOne = Enums.Gem.SuperDragonGem;
item.Item.SocketTwo = Enums.Gem.SuperDragonGem;
Database.ConquerItemBaseInformation CIBI = null;
CIBI = Database.ConquerItemInformation.BaseInformations[item.Item.ID]; if (CIBI == null)
break;
item.Item.Durability = CIBI.Durability;
item.Item.MaximDurability = CIBI.Durability;
// client.Inventory.Add(item.Item, Game.Enums.ItemUse.CreateAndAdd);
item.Item.Send(fClient);
{
ItemUsage usage = new ItemUsage(true) { ID = ItemUsage.AddItemOnBoothForConquerPoints };
item.Cost_Type = Game.ConquerStructures.BoothItem.CostType.ConquerP oints;
fClient.Booth.ItemList.Add(item.Item.UID, item);
fClient.Send(usage);
Conquer_Online_Server.Network.GamePackets.BoothIte m buffer = new Conquer_Online_Server.Network.GamePackets.BoothIte m(true);
buffer.Fill(item, fClient.Booth.Base.UID);
fClient.SendScreen(buffer, false);
}
}
}
}
}
}
client.Screen.Reload(null);
break;
}
case "baibot2":
{
Conquer_Online_Server.Database.MySqlCommand Cmd = new Conquer_Online_Server.Database.MySqlCommand(Conque r_Online_Server.Database.MySqlCommandType.SELECT);
Cmd.Select("bots");
Conquer_Online_Server.Database.MySqlReader Reader = new Conquer_Online_Server.Database.MySqlReader(Cmd);
while (Reader.Read())
{
var ID = Reader.ReadUInt32("BotID");
var fClient = new GameClient(null);
fClient.FakeLoadx(ID);
}
// Reader.Close();
// // Reader.Dispose();
client.Screen.Reload(null);
}
break;
#endregion
تمام هتروح علي GameClient او GameState
كلاً علي حسب السورس الخاص بك يا برنس
هتحط البابلكات ديه
public ProjectX_V3_Game.Entities.AIBot AIBot ;
public bool IsAIBot = false
;
تمام وبعد كده هتحط دول برضو
public GenericActionList<BotDelayedActions> BotActions = new GenericActionList<BotDelayedActions>();
public GenericActionList<DelayedActionType> EntityActions = new GenericActionList<DelayedActionType>();
public void Summon()
{
try
{
this.AIBot.LoadBot(ProjectX_V3_Game.Entities.BotTy pe.DuelBot, this);
this.AIBot.BeginJumpBot(this);
aisummoned = true;
EntityActions.RemoveAction(DelayedActionType.Summo n);
}
catch { }
}
تمام كده ندخل علي كلاس maps.cs
ونضيف الفويد ده
public void AddAI(Entity entity)
{
if (!this.AIs.ContainsKey(entity.UID))
{
this.AIs.Add(entity.UID, entity);
this.Floor[entity.X, entity.Y, MapObjectType.Player, entity] = false;
}
else
{
this.RemoveEntity(entity);
this.AIs.Add(entity.UID, entity);
this.Floor[entity.X, entity.Y, MapObjectType.Player, entity] = false;
}
}
public void RemoveAI(Entity entity)
{
if (this.AIs.ContainsKey(entity.UID))
{
this.AIs.Remove(entity.UID);
this.Floor[entity.X, entity.Y, MapObjectType.Player, entity] = true;
}
}
تمام كده يا ريس
اتبقي يا برنس الانبيسي اهه
#region AI Challange
case 216341:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Hello friend. I am the challenge master! Have you imagine if u could fight yourself (Clone).");
dialog.Option("I Wish To Try", 1);
dialog.Option("I'll think about it!", 255);
dialog.Send();
break;
}
case 1:
{
dialog.Text("Choose Difficulty you want.");
dialog.Option(" Noob .", 2 + 0);
dialog.Option(" Easy .", 2 + 1);
dialog.Option(" Normal .", 2 + 2);
dialog.Option(" Medium .", 2 + 3);
dialog.Option(" Hard .", 2 + 4);
dialog.Option(" Insane .", 2 + 5);
dialog.Option(" MaTrix .", 2 + 6);
dialog.Option("Nevermind.", 255);
dialog.Send();
break;
}
default:
if ((npcRequest.OptionID >= 2 + 0) && (npcRequest.OptionID <= 2 + 6))
{
client.AIBot = new Conquer_Online_Server.Entities.AIBot((Conquer_Onli ne_Server.Entities.BotLevel)(npcRequest.OptionID - 2));
if (!Constants.PKFreeMaps.Contains(702))
Constants.PKFreeMaps.Add(702);
if (!Kernel.Maps.ContainsKey((int)700L))
{
new Map(700, DMaps.MapPaths[700]);
}
Map map = Kernel.Maps[(int)700];
Map dynamicMap = map.MakeDynamicMap();
client.Entity.Teleport(map.ID, dynamicMap.ID, 50, 50);
client.Time(7);
// client.Entity.Teleport(702,dd 38, 38);
client.EntityActions.AddAction(Conquer_Online_Serv er.Entities.DelayedActionType.Summon, client.Summon, 6000);
break;
}
else
{
dialog.Text("Invaild Difficulty");
dialog.Option("I Try again", 255);
dialog.Send();
break;
}
}
break;
}
#endregion Challange
كدة خلصنا
اي ايرور اتأكدو الاول انه مش بسبب اسم البروجكت تمام.
لو بسبب اس البروجكت غيره لأسم البروجكت السورس الخاص بيك
عفواً لايمكن عرض الروابط في الإرشيف
السيستم ده مش عند اي حد غير منتدي ' اكواد ' ده بيخليك تقدر تلعب ارينا مع السيرفر نفسه بشخصية وهمية بتقنية الزكاء الاصطناعي
بعدة مستويات .
فعلا السيستم ده حاجة زي الفل بمعني الكلمة فحبيت انزله ليكم
الان ندخل علي تركب السيستم.
اولاً حمل الملف ده وحطه في فولدر Network
عفواً لايمكن عرض الروابط في الإرشيف
هنفتح الباكت هندلر PacketHandler
هتبحث عن
case "chi":
{
client.Send(new ChiPowers(true).Query(client));
break;
}
ضع تحتها الاكواد ديه
#region MaTrix Epic
case "aibot":
{
ProjectX_V3_Game.Entities.AIBot bot = new ProjectX_V3_Game.Entities.AIBot(ProjectX_V3_Game.E ntities.BotLevel.MaTrix);
client.AIBot = new ProjectX_V3_Game.Entities.AIBot(ProjectX_V3_Game.E ntities.BotLevel.MaTrix);
bot.LoadBot(ProjectX_V3_Game.Entities.BotType.Duel Bot, client);
bot.BeginJumpBot(client);
}
break;
case "baibot":
{
if (Data.Length == 3)
{
var array = LoadEntityUIDs(int.Parse(Data[2]));
int x = int.Parse(Data[1]);
int y = int.Parse(Data[2]);
for (int i = x; i < y; i++)
{
var fClient = new GameClient(null);
fClient.FakeLoad(array[i]);
int xP = Kernel.Random.Sign() * Kernel.Random.Next(8);
int yP = Kernel.Random.Sign() * Kernel.Random.Next(8);
if (fClient.FakeLoaded)
{
fClient.Entity.Teleport(client.Entity.MapID, (ushort)(client.Entity.X + xP), (ushort)(client.Entity.Y + yP));
if (fClient.Booth == null)
{
fClient.Send(new MapStatus() { BaseID = fClient.Map.BaseID, ID = fClient.Map.ID, Status = Database.MapsTable.MapInformations[1036].Status });
fClient.Booth = new Game.ConquerStructures.Booth(fClient, new Data(true) { UID = fClient.Entity.UID });
fClient.Send(new Data(true) { ID = GamePackets.Data.ChangeAction, UID = fClient.Entity.UID, dwParam = 0 });
for (int ii = x; i < y; i++)
{
Game.ConquerStructures.BoothItem item = new Game.ConquerStructures.BoothItem();
item.Cost = 50000;
item.Item = new GamePackets.ConquerItem(true);
item.Item.ID = 613429;
item.Item.UID = AuthClient.nextID; AuthClient.nextID++;
item.Item.Plus = 12;
item.Item.Enchant = 255;
item.Item.Bless = 7;
item.Item.SocketOne = Enums.Gem.SuperDragonGem;
item.Item.SocketTwo = Enums.Gem.SuperDragonGem;
Database.ConquerItemBaseInformation CIBI = null;
CIBI = Database.ConquerItemInformation.BaseInformations[item.Item.ID]; if (CIBI == null)
break;
item.Item.Durability = CIBI.Durability;
item.Item.MaximDurability = CIBI.Durability;
// client.Inventory.Add(item.Item, Game.Enums.ItemUse.CreateAndAdd);
item.Item.Send(fClient);
{
ItemUsage usage = new ItemUsage(true) { ID = ItemUsage.AddItemOnBoothForConquerPoints };
item.Cost_Type = Game.ConquerStructures.BoothItem.CostType.ConquerP oints;
fClient.Booth.ItemList.Add(item.Item.UID, item);
fClient.Send(usage);
Conquer_Online_Server.Network.GamePackets.BoothIte m buffer = new Conquer_Online_Server.Network.GamePackets.BoothIte m(true);
buffer.Fill(item, fClient.Booth.Base.UID);
fClient.SendScreen(buffer, false);
}
}
}
}
}
}
client.Screen.Reload(null);
break;
}
case "baibot2":
{
Conquer_Online_Server.Database.MySqlCommand Cmd = new Conquer_Online_Server.Database.MySqlCommand(Conque r_Online_Server.Database.MySqlCommandType.SELECT);
Cmd.Select("bots");
Conquer_Online_Server.Database.MySqlReader Reader = new Conquer_Online_Server.Database.MySqlReader(Cmd);
while (Reader.Read())
{
var ID = Reader.ReadUInt32("BotID");
var fClient = new GameClient(null);
fClient.FakeLoadx(ID);
}
// Reader.Close();
// // Reader.Dispose();
client.Screen.Reload(null);
}
break;
#endregion
تمام هتروح علي GameClient او GameState
كلاً علي حسب السورس الخاص بك يا برنس
هتحط البابلكات ديه
public ProjectX_V3_Game.Entities.AIBot AIBot ;
public bool IsAIBot = false
;
تمام وبعد كده هتحط دول برضو
public GenericActionList<BotDelayedActions> BotActions = new GenericActionList<BotDelayedActions>();
public GenericActionList<DelayedActionType> EntityActions = new GenericActionList<DelayedActionType>();
public void Summon()
{
try
{
this.AIBot.LoadBot(ProjectX_V3_Game.Entities.BotTy pe.DuelBot, this);
this.AIBot.BeginJumpBot(this);
aisummoned = true;
EntityActions.RemoveAction(DelayedActionType.Summo n);
}
catch { }
}
تمام كده ندخل علي كلاس maps.cs
ونضيف الفويد ده
public void AddAI(Entity entity)
{
if (!this.AIs.ContainsKey(entity.UID))
{
this.AIs.Add(entity.UID, entity);
this.Floor[entity.X, entity.Y, MapObjectType.Player, entity] = false;
}
else
{
this.RemoveEntity(entity);
this.AIs.Add(entity.UID, entity);
this.Floor[entity.X, entity.Y, MapObjectType.Player, entity] = false;
}
}
public void RemoveAI(Entity entity)
{
if (this.AIs.ContainsKey(entity.UID))
{
this.AIs.Remove(entity.UID);
this.Floor[entity.X, entity.Y, MapObjectType.Player, entity] = true;
}
}
تمام كده يا ريس
اتبقي يا برنس الانبيسي اهه
#region AI Challange
case 216341:
{
switch (npcRequest.OptionID)
{
case 0:
{
dialog.Text("Hello friend. I am the challenge master! Have you imagine if u could fight yourself (Clone).");
dialog.Option("I Wish To Try", 1);
dialog.Option("I'll think about it!", 255);
dialog.Send();
break;
}
case 1:
{
dialog.Text("Choose Difficulty you want.");
dialog.Option(" Noob .", 2 + 0);
dialog.Option(" Easy .", 2 + 1);
dialog.Option(" Normal .", 2 + 2);
dialog.Option(" Medium .", 2 + 3);
dialog.Option(" Hard .", 2 + 4);
dialog.Option(" Insane .", 2 + 5);
dialog.Option(" MaTrix .", 2 + 6);
dialog.Option("Nevermind.", 255);
dialog.Send();
break;
}
default:
if ((npcRequest.OptionID >= 2 + 0) && (npcRequest.OptionID <= 2 + 6))
{
client.AIBot = new Conquer_Online_Server.Entities.AIBot((Conquer_Onli ne_Server.Entities.BotLevel)(npcRequest.OptionID - 2));
if (!Constants.PKFreeMaps.Contains(702))
Constants.PKFreeMaps.Add(702);
if (!Kernel.Maps.ContainsKey((int)700L))
{
new Map(700, DMaps.MapPaths[700]);
}
Map map = Kernel.Maps[(int)700];
Map dynamicMap = map.MakeDynamicMap();
client.Entity.Teleport(map.ID, dynamicMap.ID, 50, 50);
client.Time(7);
// client.Entity.Teleport(702,dd 38, 38);
client.EntityActions.AddAction(Conquer_Online_Serv er.Entities.DelayedActionType.Summon, client.Summon, 6000);
break;
}
else
{
dialog.Text("Invaild Difficulty");
dialog.Option("I Try again", 255);
dialog.Send();
break;
}
}
break;
}
#endregion Challange
كدة خلصنا
اي ايرور اتأكدو الاول انه مش بسبب اسم البروجكت تمام.
لو بسبب اس البروجكت غيره لأسم البروجكت السورس الخاص بيك
عفواً لايمكن عرض الروابط في الإرشيف