Hikayeler

Reklam vermek için turkmmo@gmail.com

4'lü Envanter Sistemi

  • Konuyu başlatan raSii
  • Başlangıç tarihi
  • Cevaplar 39
  • Görüntüleme 22K
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

raSii

Level 4
TM Üye
Katılım
24 Eki 2014
Konular
54
Mesajlar
442
Reaksiyon Skoru
106
Altın Konu
0
Başarım Puanı
67
TM Yaşı
11 Yıl 6 Ay 1 Gün
MmoLira
10
DevLira
0

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Evet Arkadaşlar Başlıkta yazdığım gibi 4'lü envanter sistemini anlatacağım bu konumda.

Piyasa'ya inat paylaşım diyebilriiz.
4'lü ve 6'lı Envanter Yapıp Satışa sunanlar var.
Gerçekten ciddi bir miktar istiyorlar.
Bende bunlara karşılık sizlere 4'lü Envanter Nasıl yapılır bunu Anlatacağım.

Umarım Hoşunuza Gider .. :)

Arkadaşlar Bunu yapmak için Öncelikle Açık kaynak dosyalarına İhtiyacımız vardır.
Bu Türkiye'de Source Olarak Bildiğimiz Açık Kaynak Anlamına Gelmektedir.

Aşağıda Yazan Yere Gelin.
mainline_released/mainline_sg/Srcs/Server/common

ve

Bulup Açın.
Bu Kodu Aratın,
INVENTORY_MAX_NUM = 90,

Bu Kod İle Değiştirin.

INVENTORY_MAX_NUM = 180,

--------
ve Daha Sonra

Dosyasından
BYTE bPage = bCell / (INVENTORY_MAX_NUM / 2);

Yukarıdaki Kodu Aratın ve Aşağıdaki Kodla Değiştirin.
BYTE bPage = bCell / (INVENTORY_MAX_NUM / 4);


Aynı Şekilde
if (p / (INVENTORY_MAX_NUM / 2) != bPage)

Aratın ve Aşağıdakiyle Değiştirin.
if (p / (INVENTORY_MAX_NUM / 4) != bPage)

----------

Şimdi Farklı bir Dosya Aratıyoruz ve Açıyoruz.
Dosyamızın Adı


Bu Dosyanın içerisine girip
static CGrid s_grid2(5, INVENTORY_MAX_NUM/5 / 2); // inven page 2

Bunu aratıyoruz.
ve
Bunları ekliyoruz.

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
s_grid1.Clear();
s_grid2.Clear();
s_grid3.Clear();
s_grid4.Clear();

-
for (i = 0; i < INVENTORY_MAX_NUM / 4; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid1.Put(i, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid2.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid3.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}
for (i = INVENTORY_MAX_NUM / 4; i < INVENTORY_MAX_NUM; ++i)
{
if (!(item = victim->GetInventoryItem(i)))
continue;
s_grid4.Put(i - INVENTORY_MAX_NUM / 4, 1, item->GetSize());
}


Bu Koduda Eklediğimiz zaman tamamdır.

Source'den

mainline_released/mainline_sg/Srcs/Client/Userinterface


Bunu Açıyoruz.
const DWORD c_Inventory_Page_Count = 2;

Yukarıdakini Aratıyoruz,
const DWORD c_Inventory_Page_Count = 4;

Yukarıdakiyle Değiştiriyoruz.

Şimdi Gelelim Pack Dosyalarına.
Root ve Locale Dosyalarından

inventorywindow.py


Bunu Buluyoruz. İçerisinden bu kodu aratıp
EQUIPMENT_START_INDEX = 90

Aşağıdaki kod ile değiştiriyoruz.
EQUIPMENT_START_INDEX = 180


Yine Pack Dosyasından aşağıdaki dosyayı buluyoruz ve açıyoruz,
uiinventory.py


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[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))

İşlemlerini yaptıktan sonra,
SetInventoryPage

aratıp
def SetInventoryPage(self, page):
self.inventoryTab[self.inventoryPageIndex].SetUp()
self.inventoryPageIndex = page
self.inventoryTab[self.inventoryPageIndex].Down()
self.RefreshBagSlotWindow()

Değiştiriyoruz.
inventorywindow.py

Açıyoruz

