Code:
--[ Vote Reward NPC for Spells by Ground Zero ]--
--[ Do not claim as your own, if you wish to re-release this then ask my permission ]--
print ("Vote Reward NPC Loaded!")
local enabled = 1 -- 0 = Disabled 1 = Enabled
local voteid = 80000 -- Change to your Vote Token/Reward ID.
local servername = "Server name" -- Server name
local npcid = 80000 -- Vote NPC Spawn ID.
local rewid1 = 9999 -- Change to your Spell Reward ID's (Recommended Spell Display Visuals only)
local rewid2 = 9999
local rewid3 = 9999
local rewid4 = 9999
local rewid5 = 9999
local rewid6 = 9999
local status = "Enabled"
function votenpc_onGossip(unit, event, player)
unit:GossipCreateMenu(3912, player, 0)
if (player:IsGm() == true) then
unit:GossipMenuAddItem(9, "Currently: "..status.."", 306, 0)
unit:GossipMenuAddItem(9, "Disable this Unit(GM)", 307, 0)
unit:GossipMenuAddItem(9, "Activate this Unit(GM)", 308, 0)
unit:GossipMenuAddItem(6, "Reward 1", 300, 0)
unit:GossipMenuAddItem(6, "Reward 2", 301, 0)
unit:GossipMenuAddItem(6, "Reward 3", 302, 0)
unit:GossipMenuAddItem(6, "Reward 4", 303, 0)
unit:GossipMenuAddItem(6, "Reward 5", 304, 0)
unit:GossipMenuAddItem(6, "Reward 6", 305, 0)
unit:GossipMenuAddItem(2, "Nevermind", 306, 0)
unit:GossipSendMenu(player)
else
unit:GossipMenuAddItem(9, "Status: "..status.."", 306, 0)
unit:GossipMenuAddItem(6, "Reward 1", 300, 0)
unit:GossipMenuAddItem(6, "Reward 2", 301, 0)
unit:GossipMenuAddItem(6, "Reward 3", 302, 0)
unit:GossipMenuAddItem(6, "Reward 4", 303, 0)
unit:GossipMenuAddItem(6, "Reward 5", 304, 0)
unit:GossipMenuAddItem(6, "Reward 6", 305, 0)
unit:GossipMenuAddItem(2, "Nevermind", 306, 0)
unit:GossipSendMenu(player)
end
end
function votenpc_onSelect(pUnit, event, player, id, intid, code)
if enabled == 1 then
if(intid == 300) then
if player:HasItem(voteid, 1) then
if (player:HasSpell(rewid1) == false) then
player:LearnSpell(rewid1)
player:SendBroadcastMessage("Thank you for voting for "..servername.." and have a nice day!")
player:GossipComplete()
player:RemoveItem(voteid, 1)
else
player:SendAreaTriggerMessage("You already have this reward!")
player:GossipComplete()
end
else
player:SendAreaTriggerMessage("You don't have enough tokens!")
end
end
if(intid == 301) then
if player:HasItem(voteid, 1) then
if (player:HasSpell(rewid2) == false) then
player:LearnSpell(rewid2)
player:SendBroadcastMessage("Thank you for voting for "..servername.." and have a nice day!")
player:GossipComplete()
player:RemoveItem(voteid, 1)
else
player:SendAreaTriggerMessage("You already have this reward!")
player:GossipComplete()
end
else
player:SendAreaTriggerMessage("You don't have enough tokens!")
end
end
if(intid == 302) then
if player:HasItem(voteid, 1) then
if (player:HasSpell(rewid3) == false) then
player:LearnSpell(rewid3)
player:SendBroadcastMessage("Thank you for voting for "..servername.." and have a nice day!")
player:GossipComplete()
player:RemoveItem(voteid, 1)
else
player:SendAreaTriggerMessage("You already have this reward!")
player:GossipComplete()
end
else
player:SendAreaTriggerMessage("You don't have enough tokens!")
end
end
if(intid == 303) then
if player:HasItem(voteid, 1) then
if (player:HasSpell(rewid4) == false) then
player:LearnSpell(rewid4)
player:SendBroadcastMessage("Thank you for voting for "..servername.." and have a nice day!")
player:GossipComplete()
player:RemoveItem(voteid, 1)
else
player:SendAreaTriggerMessage("You already have this reward!")
player:GossipComplete()
end
else
player:SendAreaTriggerMessage("You don't have enough tokens!")
end
end
if(intid == 304) then
if player:HasItem(voteid, 1) then
if (player:HasSpell(rewid5) == false) then
player:LearnSpell(rewid5)
player:SendBroadcastMessage("Thank you for voting for "..servername.." and have a nice day!")
player:GossipComplete()
player:RemoveItem(voteid, 1)
else
player:SendAreaTriggerMessage("You already have this reward!")
player:GossipComplete()
end
else
player:SendAreaTriggerMessage("You don't have enough tokens!")
end
end
if(intid == 305) then
if player:HasItem(voteid, 1) then
if (player:HasSpell(rewid6) == false) then
player:LearnSpell(rewid6)
player:SendBroadcastMessage("Thank you for voting for "..servername.." and have a nice day!")
player:GossipComplete()
player:RemoveItem(voteid, 1)
else
player:SendAreaTriggerMessage("You already have this reward!")
player:GossipComplete()
end
else
player:SendAreaTriggerMessage("You don't have enough tokens!")
end
end
if(intid == 306) then
player:GossipComplete()
end
else
if (player:IsGm() == true) then
player:GossipComplete()
else
player:SendBroadcastMessage("Sorry, this feature is currently disabled by a Member of Staff.")
end
end
if(intid == 307) then
if(player:IsGm() == true) then
if enabled == 0 then
player:SendBroadcastMessage("This unit is already disabled!")
player:GossipComplete()
else
enabled = 0
player:SendBroadcastMessage("Unit Successfully Deactivated!")
player:GossipComplete()
status = "Disabled"
end
else
player:SendBroadcastMessage("You need to be a GM to use this Feature!")
end
end
if(intid == 308) then
if(player:IsGm() == true) then
if enabled == 1 then
player:SendBroadcastMessage("This unit is already activated!")
player:GossipComplete()
else
enabled = 1
player:SendBroadcastMessage("Unit Successfully Activated!")
status = "Enabled"
player:GossipComplete()
end
else
player:SendBroadcastMessage("You need to be a GM to use this Feature!")
end
end
end
RegisterUnitGossipEvent(npcid, 1, "votenpc_onGossip")
RegisterUnitGossipEvent(npcid, 2, "votenpc_onSelect")