Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

Cevaplandı Locale quest %s ve %d sorunu

  • Konuyu başlatan Konuyu başlatan Kadir Al
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 2
  • Görüntüleme Görüntüleme 85

Kadir Al

Level 1
Üye
Katılım
17 Mar 2024
Konular
1
Mesajlar
3
Çözüm
1
Online süresi
2d 9h
Reaksiyon Skoru
0
Altın Konu
0
TM Yaşı
2 Yıl 2 Ay 19 Gün
Başarım Puanı
20
MmoLira
805
DevLira
0
Ticaret - 0%
0   0   0

ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!

wonu yanga çevirirken ekranda (%s Yang'ı %s Won'a dönüştürmek ister misin?1100.000.000) yazıyor sorunu bulamadım

not : %s Yang'ı %d Won'a dönüştürmek ister misin şeklindede denedim

Locale_quest
Kod:
locale_quest = function(vnum, ...) -- LC -> locale_quest.txt
    local val = ""
    for i, v in ipairs(arg) do
        val = val .. tostring(string.format(";%s", v))
    end
    return string.format("[LC;%d%s]", vnum, val)
end

Locale_quest.txt
Kod:
10041    %s Yang'ı %s Won'a dönüştürmek ister misin?

Quest
Kod:
local Cheque = tonumber(input())
say(locale_quest(10041), gold_format(GoldWithTax), Cheque)

Binary
Kod:
void CPythonLocale::ReplaceLocaleString(std::string& sMessage) const
{
    while (true)
    {
        size_t pos_1 = sMessage.rfind("[LS;");
        if (pos_1 == std::string::npos)
            break;

        size_t pos_2 = sMessage.find(';', pos_1);
        if (pos_2 == std::string::npos)
            break;

        ++pos_2;

        size_t pos_3 = sMessage.find('[', pos_2);
        size_t pos_4 = sMessage.find(']', pos_2);
        if (pos_4 == std::string::npos)
            break;

        if (pos_3 != std::string::npos && pos_3 < pos_4)
            pos_4 = sMessage.find(']', pos_4 + 1);

        std::string sArgs = sMessage.substr(pos_2, pos_4 - pos_2);

        CTokenVector kTokenVector;
        SplitLine(sArgs.c_str(), ";", &kTokenVector);

        if (kTokenVector.empty())
            break;

        auto it = m_LocaleStringMap[LOCALE_STRING].find(kTokenVector[0]);
        if (it == m_LocaleStringMap[LOCALE_STRING].end()) {
            TraceError("CPythonLocale::ReplaceLocaleString wrong LS vnum : %s", kTokenVector[0].c_str());
            break;
        }

        if (kTokenVector.size() > 1) {
            try {
                boost::format f(it->second);

                for (size_t i = 1; i < kTokenVector.size(); i++)
                    f% kTokenVector[i];

                sMessage.replace(pos_1, (pos_4 + 1) - pos_1, f.str());
            }
            catch (const std::exception& ex) {
                TraceError("CPythonLocale::ReplaceLocaleString: Error: %s", ex.what());
                break;
            }
        }
        else
            sMessage.replace(pos_1, (pos_4 + 1) - pos_1, it->second);
    }
}

bool CPythonLocale::LoadQuestLocaleString(const char* c_szFileName)
{
    if (m_LocaleStringMap[LOCALE_QUEST_STRING].empty() == false)
        return true;

    const VOID* pvData;
    CMappedFile kFile;
    if (!CEterPackManager::Instance().Get(kFile, c_szFileName, &pvData)) {
        TraceError("CPythonLocale::LoadQuestLocaleString(c_szFileName: %s) - Load Error", c_szFileName);
        return false;
    }

    CMemoryTextFileLoader kTextFileLoader;
    kTextFileLoader.Bind(kFile.Size(), pvData);

    CTokenVector kTokenVector;
    for (uint32_t i = 0; i < kTextFileLoader.GetLineCount(); ++i)
    {
        const std::string& c_rstLine = kTextFileLoader.GetLineString(i);
        if (c_rstLine.empty())
            continue;

        if (c_rstLine[0] == '#')
            continue;

        if (!kTextFileLoader.SplitLineByTab(i, &kTokenVector))
            continue;

        if (kTokenVector.size() != 2)
            continue;

        m_LocaleStringMap[LOCALE_QUEST_STRING][kTokenVector[0]] = kTokenVector[1];
    }

    return true;
}
void CPythonLocale::ReplaceQuestLocaleString(std::string& sMessage) const
{
    while (true)
    {
        size_t pos_1 = sMessage.rfind("[LC;");
        if (pos_1 == std::string::npos)
            break;

        size_t pos_2 = sMessage.find(';', pos_1);
        if (pos_2 == std::string::npos)
            break;

        ++pos_2;

        size_t pos_3 = sMessage.find('[', pos_2);
        size_t pos_4 = sMessage.find(']', pos_2);
        if (pos_4 == std::string::npos)
            break;

        if (pos_3 != std::string::npos && pos_3 < pos_4)
            pos_4 = sMessage.find(']', pos_4 + 1);

        std::string sArgs = sMessage.substr(pos_2, pos_4 - pos_2);

        CTokenVector kTokenVector;
        SplitLine(sArgs.c_str(), ";", &kTokenVector);

        if (kTokenVector.empty())
            break;

        auto it = m_LocaleStringMap[LOCALE_QUEST_STRING].find(kTokenVector[0]);
        if (it == m_LocaleStringMap[LOCALE_QUEST_STRING].end()) {
            TraceError("CPythonLocale::ReplaceQuestLocaleString wrong LC vnum : %s", kTokenVector[0].c_str());
            break;
        }

        if (kTokenVector.size() > 1) {
            try {
                boost::format f(it->second);

                for (size_t i = 1; i < kTokenVector.size(); i++)
                    f% kTokenVector[i];

                sMessage.replace(pos_1, (pos_4 + 1) - pos_1, f.str());
            }
            catch (const std::exception& ex) {
                TraceError("CPythonLocale::ReplaceQuestLocaleString: Error: %s", ex.what());
                break;
            }
        }
        else
            sMessage.replace(pos_1, (pos_4 + 1) - pos_1, it->second);
    }
}
 
Çözüm
Ticaret - 0%
0   0   0
sorun çözüldü :
quest yazılırken yazım hatası olmuş
say(locale_quest(10041), gold_format(GoldWithTax), Cheque) -> say(locale_quest(10041, gold_format(GoldWithTax), Cheque))
sorun çözüldü :
quest yazılırken yazım hatası olmuş
say(locale_quest(10041), gold_format(GoldWithTax), Cheque) -> say(locale_quest(10041, gold_format(GoldWithTax), Cheque))
 
Çözüm

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

Geri
Üst