import uiScriptLocale
import item
EQUIPMENT_START_INDEX = 180
window = {
"name" : "InventoryWindow",
## 600 - (width + 오른쪽으로 부터 띄우기 24 px)
"x" : SCREEN_WIDTH - 176,
"y" : SCREEN_HEIGHT - 37 - 565,
"style" : ("movable", "float",),
"width" : 176,
"height" : 585,
"children" :
(
## Inventory, Equipment Slots
{
"name" : "board",
"type" : "board",
"style" : ("attach",),
"x" : 0,
"y" : 0,
"width" : 176,
"height" : 585,
"children" :
(
## Title
{
"name" : "TitleBar",
"type" : "titlebar",
"style" : ("attach",),
"x" : 8,
"y" : 7,
"width" : 161,
"color" : "yellow",
"children" :
(
{ "name":"TitleName", "type":"text", "x":77, "y":3, "text":uiScriptLocale.INVENTORY_TITLE, "text_horizontal_align":"center" },
),
},
## Equipment Slot
{
"name" : "Equipment_Base",
"type" : "image",
"x" : 10,
"y" : 33,
"image" : "d:/ymir work/ui/equipment_bg_without_ring.tga",
"children" :
(
{
"name" : "EquipmentSlot",
"type" : "slot",
"x" : 3,
"y" : 3,
"width" : 150,
"height" : 182,
"slot" : (
{"index":EQUIPMENT_START_INDEX+0, "x":39, "y":37, "width":32, "height":64},
{"index":EQUIPMENT_START_INDEX+1, "x":39, "y":2, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+2, "x":39, "y":145, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+3, "x":75, "y":67, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+4, "x":3, "y":3, "width":32, "height":96},
{"index":EQUIPMENT_START_INDEX+5, "x":114, "y":67, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+6, "x":114, "y":35, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+7, "x":2, "y":145, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+8, "x":75, "y":145, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+9, "x":114, "y":2, "width":32, "height":32},
{"index":EQUIPMENT_START_INDEX+10, "x":75, "y":35, "width":32, "height":32},
## 새 반지1
##{"index":item.EQUIPMENT_RING1, "x":2, "y":106, "width":32, "height":32},
## 새 반지2
##{"index":item.EQUIPMENT_RING2, "x":75, "y":106, "width":32, "height":32},
## 새 벨트
{"index":item.EQUIPMENT_BELT, "x":39, "y":106, "width":32, "height":32},
),
},
## Dragon Soul Button
{
"name" : "DSSButton",
"type" : "button",
"x" : 114,
"y" : 107,
"tooltip_text" : uiScriptLocale.TASKBAR_DRAGON_SOUL,
"default_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_01.tga",
"over_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_02.tga",
"down_image" : "d:/ymir work/ui/dragonsoul/dss_inventory_button_03.tga",
},
## MallButton
{
"name" : "MallButton",
"type" : "button",
"x" : 118,
"y" : 148,
"tooltip_text" : uiScriptLocale.MALL_TITLE,
"default_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_01.tga",
"over_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_02.tga",
"down_image" : "d:/ymir work/ui/game/TaskBar/Mall_Button_03.tga",
},
## CostumeButton
{
"name" : "CostumeButton",
"type" : "button",
"x" : 78,
"y" : 5,
"tooltip_text" : uiScriptLocale.COSTUME_TITLE,
"default_image" : "d:/ymir work/ui/game/taskbar/costume_Button_01.tga",
"over_image" : "d:/ymir work/ui/game/taskbar/costume_Button_02.tga",
"down_image" : "d:/ymir work/ui/game/taskbar/costume_Button_03.tga",
},
{
"name" : "Equipment_Tab_01",
"type" : "radio_button",
"x" : 86,
"y" : 161,
"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",
"children" :
(
{
"name" : "Equipment_Tab_01_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "I",
},
),
},
{
"name" : "Equipment_Tab_02",
"type" : "radio_button",
"x" : 86 + 32,
"y" : 161,
"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",
"children" :
(
{
"name" : "Equipment_Tab_02_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "II",
},
),
},
),
},
{
"name" : "Inventory_Tab_01",
"type" : "radio_button",
"x" : 10,
"y" : 33 + 189,
"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 + 189,
"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_03",
"type" : "radio_button",
"x" : 10,
"y" : 33 + 210,
"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_03_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "III",
},
),
},
{
"name" : "Inventory_Tab_04",
"type" : "radio_button",
"x" : 10 + 78,
"y" : 33 + 210,
"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_04_Print",
"type" : "text",
"x" : 0,
"y" : 0,
"all_align" : "center",
"text" : "IV",
},
),
},
## Item Slot
{
"name" : "ItemSlot",
"type" : "grid_table",
"x" : 8,
"y" : 264,
"start_index" : 0,
"x_count" : 5,
"y_count" : 9,
"x_step" : 32,
"y_step" : 32,
"image" : "d:/ymir work/ui/public/Slot_Base.sub"
},
## Print
{
"name":"Money_Slot",
"type":"button",
"x":8,
"y":28,
"horizontal_align":"center",
"vertical_align":"bottom",
"default_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"over_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"down_image" : "d:/ymir work/ui/public/parameter_slot_05.sub",
"children" :
(
{
"name":"Money_Icon",
"type":"image",
"x":-18,
"y":2,
"image":"d:/ymir work/ui/game/windows/money_icon.sub",
},
{
"name" : "Money",
"type" : "text",
"x" : 3,
"y" : 3,
"horizontal_align" : "right",
"text_horizontal_align" : "right",
"text" : "123456789",
},
),
},
),
},
),
}

