Кто-нибудь уже успешно добавил скрипт перековки Rochet2 в AC ?
Мой работает, но не полностью.
При входе в систему персонажа скрипт должен повторно применять бонусы к перекованным (и экипированным) предметам, но кажется, что " player-> GetItemByGuid () " не может найти запрошенный предмет, поэтому он ничего не возвращает.
Код TrinityCore (работает):
uint32 lowGUID = (*result)[0].GetUInt32();
Item* invItem = player->GetItemByGuid(ObjectGuid(HighGuid::Item, 0, lowGUID));
if (invItem)
player->_ApplyItemMods(invItem, invItem->GetSlot(), false);
ReforgeData& data = player->reforgeMap[lowGUID];
data.increase = (*result)[1].GetUInt32();
data.decrease = (*result)[2].GetUInt32();
data.stat_value = (*result)[3].GetInt32();
if (invItem)
player->_ApplyItemMods(invItem, invItem->GetSlot(), true);
Код AzerothCore (работает, но условие "if (invItem)" никогда не выполняется.
uint32 lowGUID = (*result)[0].GetUInt32();
Item* invItem = player->GetItemByGuid((uint64) MAKE_NEW_GUID(HIGHGUID_ITEM, 0, lowGUID));
if (invItem /*&& invItem->IsEquipped()*/)
player->_ApplyItemMods(invItem, invItem->GetSlot(), false);
ReforgeData& data = player->reforgeMap[lowGUID];
data.increase = (*result)[1].GetUInt32();
data.decrease = (*result)[2].GetUInt32();
data.stat_value = (*result)[3].GetInt32();
if (invItem /*&& invItem->IsEquipped()*/)
player->_ApplyItemMods(invItem, invItem->GetSlot(), true);
MAKE_NEW_GUID () возвращает что-то, похожее на guid.
Но я не знаю, почему " player-> GetItemByGuid () " не может найти предмет.