بسم الله الرحمن الرحيم

Add Poker 100%

اقدم لكم اليوم شرح اضافة البوكر كاامل عشان تبقا عامل سيرفر مظبوط ,التعديلات التي تمت هي بوكر ال CPS شغال و Gold 
 ياعني كامل 

صور من البوكر 
اضافة البوكر كامل 2018
 اضافة البوكر كامل لكونكر تهيس 2017
اضافة البوكر كامل 2018
 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 = 1


client.Player.InviteID = 10573;




};


}


}




}


SendInvitation = true;




}


else


if (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

 بعد كدة نخش علا كلاس MsgChat.cs
ونبحث فية عن
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
 للتحميل اضغط هنا

كلمة شكر تكفي ,واتمني بمشاركة الموضوع وترك تعليق حتي نستمر بالعطاء ,وسنبزل كل جهدنا من اجل متابعينا

Naglaa
كاتب ومحرر اخبار اعمل في موقع عالم الابداعibda3xor4.blogspot.com .

جديد قسم : كونكر برايفت

إرسال تعليق

اعلان منتصف الموضوع