Yardım Silah evrim sistemi yansıtma sorunu

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

NEPRESPAN

Üye
Üye
Mesaj
37
Beğeni
6
Puan
436
Ticaret Puanı
0
Osmanlı2den silah evrim sistemini söktüm hiç bir sorun yokken sadece yansıtma çalışmıyor



PythonPlayerModule.cpp::
PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs)
{
    TItemPos Cell;

    switch (PyTuple_Size(poArgs))
    {
    case 1:
        if (!PyTuple_GetInteger(poArgs, 0, &Cell.cell))
            return Py_BuildException();
        break;
    case 2:
        if (!PyTuple_GetByte(poArgs, 0, &Cell.window_type))
            return Py_BuildException();
        if (!PyTuple_GetInteger(poArgs, 1, &Cell.cell))
            return Py_BuildException();
        break;
    default:
        return Py_BuildException();
    }
    const TItemData * pPlayerItem = CPythonPlayer::Instance().GetItemData(Cell);
    CItemData * pItemData = NULL;
    char buf[1024];

    if (pPlayerItem && CItemManager::Instance().GetItemDataPointer(pPlayerItem->vnum, &pItemData))
    {
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
        char itemlink[256 + 12 + 12];
[HASH=2311]#else[/HASH]
        char itemlink[256];
[HASH=3]#endif[/HASH]
        int len;
        bool isAttr = false;
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
        len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%d",
                pPlayerItem->vnum, pPlayerItem->flags,
                pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2]);
[HASH=2311]#else[/HASH]
        len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x",
                pPlayerItem->vnum, pPlayerItem->flags,
                pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2]);
[HASH=3]#endif[/HASH]
        for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
        {
            // if (pPlayerItem->aAttr[i].bType != 0) // @fixme009 (this line must be commented)
            {
                len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
                        pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue);
                isAttr = true;
            }
        }

[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
        std::string evolutionMergeText = ""; char evolutionText[6][10] = { "", "Yaygın ", "Seyrek ", "Nadir ", "Efsane ", "Eşsiz " };
        char evoItemPattern1[5][30] = {
            " |h|r[%s]|cffffcc33|H%s|h",
            " |h|r[%s]|cff33cc33|H%s|h",
            " |h|r[%s]|cff3366ff|H%s|h",
            " |h|r[%s]|cff9900cc|H%s|h",
            " |h|r[%s]|cffcc0000|H%s|h"
        };
        char evoItemPattern2[5][25] = {
            "|cffffcc33|H%s|h[%s]|h|r",
            "|cff33cc33|H%s|h[%s]|h|r",
            "|cff3366ff|H%s|h[%s]|h|r",
            "|cff9900cc|H%s|h[%s]|h|r",
            "|cffcc0000|H%s|h[%s]|h|r"
        };
        char evoItemPattern3[5][30] = {
            "|cffffcc33|H%s|h[%s x%d]|h|r",
            "|cff33cc33|H%s|h[%s x%d]|h|r",
            "|cff3366ff|H%s|h[%s x%d]|h|r",
            "|cff9900cc|H%s|h[%s x%d]|h|r",
            "|cffcc0000|H%s|h[%s x%d]|h|r"
        };
        evolutionMergeText += evolutionText[pPlayerItem->evolution];
        //evolutionMergeText += pItemData->GetName();
[HASH=3]#endif[/HASH]

        if( GetDefaultCodePage() == CP_ARABIC ) {
            if (isAttr)
                snprintf(buf, sizeof(buf), " |h|r[%s]|cffffc700|H%s|h", pItemData->GetName(), itemlink);
            else
                snprintf(buf, sizeof(buf), " |h|r[%s]|cfff1e6c0|H%s|h", pItemData->GetName(), itemlink);
        } else {
            if (isAttr)
                snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
            else
                snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
        }
    }
    else
        buf[0] = '\0';

    return Py_BuildValue("s", buf);
}



