بسم الله الرحمن الرحيم
Add Poker 100%
اقدم لكم اليوم شرح اضافة البوكر كاامل عشان تبقا عامل سيرفر مظبوط ,التعديلات التي تمت هي بوكر ال CPS شغال و Gold
ياعني كامل
صور من البوكر
اضافة البوكر كامل لكونكر تهيس 2017
Add Poker 100%
نخش بقا في الاضافة
اولا هنحمل الكلاسات دي وتبدلها بالي عندك او لو معندكش البوكر تضفها من الصفر
اولا هنحمل الكلاسات دي وتبدلها بالي عندك او لو معندكش البوكر تضفها من الصفر
لتحميل الكلاسات اضغط هنا
باسورد فك الضغط عن الملف هو :
ibda3xor3
بعد كدة هنخش علي GameState او GameClient علي حسب سورسك ونبحث عن
public void SendScreen(Interfaces.IPacket buffer
ونضيف تحتة
public void Disconnect(bool save = true)
{
if (Fake) return;
if (Screen != null) Screen.DisposeTimers();
GeneralData.RemoveTPA(this);
Server.Thread.UnRegister(this);
if (OnDisconnect != null) OnDisconnect(this);
if (_socket.Connector != null)
{
if (Player != null)
{
CheckPokerDisconnect();
CheckRouletteDisconnect();
}
_socket.Disconnect();
ShutDown();
}
}
public void CheckPokerDisconnect()
{
if (Player.MyPokerTable != null)
{
var T = Player.MyPokerTable;
if (T != null)
if (T.Players.ContainsKey(Player.UID) && T.Pot > 1)
{
T.StopMoveCountDown();
T.RemovePlayer(Player.UID);
}
else
T.RemovePlayer(Player.UID);
}
}
public void CheckRouletteDisconnect()
{
Database.Roulettes.RouletteTable Table;
if (PlayRouletteUID != 0)
{
if (Database.Roulettes.RoulettesPoll.TryGetValue(PlayRouletteUID, out Table))
{
Table.RemovePlayer(this);
}
}
else if (WatchRoulette != 0)
{
if (Database.Roulettes.RoulettesPoll.TryGetValue(WatchRoulette, out Table))
{
Table.RemoveWatch(Player.UID);
}
}
}
بعد كدة هنخش علي كلاس Enums.cs ونبحث عن
public enum NpcType : byte
ونضيف فية
Poker = 33, Poker2 = 34, Poker3 = 35, Poker4 = 36, Poker5 = 37, Poker6 = 38
بعد كدة في نفس الكلاس نبحث عن
public enum MapsName : uint
ونضيف فية
PokerRoom = 1858,VIPPokerRoom = 1860,
بعد كدة نخش علي كلاس HeroOfGame.cs
ونبحث فية عن
public void Work(int time)
تقفلة من السالب و نبدلة بي دة
public void Work(int time) { if (!SendInvitation) { foreach (var client in Kernel.GamePool.Values) { if (!client.InQualifier() && client.Player.PokerTable == 0 && client.PlayRouletteUID == 0 && client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Player.Dead) { Network.GamePackets.MsgInviteTrans alert = new Network.GamePackets.MsgInviteTrans { InviteID = 10563, Countdown = 60, Action = 1 }; client.Player.InviteID = 10563; client.Send(alert.ToArray()); } } SendInvitation = true; } else { if (open) { if (Secounds == 30) SendMapMessage("Hero OF Game will start in 30 Secounds"); else if (Secounds == 40) SendMapMessage("Hero OF Game will start in 20 Secounds"); else if (Secounds == 50) SendMapMessage("Hero OF Game will start in 10 Secounds"); else if (Secounds == 55) SendMapMessage("Hero OF Game will start in 5 Secounds"); else if (Secounds == 58) SendMapMessage("Hero OF Game will start in 3 Secounds"); else if (Secounds == 60) { var MapDictionary = Kernel.GamePool.Values.Where(p => p.Player.MapID == 1507).ToArray(); foreach (var client in MapDictionary) { client.Player.AllowToAttack = true; } SendMapMessage("Fight Now!"); } else if (Secounds > 60) { byte[] Messaje = new Network.GamePackets.MsgTalk("Alive Players : [ " + CkeckUPAlive() + " ]", System.Drawing.Color.Yellow, Network.GamePackets.MsgTalk.FirstRightCorner).ToArray(); var MapDictionar = Kernel.GamePool.Values.Where(p => p.Player.MapID == 1507).ToArray(); foreach (var client in MapDictionar) client.Send(Messaje); if (CkeckUPAlive() == 1) { var client = Kernel.GamePool.Values.SingleOrDefault(p => p.Player.MapID == 1507 && p.Player.Hitpoints > 0); if (client != null) { Game.Statue statue = new Statue(client.Player.SpawnPacket); client.Player.ConquerPoints += 1000; ////client.Player.ConquerPointsFake += 1000; Game.Player.SendWorldMessage("Congratulation ! " + client.Player.Name + " win the Hero OF Game, he receice 1000 Conquest Points"); Close(); } foreach (var player in Kernel.GamePool.Values) { if (player.Player.MapID == 1507) player.Player.Teleport(1002, 239, 245); player.Player.AllowToAttack = false; } } else if (CkeckUPAlive() == 0) { Close(); } } Secounds++; } } }
بعد كدة نخش علي كلاس PlanderWar.cs ونبحث فية عن
public void Work(int time)
نقفلة من السالب ونبدلة بدة
public void Work(int time){if (!SendInvitation){foreach (var client in Kernel.GamePool.Values.Where(U => U.Union != null)){if (!client.InQualifier() && client.Player.PokerTable == 0 && client.PlayRouletteUID == 0 && client.Map.BaseID != 6001 && client.Map.BaseID != 6000 && !client.Player.Dead){Network.GamePackets.MsgInviteTrans alert = new Network.GamePackets.MsgInviteTrans{InviteID = 10573,client.Send(alert.ToArray());Countdown = 60,Action = 1client.Player.InviteID = 10573;};}}}SendInvitation = true;}elseif (CheckClose() == true){{Close();}}
بعد كدة نخش علي كلاس player او Entity
ونبحث فية عن
public uint CursedTime
ونقفلة من السالب ونضيف تحتة
#region Poker
public uint PokerTable = 0;
public PokerTable MyPokerTable
{
get
{
if (PokerDatabase.PokerTables.ContainsKey(PokerTable))
return PokerDatabase.PokerTables[PokerTable];
else return null;
}
set
{
PokerTable = value.UID;
}
}
#endregion
وبعد مدا نخش علي كلاس screen.cs ونبحث فية عن
if (client.Map.ID == 8880 || client.Map.ID == 8881)
ونبدلة بي
if (client.Map.ID == 8880 || client.Map.ID == 8881) { SafeDictionary ToRem = new SafeDictionary(40); foreach (PokerTable T in PokerTables.Values) { if (client.Map.ID == T.Map) if (Kernel.GetDistance(T.X, T.Y, client.Player.X, client.Player.Y) > Constants.nScreenDistance) ToRem.Add(T.UID, T); } foreach (PokerTable T in ToRem.Values) if (PokerTables.ContainsKey(T.UID)) PokerTables.Remove(T.UID); }
وبعد كدة نبحث في نفس الكلاس عن
private IMapObject[] _objects;
ونضيف تحتة
private static ConcurrentDictionary<uint, PokerTable> PokerTables;
وف نفس الكلاس برضو نبحث عن
public Screen(GameState client)
ونضيف فية
PokerTables = new ConcurrentDictionary();
بعد كدة نبحث في نفس الكلاس برضو علي
public void Clear()
ونقفلة من السالب ونبدلة بي دة
public void Clear()
{
PokerTables.Clear();
_objectDictionary.Clear();
_objects = new IMapObject[0];
}
وبعد كدة نبحث في نفس الكلاس برضو عن
وبعد كدة نبحث في نفس الكلاس برضو عن
if (Owner.Map.ID == 8880 || Owner.Map.ID == 8881 || Owner.Map.ID == 1002)
ونبدلة بي دة
if (Owner.Map.ID == 8880 || Owner.Map.ID == 8881 || Owner.Map.ID == 1002) { foreach (PokerTable T in PokerDatabase.PokerTables.Values) { if (T.Map == Owner.Map.ID) { if (Kernel.GetDistance(T.X, T.Y, Owner.Player.X, Owner.Player.Y) <= Constants.nScreenDistance && !PokerTables.ContainsKey(T.UID)) { T.Spawn(Owner); PokerTables.Add(T.UID, T); } } } } if (Owner.Map.ID == Database.Roulettes.RouletteTable.MapID) { foreach (var R in Database.Roulettes.RoulettesPoll.Values) { if (Kernel.GetDistance(R.SpawnPacket.X, R.SpawnPacket.Y, Owner.Player.X, Owner.Player.Y) <= Constants.nScreenDistance && !PokerTables.ContainsKey(R.SpawnPacket.UID)) { Owner.Send(R.SpawnPacket); } } } }
بعد كدة نخش كلاس
MsgAction.cs
نبحث فية عن
public enum Mode : ushort
ونضيف فية
poker = 167,
وف نفس الكلاس برضو نضيف
public uint Data24_Uint//For Poker
{
get { return BitConverter.ToUInt32(Packet, 28); }
set { WriteUInt32(value, 28, Packet); }
}
public uint Data28_Uint//For Poker
{
get { return BitConverter.ToUInt32(Packet, 28); }
set { fixed (byte* Pack = Packet) *((uint*)(Pack + 28)) = value; }
}
وفي نفس الكلاس نبحث عن
public static void Process(byte[] packet, Client.GameState client
ونضيف فية
#region Poker Tele case Mode.poker: { switch (gData.dwParam) { case 1://Money Poker { if (client.Player.Money >= 100) { client.Player.Money -= 100; client.Player.Teleport(8880, 80, 75); } else { client.Send(Constants.NoMoney(100)); } break; } case 2://CPS Poker { if (client.Player.Money >= 100) { client.Player.Money -= 100; client.Player.Teleport(8881, 55, 62); } else { client.Send(Constants.NoMoney(100)); } break; } case 3://Bandit Poker { if (client.Player.Money >= 100) { client.Player.Money -= 100; client.Player.Teleport(1002, 342, 278); } else { client.Send(Constants.NoMoney(100)); } break; } case 4://Roulette Poker { if (client.Player.Money >= 100) { client.Player.Money -= 100; client.Player.Teleport(1858, 80, 75); } else { client.Send(Constants.NoMoney(100)); } break; } } break; } #endregion
ونبحث فية عن
case "PhesantPoint":
ونضيف تحتيها
case "pokermove":
{//COPokerTable.ManagePotsRoundEnd();break;}
ونضيف برضو في نفس الكلاس
case "crosspoker":{byte[] ketos = new byte[60 + 8];Writer.WriteUInt32((ushort)(ketos.Length - 8), 0, ketos);Writer.Byte(10, 4, ketos);break;client.Send(ketos);}
ونضيف في نفس الكلاس برضو
case "pokercards": { byte[] buf = new byte[116 + 8]; Network.Writer.Write((ushort)116, 0, buf); Network.Writer.Write((ushort)2091, 2, buf); Network.Writer.Write((ushort)1800, 3, buf); Network.Writer.Write((ushort)7, 4, buf);//kickedUID Network.Writer.Write((ushort)9, 30, buf); //Network.Writer.Write((ushort)768, 8, buf); //Network.Writer.Write((ushort)12642, 10, buf); client.Send(buf); break; }
ونضيف في نفس الكلاس برضو
case "kickpoker": { byte[] buf = new byte[18 + 8]; Network.Writer.Write((ushort)18, 0, buf); Network.Writer.Write((ushort)2088, 2, buf); Network.Writer.Write((ushort)30724, 4, buf);//kickedUID Network.Writer.Write((ushort)12258, 6, buf); Network.Writer.Write((ushort)768, 8, buf); Network.Writer.Write((ushort)12642, 10, buf); //Network.Writer.Write((ushort)49, 11, buf); Network.Writer.Write((ushort)49, 11, buf); Network.Writer.Write((ushort)25091, 12, buf); Network.Writer.Write((ushort)12042, 14, buf); //Network.Writer.Write((ushort)12042, 16, buf); client.Send(buf); break; }
بس كدا خلصنا اضافة السي شارب نخش بقا علي الطربيزات هنحمل الفولدر دة ونصطبة جوا bin/Debuge/database
للتحميل اضغط هنا
كلمة شكر تكفي ,واتمني بمشاركة الموضوع وترك تعليق حتي نستمر بالعطاء ,وسنبزل كل جهدنا من اجل متابعينا
إرسال تعليق