mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
219 lines
No EOL
6.2 KiB
Lua
219 lines
No EOL
6.2 KiB
Lua
print(">>Script: NPC Enchanter.")
|
||
|
||
local npcid = 623
|
||
|
||
local T = {
|
||
["Menu"] = {
|
||
{"头盔附魔", 0},
|
||
{"肩膀附魔", 2},
|
||
{"胸甲附魔", 4},
|
||
{"腿甲附魔", 6},
|
||
{"脚部附魔", 7},
|
||
{"手部附魔", 8},
|
||
{"腕部附魔", 9},
|
||
{"披风附魔", 14},
|
||
{"主手武器附魔", 15},
|
||
{"双手武器附魔", 151},
|
||
{"副手武器附魔", 16},
|
||
{"盾牌附魔", 161};
|
||
},
|
||
|
||
[0] = { -- Headpiece
|
||
{"+30法伤,+20暴击等级", 3820, false},
|
||
{"+30法伤,每秒回复法力+10", 3819, false},
|
||
{"+37耐力,+20防御等级", 3818, false},
|
||
{"+50攻击强度,+20暴击等级", 3817, false},
|
||
{"+30耐力,+25韧性等级", 3842, false},
|
||
{"+50攻击强度,+20韧性等级", 3795, false},
|
||
{"+29法伤,+20韧性等级", 3797, false};
|
||
},
|
||
|
||
[2] = { -- Shoulders
|
||
{"+40攻击强度,+15韧性等级", 3793, false},
|
||
{"+23法术强度,+15韧性等级", 3794, false},
|
||
{"+30耐力,+15韧性等级", 3852, false},
|
||
{"+40攻击强度,+15暴击等级", 3808, false},
|
||
{"+24法术强度,每5秒法力回复+8", 3809, false},
|
||
{"+20躲闪等级,+15防御等级", 3811, false},
|
||
{"+24法术强度,+15爆击等级", 3810, false};
|
||
},
|
||
|
||
[4] = { -- Chest
|
||
{"+10所有属性", 3832, false},
|
||
{"+275生命值", 3297, false},
|
||
{"每5秒法力回复+8", 2381, false},
|
||
{"+20韧性等级", 3245, false},
|
||
{"+22防御等级", 1953, false};
|
||
},
|
||
|
||
[6] = { -- Legs
|
||
{"+40韧性等级,+28耐力", 3853, false},
|
||
{"+55耐力,+22敏捷", 3822, false},
|
||
{"+75攻击强度,+22爆击等级", 3823, false},
|
||
{"+50法术强度,+20精神", 3719, false},
|
||
{"+50法术强度,+30耐力", 3721, false};
|
||
},
|
||
|
||
[7] = { -- Boots
|
||
{"+32攻击强度", 1597, false},
|
||
{"+15耐力,速度略微提高", 3232, false},
|
||
{"+16敏捷", 983, false},
|
||
{"+18精神", 1147, false},
|
||
{"+7生命值,每5秒回复法力值+7", 3244, false},
|
||
{"+12命中等级,+12爆击等级", 3826, false},
|
||
{"+22耐力", 1075, false};
|
||
},
|
||
|
||
[8] = { -- Bracers
|
||
{"+40耐力", 3850, false},
|
||
{"+30法术强度", 2332, false},
|
||
{"+50攻击强度", 3845, false},
|
||
{"+18精神", 1147, false},
|
||
{"+15精准等级", 3231, false},
|
||
{"+6所有属性", 2661, false},
|
||
{"+16智力", 1119, false};
|
||
},
|
||
|
||
[9] = { -- Gloves
|
||
{"+16暴击等级", 3249, false},
|
||
{"+2%威胁,+10招架等级", 3253, false},
|
||
{"+44攻击强度", 1603, false},
|
||
{"+20敏捷", 3222, false},
|
||
{"+20命中等级", 3234, false},
|
||
{"+15精准等级", 3231, false},
|
||
{"+28法术强度", 3246, false};
|
||
},
|
||
|
||
[14] = { -- Cloak
|
||
{"强化潜行,+10敏捷", 3256, false},
|
||
{"+10精神,威胁降低2%", 3296, false},
|
||
{"+16防御等级", 1951, false},
|
||
{"+23急速等级", 3831, false},
|
||
{"+225护甲值", 3294, false},
|
||
{"+22敏捷", 1099, false},
|
||
{"+20奥术抗性", 1262, false};
|
||
},
|
||
|
||
[15] = {
|
||
-- Main Hand
|
||
{"+50耐力", 3851, false},
|
||
{"25命中等级,+25爆击等级", 3788, false},
|
||
{"狂暴(攻击有几率提高400攻强)", 3789, false},
|
||
{"黑魔法", 3790, false},
|
||
{"+63法术强度", 3834, false},
|
||
{"+65攻击强度", 3833, false},
|
||
{"破冰武器", 3239, false},
|
||
{"生命护卫", 3241, false},
|
||
{"吸血", 3870, false},
|
||
{"利刃防护", 3869, false},
|
||
{"+26敏捷", 1103, false},
|
||
{"+45精神", 3844, false},
|
||
{"斩杀", 3225, false},
|
||
{"猫鼬", 2673, false},
|
||
|
||
-- Two-Handed
|
||
{"+110攻击强度", 3827, true},
|
||
{"+140对亡灵攻击强度", 3247, true},
|
||
{"巨人杀手", 3251, true},
|
||
{"+81法术强度", 3854, true};
|
||
},
|
||
|
||
[16] = {
|
||
-- Offhand
|
||
{"+50耐力", 3851, false},
|
||
{"+25命中和暴击等级 - Accuracy", 3788, false},
|
||
{"狂暴(有几率提高400攻强)", 3789, false},
|
||
{"黑魔法", 3790, false},
|
||
{"+63法伤", 3834, false},
|
||
{"+65攻强", 3833, false},
|
||
{"破冰武器", 3239, false},
|
||
{"生命护卫", 3241, false},
|
||
{"吸血", 3870, false},
|
||
{"利刃防护", 3869, false},
|
||
{"+26敏捷", 1103, false},
|
||
{"+45精神", 3844, false},
|
||
{"斩杀", 3225, false},
|
||
{"猫鼬", 2673, false},
|
||
|
||
-- Shields
|
||
{"+20防御等级", 1952, true},
|
||
{"+25智力", 1128, true},
|
||
{"+15盾牌格挡等级", 2655, true},
|
||
{"+12韧性等级", 3229, true},
|
||
{"+18耐力", 1071, true},
|
||
{"+36格挡值", 2653, true};
|
||
},
|
||
};
|
||
local pVar = {};
|
||
|
||
function Enchanter(event, plr, unit)
|
||
pVar[plr:GetName()] = nil;
|
||
|
||
for _, v in ipairs(T["Menu"]) do
|
||
plr:GossipMenuAddItem(3, "|cFF0000CC"..v[1].."|R", 0, v[2])
|
||
end
|
||
plr:GossipSendMenu(1, unit)
|
||
end
|
||
|
||
function EnchanterSelect(event, plr, unit, sender, intid, code)
|
||
if (intid < 500) then
|
||
local ID = intid
|
||
local f
|
||
if(intid == 161 or intid == 151) then
|
||
ID = math.floor(intid/10)
|
||
f = true
|
||
end
|
||
pVar[plr:GetName()] = intid;
|
||
if(T[ID]) then
|
||
for i, v in ipairs(T[ID]) do
|
||
if((not f and not v[3]) or (f and v[3])) then
|
||
plr:GossipMenuAddItem(3, "|cFF0000CC"..v[1].."|R", 0, v[2])
|
||
end
|
||
end
|
||
end
|
||
plr:GossipMenuAddItem(3, "[返回首页]", 0, 500)
|
||
plr:GossipSendMenu(1, unit)
|
||
elseif (intid == 500) then
|
||
Enchanter(event, plr, unit)
|
||
elseif (intid >= 900) then
|
||
local ID = pVar[plr:GetName()]
|
||
if(ID == 161 or ID == 151) then
|
||
ID = math.floor(ID/10)
|
||
end
|
||
for k, v in pairs(T[ID]) do
|
||
if v[2] == intid then
|
||
local item = plr:GetEquippedItemBySlot(ID)
|
||
if item then
|
||
if v[3] then
|
||
local WType = item:GetSubClass()
|
||
if pVar[plr:GetName()] == 151 then
|
||
if(WType == 1 or WType == 5 or WType == 6 or WType == 8 or WType == 10) then
|
||
item:ClearEnchantment(0,0)
|
||
item:SetEnchantment(intid, 0, 0)
|
||
else
|
||
plr:SendAreaTriggerMessage("你必须装备一把双手武器才可以进行附魔。")
|
||
end
|
||
elseif pVar[plr:GetName()] == 161 then
|
||
if(WType == 6) then
|
||
item:ClearEnchantment(0,0)
|
||
item:SetEnchantment(intid, 0, 0)
|
||
else
|
||
plr:SendAreaTriggerMessage("你必须装备一个盾牌才可以进行附魔。")
|
||
end
|
||
end
|
||
else
|
||
item:ClearEnchantment(0,0)
|
||
item:SetEnchantment(intid, 0, 0)
|
||
plr:CastSpell(plr, 36937)
|
||
end
|
||
else
|
||
plr:SendAreaTriggerMessage("没有检测到你要进行附魔的装备,附魔失败!")
|
||
end
|
||
end
|
||
end
|
||
EnchanterSelect(event, plr, unit, sender, pVar[plr:GetName()], nil)
|
||
end
|
||
end
|
||
|
||
RegisterCreatureGossipEvent(npcid, 1, Enchanter)
|
||
RegisterCreatureGossipEvent(npcid, 2, EnchanterSelect) |