PythonChatModule.cpp::
PyObject * chatGetLinkFromHyperlink(PyObject * poSelf, PyObject * poArgs)
{
    char * szHyperlink;

    if (!PyTuple_GetString(poArgs, 0, &szHyperlink))
        return Py_BuildException();

    std::string stHyperlink(szHyperlink);
    std::vector<std::string> results;

    split_string(stHyperlink, ":", results, false);

    // item:vnum:flag:socket0:socket1:socket2
    if (0 == results[0].compare("item"))
    {
        if (results.size() < 6)
            return Py_BuildValue("s", "");

        CItemData * pItemData = NULL;

        if (CItemManager::Instance().GetItemDataPointer(htoi(results[1].c_str()), &pItemData))
        {
            char buf[1024] = { 0 };
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
            char itemlink[256 + 12 + 12];
[HASH=2311]#else[/HASH]
            char itemlink[256];
[HASH=3]#endif[/HASH]
            int len;
            bool isAttr = false;
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
            len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%d",
[HASH=2311]#else[/HASH]
            len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x",
[HASH=3]#endif[/HASH]
                    htoi(results[1].c_str()),
                    htoi(results[2].c_str()),
                    htoi(results[3].c_str()),
                    htoi(results[4].c_str()),
                    htoi(results[5].c_str()),
[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
                    htoi(results[6].c_str()))
[HASH=3]#endif[/HASH]
                                            ;

[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
            if (results.size() >= 9)
            {
                for (int i = 7; i < results.size(); i += 2)
[HASH=2311]#else[/HASH]
            if (results.size() >= 8)
            {
                for (int i = 6; i < results.size(); i += 2)
[HASH=3]#endif[/HASH]
                {
                    len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
                            htoi(results[i].c_str()),
                            atoi(results[i+1].c_str()));
                    isAttr = true;
                }
            }

[HASH=2]#ifdef[/HASH] ENABLE_WEAPON_EVOLUTION_SYSTEM
            std::string evolutionMergeText = ""; char evolutionText[6][10] = { "", "Yaygın ", "Seyrek ", "Nadir ", "Efsane ", "Eşsiz " };
            char evoItemPattern1[5][30] = {
                " |h|r[%s]|cffffcc33|H%s|h",
                " |h|r[%s]|cff33cc33|H%s|h",
                " |h|r[%s]|cff3366ff|H%s|h",
                " |h|r[%s]|cff9900cc|H%s|h",
                " |h|r[%s]|cffcc0000|H%s|h"
            };
            char evoItemPattern2[5][25] = {
                "|cffffcc33|H%s|h[%s]|h|r",
                "|cff33cc33|H%s|h[%s]|h|r",
                "|cff3366ff|H%s|h[%s]|h|r",
                "|cff9900cc|H%s|h[%s]|h|r",
                "|cffcc0000|H%s|h[%s]|h|r"
            };
            char evoItemPattern3[5][30] = {
                "|cffffcc33|H%s|h[%s x%d]|h|r",
                "|cff33cc33|H%s|h[%s x%d]|h|r",
                "|cff3366ff|H%s|h[%s x%d]|h|r",
                "|cff9900cc|H%s|h[%s x%d]|h|r",
                "|cffcc0000|H%s|h[%s x%d]|h|r"
            };
            evolutionMergeText += evolutionText[htoi(results[7].c_str())];
            //evolutionMergeText += pItemData->GetName();
[HASH=3]#endif[/HASH]

            if (isAttr)
                snprintf(buf, sizeof(buf), "|cffffc700|H%s|h[%s]|h|r", itemlink, pItemData->GetName());
            else
                snprintf(buf, sizeof(buf), "|cfff1e6c0|H%s|h[%s]|h|r", itemlink, pItemData->GetName());

            return Py_BuildValue("s", buf);
        }
    }

    return Py_BuildValue("s", "");
}



Uitooltip.py::
class HyperlinkItemToolTip(ItemToolTip):
    def __init__(self):
        ItemToolTip.__init__(self, isPickable=True)

    def SetHyperlinkItem(self, tokens):
        if app.ENABLE_WEAPON_EVOLUTION_SYSTEM:
            minTokenCount = 4 + player.METIN_SOCKET_MAX_NUM
        else:
            minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM
        maxTokenCount = minTokenCount + 4 * player.ATTRIBUTE_SLOT_MAX_NUM
        if tokens and len(tokens) >= minTokenCount and len(tokens) <= maxTokenCount:
            head, vnum, flag = tokens[:3]
            itemVnum = int(vnum, 16)
            metinSlot = [int(metin, 16) for metin in tokens[3:6]]

            if app.ENABLE_WEAPON_EVOLUTION_SYSTEM:
                evolution = int(tokens[7])
            rests = tokens[6:]

            if rests:
                attrSlot = []

                rests.reverse()
                while rests:
                    key = int(rests.pop(), 16)
                    if rests:
                        val = int(rests.pop())
                        attrSlot.append((key, val))

                attrSlot += [(0, 0)] * (player.ATTRIBUTE_SLOT_MAX_NUM - len(attrSlot))
            else:
                attrSlot = [(0, 0)] * player.ATTRIBUTE_SLOT_MAX_NUM

            self.ClearToolTip()
            if app.ENABLE_WEAPON_EVOLUTION_SYSTEM:
                self.AddItemData(itemVnum, metinSlot, attrSlot, evolution, 0, 0, player.INVENTORY, -1)
            else:
                self.AddItemData(itemVnum, metinSlot, attrSlot)

            ItemToolTip.OnUpdate(self)
 
Geri
Üst