الاثنين، 11 مايو 2015

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

اان شاء الله هبدا معاكم سلسله دروس متجدده هتكون في نفس الموضوع واتمني من الاداره تثبته لاستفاده الجميع منه 

الدروس دي حصريا لمنتدي المحترفون العرب وتيم اكس او ار بس 

الهدف من الدروس دي ان شاء الرحمن هتكون لو عاوز تعمل اي كويست باي فكره تعملها الزاي هقولكم الفكره 
وهشرحلكم بعض الاكواد اللي هنستخدمها علي اساس انك لما تكون بتعمل كويست وبعد مما تخلص تلاقي فيها ثغره عاوز تعدلها تعرف تعدلها منين من غير ما تسئل حد 

الكويستات انواع كتير جدا والمنتشر منها هيا فكره اللاست مان انك تدخل مابه وتموت اللي فيها وتخرج تكسب الجايزه ودي كانت عامله مشكله ان كدا الكويستات بقت للكينجات بس فابتدينا ندور ع حفلات تانيه بس للاسف بتبقي مليانه ثغرات ومشاكل دا لو لقينا اصلا 
هنبدا مع بعض بكويست عباره عن انك بتجمع ايتمات وتسلمها دي اديمه طبعا لكن في ناس كتير مش بتعرف تعملها 
ودي حاجه مبدئيه بس عشان نتعلمها وبعد كدا هنطور الفكره وهنستخدمها باكتر من طريقه 
نبدا علي بركه الله واي حد عنده سؤال في حاجه او تعليق علي حاجه او عاوز ارفع شرح لحاجه معينه يطلب في رد وان شاء الله هرد عليه وهكون متابع الموضوع حسب وقتي يعني

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

اولا هناخد الكويست جزء جزء 
الكويست عباره عن انك هتكلم انبي سي بيدخلك مابه فيها وحوش بتموتهم وتجمع منهم حروف كلمه GHOSTS
وبتسلمهم لانبي سي تاني جوا بيخرجك التون وبيديك ايتم بتفتحه يديك ايتم علي شكله عمله بتتفحه بيطلعلك وحش تموته يديك عمله تانيه تفتحها تطلعلك وحش تاني وهكذا لحد 4 وحوش وبعد كدا بيديك جرمنت وبيديك الجايزه المحدده وليكن مثلا مليون سي بي اس 

هناخد اول جزء اللي هو الانبي سي هات 

الانبي سي دا هو الراجل اللي بتكلمو عشان تخش المابه ودا عباره عن جزئين جزء خاص بالنافي كات وجزء خاص بالسي شارب 

الجزء الخاص بالنافي هو انك بتروح ع القاعده بتاعت السورس وتفتح ملف npcs وبتلاقيه كالاتي 



وتاني جزء بيكون في السورس في ملف npcs 



ملحوظه ع الصوره عشان دي فيها حل ايرورات كتير جدا بتيجي لما بنحب نلغي كود او سطر 
لو نلاحظ انا عامل كل سهمين بلون ودي حاجه من اساسيات السي شارب يعني كل قوس مفتوح لازم يقابلو قوس مقفول وكل
#region
لازم يقابلها
#endregion
وكل 
case
بيقابلها
Break
وبريك بالنسبه لكيس معناها انتهاء الحاله 

تعالو بقي نبتدي نشرح كود الانبي سي 

#region Profishonal Quest
#region دي معناها بدا مجموعه او بمعني اصح دورها انها بتجمع الكود كلو جواها لما بتقفلها من علامه - اللي بتبقي جنبها 
بتقفل من اول بدا المجموعه اللي هيا #region لحد انتها المجموعه اللي هيا #endregion 

