1. if (pPlayerItem && CItemManager::Instance().GetItemDataPointer(pPlayerItem->vnum, &pItemData))
  2. {
  3. #ifdef ENABLE_EVRIM
  4. char itemlink[256 + 12];
  5. #else
  6. char itemlink[256];
  7. #endif
  8. int len;
  9. bool isAttr = false;
  10. len = snprintf(itemlink, sizeof(itemlink), "item:%x:%x:%x:%x:%x:%x:%x:%x:%x",
  11. pPlayerItem->vnum, pPlayerItem->flags,
  12. pPlayerItem->alSockets[0], pPlayerItem->alSockets[1], pPlayerItem->alSockets[2] , pPlayerItem->alSockets[3], pPlayerItem->alSockets[4], pPlayerItem->alSockets[5], pPlayerItem->transmutation);
  13. #ifdef ENABLE_EVRIM
  14. for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
  15. {
  16. len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
  17. pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue);
  18. isAttr = true;
  19. }
  20. #else
  21. for (int i = 0; i < ITEM_ATTRIBUTE_SLOT_MAX_NUM; ++i)
  22. if (pPlayerItem->aAttr[i].bType != 0)
  23. {
  24. len += snprintf(itemlink + len, sizeof(itemlink) - len, ":%x:%d",
  25. pPlayerItem->aAttr[i].bType, pPlayerItem->aAttr[i].sValue);
  26. isAttr = true;
  27. }
  28. #endif