Son Hali böyle olacak.
beltinventorywindow.py

Açıyoruz,
Aratıp
EQUIPMENT_START_INDEX = 90

Değiştiriyoruz.
EQUIPMENT_START_INDEX = 180


4 Envanter Hayırlı Uğurlu olması dileğiyle :)

Yorumlarınız bekliyorum. İlerleyen zamanlarda
Game dosyası ve Client'ide ekleyebilirim.
Konuya İlgi Olursa...


 
Son düzenleme:

En Çok Reaksiyon Alan Mesajlar

bu anlatım en az 15 forum sitesinde var hacı bikişide demiyoki source nasıl editlenir diye kendini bi çok kişiden farklı göstererek ekleyebilirim demişsin hazır client ve exe yi cbaran velfor gibi kişiler bile paylaşabilirim deyip sırra kadem bastı güzel bi anlatımla hazır dosyaları veya source den ziyade exe yi kapatmayı sağlam bi şekilde anlatsan daha çok yararlanılır.
evet arkadaşlar başlıkta yazdığım gibi 4'lü envanter sistemini anlatacağım bu konumda.

Piyasa'ya inat paylaşım diyebilriiz.
4'lü ve 6'lı envanter yapıp satışa sunanlar var.
Gerçekten ciddi bir miktar istiyorlar.
Bende bunlara karşılık sizlere 4'lü envanter nasıl yapılır bunu anlatacağım.

Umarım hoşunuza gider .. :)

arkadaşlar bunu yapmak için Öncelikle açık kaynak dosyalarına İhtiyacımız vardır.
Bu türkiye'de source olarak bildiğimiz açık kaynak anlamına gelmektedir.

Aşağıda yazan yere gelin.

ve

bulup açın.
Bu kodu aratın,

bu kod İle değiştirin.


--------
ve daha sonra

dosyasından

yukarıdaki kodu aratın ve aşağıdaki kodla değiştirin.


aynı Şekilde

aratın ve aşağıdakiyle değiştirin.

----------

Şimdi farklı bir dosya aratıyoruz ve açıyoruz.
Dosyamızın adı


bu dosyanın içerisine girip

bunu aratıyoruz.
Ve
bunları ekliyoruz.


-



bu koduda eklediğimiz zaman tamamdır.

Source'den



bunu açıyoruz.

yukarıdakini aratıyoruz,

yukarıdakiyle değiştiriyoruz.

Şimdi gelelim pack dosyalarına.
Root ve locale dosyalarından



bunu buluyoruz. İçerisinden bu kodu aratıp

aşağıdaki kod ile değiştiriyoruz.


yine pack dosyasından aşağıdaki dosyayı buluyoruz ve açıyoruz,

İşlemlerini yaptıktan sonra,

aratıp

değiştiriyoruz.

açıyoruz



son hali böyle olacak.

açıyoruz,
aratıp

değiştiriyoruz.


4 envanter hayırlı uğurlu olması dileğiyle :)

yorumlarınız bekliyorum. İlerleyen zamanlarda
game dosyası ve client'ide ekleyebilirim.
Konuya İlgi olursa...




34k gameye eklenmiyor sanirim ?

Konuya eklersen hangi gameye ekleniyor diye ona gore bilgi sahibi olurlar
 
Evt Arkadaşlar. Söylemeyi Unutmuşum, r40k ve Üstü game versiyonlara uygundur.

Tercihiniz r40k olsun çünkü açık kaynak kodları piyasada mevcut açıkları veya eksikleri hızlıca tamamlayabilirsiniz.
 
bu anlatım en az 15 forum sitesinde var hacı bikişide demiyoki source nasıl editlenir diye kendini bi çok kişiden farklı göstererek ekleyebilirim demişsin hazır client ve exe yi cbaran velfor gibi kişiler bile paylaşabilirim deyip sırra kadem bastı güzel bi anlatımla hazır dosyaları veya source den ziyade exe yi kapatmayı sağlam bi şekilde anlatsan daha çok yararlanılır.
 
bu anlatım en az 15 forum sitesinde var hacı bikişide demiyoki source nasıl editlenir diye kendini bi çok kişiden farklı göstererek ekleyebilirim demişsin hazır client ve exe yi cbaran velfor gibi kişiler bile paylaşabilirim deyip sırra kadem bastı güzel bi anlatımla hazır dosyaları veya source den ziyade exe yi kapatmayı sağlam bi şekilde anlatsan daha çok yararlanılır.
Gameyi hazırla clientin benden :)
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Şu an konuyu görüntüleyenler (Toplam : 1, Üye: 0, Misafir: 1)

Geri
Üst