[C++ / PY] Mainline'ın bazı hard-coded hesaplarını düzeltin

Kaptan Yosun

Moderatör
Moderatör
Geliştirici
Yardımsever Üye
Mesaj
1.274
Çözümler
46
Beğeni
1.821
Puan
1.339
Ticaret Puanı
0
Hiç ellemezseniz doğru çalışsan, ancak oyuna yeni bir eşya tipi veya envanter sayfası veya yeni bir efsun tipi eklemeye çalışırsanız sizi yarı yolda bırakacak olan bazı kodları dinamik yapalım.

Client\ClientSource\UserInterface\GameType.h:
Genişlet Daralt Kopyala
Aratın:
const DWORD c_Name_Max_Length = 64;
const DWORD c_FileName_Max_Length = 128;
const DWORD c_Short_Name_Max_Length = 32;

const DWORD c_Inventory_Page_Size = 5 * 9; // x*y
const DWORD c_Inventory_Page_Count = 2;
const DWORD c_ItemSlot_Count = c_Inventory_Page_Size * c_Inventory_Page_Count;
const DWORD c_Equipment_Count = 12;

const DWORD c_Equipment_Start = c_ItemSlot_Count;

const DWORD c_Equipment_Body    = c_Equipment_Start + 0;
const DWORD c_Equipment_Head    = c_Equipment_Start + 1;
const DWORD c_Equipment_Shoes    = c_Equipment_Start + 2;
const DWORD c_Equipment_Wrist    = c_Equipment_Start + 3;
const DWORD c_Equipment_Weapon    = c_Equipment_Start + 4;
const DWORD c_Equipment_Neck    = c_Equipment_Start + 5;
const DWORD c_Equipment_Ear        = c_Equipment_Start + 6;
const DWORD c_Equipment_Unique1    = c_Equipment_Start + 7;
const DWORD c_Equipment_Unique2    = c_Equipment_Start + 8;
const DWORD c_Equipment_Arrow    = c_Equipment_Start + 9;
const DWORD c_Equipment_Shield    = c_Equipment_Start + 10;
Client\ClientSource\UserInterface\GameType.h:
Genişlet Daralt Kopyala
Değiştirin:
constexpr DWORD c_Name_Max_Length = 64;
constexpr DWORD c_FileName_Max_Length = 128;
constexpr DWORD c_Short_Name_Max_Length = 32;

constexpr DWORD c_Inventory_Page_Column = 5;
constexpr DWORD c_Inventory_Page_Row = 9;
constexpr DWORD c_Inventory_Page_Size = c_Inventory_Page_Column*c_Inventory_Page_Row; // x*y
constexpr DWORD c_Inventory_Page_Count = 2;
constexpr DWORD c_ItemSlot_Count = c_Inventory_Page_Size * c_Inventory_Page_Count;
constexpr DWORD c_Equipment_Count = 12;

constexpr DWORD c_Equipment_Start = c_ItemSlot_Count;

constexpr DWORD c_Equipment_Body    = c_Equipment_Start + CItemData::WEAR_BODY;
constexpr DWORD c_Equipment_Head    = c_Equipment_Start + CItemData::WEAR_HEAD;
constexpr DWORD c_Equipment_Shoes    = c_Equipment_Start + CItemData::WEAR_FOOTS;
constexpr DWORD c_Equipment_Wrist    = c_Equipment_Start + CItemData::WEAR_WRIST;
constexpr DWORD c_Equipment_Weapon    = c_Equipment_Start + CItemData::WEAR_WEAPON;
constexpr DWORD c_Equipment_Neck    = c_Equipment_Start + CItemData::WEAR_NECK;
constexpr DWORD c_Equipment_Ear        = c_Equipment_Start + CItemData::WEAR_EAR;
constexpr DWORD c_Equipment_Unique1    = c_Equipment_Start + CItemData::WEAR_UNIQUE1;
constexpr DWORD c_Equipment_Unique2    = c_Equipment_Start + CItemData::WEAR_UNIQUE2;
constexpr DWORD c_Equipment_Arrow    = c_Equipment_Start + CItemData::WEAR_ARROW;
constexpr DWORD c_Equipment_Shield    = c_Equipment_Start + CItemData::WEAR_SHIELD;
Client\ClientSource\UserInterface\GameType.h:
Genişlet Daralt Kopyala
Aratın:
    const DWORD c_New_Equipment_Start = c_Equipment_Start + 21;
    const DWORD c_New_Equipment_Count = 3;
    const DWORD c_Equipment_Ring1 = c_New_Equipment_Start + 0;
    const DWORD c_Equipment_Ring2 = c_New_Equipment_Start + 1;
    const DWORD c_Equipment_Belt  = c_New_Equipment_Start + 2;;

Değiştirin:
    constexpr DWORD c_New_Equipment_Start = c_Equipment_Start + CItemData::WEAR_RING1;
    constexpr DWORD c_New_Equipment_Count = 3;
    constexpr DWORD c_Equipment_Ring1 = c_Equipment_Start + CItemData::WEAR_RING1;
    constexpr DWORD c_Equipment_Ring2 = c_Equipment_Start + CItemData::WEAR_RING2;
    constexpr DWORD c_Equipment_Belt  = c_Equipment_Start + CItemData::WEAR_BELT;
