Advertisement
Guest User

WodaN

a guest
Oct 6th, 2010
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.12 KB | None | 0 0
  1. --[[
  2.     LookingForGroup System
  3.         By WodaN'
  4. ]]
  5.  
  6. local lfgmsg = "#lfg"
  7. local lfmmsg = "#lfm"
  8. local leavemsg = "#leave"
  9. local team
  10. local playername
  11.  
  12. function LFG_system(_, pPlayer, msg)
  13.     local msg = msg:lower()
  14.     if (msg:find(lfgmsg.." ") == 1) then
  15.         local _, e = msg:find(lfgmsg.." ")
  16.         local spec = msg:sub(e + 1, msg:len())
  17.         local name = pPlayer:GetName()
  18.         local class = pPlayer:GetPlayerClass()
  19.         if(class == "Shaman") then
  20.             playername = "|cFF0000FF"..name.."|r"
  21.         elseif(class == "Warrior") then
  22.             playername = "|cFF663300"..name.."|r"
  23.         elseif(class == "Death Knight") then
  24.             playername = "|cFF660000"..name.."|r"
  25.         elseif(class == "Paladin") then
  26.             playername = "|cFFFF3399"..name.."|r"
  27.         elseif(class == "Mage") then
  28.             playername = "|cFF00FFFF"..name.."|r"
  29.         elseif(class == "Warlock") then
  30.             playername = "|cFF9966CC"..name.."|r"
  31.         elseif(class == "Priest") then
  32.             playername = "|cFFFFFFFF"..name.."|r"
  33.         elseif(class == "Druid") then
  34.             playername = "|cFFFF9900"..name.."|r"
  35.         elseif(class == "Hunter") then
  36.             playername = "|cFF006600"..name.."|r"
  37.         elseif(class == "Rogue") then
  38.             playername = "|cFFFFFF00"..name.."|r"
  39.         end
  40.         if(IsPlayerListed(playername) == false) then
  41.             if (spec == "healer") or (spec == "dps") or (spec == "tank") then
  42.                 WorldDBQuery(string.format("INSERT INTO lfg_system(name, spec, team) VALUES ('%s', '%s', '%s')", playername, spec, pPlayer:GetTeam()))
  43.                 pPlayer:SendBroadcastMessage(string.format("You are now queued to all raids! Say %q to leave the queue.", leavemsg))
  44.             else
  45.                 pPlayer:SendBroadcastMessage(string.format("%q is not a valid speciallization. You can choose \"healer\", \"tank\" or \"dps\"", spec))
  46.             end
  47.         else
  48.             pPlayer:SendBroadcastMessage(string.format("You are already queued! To re-queue, type %q and then join again.", leavemsg))
  49.         end
  50.         return 0       
  51.     elseif (msg:find(lfmmsg.." ") == 1) then
  52.         local _, e = msg:find(lfmmsg.." ")
  53.         local spec = msg:sub(e + 1, msg:len())
  54.         team = pPlayer:GetTeam()
  55.         local name = WorldDBQuery("SELECT name FROM lfg_system WHERE spec='"..spec.."' AND team='"..team.."'")
  56.             if(name == nil) then
  57.                 pPlayer:SendBroadcastMessage(string.format("There are no players currently queued as %s.", spec))
  58.             else
  59.                 pPlayer:SendBroadcastMessage(string.format("Players queued as %s:", spec))
  60.                 for i = 1, name:GetRowCount() do
  61.                 local nameplr = name:GetColumn(0):GetString()
  62.                 pPlayer:SendBroadcastMessage(nameplr)
  63.                 nameplr = name:NextRow()
  64.             end
  65.         end
  66.         return 0
  67.     elseif (msg == leavemsg) then
  68.         local name = pPlayer:GetName()
  69.         local class = pPlayer:GetPlayerClass()
  70.         if(class == "Shaman") then
  71.             playername = "|cFF0000FF"..name.."|r"
  72.         elseif(class == "Warrior") then
  73.             playername = "|cFF663300"..name.."|r"
  74.         elseif(class == "Death Knight") then
  75.             playername = "|cFF660000"..name.."|r"
  76.         elseif(class == "Paladin") then
  77.             playername = "|cFFFF3399"..name.."|r"
  78.         elseif(class == "Mage") then
  79.             playername = "|cFF00FFFF"..name.."|r"
  80.         elseif(class == "Warlock") then
  81.             playername = "|cFF9966CC"..name.."|r"
  82.         elseif(class == "Priest") then
  83.             playername = "|cFFFFFFFF"..name.."|r"
  84.         elseif(class == "Druid") then
  85.             playername = "|cFFFF6600"..name.."|r"
  86.         elseif(class == "Hunter") then
  87.             playername = "|cFF006600"..name.."|r"
  88.         elseif(class == "Rogue") then
  89.             playername = "|cFFFFFF00"..name.."|r"
  90.         end
  91.         WorldDBQuery("DELETE FROM lfg_system WHERE name='"..playername.."'")
  92.         pPlayer:SendBroadcastMessage("You have been removed from the raid queue.")
  93.         return 0
  94.     end
  95. end
  96.  
  97. RegisterServerHook(16, "LFG_system")
  98.  
  99.  
  100. function IsPlayerListed(playername)
  101.     local islisted = WorldDBQuery(string.format("SELECT name FROM lfg_system WHERE name='%s'", playername))
  102.     if(islisted == nil) then
  103.         return false
  104.     else
  105.         return true
  106.  
  107.     end
  108. end
  109.  
  110. function group_check(event, pPlayer)
  111. local plrs = GetPlayersInWorld()
  112.     for k,v in pairs(plrs)do
  113.         if (v == nil) then
  114.         else
  115.             if (v:IsInGroup() or v:IsInRaid() == true) then
  116.                 local name = v:GetName()
  117.                 local class = v:GetPlayerClass()
  118.                 if(class == "Shaman") then
  119.                     playername = "|cFF0000FF"..name.."|r"
  120.                 elseif(class == "Warrior") then
  121.                     playername = "|cFF663300"..name.."|r"
  122.                 elseif(class == "Death Knight") then
  123.                     playername = "|cFF660000"..name.."|r"
  124.                 elseif(class == "Paladin") then
  125.                     playername = "|cFFFF3399"..name.."|r"
  126.                 elseif(class == "Mage") then
  127.                     playername = "|cFF00FFFF"..name.."|r"
  128.                 elseif(class == "Warlock") then
  129.                     playername = "|cFF9966CC"..name.."|r"
  130.                 elseif(class == "Priest") then
  131.                     playername = "|cFFFFFFFF"..name.."|r"
  132.                 elseif(class == "Druid") then
  133.                     playername = "|cFFFF9900"..name.."|r"
  134.                 elseif(class == "Hunter") then
  135.                     playername = "|cFF006600"..name.."|r"
  136.                 elseif(class == "Rogue") then
  137.                     playername = "|cFFFFFF00"..name.."|r"
  138.                 end
  139.                 local name = WorldDBQuery("SELECT name FROM lfg_system WHERE name='"..playername.."'")
  140.                 if(name ~= nil) then
  141.                     v:SendBroadcastMessage("You have been removed from the LFG queue.")
  142.                     WorldDBQuery("DELETE FROM lfg_system WHERE name = '"..playername.."'")
  143.                 end
  144.             end
  145.         end
  146.     end
  147. end
  148. RegisterTimedEvent("group_check", 5000, 0, event, player)
  149.  
  150. function lfg_logout(event, pPlayer)        
  151.     local name = pPlayer:GetName()
  152.     local class = pPlayer:GetPlayerClass()
  153.     if(class == "Shaman") then
  154.         playername = "|cFF0000FF"..name.."|r"
  155.     elseif(class == "Warrior") then
  156.         playername = "|cFF663300"..name.."|r"
  157.     elseif(class == "Death Knight") then
  158.         playername = "|cFF660000"..name.."|r"
  159.     elseif(class == "Paladin") then
  160.         playername = "|cFFFF3399"..name.."|r"
  161.     elseif(class == "Mage") then
  162.         playername = "|cFF00FFFF"..name.."|r"
  163.     elseif(class == "Warlock") then
  164.         playername = "|cFF9966CC"..name.."|r"
  165.     elseif(class == "Priest") then
  166.         playername = "|cFFFFFFFF"..name.."|r"
  167.     elseif(class == "Druid") then
  168.         playername = "|cFFFF9900"..name.."|r"
  169.     elseif(class == "Hunter") then
  170.         playername = "|cFF006600"..name.."|r"
  171.     elseif(class == "Rogue") then
  172.         playername = "|cFFFFFF00"..name.."|r"
  173.     end
  174.     WorldDBQuery(string.format("DELETE FROM lfg_system WHERE name = '%s'", playername))
  175. end
  176.  
  177. RegisterServerHook(13, "lfg_logout")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement