Sol Banner
Sağ Banner
Sol Banner
Sağ Banner

Metin2 Cube Pencerisi Item Gözükmeme Sorunu

admin

Love FullMMO
Süper Admin
Yardımsever
Geliştirici
Puan 18
Çözümler 1
Katılım
18 Ocak 2025
Konular
195
Mesajlar
207
Çözümler
1
Tepkime puanı
1
Puan
18
Konum
Türkiye
Web sitesi
sitigo.net
@admin
Aşağıda belirttiğim sorunu düzeltmek için tüm forumlardaki questleri denedim syserr'de belirtilen pyhton dosyalarında oynama yapmama rağmen uzun süredir çözememiştim. Sorun game kaynaklıymış arkadaşlar cube.cpp ve cube.h'de yaptığım değişikliklerden sonra düzeldi. Anlatımını aşağıya bırakıyorum;

Kod:
Arat ve sil

#include "config.h"

############################
Arat

#include <sstream>

Altına ekle

extern int test_server;

#####################
Arat

int cube_gold = cube_proto->gold;
    if (cube_gold < 0 || ch->GetGold() < cube_gold)
 
Değiştir

    if (ch->GetGold() < cube_proto->gold)
 
###########################
Arat ve başında "//" işareti varsa kaldır

const DWORD& npcVNUM = iter->first;

############################
Arat

void Cube_InformationInitialize()

Değiştir

bool Cube_InformationInitialize()

#########################
Arat

    for (size_t i = 0; i < s_cube_proto.size(); ++i)

Değiştir

    for (int i = 0; i < s_cube_proto.size(); ++i)
 
####################
Arat

TItemTable* existMaterialProto = ITEM_MANAGER::Instance().GetTable(existMaterialIter->vnum);

Altına ekle

                    if (NULL == existMaterialProto)
                    {
                        sys_err("There is no item(%u)", existMaterialIter->vnum);
                        return false;
                    }

#############################
Arat

    s_isInitializedCubeMaterialInformation = true;
 
Altına ekle

    return true;
 
########################################
Bu fix'i aratıp eğer uygulanmışsa filesinıza silelim
    if (!FN_check_valid_npc(npcVNUM)) // @fixme127
    {
        if (test_server)
            dev_log(LOG_DEB0, "cube not valid NPC");
        return;
    }
######################################
Arat

if (resultCount == 0) {    return;}

Değiştir

        resultCount = resultList.size();
 
########################
Arat

        if (resultText.size() != 0) // @fixme127
            resultText.erase(resultText.size() - 1);

Değiştir

        resultText.erase(resultText.size() - 1);
  
##########################
Arat ve yukarıdaki gibi Bu fix'i aratıp eğer uygulanmışsa filesinıza silelim

    if (!FN_check_valid_npc(npcVNUM)) // @fixme127
    {
        if (test_server)
            dev_log(LOG_DEB0, "cube not valid NPC");
        return;
    }

#############################
Arat

    if (!bCatchInfo || materialInfoText.size() == 0)
 
Değiştir

    if (false == bCatchInfo)
 
##################################
Arat

    if (materialInfoText.size() != 0) // @fixme127
        materialInfoText.erase(materialInfoText.size() - 1);
  
Değiştir

    materialInfoText.erase(materialInfoText.size() - 1);

Kod:
Arat

void Cube_InformationInitialize();

Değiştir

bool Cube_InformationInitialize();

####
Cube penceresinde herhangi bir oynama yapmadım fakat cube.txt'de ekli olan itemler gözükmüyor maalesef. Yardımcı olabilirseniz çok sevinirim.

Cube.txt dosya eki olarak ekledim.

Syserr şu şekilde
Kod:
0601 03:33:27155 ::   File "game.py", line 1677, in BINARY_Cube_ResultList

0601 03:33:27155 :: ValueError
0601 03:33:27155 :: :
0601 03:33:27155 :: invalid literal for int() with base 10: ''
0601 03:33:27155 ::

0601 03:35:59999 :: Traceback (most recent call last):

0601 03:35:59999 ::   File "game.py", line 1638, in BINARY_Cube_Open

0601 03:35:59999 :: KeyError
0601 03:35:59999 :: :
0601 03:35:59999 :: 'materialList'
0601 03:35:59999 ::

0601 03:35:27126 :: Traceback (most recent call last):

0601 03:35:27126 ::   File "game.py", line 1638, in BINARY_Cube_Open

0601 03:35:27126 :: KeyError
0601 03:35:27127 :: :
0601 03:35:27127 :: 'materialList'
0601 03:35:27127 ::

0601 03:43:46736 ::   File "ui.py", line 1490, in OnOverInItem

0601 03:43:46737 ::   File "uiCube.py", line 139, in <lambda>

0601 03:43:46738 ::   File "uiCube.py", line 231, in __OverInCubeResultSlot

0601 03:43:46738 :: IndexError
0601 03:43:46738 :: :
0601 03:43:46738 :: list index out of range
0601 03:43:46738 ::
 

Geri
Üst