gpt4 book ai didi

c++ - 将 (Rochet2) 重铸为 AzerothCore

转载 作者:搜寻专家 更新时间:2023-10-31 02:03:35 29 4
gpt4 key购买 nike

有没有人已经成功添加了Rochet2's Reforging scriptAC ?我的工作但不完全。在角色登录时,脚本应该在重铸(和装备)元素上重新应用奖励,但似乎“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()”找不到元素。

最佳答案

MAKE_NEW_GUID 的参数顺序与 ObjectGuid 构造函数不同。因此,由于您的论点顺序错误,因此结果也是错误的,并且找不到项目。请参阅 MAKE_NEW_GUID 的定义和使用以了解参数的正确顺序。

关于c++ - 将 (Rochet2) 重铸为 AzerothCore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55210539/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com