Hallo, habe folgendes problem:
Bitte melden Sie sich an, um dieses Bild zu sehen.
Bitte melden Sie sich an, um diesen Link zu sehen.
es werden alle items (egal ob mit oder ohne boni in der color bonierter items angezeigt. ich hab schon einiges rum probiert aber komm auch nicht weiter, wäre cool wenn ihr drüber schauen könntet oder falls euch mögliche fehlerquellen einfallen, diese nennen würdet.
BASIS: Marty V4.9
Bereits durchgeführte testversuche um die Fehlerquelle einzugrenzen:
- Color Change (pythonnetworkphasegame.cpp) - sprich strNHyperItemLink auf eine andere color gesetzt: ohne veränderung der farbe (mit oder ohne boni)
- pythonchatmodule.cpp ebenfalls die color geändert: ohne veränderung der farbe (mit oder ohne boni)
kann ja eig. nur clientside kommen, oder wird die color möglicherweise serverside definiert? (hab nichts diesbzgl gefunden)
hier ein paar code ausschnitte.
- 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 };
- char itemlink[256];
- int len;
- bool isAttr = false;
- len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x",
- 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()));
- if (results.size() >= 8)
- {
- for (int i = 6; i < results.size(); i += 2)
- {
- len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
- htoi(results[i].c_str()),
- atoi(results[i+1].c_str()));
- isAttr = true;
- }
- }
- if (isAttr)
- //"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
- 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", "");
- }
Alles anzeigen
- class HyperlinkItemToolTip(ItemToolTip):
- def __init__(self):
- ItemToolTip.__init__(self, isPickable=True)
- def SetHyperlinkItem(self, tokens):
- minTokenCount = 3 + player.METIN_SOCKET_MAX_NUM
- maxTokenCount = minTokenCount + 2 * 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]]
- 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()
- self.AddItemData(itemVnum, metinSlot, attrSlot)
- ItemToolTip.OnUpdate(self)
- def OnUpdate(self):
- pass
- def OnMouseLeftButtonDown(self):
- self.Hide()
Alles anzeigen
freue mich über gedankenanstöße