是否有人已经成功地在Rochet2 2的重锻脚本上添加了交流?我的还能用,但还不完全。在字符登录时,脚本应该在重伪造(&设备)项目上重新应用奖金,但似乎"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()“找不到这个东西。
发布于 2019-03-17 18:50:44
MAKE_NEW_GUID的参数顺序与ObjectGuid构造函数不同。因此,由于您的论点是错误的顺序,结果也是错误的,项目是找不到的。有关参数的正确顺序,请参见MAKE_NEW_GUID的定义和使用。
https://stackoverflow.com/questions/55210539
复制相似问题