好消息好消息,如果你的端是自己编译的,可以更新eluna引擎就能实现了,等eluna更新活着自己按帖子修改下
帖子
https://github.com/azerothcore/mod-eluna/pull/158
示例脚本
- --[[
- 作者: 牛皮德来
- 功能: 获取成就等额外嘉奖系统
- ]]--
- local NPCEntry = 18166 --NPC的ID
- local MenuID = 999 --菜单ID
- local JiangLiItem = 40772 --侏儒军刀
-
- local function JiangLiGossipHello(event, player, creature)
- player:GossipClearMenu()
- player:GossipMenuAddItem(1, "完成外域博学者、外域地下城英雄和外域奇兵成就,奖励侏儒军刀", 2, 1, false, "确认兑换奖励?", 0)
- player:GossipMenuAddItem(1, "成就达到200点获取奖励", 2, 2, false, "确认兑换奖励?", 0)
- player:GossipSendMenu(100, creature, MenuID)
- end
-
- local function JiangLiGossipSelect(event, player, creature, MenuGroup, MenuID)
- if MenuGroup == 2 then --有两个外域博学者成就,有点奇怪,都加上
- if MenuID == 1 then
- if (player:HasAchieved(1262) or player:HasAchieved(1274)) and player:HasAchieved(1287) and player:HasAchieved(1286) then
- if player:HasItem(JiangLiItem, 1, true) then
- player:SendBroadcastMessage("你已经拥有了兑换物品侏儒军刀,不能反复兑换")
- else
- player:AddItem(JiangLiItem)
- end
- else
- player:SendBroadcastMessage("没有完成《外域博学者》、《外域地下城英雄》和《外域奇兵》 成就,不能兑换奖励")
- end
- end
-
- if MenuID == 2 then
- local pAchivePoint = player:GetAchievementPoints()
- local pAchiveCompleted = player:GetCompletedAchievementsCount()
- local pCompletedQuest = player:GetCompletedQuestsCount()
- player:SendBroadcastMessage("Your achievement points is "..pAchivePoint)
- player:SendBroadcastMessage("you completed "..pAchiveCompleted.." achievements")
- player:SendBroadcastMessage("you completed "..pCompletedQuest.." quests (without everyday quests)")
- if pAchivePoint > 20 then
- if player:HasItem(JiangLiItem, 1, true) then
- player:SendBroadcastMessage("你已经拥有了兑换物品侏儒军刀,不能反复兑换")
- else
- player:AddItem(JiangLiItem)
- end
- end
- end
- end
- player:GossipComplete()
- end
-
- RegisterCreatureGossipEvent(NPCEntry, 1, JiangLiGossipHello)
- RegisterCreatureGossipEvent(NPCEntry, 2, JiangLiGossipSelect)
复制代码
|