في هذا الموضوع بشرحلكم كيف تضيف 5 قوائم للجرد
شرح سهل ان شاءالله ونبدا
بسم الله:
افتح سورس سيرفر ثم مجلد common ثم نفتح ملف length.h
نبحث عن
INVENTORY_MAX_NUM = 90, ونقوم باستبدالها ب
INVENTORY_MAX_NUM = 225,
ثم ندخل مجلد game في نفس السورس ونبحث عن ملف exchange.cpp
نبحث عن
static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 2); // inven page 1
static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); // inven page 2
ونستبدلها ب
static CGrid s_grid1(5, INVENTORY_MAX_NUM/5 / 2); // inven page 1
static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); // inven page 2
static CGrid s_grid3(5, INVENTORY_MAX_NUM/5 / 2); // inven page 3
static CGrid s_grid4(5, INVENTORY_MAX_NUM/5 / 2); // inven page 4
static CGrid s_grid5(5, INVENTORY_MAX_NUM/5 / 2); // inven page 5
نبحث عن
s_grid1.Clear();
s_grid2.Clear();
ونستبدلها ب
s_grid1.Clear();
s_grid2.Clear();
s_grid3.Clear();
s_grid4.Clear();
s_grid5.Clear();
ونبحث عن
for (i = 0; i < INVENTORY_MAX_NUM / 2; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid1.Put(i, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 2; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid2.Put(i - INVENTORY_MAX_NUM / 2, 1, item->GetSize());
}
ونستبدلها كلها
for (i = 0; i < INVENTORY_MAX_NUM / 5; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid1.Put(i, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid2.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid3.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid4.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 5; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid5.Put(i - INVENTORY_MAX_NUM / 5, 1, item->GetSize());
}
ثم نفتح ملف char_item.cppنبحث عن
INVENTORY_MAX_NUM / 2
نستبدلها ب
INVENTORY_MAX_NUM / 5
انتهينا من سورس سيرفر الان ندخل سورس كلاينت مجلد Userinterface ثم نفتح ملف GameType.h
نبحث عن
const DWORD c_Inventory_Page_Count = 2;
ونستبدلها ب
const DWORD c_Inventory_Page_Count = 5;
انتهينا من سورس الكلاينت الان باقي الكلاينتندخل الروت ثم نفتح ملف uiinventory
نبحث عن
self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))ونستبدلها ب
self.inventoryTab.append(self.GetChild("Inventory_Tab_01"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_02"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_03"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_04"))
self.inventoryTab.append(self.GetChild("Inventory_Tab_05"))نبحث عن
self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
ونستبدلها ب
self.inventoryTab[0].SetEvent(lambda arg=0: self.SetInventoryPage(arg))
self.inventoryTab[1].SetEvent(lambda arg=1: self.SetInventoryPage(arg))
self.inventoryTab[2].SetEvent(lambda arg=2: self.SetInventoryPage(arg))
self.inventoryTab[3].SetEvent(lambda arg=3: self.SetInventoryPage(arg))
self.inventoryTab[4].SetEvent(lambda arg=4: self.SetInventoryPage(arg))
ثم نبحث عن ديف
def SetInventoryPage(self, page):
ونستبدل كامل الديف ب
def SetInventoryPage(self, page):
self.inventoryPageIndex = page
self.inventoryTab[(page+1)%5].SetUp()
self.inventoryTab[(page+2)%5].SetUp()
self.inventoryTab[(page+3)%5].SetUp()
self.inventoryTab[(page+4)%5].SetUp()
self.RefreshBagSlotWindow()
الان انتيهنا من الروت ندخل على على مجلد locale_ae ثم نبحث عن ملف InventoryWindow.py ونفتحه
نبحث عن
{
"name" : "Inventory_Tab_01",
"type" : "radio_button",
"x" : 10,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,
"children" :
(
{
"name" : "Inventory_Tab_01_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "I",
},
),
},
{
"name" : "Inventory_Tab_02",
"type" : "radio_button",
"x" : 10 + 78,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_large_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_large_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_large_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,
"children" :
(
{
"name" : "Inventory_Tab_02_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "II",
},
),
},ونستبدلها ب
{
"name" : "Inventory_Tab_01",
"type" : "radio_button",
"x" : 7,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_1,
"children" :
(
{
"name" : "Inventory_Tab_01_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "I",
},
),
},
{
"name" : "Inventory_Tab_02",
"type" : "radio_button",
"x" : 7 + 32,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_2,
"children" :
(
{
"name" : "Inventory_Tab_02_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "II",
},
),
},
{
"name" : "Inventory_Tab_03",
"type" : "radio_button",
"x" : 7 + 32*2,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_3,
"children" :
(
{
"name" : "Inventory_Tab_03_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "III",
},
),
},
{
"name" : "Inventory_Tab_04",
"type" : "radio_button",
"x" : 7 + 32*3,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_4,
"children" :
(
{
"name" : "Inventory_Tab_04_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "IV",
},
),
},
{
"name" : "Inventory_Tab_05",
"type" : "radio_button",
"x" : 7 + 32*4,
"y" : 33 + 191,
"default_image" : "d:/ymir work/ui/game/windows/tab_button_small_01.sub",
"over_image" : "d:/ymir work/ui/game/windows/tab_button_small_02.sub",
"down_image" : "d:/ymir work/ui/game/windows/tab_button_small_03.sub",
"tooltip_text" : uiScriptLocale.INVENTORY_PAGE_BUTTON_TOOLTIP_5,
"children" :
(
{
"name" : "Inventory_Tab_05_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "V",
},
),
},ثم نفتح ورقه locale_interface
ونبحث عن
INVENTORY_PAGE_BUTTON_TOOLTIP_1 1
INVENTORY_PAGE_BUTTON_TOOLTIP_2 2
ونستبدلها ب
INVENTORY_PAGE_BUTTON_TOOLTIP_1 1
INVENTORY_PAGE_BUTTON_TOOLTIP_2 2
INVENTORY_PAGE_BUTTON_TOOLTIP_3 3
INVENTORY_PAGE_BUTTON_TOOLTIP_4 4
INVENTORY_PAGE_BUTTON_TOOLTIP_5 5
ومبروك تم الأنتهاء من التركيب بنجاح
الشرح ينطبق تحديداً على الجرد الي فيه قائمتين فقط اما اذا كان عندك 3 او 4 تحتاج تعديلات بسيطه جداً
وربما بعض الاشياء ليست موجوده عندك بالضبط مثل
INVENTORY_PAGE_BUTTON_TOOLTIP_1 1
ممكن تلاقيها كذا
INVENTORY_PAGE_BUTTON_TOOLTIP_1 I
المهم هنا انتهي من الموضوع ولا تنسون الدعاء
