📄 mapnotes.lua
字号:
--[[ ********** Map Notes **********Adds the posibility of marking notes in the WorldMapFrame and more...Author: Sir.Bender [Meog on WoW Forums]Maintained by: OysteinDate: 22. May 2005Version: Map Notes (Cont.) 1.4aWebsite: http://curse-gaming.com/mod.php?addid=1285em@il:opium@geheb.comThanks to Jorol from the WoW-Beta forums, for updating the localization.luaand some other small improvements...Additional Note: Main idea: CTmod, requested on cosmosui.org Coded from the scratch, only took one idea from CTmod (how to determine when a click is useful) but coded new in a little other way... Marsman 3/27/05 - Changed Player to Player notes to use Sky Oystein - Added ability to put notes on BG maps and misc fixes Sinaloit - Converted from Cosmos_RegisterChatCommand to Sky.registerSlashCommand, updated default slash commands fixed thottbot_replace, Sky users can now send notes to non Sky users (cannot receive though).$Id: MapNotes.lua 1815 2005-06-13 03:47:20Z legorol $$Rev: 1815 $$LastChangedBy: legorol $$Date: 2005-06-12 22:47:20 -0500 (Sun, 12 Jun 2005) $]]MapNotes_Mininote_UpdateRate = 0.01;-- changing this may couse problems, if there are more notes in one zone while decreasing value-- any number from 1 to 100 (otherwise there aren't enough templates for the POI's, but these can be simply added)MapNotes_NotesPerZone = 100;MapNotes_MinDiff = 7;MAPNOTES_LINETEMPLATESIZE = 256;MAPNOTES_MAXLINES = 20;MapNotes_Options = {};MapNotes_Data = {};MapNotes_Data[1] = {};MapNotes_Data[2] = {};MapNotes_Lines = {};MapNotes_Lines[1] = {};MapNotes_Lines[2] = {};MapNotes_MiniNote_Data = {};MapNotes_MiniNote_IsInCity = false;MapNotes_MiniNote_MapzoomInit = false;MapNotes_SetNextAsMiniNote = 0;MapNotes_AllowOneNote = 0;MapNotes_LastReceivedNote_xPos = 0;MapNotes_LastReceivedNote_yPos = 0;MapNotes_ZoneNames = {};MapNotes_LastClick = {};MapNotes_LastClick.time = 0;MapNotes_LastLineClick = {};MapNotes_LastLineClick.time = 0;MapNotes_TempData_Id = "";MapNotes_TempData_Creator = "";MapNotes_TempData_xPos = "";MapNotes_TempData_yPos = "";MapNotes_TempData_Icon = "";MapNotes_TempData_TextColor = "";MapNotes_TempData_Info1Color = "";MapNotes_TempData_Info2Color = "";MapNotes_PartyNoteData = {};MapNotes_tloc_xPos = nil;MapNotes_tloc_yPos = nil;MapNotes_Colors = {};MapNotes_Colors[0] = {r = 1.0, g = 0.82, b = 0.0};MapNotes_Colors[1] = {r = 0.55, g = 0.46, b = 0.04};MapNotes_Colors[2] = {r = 0.87, g = 0.06, b = 0.0};MapNotes_Colors[3] = {r = 0.56, g = 0.0, b = 0.0};MapNotes_Colors[4] = {r = 0.18, g = 0.7, b = 0.2};MapNotes_Colors[5] = {r = 0.0, g = 0.39, b = 0.05};MapNotes_Colors[6] = {r = 0.42, g = 0.47, b = 0.87};MapNotes_Colors[7] = {r = 0.25, g = 0.35, b = 0.66};MapNotes_Colors[8] = {r = 1.0, g = 1.0, b = 1.0};MapNotes_Colors[9] = {r = 0.65, g = 0.65, b = 0.65};-- some constant values...MapNotes_Const[1] = {};MapNotes_Const[2] = {};MapNotes_Const[1][0] = { xscale = 11016.6, yscale = 7399.9 };MapNotes_Const[1][1] = { scale = 0.15670371525706, xoffset = 0.41757282062541, yoffset = 0.33126468682991, xscale = 12897.3, yscale = 8638.1 };MapNotes_Const[1][2] = { scale = 0.13779501505279, xoffset = 0.55282036918049, yoffset = 0.30400571307545, xscale = 15478.8, yscale = 10368.0 };MapNotes_Const[1][3] = { scale = 0.17799008894522, xoffset = 0.38383175154516, yoffset = 0.18206216123156, xscale = 19321.8, yscale = 12992.7 };MapNotes_Const[1][4] = { scale = 0.02876626176374, xoffset = 0.38392150175204, yoffset = 0.10441296545475, xscale = 25650.4, yscale = 17253.2 };MapNotes_Const[1][5] = { scale = 0.12219839120669, xoffset = 0.34873187115693, yoffset = 0.50331046935371, xscale = 38787.7, yscale = 26032.1 };MapNotes_Const[1][6] = { scale = 0.14368294970080, xoffset = 0.51709782709100, yoffset = 0.44802818134926 };MapNotes_Const[1][7] = { scale = 0.14266384095509, xoffset = 0.49026338351379, yoffset = 0.60461876174686 };MapNotes_Const[1][8] = { scale = 0.15625084006464, xoffset = 0.41995800144849, yoffset = 0.23097545880609 };MapNotes_Const[1][9] = { scale = 0.18885970960818, xoffset = 0.31589651244686, yoffset = 0.61820581746798 };MapNotes_Const[1][10] = { scale = 0.06292695969921, xoffset = 0.50130287793373, yoffset = 0.17560823085517 };MapNotes_Const[1][11] = { scale = 0.13960673216274, xoffset = 0.40811854919226, yoffset = 0.53286226907346 };MapNotes_Const[1][12] = { scale = 0.03811449638057, xoffset = 0.56378554142668, yoffset = 0.42905218646258 };MapNotes_Const[1][13] = { scale = 0.18885969712845, xoffset = 0.33763582469211, yoffset = 0.75815224951929 };MapNotes_Const[1][14] = { scale = 0.13272833611061, xoffset = 0.37556627748617, yoffset = 0.40285135292988 };MapNotes_Const[1][15] = { scale = 0.18750104661175, xoffset = 0.46971301480866, yoffset = 0.76120931364891 };MapNotes_Const[1][16] = { scale = 0.13836131003639, xoffset = 0.36011098024729, yoffset = 0.03948322979210 };MapNotes_Const[1][17] = { scale = 0.27539211944292, xoffset = 0.39249347333450, yoffset = 0.45601063260257 };MapNotes_Const[1][18] = { scale = 0.11956582877920, xoffset = 0.47554411191734, yoffset = 0.68342356389650 };MapNotes_Const[1][19] = { scale = 0.02836291430658, xoffset = 0.44972878210917, yoffset = 0.55638479002362 };MapNotes_Const[1][20] = { scale = 0.10054401185671, xoffset = 0.44927594451520, yoffset = 0.76494573629405 };MapNotes_Const[1][21] = { scale = 0.19293573573141, xoffset = 0.47237382938446, yoffset = 0.17390990272233 };MapNotes_Const[2][0] = { xscale = 10448.3, yscale = 7072.7, cityscale = 1.565 };MapNotes_Const[2][1] = { scale = 0.07954563533736, xoffset = 0.43229874660542, yoffset = 0.25425926375262, xscale = 12160.5, yscale = 8197.8, cityscale = 1.687 };MapNotes_Const[2][2] = { scale = 0.10227310921644, xoffset = 0.47916793249546, yoffset = 0.32386170078419, xscale = 14703.1, yscale = 9825.0, cityscale = 1.882 };MapNotes_Const[2][3] = { scale = 0.07066771883566, xoffset = 0.51361415033147, yoffset = 0.56915717993261, xscale = 18568.7, yscale = 12472.2, cityscale = 2.210 };MapNotes_Const[2][4] = { scale = 0.09517074521836, xoffset = 0.48982154167011, yoffset = 0.76846519986510, xscale = 24390.3, yscale = 15628.5, cityscale = 2.575 };MapNotes_Const[2][5] = { scale = 0.08321525646393, xoffset = 0.04621224670174, yoffset = 0.61780780524905, xscale = 37012.2, yscale = 25130.6, cityscale = 2.651 };MapNotes_Const[2][6] = { scale = 0.07102298961531, xoffset = 0.47822105868635, yoffset = 0.73863555048516 };MapNotes_Const[2][7] = { scale = 0.13991525534426, xoffset = 0.40335096278072, yoffset = 0.48339696712179 };MapNotes_Const[2][8] = { scale = 0.07670475476181, xoffset = 0.43087243362495, yoffset = 0.73224350550454 };MapNotes_Const[2][9] = { scale = 0.10996723642661, xoffset = 0.51663255550387, yoffset = 0.15624753972085 };MapNotes_Const[2][10] = { scale = 0.09860350595046, xoffset = 0.41092682316676, yoffset = 0.65651531970162 };MapNotes_Const[2][11] = { scale = 0.09090931690055, xoffset = 0.42424361247460, yoffset = 0.30113436864162 };MapNotes_Const[2][12] = { scale = 0.02248317426784, xoffset = 0.47481923366335, yoffset = 0.51289242617182 };MapNotes_Const[2][13] = { scale = 0.07839152145224, xoffset = 0.51118749188138, yoffset = 0.50940913489577 };MapNotes_Const[2][14] = { scale = 0.06170112311456, xoffset = 0.49917278340928, yoffset = 0.68359285304999 };MapNotes_Const[2][15] = { scale = 0.06338794005823, xoffset = 0.46372051266487, yoffset = 0.57812379382509 };MapNotes_Const[2][16] = { scale = 0.11931848806212, xoffset = 0.35653502290090, yoffset = 0.24715695496522 };MapNotes_Const[2][17] = { scale = 0.03819701270887, xoffset = 0.41531450060561, yoffset = 0.67097280492581 };MapNotes_Const[2][18] = { scale = 0.18128603034401, xoffset = 0.39145470225916, yoffset = 0.79412224886668 };MapNotes_Const[2][19] = { scale = 0.06516347991404, xoffset = 0.51769795272070, yoffset = 0.72815974701615 };MapNotes_Const[2][20] = { scale = 0.10937523495111, xoffset = 0.49929119700867, yoffset = 0.25567971676068 };MapNotes_Const[2][21] = { scale = 0.12837403412087, xoffset = 0.36837217317549, yoffset = 0.15464954319582 };MapNotes_Const[2][22] = { scale = 0.02727719546939, xoffset = 0.42973999245660, yoffset = 0.23815358517831 };MapNotes_Const[2][23] = { scale = 0.12215946583965, xoffset = 0.44270955019641, yoffset = 0.17471356786018 };MapNotes_Const[2][24] = { scale = 0.09943208435841, xoffset = 0.36884571674582, yoffset = 0.71874918595783 };MapNotes_Const[2][25] = { scale = 0.11745423014662, xoffset = 0.46561438951659, yoffset = 0.40971063365152 };function MapNotes_OnLoad() for i=1, 21, 1 do MapNotes_Data[1][i] = {}; MapNotes_Lines[1][i] = {}; end for i=1, 26, 1 do MapNotes_Data[2][i] = {}; MapNotes_Lines[2][i] = {}; end MapNotes_RegisterDropDownButton(MAPNOTES_SHOWNOTES, "MapNotes_Options.shownotes", "MapNotesDropDownSubMenu"); MiniNotePOI.TimeSinceLastUpdate = 0; MapNotes_LoadZones1(GetMapZones(1)); MapNotes_LoadZones2(GetMapZones(2)); WorldMapMagnifyingGlassButton:SetText(ZOOM_OUT_BUTTON_TEXT.."\n"..MAPNOTES_WORLDMAPHELP); if (Sky) then if ( ThottbotReplace_ReplaceIt ) then ThottbotReplace_ReplaceIt(); end Sky.registerSlashCommand( { id = "MapNotesEnableCmd"; commands = MAPNOTES_ENABLE_COMMANDS; onExecute = MapNotes_GetNoteBySlashCommand; helpText = MAPNOTES_CHAT_COMMAND_ENABLE_INFO; } ); Sky.registerSlashCommand( { id = "MapNotesOneNoteCmd"; commands = MAPNOTES_ONEOTE_COMMANDS; onExecute = MapNotes_OneNote; helpText = MAPNOTES_CHAT_COMMAND_ONENOTE_INFO; } ); Sky.registerSlashCommand( { id = "MapNotesMiniNoteCmd"; commands = MAPNOTES_MININOTE_COMMANDS; onExecute = MapNotes_NextMiniNote; helpText = MAPNOTES_CHAT_COMMAND_MININOTE_INFO; } ); Sky.registerSlashCommand( { id = "MapNotesMiniNoteOnlyCmd"; commands = MAPNOTES_MININOTEONLY_COMMANDS; onExecute = MapNotes_NextMiniNoteOnly; helpText = MAPNOTES_CHAT_COMMAND_MININOTEONLY_INFO; } ); Sky.registerSlashCommand( { id = "MapNotesMiniNoteOffCmd"; commands = MAPNOTES_MININOTEOFF_COMMANDS; onExecute = MapNotes_ClearMiniNote; helpText = MAPNOTES_CHAT_COMMAND_MININOTEOFF_INFO; } ); Sky.registerSlashCommand( { id = "MapNotesMntlocCmd"; commands = MAPNOTES_MNTLOC_COMMANDS; onExecute = MapNotes_mntloc; helpText = MAPNOTES_CHAT_COMMAND_MNTLOC_INFO; } ); Sky.registerSlashCommand( { id = "MapNotesQuickNoteCmd"; commands = MAPNOTES_QUICKNOTE_COMMANDS; onExecute = MapNotes_Quicknote; helpText = MAPNOTES_CHAT_COMMAND_QUICKNOTE; } ); Sky.registerSlashCommand( { id = "MapNotesQuickTlocCmd"; commands = MAPNOTES_QUICKTLOC_COMMANDS; onExecute = MapNotes_Quicktloc; helpText = MAPNOTES_CHAT_COMMAND_QUICKTLOC; } ); Sky.registerAlert( { id = "MN"; func = MapNotes_GetNoteFromChat; description = "MapNotes Listener" } ); else SlashCmdList["MAPNOTE"] = MapNotes_GetNoteBySlashCommand; for i = 1, table.getn(MAPNOTES_ENABLE_COMMANDS) do setglobal("SLASH_MAPNOTE"..i, MAPNOTES_ENABLE_COMMANDS[i]); end SlashCmdList["ONENOTE"] = MapNotes_OneNote; for i = 1, table.getn(MAPNOTES_ONEOTE_COMMANDS) do setglobal("SLASH_ONENOTE"..i, MAPNOTES_ONEOTE_COMMANDS[i]); end SlashCmdList["MININOTE"] = MapNotes_NextMiniNote; for i = 1, table.getn(MAPNOTES_MININOTE_COMMANDS) do setglobal("SLASH_MININOTE"..i, MAPNOTES_MININOTE_COMMANDS[i]); end SlashCmdList["MININOTEONLY"] = MapNotes_NextMiniNoteOnly; for i = 1, table.getn(MAPNOTES_MININOTEONLY_COMMANDS) do setglobal("SLASH_MININOTEONLY"..i, MAPNOTES_MININOTEONLY_COMMANDS[i]); end SlashCmdList["MININOTEOFF"] = MapNotes_ClearMiniNote; for i = 1, table.getn(MAPNOTES_MININOTEOFF_COMMANDS) do setglobal("SLASH_MININOTEOFF"..i, MAPNOTES_MININOTEOFF_COMMANDS[i]); end SlashCmdList["MNTLOC"] = MapNotes_mntloc; for i = 1, table.getn(MAPNOTES_MNTLOC_COMMANDS) do setglobal("SLASH_MNTLOC"..i, MAPNOTES_MNTLOC_COMMANDS[i]); end SlashCmdList["QUICKNOTE"] = MapNotes_Quicknote; for i = 1, table.getn(MAPNOTES_QUICKNOTE_COMMANDS) do setglobal("SLASH_QUICKNOTE"..i, MAPNOTES_QUICKNOTE_COMMANDS[i]); end SlashCmdList["QUICKTLOC"] = MapNotes_Quicktloc; for i = 1, table.getn(MAPNOTES_QUICKTLOC_COMMANDS) do setglobal("SLASH_QUICKTLOC"..i, MAPNOTES_QUICKTLOC_COMMANDS[i]); end -- hooking the chat when Cosmos is not installed local old_ChatFrame_OnEvent = ChatFrame_OnEvent; function ChatFrame_OnEvent(event) if (strsub(event, 1, 16) == "CHAT_MSG_WHISPER" and strsub(arg1, 1, 6) == "<MapN>") then if (strsub(event, 17) == "_INFORM") then -- do nothing else MapNotes_GetNoteFromChat(arg1, arg2); end else old_ChatFrame_OnEvent(event); end end end MapNotes_CurrentZoneFix_SetupFix();endfunction MapNotes_CurrentZoneFix_SetupFix() -- CurrentZoneFix v2.0 by Legorol -- email: legorol@cosmosui.org local versionID = 20; local id = CurrentZoneFix_FixInPlace; if ( id ) then id = tonumber(id); if ( id and id >= versionID ) then return; elseif ( not SetMapToCurrentZone(true) ) then-- DEFAULT_CHAT_FRAME:AddMessage("Warning! Obsolete version "..-- "of CurrentZoneFix function detected. The old "..-- "version is being loaded either as a standalone "..-- "AddOn, or as code embedded inside another AddOn. "..-- "You must update it to avoid bugs with the map!",1,0,0) return; end end local continent,zone,name local zoneID={}; local orig_SetMapToCurrentZone; for continent in ipairs{GetMapContinents()} do for zone,name in ipairs{GetMapZones(continent)} do zoneID[name] = zone; end end orig_SetMapToCurrentZone = SetMapToCurrentZone; SetMapToCurrentZone = function(deactivate) if (deactivate) then SetMapToCurrentZone = orig_SetMapToCurrentZone; CurrentZoneFix_FixInPlace = nil; return true; end orig_SetMapToCurrentZone(); if ( GetCurrentMapZone()==0 and GetCurrentMapContinent()>0 ) then SetMapZoom(GetCurrentMapContinent(),zoneID[GetRealZoneText()]); else SetMapToCurrentZone = orig_SetMapToCurrentZone; CurrentZoneFix_FixInPlace = "Deactivated "..versionID; end end CurrentZoneFix_FixInPlace = versionID;end-- don't know how to get these in one function (hanvn't tried often)function MapNotes_LoadZones1(...) MapNotes_ZoneNames[1] = {}; for i=1, arg.n, 1 do MapNotes_ZoneNames[1][MapNotes_ZoneShift[1][i]] = arg[i]; end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -