c++ - 为什么这个简单的八卦脚本不起作用?
问题描述
当我试图用 AI 制作一个八卦 NPC 时,sGossipSelect
带有错误的动作 ID。
如果我添加一个八卦项目:
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "testone", GOSSIP_SENDER_MAIN, 1);
并且当sGossipSelect
被触发时,它带有错误的uint32
操作值,因此它不起作用。
这是我的完整代码:
class gossip_test : public CreatureScript
{
public:
gossip_test() : CreatureScript("gossip_test") { }
struct gossip_testAI : public ScriptedAI
{
gossip_testAI(Creature* creature) : ScriptedAI(creature) {}
void sGossipHello(Player* player)
{
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "testone", GOSSIP_SENDER_MAIN, 1);
AddGossipItemFor(player, GOSSIP_ICON_CHAT, "testwo", GOSSIP_SENDER_MAIN, 2);
SendGossipMenuFor(player, DEFAULT_GOSSIP_MESSAGE, me);
}
void sGossipSelect(Player* player, uint32 sender, uint32 action)
{
// UINT32 ACTION ALAWAYS HAVE WRONG VALUE
if (action == 1)
{
me->MonsterYell("testone, LANG_UNIVERSAL, me);
}
if (action == 2)
{
me->MonsterYell("testwo, LANG_UNIVERSAL, me);
}
ClearGossipMenuFor(player);
CloseGossipMenuFor(player);
}
};
CreatureAI* GetAI(Creature* creature) const
{
return new gossip_testAI(creature);
}
};
解决方案
推荐阅读
- android - 如何在不打开活动的情况下发送数据?
- rest - Sharepoint API URL 混淆
- c - 为什么 printf 中的 \n 不打印字符数组的值或旧值?
- python - 读取的 CSV 没有行
- r - 如何在 Shiny 应用程序中对两个变量使用 lapply?
- ipad - Visual Studio for Mac / iPad 设备 - 等待调试器连接
- ssl - 配置文件中的 webpack4 webpack-dev-server ssl
- java - 在多模块化项目中查看解析器配置
- mysql - 选择其中 1 个属性完全不同的所有行两次。(MySQL)
- xamarin - Prism 中的 MVVM 条件返回导航