- UID
- 38919
- 阅读权限
- 60
- 回帖
- 143
- 喵币
- 0
- 有爱
- 286
- DKP
- 3144
- 金币
- 196740
- 在线时间
- 864 小时
- 注册时间
- 2023-3-26
- 最后登录
- 2026-2-15
声望: 7793   虚弱: 0

Lv.6(觉醒者)
|
发表于 2023-10-21 12:32:20
|
显示全部楼层
如果你想知道具体原理是什么样的,你必须要先了解代码,想要用LUA实现
先要去了解清楚这个桥接接口的执行逻辑
void OnLootItem(Player* player, Item* item, uint32 count, ObjectGuid lootguid) override
{
sEluna->OnLootItem(player, item, count, lootguid);
}
比如这个拾取物品,在核心代码中有个OnLootItem的接口虚函数,有4个参数,玩家对象指针,物品对象指针,数量,跟一个ObjectGuid类型,表示拾取物品的唯一标识符
LUA本来起到的就是一个桥接作用,用于将实际的逻辑从一个地方转移到另一个地方
你要获取到物品的ID,就需要使用传递的物品对象的指针来通过GetEntry()获取到当前物品的ID,也就是:item:GetEntry() |
|