Client\ClientSource\UserInterface\GameType.h:
Genişlet Daralt Kopyala
Arayın:
    const DWORD c_Costume_Slot_Start    = c_Equipment_Start +
    19;    // [����] ����(19) �ϵ��ڵ� ����. ���� �������� �ڽ��� ������ 19������. ���� common/length.h ������ EWearPositions ������ ����.
    const DWORD    c_Costume_Slot_Body        = c_Costume_Slot_Start + 0;
    const DWORD    c_Costume_Slot_Hair        = c_Costume_Slot_Start + 1;
    const DWORD c_Costume_Slot_Count    = 2;
    const DWORD c_Costume_Slot_End        = c_Costume_Slot_Start + c_Costume_Slot_Count;

Değiştirin:
    constexpr DWORD c_Costume_Slot_Start    = c_Equipment_Start + CItemData::WEAR_COSTUME_BODY;    // [����] ����(19) �ϵ��ڵ� ����. ���� �������� �ڽ��� ������ 19������. ���� common/length.h ������ EWearPositions ������ ����.
    constexpr DWORD    c_Costume_Slot_Body        = c_Costume_Slot_Start + CItemData::COSTUME_BODY;
    constexpr DWORD    c_Costume_Slot_Hair        = c_Costume_Slot_Start + CItemData::COSTUME_HAIR;
    constexpr DWORD c_Costume_Slot_Count    = CItemData::COSTUME_NUM_TYPES;
    constexpr DWORD c_Costume_Slot_End        = c_Costume_Slot_Start + c_Costume_Slot_Count;

Client\ClientSource\UserInterface\GameType.h:
Genişlet Daralt Kopyala
Arayın:
const DWORD c_Wear_Max = 32;

Değiştirin:
const DWORD c_Wear_Max = CItemData::WEAR_MAX_NUM;

Client\ClientSource\UserInterface\GameType.h:
Genişlet Daralt Kopyala
Arayın:
    ITEM_ATTRIBUTE_SLOT_MAX_NUM = 7,

Değiştirin:
    // refactored attribute slot begin
    ITEM_ATTRIBUTE_SLOT_NORM_NUM = 5,
    ITEM_ATTRIBUTE_SLOT_RARE_NUM = 2,

    ITEM_ATTRIBUTE_SLOT_NORM_START = 0,
    ITEM_ATTRIBUTE_SLOT_NORM_END = ITEM_ATTRIBUTE_SLOT_NORM_START + ITEM_ATTRIBUTE_SLOT_NORM_NUM,

    ITEM_ATTRIBUTE_SLOT_RARE_START = ITEM_ATTRIBUTE_SLOT_NORM_END,
    ITEM_ATTRIBUTE_SLOT_RARE_END = ITEM_ATTRIBUTE_SLOT_RARE_START + ITEM_ATTRIBUTE_SLOT_RARE_NUM,

    ITEM_ATTRIBUTE_SLOT_MAX_NUM = ITEM_ATTRIBUTE_SLOT_RARE_END, // 7
    // refactored attribute slot end

Client\ClientSource\GameLib\ItemData.h:
Genişlet Daralt Kopyala
Arayın:
            WEAR_MAX_NUM,

Değiştirin:
            WEAR_MAX_NUM = 32,

Client\ClientSource\UserInterface\PythonPlayerModule.cpp:
Genişlet Daralt Kopyala
Arayın:
    PyModule_AddIntConstant (poModule, "ATTRIBUTE_SLOT_MAX_NUM",                    ITEM_ATTRIBUTE_SLOT_MAX_NUM);

Değiştirin:
    // refactored attribute slot begin
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_NORM_NUM", ITEM_ATTRIBUTE_SLOT_NORM_NUM);
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_RARE_NUM", ITEM_ATTRIBUTE_SLOT_RARE_NUM);
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_NORM_START", ITEM_ATTRIBUTE_SLOT_NORM_START);
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_NORM_END", ITEM_ATTRIBUTE_SLOT_NORM_END);
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_RARE_START", ITEM_ATTRIBUTE_SLOT_RARE_START);
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_RARE_END", ITEM_ATTRIBUTE_SLOT_RARE_END);
    PyModule_AddIntConstant(poModule, "ATTRIBUTE_SLOT_MAX_NUM", ITEM_ATTRIBUTE_SLOT_MAX_NUM);
    // refactored attribute slot end

pack\root\uitooltip.py:
Genişlet Daralt Kopyala
Arayın:
    SPECIAL_POSITIVE_COLOR2 = grp.GenerateColor(0.8824, 0.9804, 0.8824, 1.0)

Altına ekleyin:
    SPECIAL_POSITIVE_COLOR5 = grp.GenerateColor(0.7824, 0.9004, 0.8024, 1.0) #bonus 5

pack\root\uitooltip.py:
Genişlet Daralt Kopyala
def __GetAttributeColor içinde arayın:
            if index >= 5:

Değiştirin:
            if index >= player.ATTRIBUTE_SLOT_RARE_START and index < player.ATTRIBUTE_SLOT_RARE_END:

Arayın:
                return self.SPECIAL_POSITIVE_COLOR

Değiştirin:
                if index == player.ATTRIBUTE_SLOT_NORM_END:
                    return self.SPECIAL_POSITIVE_COLOR5
                else:
                    return self.SPECIAL_POSITIVE_COLOR
 
1749797790668.webp
 
Geri
Üst