- Katılım
- 19 Ara 2020
- Konular
- 40
- Mesajlar
- 204
- Online süresi
- 29g 71331s
- Reaksiyon Skoru
- 28
- Altın Konu
- 0
- Başarım Puanı
- 65
- TM Yaşı
- 5 Yıl 4 Ay 1 Gün
- MmoLira
- 1,114
- DevLira
- 6
Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!
Osmanlı2den silah evrim sistemini söktüm hiç bir sorun yokken sadece yansıtma çalışmıyor
Client SRC
Client SRC
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)


