Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Buy Experience NPC v2 --
- -- Scripted by Furball --
- -- Idea by QQrofl --
- -- www.ac-web.org --
- --NPC CONFIG--
- local EntryID = 50000 -- The entry ID of the npc. Used for spawning the experience npc. [DEFAULT: 50000]
- --SPAWN CONFIG--
- local SpawnCommand = "#buy xp" -- When typed in-game, the Buy Experience NPC will spawn. [DEFAULT: "#buy xp"] [DO NOT REMOVE THE QUOTES]
- local TimeNPC = 30 -- Time, in seconds, that the NPC will be spawned for. It will despawn after the timer runs out. [DEFAULT: 30]
- --SERVER CONFIG--
- local LevelCap = 80 -- The maximum level you can obtain on your realm. [DEFAULT: 80]
- local SrvrName = "ExampleWoW" -- The name of your server.
- --PRICE CONFIG--
- local Gold1k = 1 -- Amount of gold you need to buy 1,000 experience [DEFAULT: 1]
- local Gold10k = 10 -- Amount of gold you need to buy 10,000 experience [DEFAULT: 10]
- local Gold100k = 100 -- Amount of gold you need to buy 100,000 experience [DEFAULT: 100]
- local Gold500k = 500 -- Amount of gold you need to buy 500,000 experience [DEFAULT: 500]
- local Gold1m = 1000 -- Amount of gold you need to buy 1,000,000 experience [DEFAULT: 1000]
- local Gold5m = 5000 -- Amount of gold you need to buy 5,000,000 experience [DEFAULT: 5000]
- --[[GOLD AND TIME CONVERSIONS - DO NOT EDIT]]--
- local DontModify = TimeNPC * 600
- local DontModify2 = Gold1k * 10000
- local DontModify3 = Gold10k * 10000
- local DontModify4 = Gold100k * 10000
- local DontModify5 = Gold500k * 10000
- local DontModify6 = Gold1m * 10000
- local DontModify7 = Gold5m * 10000
- -----------------------------------------------
- function Spawn_OnChat(event, player, message, type, language)
- local Mess = message:lower()
- if (Mess:find(SpawnCommand) == 1) then
- if (player:GetPlayerLevel() == LevelCap) then
- player:SendBroadcastMessage("You are already level "..LevelCap.."!")
- return 0
- else
- player:SpawnCreature(EntryID, player:GetX(), player:GetY(), player:GetZ(), player:GetO(), 35, DontModify, player:GetPhase())
- player:SendBroadcastMessage("Success! The experience vendor will despawn in "..TimeNPC.." seconds.")
- return 0
- end
- end
- end
- function XPGossip(Unit, event, player)
- if (player:GetPlayerLevel() == LevelCap) then
- Unit:SendChatMessageToPlayer(15, 0, "You are already level "..LevelCap.."!", player) -- Whispering the player.
- player:GossipComplete()
- else
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "1,000 XP ["..Gold1k.."g]", 1, 0)
- Unit:GossipMenuAddItem(9, "10,000 XP ["..Gold10k.."g]", 2, 0)
- Unit:GossipMenuAddItem(9, "100,000 XP ["..Gold100k.."g]", 3, 0)
- Unit:GossipMenuAddItem(9, "500,000 XP ["..Gold500k.."g]", 4, 0)
- Unit:GossipMenuAddItem(9, "1,000,000 XP ["..Gold1m.."g]", 5, 0)
- Unit:GossipMenuAddItem(9, "5,000,000 XP ["..Gold5m.."g]", 6, 0)
- Unit:GossipMenuAddItem(9, "[Nevermind]", 999, 0)
- Unit:GossipSendMenu(player)
- end
- end
- function XPGossip_OnSelect(Unit, event, player, code, intid, id)
- if(intid == 998) then -- [Back]
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "1,000 XP ["..Gold1k.."g]", 1, 0)
- Unit:GossipMenuAddItem(9, "10,000 XP ["..Gold10k.."g]", 2, 0)
- Unit:GossipMenuAddItem(9, "100,000 XP ["..Gold100k.."g]", 3, 0)
- Unit:GossipMenuAddItem(9, "500,000 XP ["..Gold500k.."g]", 4, 0)
- Unit:GossipMenuAddItem(9, "1,000,000 XP ["..Gold1m.."g]", 5, 0)
- Unit:GossipMenuAddItem(9, "5,000,000 XP ["..Gold5m.."g]", 6, 0)
- Unit:GossipMenuAddItem(9, "[Nevermind]", 999, 0)
- Unit:GossipSendMenu(player)
- end
- if(intid == 999) then -- [Nevermind]
- Unit:SendChatMessage(14, 0, "Goodbye! Don't forget to vote for "..SrvrName.."!") -- Whispering to player
- player:GossipComplete()
- end
- if(intid == 1) then -- 1,000 Experience
- if(player:GetCoinage() <= DontModify2) then
- Unit:SendChatMessage(14, 0, "You don't have "..Gold1k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- else
- player:DealGoldCost(DontModify2)
- player:GiveXp(1000) -- Giving 1,000 XP
- Unit:SendChatMessage(14, 0, "Success! You've bought 1,000 experience for "..Gold1k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- end
- end
- if(intid == 2) then -- 10,000 Experience
- if(player:GetCoinage() <= DontModify3) then
- Unit:SendChatMessage(14, 0, "You don't have "..Gold10k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- else
- player:DealGoldCost(DontModify3)
- player:GiveXp(10000)
- Unit:SendChatMessage(14, 0, "Success! You've bought 10,000 experience for "..Gold10k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- end
- end
- if(intid == 3) then -- 100,000 Experience
- if(player:GetCoinage() <= DontModify4) then
- Unit:SendChatMessage(14, 0, "You don't have "..Gold100k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- else
- player:DealGoldCost(DontModify4)
- player:GiveXp(100000)
- Unit:SendChatMessage(14, 0, "Success! You've bought 100,000 experience for "..Gold100k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- end
- end
- if(intid == 4) then -- 500,000 Experience
- if(player:GetCoinage() <= DontModify5) then
- Unit:SendChatMessage(14, 0, "You don't have "..Gold500k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- else
- player:DealGoldCost(DontModify5)
- player:GiveXp(500000)
- Unit:SendChatMessage(14, 0, "Success! You've bought 500,000 experience for "..Gold500k.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- end
- end
- if(intid == 5) then -- 1,000,000 Experience
- if(player:GetCoinage() <= DontModify6) then
- Unit:SendChatMessage(14, 0, "You don't have "..Gold1m.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- else
- player:DealGoldCost(DontModify6)
- player:GiveXp(1000000)
- Unit:SendChatMessage(14, 0, "Success! You've bought 1,000,000 experience for "..Gold1m.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- end
- end
- if(intid == 6) then -- 5,000,000 Experience
- if(player:GetCoinage() <= DontModify7) then
- Unit:SendChatMessage(14, 0, "You don't have "..Gold5m.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- else
- player:DealGoldCost(DontModify7)
- player:GiveXp(5000000)
- Unit:SendChatMessage(14, 0, "Success! You've bought 5,000,000 experience for "..Gold5m.." gold.")
- Unit:GossipCreateMenu(100, player, 0)
- Unit:GossipMenuAddItem(9, "[Back]", 998, 0)
- Unit:GossipSendMenu(player)
- end
- end
- end
- RegisterServerHook(16, "Spawn_OnChat")
- RegisterUnitGossipEvent(EntryID, 1, "XPGossip")
- RegisterUnitGossipEvent(EntryID, 2, "XPGossip_OnSelect")
- --[[ PREMADE NPC SQL[Tested on ArcEmu r4005] [RUN THIS SCRIPT INTO THE WORLD DATABASE FOR YOUR SERVER]
- insert into `creature_names` (`entry`, `name`, `subname`, `info_str`, `Flags1`, `type`, `family`, `rank`, `killcredit1`, `killcredit2`, `male_displayid`, `female_displayid`, `male_displayid2`, `female_displayid2`, `unknown_float1`, `unknown_float2`, `leader`)
- values ('50000', "The XP Master", "Buy Experience Here!", '', '0', '7', '0', '1', '0', '0', '28213', '0', '0', '0', '1', '1', '0');
- insert into `creature_proto` (`entry`, `minlevel`, `maxlevel`, `faction`, `minhealth`, `maxhealth`, `mana`, `scale`, `npcflags`, `attacktime`, `attacktype`, `mindamage`, `maxdamage`, `can_ranged`, `rangedattacktime`, `rangedmindamage`, `rangedmaxdamage`, `respawntime`, `armor`, `resistance1`, `resistance2`, `resistance3`, `resistance4`, `resistance5`, `resistance6`, `combat_reach`, `bounding_radius`, `auras`, `boss`, `money`, `invisibility_type`, `walk_speed`, `run_speed`, `fly_speed`, `extra_a9_flags`, `spell1`, `spell2`, `spell3`, `spell4`, `spell_flags`, `modImmunities`, `summonguard`)
- values ('50000', '80', '80', '35', '10000', '80000', '87906', '2', '1', '2000', '0', '5000', '15000', '0', '0', '0', '0', '30000', '5000', '0', '0', '0', '0', '0', '0', '0', '0', "0", '0', '0', '0', '2.50', '8.00', '14.00', '0', '0', '0', '0', '0', '0', '0', '0');
- ]]--
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement