الأحد، 26 مايو 2013

لسورسات السى شارب @save

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

الحفظ @save

علشان الكلام كتير عن الموضوع و الفتى زاد اوى


كل الناس فكرة ان دة الكود اللى بيحفظ
CommandsAI("@save");



و دة غلط دة الكود اللى بيدى امر الحفظ انما هو مش بيحفظ حاجة دة بقى الكود اللى مسؤل عن الحفظ
و دة هتلاقيه فى ملف program.cs 
case "@save":                    {الجزء الاول                        foreach (Client.GameState client in ServerBase.Kernel.GamePool.Values)                        {
  1.                             client.Account.Save();
  2.                             EntityTable.SaveEntity(client);
  3.                             SkillTable.SaveProficiencies(client);
  4.                             SkillTable.SaveSpells(client);
  5.                             ArenaTable.SaveArenaStatistics(client.ArenaStatistic);
  6.                             ChiTable.Save(client);
                        }الجزء التانى                        new Database.MySqlCommand(Database.MySqlCommandType.UPDATE).Update("configuration")                        .Set("GuildID", Game.ConquerStructures.Society.Guild.GuildCounter.Now)                        .Set("ItemUID", Network.GamePackets.ConquerItem.ItemUID.Now)                        .Set("DetainItemUID", Database.DetainedItemTable.Counter.Now)                        .Set("ClanUID", Game.Clans.ClanCount.Now)                        .Where("Server", ServerBase.Constants.ServerName).Execute();                    }                    break;

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

رقم اتنين  اللى بيحفظ الشخصيه بتاعتك يعنى السى بى اس اللفل المابه اللى انت فيها الخ

رقم ثلاثه و اربعة  اللى بيحفظ ترقيه الاسلحة بتاعتك و الاسكلات

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

رقم 6  بيحفظ التشى

و طبعا ممكن انت تضيف حجات تانية يحفظها زى مثلا نظام الانجازات و غيره

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

يعنى لو انت عندك التشى مش بيحفظ و رحت حطيت @save بعد كود التشى مش هيحفظ بردة لازم تتضيف كود حفظ التشى لكود التنفيذ زى ما انا عامل كدة فى رقم 6

طبعا تقدر تفتح ملف كل كود حفظ و تشوفوا بيحفظ اه بالضبط يعنى مثلا كود حفظ الاكونت ممكن يكون بيحفظ كل حاجة ما عدا مثلا نقاط البى كي فا الكود اللى فوق بردة دة مجرد امر انما مش الكود الاصلى فا انت بتروح للكود الاصلى و تضفله حفظ نقاط البى كى

الجزء التانى 
بقى دة اللى بيحفظ ايديهات كل حاجة زى الاكونتات و الايتمز و غيرها علشان متدخلش على بعض

 و دة بتختلف من سورس لسورس

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

المشكله هنا ان التشى مش بيحمل مع باقى الحجات اثناء فتح الاكونت و علشان تخليه هو او اى حاجة تانية تحصل اثناء دخول الاكونت زى مثلا اظهار الاستف النوبلتى تحميل بيانات الاكونت بتاعك بتضيفه هنا فى الباكت هندلر Network/PacketHandler.cs

فى الداله دة static void LoginMessages(Client.GameState client)

زى مثلا كود اظهار الاستف او حساب عمر الاكونت و غيره
            client.GemAlgorithm();
            client.CalculateStatBonus();
            client.CalculateHPBonus();
            client.SendStatMessage();
            client.Equipment.UpdateEntityPacket();

و فيه كذا طريقة لعمل الموضوع دة

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

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.