*Problemă/Întrebare: Am problema nu pot sa vad itemele in chat, le pot pune in chat dar cand dau click nu apare nimic, si n-am nici o eroare in client..
Tipologie server:pvm hard
*Resursă folosită:
*ServerFiles utilizat:serverfile clean by spyke
*Syserr: doar asta dar nu cred ca are legatura 0514 00:59:18534 :: Unknown Server Command xmas_boom 2 | xmas_boom
Poză: Imagine *Detalii suplimentare: nu inteleg ce are, am tot incercat sa ii dau de capat, dar neavand o eroare ceva legata de asta, nu prea pot sa imi dau seama.. poate cineva a mai intampinat problema si a rezolvat.
Multumesc anticipat !
Hyperlink Item in Chat
- Marius Dragomir
-

- Mesaje: 1020
- Membru din: 13 Noi 2017, 21:32
- Server: HellHound
- Regat: Jinno
- Aprecieri: 499
- Mulţumiri: 1211
- Discord: Copiază ID
Varianta 1 : sursa/dezactivare-sticla-cunoasterii-fu ... 36676.html
Varianta 2 : sursa/sticla-cunoa-terii-t33253.html
Poate e ceva probleme pe la ea si mai bine o dezactivezi
Varianta 2 : sursa/sticla-cunoa-terii-t33253.html
Poate e ceva probleme pe la ea si mai bine o dezactivezi
- Pentru acest mesaj, Marius Dragomir for the post:
- Abratop18
Cum sa dezactiveze ma sticla?
Vezi in UserInterface/PythonPlayerModule.cpp functia:
Vezi in UserInterface/PythonPlayerModule.cpp functia:
PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs)S-ar putea sa trimita ceva gresit si asta iti cauzeaza problema. Transmutatia sau esarfele de exemplu.
- Pentru acest mesaj, Hunger for the post:
- alinuss1995
multumesc frmuos, am sa verific si revin
cam asa arata functia :
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))
{
#ifdef ENABLE_CHANGELOOK_SYSTEM
char itemlink[256 + 12];
#else
char itemlink[256];
#endif
int len;
bool isAttr = false;
len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x",
pPlayerItem->vnum, pPlayerItem->flags,
pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2]);
for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
{
// if (pPlayerItem->aAttr.bType != 0) // @fixme009 (this line must be commented)
{
len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
pPlayerItem->aAttr.bType, pPlayerItem->aAttr.sValue);
isAttr = true;
}
}
if( GetDefaultCodePage() == CP_ARABIC ) {
if (isAttr)
//"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
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)
//"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());
}
}
else
buf[0] = '\0';
return Py_BuildValue("s", buf);
}
Nu ii da nici o eroare ca prostu care a bagat transmutatia aia a pus fara macro in hyperlink.
len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x",
Daca nu are transmutatia activata ii trimite gresit.
Inlocuieste functia PyObject * playerGetItemLink(PyObject * poSelf, PyObject * poArgs) cu asta:
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))
{
#ifdef ENABLE_CHANGELOOK_SYSTEM
char itemlink[256 + 12];
#else
char itemlink[256];
#endif
int len;
bool isAttr = false;
len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x",
pPlayerItem->vnum, pPlayerItem->flags,
pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2]);
#ifdef ENABLE_CHANGELOOK_SYSTEM
len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x", pPlayerItem->transmutation);
#endif
for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
{
// if (pPlayerItem->aAttr.bType != 0) // @fixme009 (this line must be commented)
{
len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
pPlayerItem->aAttr.bType, pPlayerItem->aAttr.sValue);
isAttr = true;
}
}
if( GetDefaultCodePage() == CP_ARABIC ) {
if (isAttr)
//"item:¹øÈ£:Ç÷¡±×:¼ÒÄÏ0:¼ÒÄÏ1:¼ÒÄÏ2"
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)
//"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());
}
}
else
buf[0] = '\0';
return Py_BuildValue("s", buf);
}
Apoi recompilezi (sper ca stii cum). Vad ca pe uiToolTip nu ai modificarile pentru transmutatie iar in functia de mai sus trimitea un %x in plus.Ar trebui sa fie ok acum. Incearca asa si vezi ce se intampla.- Pentru acest mesaj, Hunger for the post:
- alinuss1995
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 9 vizitatori