بعد كدا عندنا
case 20136:
                    {
دي معناها الحاله رقم كذا والرقم اللي هنا دا هو الاي دي بتاع الانبي سي اللي بنستخدمه في اول خانه في النافي كات 
وبعد كدا فتحنا قوس عشان نبدا الحاله اللي معانا اللي هيا اي دي الانبي سي 
switch (npcRequest.OptionID)
                        {
السطر دا بقا للي عاوز يفهمه في حاجه لغه السي شارب اسمها قاعده switch واللي بين القوسين دا بيكون العامل بتاعها واللي ع اساسه بنختار رقم الحاله اللي بنروح ليها بمعني 

انا لو قولت 

switch (2)
السورس هيدور ع اول case 2 : 
وينفذ اللي فيه 
طيب هنا هو كاتبلي 
switch (npcRequest.OptionID)
                        {
ايه اللي بين القوسين دا وكمان مفيش case ادامها الكلمه دي 

هقوللك اللي بين القوسين دا مسار موجود في السورس الكود بيروحلو وبياخد منو الرقم اللي موجود فيه 
في السورس مثلا ان اول امر بيبقي معايا اللي هو اني دوست ع الانبي سي دا يعتبر امر بسميه حاله وبتبقي رقمها صفر 
فانا اول لما بضغط ع الانبي سي بيبعت رقم صفر في المسار اللي بين القوسين بتوع switch 
وبتبدا تدور ع الحاله صفر او 
case 0:
لما بتلاقيها بتبدا تنفذ اللي فيها طيب وبعد كدا 
فتحنا قوس تاني طيب واحد هيقولي فتحنا قوس تاني من غير ما نقفل اللي فوق اصلا 
هقولو احنا كدا كل شغلنا هيفضل جوا الحاله الرئيسيه اللي هيا اي دي الانبي سي نفسه يعني كدا كل شغلنا جوا الانبي سي مش هنقفل القوس اللي فوق دا غير لما نخلص الانبي سي وهقوللك نقفله الزاي 

كدا احنا بدانا اول جزء جوا الانبي سي نفسه اللي هو لما بنضغط علي الانبي سي وقولنا الامر بيوصل الزاي وبيروح للحاله صفر الزاي 

طيب وبعد كدا ؟ 
dialog.Text("Do you Want To Go To The Professional Quest?");
بص بقي معايا اول كلمه عندنا اللي هيا dialog دي متعرفه في السورس ع انها الحاجه اللي بتخرج عن طريق الانبي سي ع هيئه كلام ودي بتبقي حاجتين اما مجرد كلام بنقراه او كلام بنقراه ونقدر نبعت امر للسورس عن طريقه 
الحاله الاولي هيا اللي معانا دلوقتي اللي مجرد كلام بنقراه طيب عرفت منين ؟ 
عرفت لانه كاتبلي dialog.text وكلمه تكست هيا اللي حددتلي نوع امر dialog 

وبعد كدا فتحنا قوس من النوع دا ) وع السريع كدا الفرق بين القوس دا ) والقوس دا { ان القوس دا { بيكون في تحديد بدايه ونهايه حاله معينه في اكتر من سطر لكن لو الحاله اللي معايا مجرد سطر واحد بيبقي مش مهم اوي يعني 

اما القوس دا ) بيكون في نص السطر يعني مينفعش احط مفتوح في سطر واحط وواحد مقفول في السطر اللي بعده 

طيب وبعد ما فتحنا القوس عندنا العلامه دي " العلامه دي بنستخدمها دايما في اي نص كتابي بنكتبه ودي بتكون لتحديد بدايه ونهايه النص الكتابي 

لما بنبدا النص الكتابي بنحطها ولما النص بيخلص بنحطها طيب وبعد كدا 
Do you Want To Go To The Professional Quest?
دا النص اللي انا عاوز الانبي سي يقولو وبعد كدا بقفل النص بنفس العلامتين برده "
وبعد كدا بقفل القوس الصغير اللي بداته في اول السطر (
وبعد كدا بحط العلامه دي 

;

العلامه دي اسمها فصله منقوطه ودي بتتحط في اخر السطر لعزله عن السطر اللي بعده 
تمام لحد كدا 

بعدكدا معايا 
dialog.Option("Yes Sure.", 1);
                                    dialog.Option("No Thanks.", 255);
                                    dialog.Send();
انا خدت ال 3 سطور دول مره واحده لانهم شبه بعض يعني ال حد ما 
هنا الفرق ان دي هنا اسمها 

dialog.option وهناك كانت text 

دا النوع التاني اللي قولنا عليه ودا متعرف في السورس ع اساس انه بيبعت الحاله ل switch عشان تبحث عنها وتنفذ اللي فيها 

طيب هتبعته الزاي ؟ هنشوف مع بعض
("Yes Sure.", 1);

طبعا السطر دا انا شرحته فوق اللي هو 
("Do you Want To Go To The Professional Quest?");
بس هنا بقي في فرق 

الفرق في رقم واحد اللي في الاخر دا 

دا هنا مقصود بيه الامر اللي هتبعته dialog.option ل npcRequest.OptionID ودا اصلا اللي switch بتجيب منه الامر بتاعها وبكدا switch بدل ما تدور ع
case 0 :

هيدور ع case 1:

تمام كدا 

طيب السطر التاني بقا ؟ 
dialog.Option("No Thanks.", 255);
انا معنديش case 255: هيعمل ايه بقاااااااااا؟
هقوللك مش هيعمل حاجا هو جالو امر مش موجود بيقف ع كدا والتكست بيختفي 

وكدا اغلب الشغل مسارات بمعني اصح 

وبعد كدا عندي 
break;
}
بريك هنا المقصود بيها انت الحاله صفر انتهت وبنقفل بعدها القوس اللي فتحناه لما قولنا
case 0:
{

ودي موضوحه في الصوره اللي فوق طيب احنا كدا لما هنختار الامر 1 اللي هو دا 

dialog.Option("Yes Sure.", 1);
هيروح علي 
case 1:
وينفذ اللي فيه 

تعالو نشوف case 1: كدا 
case 1:
                                {
                                    client.Entity.Teleport(9575, 50, 50);
                                    break;
                                }
طبعا كدا الكود كلو مشروح الا السطر اللي في النص 
طيب تعالو كدا ع السريع ترجمه خفيفه للحاله 

هنا بيقول الحاله 1 وفتح القوس وبعدين اداني الامر اللي هنفذه وبعدين جابلي break وقالي كدا الحاله 1 خلصت وقفل القوس

طيب تعالي نشوف الامر دا كدا ايه ؟ 
client.Entity.Teleport
دا متعرف في السورس ع انه مسار نقل احداثيات اللاعب او نقل اللاعب من مكان لمكان 
يعني باختصار بيقولي انقل اللاعب للمسار دا وبيفتح قوس يحط فيه المسار وطبعا اول خانه هيا ادي المدينه وبعد كدا فصله وبعدين الاحداثيات بالطول وبعدين فصله وبعدين الاحداثيات بالعرض ويقفل الكود الصغير

طيب كدا الانبي سي قالي اني في حاله الضغط عليه هيبعت امر 0 ل switch 
وهتجبلي الكلام اللي هقراه والكلام اللي هبعت عن طريقه الامر مره تانيه وكمان انا اختارت الامر 1 وتم التنفيذ 
طيب انا عاوز حاجه تانيه من الانبي سي ؟ 
لا كدا دورو انتهي طيب نقفل الانبي سي بقا 
case 20136:
                    {
                        switch (npcRequest.OptionID)
                        {
                            case 0:
                                {
                                    dialog.Text("Do you Want To Go To The Professional Quest?");
                                    dialog.Option("Yes Sure.", 1);
                                    dialog.Option("No Thanks.", 255);
                                    dialog.Send();
                                    break;
                                }
                            case 1:
                               {
                                    client.Entity.Teleport(9575, 50, 50);
                                    break;
                                }
كدا احنا قفلنا كل الحالات الفرعيه في الانبي سي وعاوزين نقفل بقا حاله الانبي سي نفسه اللي هيا 

case 20136:
                    {
طيب هنقفلها فين والزاي ؟
هقوللك عادي جدا بعد ما تخلص اخر حاله معانا هنروح حاطين تحتيها ع طول 
break;
                    }
طيب كدا خلاص ؟ لا لسه 
هيفضل معانا ايرور تعالي ندور كدا ونقسم الاقواس زي ما انا مقسمها في الصوره 

هتلاقي ان في قوس لسه ما قفلناهوش اللي هو فين ؟ 
switch (npcRequest.OptionID)
                        {
القوس دا لسه مقفلناهوش طيب هنقفل فين ؟ 

هقوللك هنشوف هو اتفتح فين ودور كان ايه 
القوس دا بيحدد حاله switch كامله ولكن switch نفسها جوا حاله الانبي سي نفسه 
يبقي مينفعش اقفلها في الاخر لان كدا هتدخل الدنيا في بعضها لا انا هقفل القوس قبل نهايه حاله الانبي سي ع طول
طيب احنا قفلنا الانبي سي فين ؟ 

قفلنا بالسطر دا 
break;
                    }
خلاص يبقي هدور ع break اللي بنقفل بيها اول حاله اللي هيا حاله الانبي سي واحط فوقها ع طول القوس اللي هقفل بيه حاله switch

وبكدا الانبي سي انتهي وهعمل #endregion عشان اقفل المجموعه 

وكدا تم شرح كل تفاصيل اول انبي سي اللي هو انبي سي النقل من مكان لمكان 

ملحوظه :
_______

اي حد مش فاهم اي حاجه في الدرس يسيب سؤال في رد واللي مش راكبه معاه اوي يفتح السي شارب ويحاول يطبق عملي هتثبت معاه بشكل سهل جدا لان البرمجه اساسها الممارسه 

اتمني تاخدو الحكايه جد وباذن الله هنزل درس تاني فيه الانبي سي اللي بيستلم منك وشرح الزيادات من الانبي سي دا لدا وايه اللي اتغير وايه الاوامر الجديده 

لو محسيتش ان في ناس متابعه معايا وعاوزه تتعلم انا هتوقف عن رفع الدروس لان ساعتها مش هيكون في فايده منها 

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

تحياتي واحترامي للجميع ...............


الدرس التاني :
__________

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

اولا الانبي سي التاني اهو 

                #region City Ghosts
                case 135135:
                    {
                        switch (npcRequest.OptionID)
                        {
                            case 0:
                                {
                                    dialog.Text("Hello " + client.Entity.Name + " this is Professional QUest You Need Prize? .");
                                    dialog.Text("I need ABC of word  G H O S T S   ?.");
                                    dialog.Option("Yes I Have Give My Prize.", 1);
                                    dialog.Option("Sorry I Don't Have All Items.", 255);
                                    dialog.Avatar(116);
                                    dialog.Send();
                                    break;
                                }
                            case 1:
                                {
                                  //  if (DateTime.Now.Minute >= 01 && DateTime.Now.Minute <= 59)
                                   // {
                                        if (client.Inventory.Contains(20141, 1))//Joy-Coin
                                        {
                                            if (client.Inventory.Contains(20142, 1))//Wish-Coin
                                            {
                                                if (client.Inventory.Contains(20143, 1))//Advancedjoy-Coin
                                                {
                                                    if (client.Inventory.Contains(20144, 1))//Nirvana-Box
                                                    {
                                                        if (client.Inventory.Contains(20145, 1))//FlyingRoosterE-gg
                                                        {
                                                            if (client.Inventory.Contains(20146, 1))//FlyingRoosterE-gg
                                                            {
                                                                client.Inventory.Remove(20141, 1);
                                                                client.Inventory.Remove(20142, 1);
                                                                client.Inventory.Remove(20143, 1);
                                                                client.Inventory.Remove(20144, 1);
                                                                client.Inventory.Remove(20145, 1);
                                                                client.Inventory.Remove(20146, 1);
                                                                client.Inventory.Add(5130513, 0, 1);
                                                                client.Entity.Teleport(1002, 460, 380);
                                                                AhmedBakkar.Kernel.SendWorldMessage(new AhmedBakkar.Network.GamePackets.Message("Congratulations! " + client.Entity.Name + " Has finshed Professional Quest Ghosts of Sparta Part (1) .", Message.TopLeft));
                                                               
                                                            }
                                                          /*  else
                                                            {
                                                                dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest");
                                                                dialog.Option("Ahh sorry.", 255);
                                                                dialog.Avatar(116);
                                                                dialog.Send();
                                                            }
                                                            break;
                                                        }*/
                                                        else
                                                        {
                                                            dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest");
                                                            dialog.Option("Ahh sorry.", 255);
                                                            dialog.Avatar(116);
                                                            dialog.Send();
                                                        }
                                                        break;
                                                    }
                                                    else
                                                    {
                                                        dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                        dialog.Option("Ahh sorry.", 255);
                                                        dialog.Avatar(116);
                                                        dialog.Send();
                                                    }
                                                    break;
                                                }
                                                else
                                                {
                                                    dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                    dialog.Option("Ahh sorry.", 255);
                                                    dialog.Avatar(116);
                                                    dialog.Send();
                                                }
                                                break;
                                            }
                                            else
                                            {
                                                dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                dialog.Option("Ahh sorry.", 255);
                                                dialog.Avatar(116);
                                                dialog.Send();
                                            }
                                            break;
                                        }
                                        else
                                        {
                                            dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                            dialog.Option("Okay sorry Iam Will Waiting.", 255);
                                            dialog.Avatar(116);
                                            dialog.Send();
                                        }
                                        break;
                                    }
                                    else
                                    {
                                        dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                        dialog.Option("Okay sorry Iam Will Waiting.", 255);
                                         dialog.Avatar(116);
                                        dialog.Send();
                                    }
                                    break;
                                }
                        }
                        break;
                    }
                #endregion

الجديد في الانبي سي دي حاجه اسمها قاعده if وهنعرف ايه هيا if و else و elseif 
اول جزء في الانبي سي تم شرحه في الجزء اللي فات 
#region City Ghosts
                case 135135:
                    {
                        switch (npcRequest.OptionID)
                        {
                            case 0:
                                {
                                    dialog.Text("Hello " + client.Entity.Name + " this is Professional QUest You Need Prize? .");
                                    dialog.Text("I need ABC of word  G H O S T S   ?.");
                                    dialog.Option("Yes I Have Give My Prize.", 1);
                                    dialog.Option("Sorry I Don't Have All Items.", 255);
                                    dialog.Avatar(116);
                                    dialog.Send();
                                    break;
                                }
بس هنا في اختلاف في الكلام مش اكتر وطبعا الكلام دا مش محدد دا اي حاجه انت بتحتاج تعملها حسب رغبتك 
حاجه بسيطه كدا عشان الناس اللي متعرفش في السطر دا 

dialog.Text("Hello " + client.Entity.Name + " this is Professional QUest You Need Prize? .");
وبالتحديد 
" + client.Entity.Name + "
هنا علامه " الاولي هيا انهاء لعلامه " اللي موجوده قبل كلمه hello وبعد كدا علامه + عشان تضيف 
للنص المسار دا وبعد كدا علامه + و بعدين " ولو لغينا العلامتين اللي في النص دول هتلاقي الانبي سي بيقوللك 
"Hello  + client.Entity.Name +  this is Professional QUest You Need Prize?
يبقي لازم نحط العلامتين عشان الانبي سي ميخلطش الكلام في بعضو ويعرف يفرق وطبعا 
client.Entity.Name
دي مسار لاسم اللاعب اللي بيكلم الانبي سي وبناء عليه هيحل محلها اسم اللاعب اللي بيكلم الانبي سي 

نكمل بقا الجديد 
اللي هيا قاعده if 

دي باختصار معناها اذا او لو 

يعني انا مثلا عاوز اعمل الكويست بوقت يبقي هقول لو الساعه كذا يدخل 
عشان اقول لو الساعه كذا يدخل للسورس بقي هقولهالو الزاي ؟ 
هقولهالو بالطريقه اللي يفهمها اللي هيا قاعده if
يعني هقولو 
if (الساعه كذا )
طيب دلوقتي انا حطيت شرط 
وقولت لو الساعه كذا طيب الساعه كذا دي هيعمل ايه ؟ 
يبقي اللي انا عاوزو يعملو دي حاجه اسمها جواب الشرط انا مثلا عاوزو يدخلك مكان معين يبقي جواب الشرط هو امر الدخول زي كدا مثلا 

if(الساعه كذا )
نقل الي المكان كذا
وطبعا دا مثال عشان افهمك المقصود ايه انما دي ليها استخدامات كتييييييييييير جدا ممكن اقول لو بوينت البي كي كذا يحصل كذا ولو معاه سي بي اس كذا يحصل كذا ولو الساعه كذا يحصل كذا الخ........
طيب هو انا ممكن احطلو شرطين يعني مثلا اقولو ان الساعه تكون كذا وان نقاط البي كي تكون كزا ؟ 
اه ينفع وفيه اكتر من طريقه
طيب الزاي؟ 

هقوللك الطريقه الاولي والسهله لو انا عاوز اقولو ان من الساعه 1 لحد الساعه 1.10 يدخلك المكان او يخرجك منو في المعاد دا بس غير كدا ميرداش ينقلك 

دا هيتم بواسطه بعض العلامات ودا مثال 

if ( الساعه تساوي 1 && الساعه اقل من او تساوي 1.10)
نقل من مكان كذا الي مكان كذا
والطريقه التانيه 
if (الساعه تساوي 1)
{
if (الساعه اقل من او تساوي 1.10)
نقل من مكان كذا الي مكان كذا
طيب انا امته استخدم دي وامته استخدم دي هنعرف مع الوقت ومع الدروس اللي جايه ان شاء الله 
طيب كدا انا قولت لو الساعه 1 واقل من واحده و1.10 هيتم النقل طيب ولو الساعه مش واحد اصلا او واحده بس واحده وتلت مثلا 
هنا بقا في حاجه اسمها else
ودي بمعنا لو لم 
يعني كدا مثلا 

if (الساعه 1 && الساعه اقل من  1.10)
نقل من مكان كذا الي مكان كذ 
else :
( لن يمكنك المرور الا من الساعه 1.00 الي الساعه 1.10)
و بالنسبه ل elseif فمش وقتها ولكن هيا باختصار دمج للامرين يعني مثلا هقول لو محصلش كزا يبقي كزا لو محلصش كزا يبقي كزا يعني مثلا لو مش احمد يبقي محمد ولو مش احمد ولا محمد يبقي عمر وهكذا

طيب الكلام بلغه البرمجه عموما عاوزين نخصصو اكتر شويه للسورس هنشوفو بقا مع المثال بس نخلينا فاكرين ايه هيا شغله if و else 

تعالو نشوف 

case 1:
                                {if (client.Inventory.Contains(20141, 1))//Joy-Coin
                                        {
                                            if (client.Inventory.Contains(20142, 1))//Wish-Coin
                                            {
                                                if (client.Inventory.Contains(20143, 1))//Advancedjoy-Coin
                                                {
                                                    if (client.Inventory.Contains(20144, 1))//Nirvana-Box
                                                    {
                                                        if (client.Inventory.Contains(20145, 1))//FlyingRoosterE-gg
                                                        {
                                                            if (client.Inventory.Contains(20146, 1))//FlyingRoosterE-gg
                                                            {
                                                                client.Inventory.Remove(20141, 1);
                                                                client.Inventory.Remove(20142, 1);
                                                                client.Inventory.Remove(20143, 1);
                                                                client.Inventory.Remove(20144, 1);
                                                                client.Inventory.Remove(20145, 1);
                                                                client.Inventory.Remove(20146, 1);
                                                                client.Inventory.Add(5130513, 0, 1);
                                                                client.Entity.Teleport(1002, 460, 380);
                                                                AhmedBakkar.Kernel.SendWorldMessage(new AhmedBakkar.Network.GamePackets.Message("Congratulations! " + client.Entity.Name + " Has finshed Professional Quest Ghosts of Sparta Part (1) .", Message.TopLeft));
                                                               
                                                            }
متخضوش اوي من شكل الكود دا منظر ع الفاضي وممكن يتلم كلو في سطر واحد كمان بس هو معمول كدا لهدف هقولو بس لما اخلص الحته دي 

اول الكود بيقولي في الحاله واحد وطبعا احنا عرفنا الحاله واحد دي يعني ايه وجات الزاي ؟
تعالو ننفذ اللي في الحاله واحد دي 

انا عاوز اقولو لو معاه نوع الايتم كذا عدد كذا يبقي هقول 

                                {[if (client.Inventory.Contains(20141, 1))//Joy-Coin
                                        {
ايه ياعم الكلام دا ؟
الكلام اللي فات مكانش فيه انجليزي خالص 
هقوللك خليك معايا وهتفهم 
اول جزئيه if يعني لو وبعد كدا فتحنا القوس عشان نكتب الشرط
وبعد كدا هنكتب الشرط اللي هو لو معاه ايتم كذا بعدد كذا (يعني مثلا معاه 10 ايتمات من النوع دا )
بلغه السورس بقا اسمها كدا 
client.Inventory.Contains
دا المسار اللي لما الكود يروحلو هيلاقي فيه الايتمات اللي مع اللاعب وعددها يبقي احنا كدا بنقولو روح المكان دا وشوف فيه الايتم رقم كذا موجود ولا لا ولو موجود هتشوفو موجود كذا ولا لا 
طيب انا بقي معايا السطر شكله كدا دلوقتي 
if (client.Inventory.Contains
طيب كدا انا قولتلو روح المكان ودور طيب هيدور ع ايه ؟ 
هفتحله بقا قوس صغير واقولو هتدور علي احمد ولو لقيته شوفلي كام واحد اسمهم احمد هنا برده نفس القصه تقريبا 
هفتح قوس واحطله اي دي الايتم طيب هتقولي اي دي الايتم دا هجيبو منين ؟ هقولو هعمل درس لشرح عمل ايتمات وانواعها وهتعرف ايه هو الايتم وايه هو الاي دي بتاعو 
طيب تمام جبنا الايتم والكود بقا شكله كدا 
client.Inventory.Contains(20141
طيب احنا كدا مقولناش كام ايتم يبقي خلاص هنعمل فصله ونضيف الايتم ويبقي شكل الكود كدا 
client.Inventory.Contains(20141, 1
كدا انا قولتلو عاوز عدد ايتم واحد بس من الايتم دا وممكن اخليه اكتر طبعا لو انا عاوز طيب انا كدا قولتلو اللي انا عاوزو 
عاوز اقفل بقا لازم اقفل بالترتيب عشان مش اتلخبط 
يعني هقفل الاول قوس عشان القوس اللي انا فتحته لما جيت احط الايتم وبعدين احط قوس تاني عشان اقفل القوس اللي فتحته لما جيت احط الشرط 
لان زي ما احنا متفقين ان كل قوس مفتوح لازم يقابله قوس من نفس نوعه يقفله 
طيب شكل الكود هيبقي كدا 
client.Inventory.Contains(20141, 1))
طيب احنا كدا حطينا الشرط وقولتلو لو لقيت معاه واحد علي الاقل من الايتم دا هتعمل كذا 
كذا دا بقا هو جواب الشرط اللي هو ايه عندنا في المثال ؟ 
 if (client.Inventory.Contains(20142, 1))//Wish-Coin
                                            {
ايه دا دا شرط تاني ؟
اه مش انا قولتلك ان ممكن نعمل اكتر من شرط ودلوقتي كمان بقوللك ينفع نعمل عده حاجات بمجرد تحقق شرط واحد وممكن نعمل عده شروط لتحقق حاجه واحده 
هو هنا بيقولي لو انت معاك الايتم الاول شوف لو معاك ايتم تاني طيب تمام معايا الايتم التاني بتفضل ماشي تحقق الشروط لحد لما توصل لشرط منهم هيقوللك تعمل حاجا معينه بس هتعملها امته بقي ؟ لما يكون كل الشروط اللي فاتت اتاكدت انها تمام ودا الحاله التانيه اللي انا قولتلكو عليها فوق طيب هنا معانا بنفس الطريقه لحد 
if (client.Inventory.Contains(20141, 1))//Joy-Coin
                                        {
                                            if (client.Inventory.Contains(20142, 1))//Wish-Coin
                                            {
                                                if (client.Inventory.Contains(20143, 1))//Advancedjoy-Coin
                                                {
                                                    if (client.Inventory.Contains(20144, 1))//Nirvana-Box
                                                    {
                                                        if (client.Inventory.Contains(20145, 1))//FlyingRoosterE-gg
                                                        {
                                                            if (client.Inventory.Contains(20146, 1))//FlyingRoosterE-gg
                                                            {
                                                                client.Inventory.Remove(20141, 1);
                                                                client.Inventory.Remove(20142, 1);
                                                                client.Inventory.Remove(20143, 1);
                                                                client.Inventory.Remove(20144, 1);
                                                                client.Inventory.Remove(20145, 1);
                                                                client.Inventory.Remove(20146, 1);
طيب كدا بعد ما اتاكد ان معايا كل الايتمات وبالاعداد المطلوبه هيعمل ايه ؟ تعالو نشوف الاوامر كدا 
مش انا فوق قولتلك لو الساعه 1 تدخلني هنا نفس الحكايه فوق بيقولي لو معاك الايتم كذا بعدد 1 هتمسح الايتم كذا بعدد كذا 

هو هنا عاوز يقول كدا انت ممكن تقولو لما تجمع الايتمات دي تموت او تاخد سي بي اس او تتنقل لمكان تاني اي حاجه انت عاوزها وهقولكم الزاي مع الوقت وفي دروس قادمه المهم درسنا دلوقتي بيقول لو لقيت الايتمات دي بالاعداد دي هتمسحها بنفس الاعداد تعالو نشوف كدا 
اول شرط عندي كان 
if (client.Inventory.Contains(20141, 1))
واول حاجه عندي في الحاجات اللي هتتنفذ بعد تحقيق اول شرط 
client.Inventory.Remove(20141, 1);
الاتنين نفس المسار بس تعالو نشوف الفرق في الشرط بيقول contains وفي جواب اخر شرط بيقول remove
يبقي هو كدا بيقول لو معاك الايتم مون بوكس مثلا بعدد واحد مون بوكس هعمل ايه ؟ هشوف لو معاك ميته بعدد 1 طيب لو معايا ميته ومون بوكس هشوف معايا دي بي طيب لو معايا ميته ومون بوكس ودي بي هعمل ايه ؟ هتمسح المون بوكس والميته والدي بي وطبعا دا مثال 
عندنا في الانبي سي بتاعنا بيتاكد انك معاك الايتمات ولا لا بعدد 1 ايتم من كل نوع وبعد ما يتاكد انهم معاك كلهم 
بيكمل ايه المطلوب تاني بعد ما لفيت الحاجات دي ؟ بيلاقي اكواد المسح للايتمات طيب تمام 
مسحت الايتمات عاوز تعمل حاجا تاني ولا خلاص اخد منه الايتمات وشكرا كدا 
لا انا لسه عاوز بقا اديله جيزته طيب عاوز الجايزه ايه ؟ ممكن بقي سي بي اس ممكن ايتمات غاليه اي حاجه تعالي نضيفها 

client.Inventory.Add(5130513, 0, 1);
كدا انا حطتله ايتم جديد ولو تلاحظه انه برده نفس السطر بس الفرق المره دي في add اضافه 
طيب لو عاوز اضيف سي بي اس هتبقي كدا 
client.Entity.ConquerPoints += 100000;
والكود بيروح ع المسار اللي بتبقي فيه السي بي اس وبيزود ع اللي موجود الملبغ اللي انا بحطه ايا كان 
طيب خلاص انا حطيت الشروط وحطيت اجوبه الشروط خلاص كدا ؟
لا لسه محطيناش في حاله الشروط متحققتش او شرط منها متحققش 
هعد معايا كام if وهعمل كل if منهم حاله else خاصه بيها 
ودا عشان لو انا مثلا معايا الايتم الاول والتاني ومش معايا التالت 
هيجي الكود يدور هيلاقي الاول والتاني وهيجي عند التالت مش هيلاقيه هيروح else يقرا اللي فيها 
انا هنا معايا كام شرط ؟ معايا 6 شروط يبقي هعملهم 6 حالات عدم تحقق للشرط 
زي كدا 

else
                                                        {
                                                            dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest");
                                                            dialog.Option("Ahh sorry.", 255);
                                                            dialog.Avatar(116);
                                                            dialog.Send();
                                                        }
                                                        break;
                                                    }
                                                    else
                                                    {
                                                        dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                        dialog.Option("Ahh sorry.", 255);
                                                        dialog.Avatar(116);
                                                        dialog.Send();
                                                    }
                                                    break;
                                                }
                                                else
                                                {
                                                    dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                    dialog.Option("Ahh sorry.", 255);
                                                    dialog.Avatar(116);
                                                    dialog.Send();
                                                }
                                                break;
                                            }
                                            else
                                            {
                                                dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                dialog.Option("Ahh sorry.", 255);
                                                dialog.Avatar(116);
                                                dialog.Send();
                                            }
                                            break;
                                        }
                                        else
                                        {
                                            dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                            dialog.Option("Okay sorry Iam Will Waiting.", 255);
                                            dialog.Avatar(116);
                                            dialog.Send();
                                        }
                                        break;
                                    }
                                    else
                                    {
                                        dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                        dialog.Option("Okay sorry Iam Will Waiting.", 255);
                                         dialog.Avatar(116);
                                        dialog.Send();
                                    }
                                    break;
                                }
طيب انا كدا حطيت الشروط وحطيت حالات عدم تحقق الشروط ؟ وحطيت اللي انا عاوزه يحصل لو اتحققت الشروط دي 
هقفل بقا الكود زي ما اتعلمنا في المثال اللي فوق وهيبقي معايا الانبي سي في النهايه كدا 

                #region City Ghosts
                case 135135:
                    {
                        switch (npcRequest.OptionID)
                        {
                            case 0:
                                {
                                    dialog.Text("Hello " + client.Entity.Name + " this is Professional QUest You Need Prize? .");
                                    dialog.Text("I need ABC of word  G H O S T S   ?.");
                                    dialog.Option("Yes I Have Give My Prize.", 1);
                                    dialog.Option("Sorry I Don't Have All Items.", 255);
                                    dialog.Avatar(116);
                                    dialog.Send();
                                    break;
                                }
                            case 1:
                                {
                                        if (client.Inventory.Contains(20141, 1))//Joy-Coin
                                        {
                                            if (client.Inventory.Contains(20142, 1))//Wish-Coin
                                            {
                                                if (client.Inventory.Contains(20143, 1))//Advancedjoy-Coin
                                                {
                                                    if (client.Inventory.Contains(20144, 1))//Nirvana-Box
                                                    {
                                                        if (client.Inventory.Contains(20145, 1))//FlyingRoosterE-gg
                                                        {
                                                            if (client.Inventory.Contains(20146, 1))//FlyingRoosterE-gg
                                                            {
                                                                client.Inventory.Remove(20141, 1);
                                                                client.Inventory.Remove(20142, 1);
                                                                client.Inventory.Remove(20143, 1);
                                                                client.Inventory.Remove(20144, 1);
                                                                client.Inventory.Remove(20145, 1);
                                                                client.Inventory.Remove(20146, 1);
                                                                client.Inventory.Add(5130513, 0, 1);
                                                                client.Entity.Teleport(1002, 460, 380);
                                                                AhmedBakkar.Kernel.SendWorldMessage(new AhmedBakkar.Network.GamePackets.Message("Congratulations! " + client.Entity.Name + " Has finshed Professional Quest Ghosts of Sparta Part (1) .", Message.TopLeft));
                                                               
                                                            }
                                        
                                                        else
                                                        {
                                                            dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest");
                                                            dialog.Option("Ahh sorry.", 255);
                                                            dialog.Avatar(116);
                                                            dialog.Send();
                                                        }
                                                        break;
                                                    }
                                                    else
                                                    {
                                                        dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                        dialog.Option("Ahh sorry.", 255);
                                                        dialog.Avatar(116);
                                                        dialog.Send();
                                                    }
                                                    break;
                                                }
                                                else
                                                {
                                                    dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                    dialog.Option("Ahh sorry.", 255);
                                                    dialog.Avatar(116);
                                                    dialog.Send();
                                                }
                                                break;
                                            }
                                            else
                                            {
                                                dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                                dialog.Option("Ahh sorry.", 255);
                                                dialog.Avatar(116);
                                                dialog.Send();
                                            }
                                            break;
                                        }
                                        else
                                        {
                                            dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                            dialog.Option("Okay sorry Iam Will Waiting.", 255);
                                            dialog.Avatar(116);
                                            dialog.Send();
                                        }
                                        break;
                                    }
                                    else
                                    {
                                        dialog.Text("Sorry But You Don't Have All Things You Can't finish The Quest.");
                                        dialog.Option("Okay sorry Iam Will Waiting.", 255);
                                         dialog.Avatar(116);
                                        dialog.Send();
                                    }
                                    break;
                                }
                        }
                        break;
                    }
                #endregion
طيب ملحوظه بقا الكلام اللي قولته دا 
انا في الاخر لما جيت اضيف حالات else لو لاحظتو هتلاقو كل حاله فيها كلمه break طيب ليه ؟ مع ان مفيش else
لان break مش متخصصه لا case بس دا معناها ان المطلوب انتهي وتذهب لاخر قوس مغلق في الكود كله 
يعني لو شلتها هتلاقي ان في حاله عدم تحقق اول شرط جابلك كل حالات ال else اللي موجوده ودا عشان مفيش حاجه تقولو ان كدا المطلوب انتهي لان السورس زي العيل الصغير لو معرفتوش كل حاجه وكل تفصيله مهما كانت صغيره مش هيعملها وهيقف عندها 

تاني حاجه السطور المنتهيه بالفصله المنقوطه اللي هيا دي ;
الفصله المنقوطه دورها فصل السطر عن السطر اللي بعده وعشان كدا مش بحطها في اخر السطر مع if لان جواب الشرط تابع ل if 

يارب يكون الدرس وصل لعقولكم بسهوله واي استفسار عن اي حاجه او اي نقطه انا موجود ومتابع ان شاء الله بس غالبا هرد بعد المغرب لحد الساعه 12 باليل عشان مش ببقي فاضي غير في الوقت دا بس 

كدا انا خلصت اول انبي سي وتاني انبي سي في حفله تجميع الحروف 
ودا الانبي سي الاول والتاني بعد ما خلصو عشان تكون قادر ع فهمهم وقراتهم وان شاء الله في الدرس اللي جاي هقول الزاي تعمل وحوش معينه والزاي تخليها توقع ايتمات معينه والزاي تعمل مابه 

اتمني منكم التنفيذ العملي والفوري حتي يكون من السهل عليكم فهم هذا الكلام 

بالتوفيق للجميع ..................
__________________________________________________ ___________
الدرس التالت 
__________________________________________________ ___________

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

النهارده ان شاء الله هقول كام حاجه مهمين ومميزين ومش محتاجين غير شويه تشغيل دماغ لا اكتر ولا اقل 
اولا هقول الزاي تدي اوامر معينه باستخدام if و else 
وهقوللك الزاي تجيب اي امر انت عاوزو من السورس 
ومش هطول عليكم 

انت المفروض بعد الدرسين اللي فاتو لما تشوف اي سطر فيه if او else هتفهمه وتعرف تقراه علي الاقل 
دلوقتي انا هقولكم شويه علامات واقولكم معناها وامتي نستخدمها وكمان هقولكم تطلعو الاوامر الزاي بدون اي مجهود او تعب
طيب اولا ناخد الرموز ويارب مش انسي حاجه وممكن انتو تكونو عارفين بعض منها ولكن بالتاكيد مش كلها 

:   1

{   2

(   3

;   4

,   5
نقدر نقول دا اول جزء وانا هقسمهم لجزئين للتسهيل عليكم 
تعالو ناخد اول علامه اللي هيا 

:

ودي معناها بنستخدمها في بعض الاوامر زي case بنحطها بعد رقم ال case عشان نقول ان اللي جاي تابع للحاله دي 

تاني حاجه القوس دا 

}

دا بنستخدمه لتحديد الحالات بشكل اجمالي او خاص بمعني اني ممكن احدد بيه case من اولها لحد الامر اللي بتخلص عنده وخصوصا لو كان اكتر من سطر وطبعا بنقفله بالقوس اللي زيه بس اللي بيقفل مش بيفتح وانا وضحت الطريقه في اول درس 

تالت حاجه هيا القوس دا 

(

ودا بنستخدمه لتحديد شرط او عمليه صغيره جوا شرط بس لازم يكون في نفس السطر يعني لما افتح قوس من النوع دا في سطر لازم احط قصادو قوس زيه يقفله بعد انتها الشرط او العمليه البسيطه المطلوبه 

رابعا العلامه دي او الفصله المنقوطه 

;

ودي دورها ببساطه انتهاء السطر وان السطر اللي بعده امر جديد او سطر جديد لان ممكن يكون في سطرين تحت بعض واخدين نفس الامر وهنشرح مثال لكدا فيما بعد 

وخامسا العلامه دي اللي هيا الفصله 



بمعني و يعني بتقولي اني هعمل كذا وكذا ومش شرط تكون لنوعين ممكت تكون لنوع وعدد وليها استخدامات كتير هنشوفها مع الوقت بس هيا مبدايا معناها و يعني مثلا احمد و محمد 

يبقي الفاصله هيا حرف الواو 

طيب انا كدا قولت خمس انواع وعزلتهم عن الباقي ليه ؟ 
لان دول من الاساسيات اللي دايما معاك وبيتحدد بيهم حاجات كتير ومهمه جدا ومع الوقت هنتعود عليهم وعلي استخداماتهم 

طيب ندخل ع الباقي 

=
==

>=

<=

+=

-=

!

&&

||
هنلاحظ ان في هنا علامات متكرره انا معاك هيا متكرره اه لكن كل مره بمعني مختلف ؟ 
طيب الزاي ؟ 
هنشوف مع بعض . تعالو ناخد اول امر اللي هو 

=

دا بمعني ان احمد هو احمد خلاص مفيش كلام يعني لما احط علامه يساوي واحده معناه تاكيد يعني لما اقول 

x = 1 

دا معناه ان قيمه اكس = واحد ودا مينفعش نحطه في شرط . طيب ليه مينفعش احطه في شرط ؟ عشان دا امر اصلا انت بتقولو خليلي قيمه اكس دي 1 يبقي الزاي هتشترط حاجه انت اصلا بتعملها ؟ واللي مش فاهم تابع بس معايا وركز هتفهم من العلامه اللي جايا 

تاني علامه اللي هيا 

==

معناها ايه دي بقا ؟ مش احنا لسه شارحين علامه يساوي وقولت ان معناها امر بتحويل قميه اكس هقول بقا دلوقتي 
ان علامه يساوي واحده معناها تحويل الحاجه اللي قبل علامه يساوي للقيمه اللي بعدها يعني في لغه البرمجه لو قولت 

ahmed = mohammed

يبقي هو هيجيب احمد ويخليه محمد 

انما لو قولتله 

ahmed == mohamed

هنا بقي انا بقوله هل ؟ احمد هو نفس محمد ؟ يبقي هنا انا محولتش احمد لمحمد بس انا بسالو هو احمد هو هو نفس محمد ؟ 

طيب هيجي واحد لسه مفمهمش ويقولي ايه يا عم اللي انت بتقولو دا احمد يبقي محمد والكلام دا هجبهالك بشكل اسهل 

انا لو قولت 

الساعه = 1 

دي في لغه البرمجه معناها ان الساعه واحده خلاص مفيش كلام وحتي لو هيا مش واحده هو هيعتبرها واحده 

انما لو قولت 

الساعه == 1 

دي معناها انا بسئله هل الساعه تساوي واحد ؟ يبقي هنا دا سؤال مش امر وينفع نستخدمه كشرط يبقي هنقوله لو الساعه واحده هتعمل كذا طيب لو مش واحده ؟ يبقي خلاص خرجنا من الشرط وهتروح بقا ع else

اتمني كدا اول علامتين يكونو اتفهمو 

العلامه التالته اللي هيا 

>=

اللي هيا اكبر من او يساوي 

لما الاقي علامه اكبر من الاول وبعد كدا علامه يساوي يبقي معناها ان القيمه اللي انا حاطتها قبل العلامه اما اكبر من القيمه اللي بعد العلامه او تساويها 

يعني مثلا لما اقول 

الساعه >= واحده 

يبقي انا بقوله لو الساعه واحده او اكتر 

طيب لو انا عاوز اقوله لو الساعه واحده او اقل 

هتبقي العلامه الرابعه اللي هيا دي 

<=

اللي هيا معناها اقل من 

اعتقد دول مفيش فيهم مشكله 
بس لازم الفت نظركم لحاجه 

لو لقيت اكبر من بس معناها ان لازم تكون اكبر من القيمه مش تساويها يعني مثلا 

الساعه > واحده يبقي كدا لو الساعه واحده هو هيعتبر الشرط محصلش لازم تكون اكتر من واحده عشان الشرط يتحقق ونفس الموضوع بالنسبه لعلامه اكبر من 

طيب ندخل في اللي بعده 

+=

بمعني قيمه الزياده علامه زائد يمعني زياده ويساوي اللي هيا قيمه الزياده يبقي لما الاقي علامه 

+= 

يبقي هو كدا هيزود حاجه عن اصلها يعني لو انا قولت 

+= 50 

وانا اصلا معايا 10 هيديني المجموع 60 

ونفس الموضوع بالنسبه ل -= 

لو انا معايا 60 وقالي

-= 10 

هيفضل معايا 50 لانه نقص من العدد اللي معايا اصلا 

بعد كدا عندي علامه التعجب 

!

دي بقا في البرمجه معناها لو غير . يعني ايه لو غير دي ؟ 
يعني انا مثلا عاوز امنع الكود ان ينفذ الامر في حاله او اتنين بس ينفذ في اي حاله تانيه غير دول هفضل بقي اكتب كل الحالات عشان مينفذش الا فيهم ويسيب الحالتين دول ؟ لا هنا بقي هنستخدم علامه التعجب ونحط الحاليتن 

الزاي ياعم . انا مش فاهم حاجه .

تعالو نجرب بمثال 

انا لو قولت 

if (الساعه 1 )
روح الدرس 

دا كدا معناه اني بقولو ان لو الساعه واحده متروحش الدرس 

طيب ياعم ايه الجديد ؟ 

الجديد بقي اني لو عاوز اقوله لو الساعه مش واحده متروحش الدرس هفضل بقا اقوله لو الساعه اتنين او تلاته او اربعه او خمسه ................. او 12 متروحش الدرس ؟ 

هنا بقا ممكن اقوله 

if ( الساعه !1 )

متروحش الدرس 

كدا انا قولتلو لو الساعه مش واحده متروحش الدرس ووفرت ع نافسي لفه كبيره 

وبنحط علامه التعجب قبل القيمه او الحاجه اللي مش عاوزينها الكود يتنفذ في وجودها 

اعتقد لحد كدا تمام 

اللي بعده 

&&

دي بقي سهله ومعناها و بس هنا بقي مش حرف الواو اللي كان في الفصله دا هنا بمعني حرف الواو برده ولكن في مواضع تانيه غير الفصله وبستخدمها لو عاوز احقق اكتر من شرط في نفس الحاله زي مثلا 

if ( الساعه واحده او اكتر && الساعه اقل من واحده و 10 دقايق )

يبقي انا كدا اشترط الاول ان الساعه تكون واحده او اكتر وبعدين اشترط انها تكون اقل من واحده و10 يبقي هو مش هينفذ الامر الا من الساعه واحده بالظبط لحد الساعه واحده و 9 دقايق وباستخدام علامه and او && الكود مش هيتنفذ في حاله تحقق الشرطين 

اللي بعده 

||

دي بقي بمعني او وليها نفس استخدامات && ولكن مع الفرق ان هناك قولت كذا و كذا هنا بقول كذا او كذا يعني مثلا 

if ( الساعه 1 || الساعه 2 || الساعه 3 )

طيب ايه الفرق بين (او ) و (و)

الفرق ان في حاله || اللي هو او يكفي شرط واحد لتنفيذ الامر يعني احمد او عمر او محمد اي واحد فيهم يكفي 

ام ابقي في حاله && فهنا لازم يكونو كلهم موجودين يعني احمد وعمر ومحمد 

اعتقد لحد كدا تمام 

العلامات دي انا جبتها لانها مهمه جدا وهنستخدمها كتير جدا ولازم نبقي فاهمينها 
قد يكون في علامات تانيه لان العلم كله عند الله ولم يؤته احد من خلقه ولكن دي اكتر علامات هنستخدمها 

والعلامات اللي في القسم الاول دي روتينيه 
اما علامات الجزء التاني فدي علامات بتختلف من سطر للتاني حسب رغبه المبرمج 

طيب كدا فاضل حاجه في الدرس دا 

الزاي اطلع مسار لامر معين من السورس مع اني معرفش مكانو اطريقه كتابتو ؟ 

باختصار هيا حته تشغيل مخ من اللي هيشتغل الزاي ؟ 

بص يا سيدي الاكواد اللي هتحتاجها كلها بنسبه 100% موجوده في السورس و 90 % منها مش هتغير فيها حاجه الا انك تاخدها من مكانها كوبي تحطها في الكويست بتاعتك باست بس طبعا هتكون فاهم انت بتنقل ايه 

الزاي الكلام دا 

تعالو كدا نعمل كويست بشكل بسيط وبالحاجات اللي اتعلمناها مش هنحتاج حاجه اكتر هنبتدي نعمل #region وبعدين #endregion وابدا اكتب بينهم 

ع اساس يبقي بالشكل دا 

#region 



#endregion
وهبدا اكتب بينهم اول حاجه معايا امر حاله الانبي سي اللي هو case وهنفترض رقم اي دي الانبي سي 123

#region
case 123:
{




#endregion
وبعد كدا همشي انفذ الخطوات اللي اتعلمتها في المرحله الاولي والتانيه لحد لما اوصل ل if 

احنا متفقين ان if هيا اللي عن طريقها بقول في حاله لو كذا هنعمل كذا طيب تعالو نقول دا بلغه السورس بقا 

انا عاوزو اقولو لو الساعه واحده او اكتر لحد الدقيقه اقل من 10 او لحد الساعه اقل من واحده و 10 هروح ع اي انبي سي في السورس وهشوفو بيستخدم كود الوقت هنطلعو وناخدو كوبي احنا مش هناخدو عشان احنا مش هنعرف نعملو بس هناخدو بدل ما نكتبو ع ايدينا توفير في الوقت لان في النهايه لازم برده بنكتبو حسب مسارات السورس بتاعنا فالاسهل ان احنا ناخدو من اي انبي سي طيب احنا دلوقتي ناس بتعرف تقرا الاكواد وهنعرف نطلع كود الوقت بسهوله 

وليكن مثلا 

if (DateTime.Now.Hour == 21 && DateTime.Now.Minute >= 11 && DateTime.Now.Minute < 30)
طيب تمام كدا هو بيقولي ايه ؟ 

اول شرط : الساعه 21 ؟ اللي هيا DateTime.Now.Hour == 21 طيب الاجابه نعم نشوف اللي بعده 
تاني شرط : الدقيقه اكتر من 11 ؟ اللي هيا DateTime.Now.Minute >= 11 طيب الاجابه نعم اللي بعده 
تالت شرط : الدقيقه اقل من 30 ؟ اللي هيا DateTime.Now.Minute < 30 طيب الاجابه نعم اللي بعده 
ايه دا دا مفيش حاجا تاني ؟
يبقي خلاص كل الشروط اتحققل هبتدي انفذ بقا المطلوب مني بس انا كدا هبقي اتعلمت ان مسار الوقت في السورس هو : DateTime.Now.Minute

وباستخدام العلامات اللي انا لسه شارحها هتعرف تقول بقي الساعه كام بالظبط 

لو انت عملت الخطوه دي يبقي حطيت رجلك ع اول الطريق 

ومن هنا بقي ممكن تعمل اي شرط انت عاوزه مش لازم يكون الوقت 

يعني مثلا لو عاوز تعمل مسابقه لشخصيه معينه يبقي لانبي سي توب الشخصيات وتاخد منه كود تحديد الشخصيه 
بس هتاخدو وانت فاهم كل حرف فيه معناه ايه 
وهكذا في اي كود لاي اسكله اوي لفل او كونكر بوينت او كونكر بي كي اي حاجه موجوده في السورس 

وبكدا تقدر تعمل كويستات كتير بانواع مختلفه 

متخافش احنا لسه مخلصناش احنا لسه مشاورنا طويل شويه 

طيب كدا احنا حققنا الشرط عاوزين بقي ننفذ 

هقوللك هيا نفس الطريقه تقريبا 

يعني عاوز في حاله تحقق الشرط يتنقل للمابه اللي انت عاملها للمسابقه يبقي خلاص هتشوف اي كود بينقل اللاعب من اي انبي سي كويست 

وهيكون بالشكل دا وانت طبعا هتعرفه لواحدك لما تقرا الكود 

client.Entity.Teleport(1002, 429, 378);
طيب لو عاوز ازود سي بي اس هتبقي زي كدا 

client.Entity.ConquerPoints += 100000;

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

وبكدا درس النهارده انتهي ويارب تكونو استفدتم واي حد عندو اي سؤال في اي حاجه انا متابع يسيب بس السؤال في رد 

بالتوفيق للجميع يا شباب ...................

هل أعجبك الموضوع؟! ↓
بضغطة زر تشارك الفائدة وتدعم هاى تك

عوادي الياس

مدونة تقني الانترنت تهدف لتطوير كل العرب في الحاسوب والانترنت مع اخوكم الياس عوادي

0 التعليقات