السلام عليكم
صباحكو سعاده،
اقتبـاس ،،
#Src1
--------
لعبه ماتين
لها جزئين
جزء السيرفر ينقسم إلي 8 أجزاء منفصلين
جزء الكلينت ينقسم إلي 16 جزء منفصلين
---------------------
جزء السيرفر هما
------------
common
db
game
libgame
liblua
libpoly
libsql
libthecore
-----------------
common : يوجد بداخله الثوابت
---
db : النواة التي تقوم بعمليات قاعدة البيانات.
---
game :المكان الذي يعالج المعلومات من قاعدة البيانات db
وبداخله جزئين
lzo :
quest : هذا هو المكان الذي توجد فيه أكواد المصدر
---
libgame :تحتوي اللعبة على ملفات مساعدة. في الغالب لمربعات الجرد وسحر العناصر
---
liblua : لكي تعمل رموز lua في السيرفر
---
libpoly : التحول في اللعبه
---
libsql : المكون الاضافي sql لقاعده البيانات db
---
libthecore :
-----------------------------
الملفات تنقسم لcpp , h
.h :
يُعرف باسم ملف الرأس. الملفات حيث يتم تحديد الوظائف والفئات والبنيات وما إلى ذلك.
.cpp :
هذا هو المكان الذي يوجد فيه محتوى الفئات والوظائف المحددة في الرأس
-------------------
الجزء الأول common
-----------------
billing.h :
--
cache.h : ذاكرة التخزين المؤقت
--
d3dtype.h : الأشياء المتعلقة بالألوان.
--
noncopyable.h :
--
pool.h :
--
service.h : الجزء الذي تُعرَّف فيه التعريفات (#ifdef ، #ifndef).
يتم تعيين ثوابت الأنظمة هنا
--
singleton.h :
--
teen_packet.h :
--
VnumHelper.h :يتم تصنيف العناصر الحالية في اللعبة وفقًا لـ vnum
على سبيل المثال: 71136 عبارة عن عنصر متعلق بالهالوين
--
building.h :
--
item_length.h : توجد معلومات حول العناصر والمعلومات. الأعلام والسحر وما إلى ذلك.
--
length.h : هناك معلومات عن اللعبة بشكل عام. الحد الأقصى لعدد الأحرف المراد فتحه في الحساب ، وحجم المخزون ، والحد الأقصى لمقدار اليانغ المخزن ، وأنواع الأحرف ، وأنواع الاتصال وانواع الدردشه وما إلي ذلك
--
auction_table.h :
--
stl.h :
--
tables.h : يرسل البيانات بين gameو db
وفقًا للمعلومات المحددة هنا (packet)
. مثال: معلومات وعناصر الشخصية التي تم تسجيل دخولها إلى اللعبة وتحميل النماذج الأولية وما إلى ذلك
--
utils.h :
--
طلب مني احد الاخوه هنا وضع موضوع ردًا على هذا الموضوع.
جزء كبير من كلامه خاطئ
اولا: ما اريد توضيحه الاخ هنا حاول الاجتهاد وأخطأ ولكن الإصرار على الخطأ هو الخطأ الشنيع الذي قام به.
ثانيا: كل شخص منكم يسأل نفسه هل أنا بحاجة لمعرفة كل الملفات؟ بعض الملفات لم أتحقق من عملها إلا قبل أن اكتب الموضوع لأنها لا فائدة منها(المقصود هنا أنه لن تستفيد أي شيء من معرفة عملها لأنها مكتبات كتبت وهي جاهزة تقوم بعملها و إن قمت بتعديلها ستجعل الأمر سيئا لا أكثر)
وثالثا وقبل كل شيء انت بحاجة لمعرفة C++ وبمعرفة لا أتكلم عن جيل من ينسخ من الأتراك أو من ينسخ من الغرب (غير الأتراك)
أخيرًا: قبل أن أبدأ بالشرح لا تصدق أي كلمة مما أقول بل قم بالبحث في السورس بعناية والتحقق من كل كلمة أقولها
شرح مبسط عن السورس
الأجزاء التي يتحدث عنها الأخ هي static libaries مكتبات يقوم الكومبايلر بربطها بعد الانتهاء من عملية "تكوين ملف لعبة أو قاعدة بيانات"
بالنسبة للمكتبات التي قد تعدل عليها فهي:
libgame و منه أقصد ملف واحد فقد Grid سواء cc. أو h. وهو الذي يتعامل مع قائمة التفاوض والمتاجر (shop/shopEx) و المستودع ومستودع المتجر(في كلا الطرفين DB + GAME)
Attribute.cc كلاس خاصة بجعل أجزاء الخريطة لا يمكن فتح حر او الجدران والجبال المناطق التي تمنع فيها الحركة او ماء .. الخ
Targa.cc من اسمه .tga ينشي ملفات .tga ويستخدم لانشاء صورة من ال attributes تبع الخريطة بأمر المراقب saveati/
liblua لا فائدة منها لك ابدًا إلا إن كنت تنوي تحديث نسخة lua من lua5.0 إلى نسخة أحدث وأحدث نسخة تجدها
يجب عليك التسجيل لمشاهدة الرابط
libpoly هذا لا تقم بالتعديل عليه لأنه حاليا يقوم بعمله على أكمل وجه وعمله هو تحويل النص المكتوب إلى عمليات حسابية إلا في حالة أنك تريد زيادة عمليات حسابية أكثر ومثال على عمله ما هو موجود في جدول المهارات. skill_proto
libsql خاص بالاتصال بقاعدة البيانات async أو sync ما الفرق بينهما
يجب عليك التسجيل لمشاهدة الرابط
libthecore هذا هو النواة الأساسية في كلا db و game وعليها تقوم العشوائية و مراقبة السيرفر عندما يحدث (crash) و البفر buffer و socket الذي تقوم عليهما عمليات packets ما يهمك الآن أنك لن تحتاجه في وقت قريب.
db أو كما تسمى في السابق dbcache فهي كاش (وسيلة للتخزين المؤقت) لعمليات sql ومنها يكون الاتصال بقاعدة البيانات "غالبًا"
game هي التي يحدث بها كل شيء يخص اللعبة ولم نذكره في الأعلى. مهارات - شخصيات - أحصنة - مرافقين - تأثيرات - وحوش .... كل شيء.
d3dtype.h : هذه تستخدم في المتجهات vectors (حفظ مكان الشخصية في بعدين أو ثلاث أبعاد) x,y / x,y,z
عدم حديثي عن الملفات المتبقية ليست جهل ولكن
تعبت ههههههههههههه
باي