بسم الله الرحمن الرحيم وبه نستعين الشرح النهارده واضح من العنوان اضافه البلاك ليست للسورسات كلها حته اليكس بالمره مش خساره فيكم وانتظروا منى كام مفاجاء فيما بعد
اولا السورسات الMsg لانها اكتر حاجه بحبها بالنسبالى اقرب حاجه لاليكس فى التنظيم وده يرجع لعبدالله الدسوقى واسلام عبدالله
هتبحث عن كلاس اسمه MsgAction وهتضيف الاكواد ده لو مش موجوده يعنى لو موجوده ما تضفهاش
كود:
AddPersonToBlackList = 440,
RemovePersonFromBlackList = 441,
الاكواد ده فى الكلاس Mode علشان محدش يتلغبط ويحطها فى حاجه تانية
بعد كدا هتروح نازل عند الفويد ده
كود:
public static void Process(
وتحت اى كيس وليكن مثلا كيس case Mode.SendTC: وارمى الاكواد ده
كود:
case Mode.AddPersonToBlackList:
{
string TargetName = gData.Buf.FirstOrDefault();
foreach (var user in Kernel.GamePool.Values)
{
if (user.Player.Name == TargetName)
{
gData.UID = user.Player.UID;
break;
}
}
gData.dwParam = 1;
gData.Buf = new string[1] { TargetName };
gData.UID = client.Player.UID;
client.Send(new MsgAction().ToArray(gData));
break;
}
case Mode.RemovePersonFromBlackList:
{
string TargetName = gData.Buf.FirstOrDefault();
foreach (var user in Kernel.GamePool.Values)
{
if (user.Player.Name == TargetName)
{
gData.UID = user.Player.UID;
break;
}
}
gData.dwParam = 1;
gData.Buf = new string[1] { TargetName };
gData.UID = client.Player.UID;
client.Send(new MsgAction().ToArray(gData));
break;
}
طبعا هيجى ايرورين مش ايرور واحد ومش هيجى هو اوريدى هيكون موجود حل اول ايرور هتعمل الميمبر ده فى الباكت بتاع 10010
كود:
[ProtoMember(24)]
public string[] Buf;
تانى حاجه بالنسبة لايرور بتاع الclient.Send فانت حضرتك علشان انا السورس العادى عندى بنظام معاق شويه بس بالنسبالى اسهل طريقه للبروتو فانت حضرتك هتشيل خالص كل الكلام الى فى السيند ويدوبك تحط gData وخلاص شكرا على كدا ده بالنسبة للسورس البروتو المسج بتاع ميدو او اى سورس بروتو مسج
نيجى بقا سورس ماتركس سورس رايزو اى اسم تحت السورس هو يعتبر نفس الخطوات يعنى مافيش فيهم اختلاف
كلاس MsgAction_TATA هتروح هناك تبحث عن
كود:
public const ushort
DragonBallDropped = 165,
وتحط الاكواد ده
كود:
AddPersonToBlackList = 440,
RemovePersonFromBlackList = 441,
هتنزل عند فويد هندل وتحط الاكواد ده
كود:
case AddPersonToBlackList:
{
string TargetName = Info.Buf.FirstOrDefault();
foreach (var user in Kernel.GamePool.Values)
{
if (user.Entity.Name == TargetName)
{
Info.UID = user.Entity.UID;
break;
}
}
Info.dwParam = 1;
Info.Buf = new string[1] { TargetName };
Info.UID = client.Entity.UID;
client.Send(SendPacket(Info));
break;
}
case RemovePersonFromBlackList:
{
string TargetName = Info.Buf.FirstOrDefault();
foreach (var user in Kernel.GamePool.Values)
{
if (user.Entity.Name == TargetName)
{
Info.UID = user.Entity.UID;
break;
}
}
Info.dwParam = 1;
Info.Buf = new string[1] { TargetName };
Info.UID = client.Entity.UID;
client.Send(SendPacket(Info));
break;
}
طبعا هيجى ايرور نفس السورس الMsg هتروح على باكت الى فيه الميمبر بتاع باكت 10010 وتضيف الميمبر رقم 24 الى فوق
نيجى بقا لاهم سورس فى الحاجات الى فوق الى هو سورس اليكس هو اوريدى كل حاجه موجوده فى سورس اليكس كل الاختلاف فقط انك هتخش على كلاس MsgDataPacket وتروح عن الفويدات الكتيره الى تحت وترمى الاكواد ده
كود:
[DataAttribute(ActionType.RemoveBlackList)]
public unsafe static void RemoveBlackList(Client.GameClient client, ServerSockets.Packet msg, ActionQuery data)
{
string TargetName = data.Strings.FirstOrDefault();
foreach (var user in Database.Server.GamePoll.Values)
{
if (user.Player.Name == TargetName)
{
data.ObjId = user.Player.UID;
break;
}
}
data.dwParam = 1;
data.Strings = new string[1] { TargetName };
data.ObjId = client.Player.UID;
client.Send(msg.ActionCreate(data));
}
[DataAttribute(ActionType.AddBlackList)]
public unsafe static void AddBlackList(Client.GameClient client, ServerSockets.Packet msg, ActionQuery data)
{
string TargetName = data.Strings.FirstOrDefault();
foreach (var user in Database.Server.GamePoll.Values)
{
if (user.Player.Name == TargetName)
{
data.ObjId = user.Player.UID;
break;
}
}
data.dwParam = 1;
data.Strings = new string[1] { TargetName };
data.ObjId = client.Player.UID;
client.Send(msg.ActionCreate(data));
}
بالنسبة بقا لايرور فهو هيجى ايرور فى الميمبر فانت حضرتك نفس الى فات هتضيف ميمبر 24
هو اوريدى كدا انا نسيت حاجه نسيت انكم فى السورسات العاديه والمسج لازمن هتستعدى الملف بتاع system.ling اصلا علشان هيجيلك ايرور فى FirstOrDefault بس الحل سهل هتحط السطر ده فوق خالص مع الusing ومش هتلقى ولا ايرور تانى
ختاما انا شخصيه مستفزه بس ربنا يعلم ان الاستفزاز ده ما جبتوش من بره من المجال ومن الى انا شافتوا سواء من عدولا حسن رضا مينا الخ الخ الخ الخ لو قعدت اطلع المحادثات والخرا الى الواحد كان بيشوفوا مكنش حد فيكم دخل اتكلم وقالى انت اسلوبك مستفز ليه وانا بعتزر لاى حد اسلوبى كان خرا معاه بس لاسف من الى انا شوفتوا مش هقدر اغير الاسلوب :] وياريت لو كمان داخل تستنفع ياريت تبقى تدعى لام صدقنا ابو رشدى انت مش هتخسر حاجه يعنى لما تدعيلها ولا هتنقص اصلا لما تعلق على الموضوع بدعوه ليها