hc9989 hc9989
关注数: 12 粉丝数: 28 发帖数: 165 关注贴吧数: 8
求会编写Lua插件的大神帮帮忙,不胜感激 最近在玩怀旧魔兽世界1.12的私服,得到一个很好的地图插件,唯一有个缺陷就是调节地图透明度的时候人物移动的那个箭头指南针也跟着透明了,这样我就很难看到透明后的地图上我所处的位置以及所面对的方向,所以请会修改的大神帮忙修改一下,修改成当调节地图透明度的时候,人物指南针不跟着变成透明,并且把这个指南针变大一点变成高亮显示。 并配上两张图,一张是透明的,一张是不透明的。 因为代码太长,只能分段贴了 下面是Lua里面的内容 -- MetaMap -- Written by MetaHawk - aka Urshurak METAMAP_TITLE = "MetaMap"; METAMAP_TOC = 11200; METAMAP_VERSION = METAMAP_TOC.."-"..7; METAMAP_NAME = METAMAP_TITLE.." v"..METAMAP_VERSION; METAMAPFWM_NAME = "MetaMapPOI"; METAMAP_ICON = "Interface\\WorldMap\\WorldMap-Icon"; METAMAP_MAP_PATH = "Interface\\AddOns\\MetaMap\\Maps\\"; METAMAP_ICON_PATH = "Interface\\AddOns\\MetaMap\\Icons\\"; METAMAP_IMAGE_PATH = "Interface\\AddOns\\MetaMap\\Images\\" METAMAP_SHADER_PATH = "Interface\\AddOns\\MetaMap\\Shaders\\" METAMAP_MAPCREDITS = "地图由Niflheim制作"; TITAN_METAMAP_ID = METAMAP_TITLE; TITAN_METAMAP_FREQUENCY = 1; METAMAPMENU_BUTTON_HEIGHT = 16; METAMAPLIST_SCROLL_FRAME_BUTTON_HEIGHT = 20; METAMAPLIST_SCROLL_FRAME_BUTTONS_SHOWN = 30; METAMAP_SORTBY_NAME = "name"; METAMAP_SORTBY_DESC = "desc"; METAMAP_SORTBY_LEVEL = "level"; METAMAP_SORTBY_LOCATION = "location"; MetaMap_Details = { name = METAMAP_TITLE, description = METAMAP_DESC, version = METAMAP_VERSION, releaseDate = "November 26, 2005", author = "MetaHawk", email = "[email protected]", website = "", category = MYADDONS_CATEGORY_MAP, } MetaMapOptions = {}; MetaMap_ZoneNames = {}; MetaMap_ZoneNames[0] = {}; MetaMap_ZoneNames[1] = {}; MetaMap_ZoneNames[2] = {}; MetaMap_NoteList = {}; MetaMap_NoteFilter = {}; MetaMapNotes_Options = {}; MetaMapNotes_MiniNote_Data = {}; MetaMapNotes_PartyNoteData = {}; MetaMapNotes_Relocate = {}; MetaMapNotes_LastLineClick = {}; MetaMap_CurrentMap = 0; MetaMap_ListOffset = 0; MetaMap_VarsLoaded = false; MetaMap_FilterName = ""; MetaMap_PingTime = 15; MetaMap_FullScreenMode = false; MetaMapContainer_CurrentFrame = nil; MetaMap_CurrentSaveSet = 1; MetaMap_sortDone = true; MetaMap_sortType = METAMAP_SORTBY_NAME; MetaMap_OptionsInfo = nil; MetaMapNotes_LastNote = 0; MetaMapNotes_LastLine = 0; MetaMapNotes_TempData_Id = ""; MetaMapNotes_TempData_Name = ""; MetaMapNotes_TempData_Creator = ""; MetaMapNotes_TempData_xPos = ""; MetaMapNotes_TempData_yPos = ""; MetaMapNotes_TempData_Icon = ""; MetaMapNotes_TempData_TextColor = ""; MetaMapNotes_TempData_Info1Color = ""; MetaMapNotes_TempData_Info2Color = ""; MetaMapNotes_TempData_LootID = nil; MetaMapNotes_SetNextAsMiniNote = 0; MetaMapNotes_LastLineClick.time = 0; MetaMapNotes_Qnote = false; MetaMapNotes_MiniNote_IsInCity = false; MetaMapNotes_MiniNote_MapzoomInit = false; MetaMapNotes_vnote_xPos = nil; MetaMapNotes_vnote_yPos = nil; MetaMapNotes_PartyNoteSet = false; local MetaMapNotes_Mininote_UpdateRate = 0; local MetaMap_OrigWorldMapButton_OnClick; local MetaMap_OrigChatFrame_OnEvent; METAMAPMENU_LIST = { {name = METAMAP_OPTIONS_COORDS}, {name = METAMAP_OPTIONS_MINICOORDS}, {name = METAMAP_OPTIONS_SHOWNOTES}, {name = METAMAP_ACTION_MODE}, {name = METAMAP_OPTIONS_SAVESET}, {name = METAMAP_OPTIONS_SHADESET}, {name = "Spacer"}, {name = METAMAP_OPTIONS_EXT}, {name = METAMAP_FLIGHTMAP_OPTIONS}, {name = METAMAP_GATHERER_OPTIONS}, {name = METAMAP_BWP_OPTIONS}, {name = METAMAP_OPTIONS_USEMAPMOD}, {name = METAMAP_KB_TEXT}, {name = METAMAP_QST_TEXT}, {name = METAMAP_OPTIONS_FWM} }; MetaMap_Default = { ["SaveSet"] = 1, ["MetaMapAlpha1"] = 1.0, ["MetaMapAlpha2"] = 0.60, ["BDshader1"] = 0.0, ["BDshader2"] = 0.0, ["MetaMapScale1"] = 0.75, ["MetaMapScale2"] = 0.55, ["MetaMapTTScale1"] = 1.0, ["MetaMapTTScale2"] = 0.75, ["ActionMode1"] = false, ["ActionMode2"] = false, ["MetaMapButtonPosition"] = 220, ["ShadeSet"] = 1, ["MiniColor"] = 4, ["MetaMapZone"] = 1, ["ZoneShiftVersion"] = 0, ["MetaMapCoords"] = true, ["MetaMapMiniCoords"] = true, ["MetaMapButtonShown"] = true, ["TooltipWrap"] = true, ["ShowCreator"] = true, ["MenuMode"] = false, ["UseMapMod"] = false, ["ShowMapList"] = false, ["LastHighlight"] = true, ["LastMiniHighlight"] = true, ["AcceptIncoming"] = true, ["MiniParty"] = true, ["ListColors"] = true, ["ZoneHeader"] = false, ["UsePOI"] = false, ["WKBalwaysOn"] = false, ["QSTalwaysOn"] = false, ["FWMalwaysOn"] = false, ["BWPalwaysOn"] = false, ["SortList"] = false, } function MetaMap_SetWorldMap() BlackoutWorld:Hide(); WorldMapZoomOutButton:Hide(); WorldMapFrame:SetMovable(true); WorldMapMagnifyingGlassButton:Hide(); WMF_OldScript = WorldMapFrame:GetScript("OnKeyDown") WorldMapFrame:SetScript("OnKeyDown", nil); UIPanelWindows["WorldMapFrame"] ={ area = "center",pushable = 0 }; SetMapToCurrentZone(); end function MetaMapTopFrame_OnLoad() math.randomseed(GetTime()); this:RegisterEvent("ADDON_LOADED"); this:RegisterEvent("VARIABLES_LOADED"); this:RegisterEvent("PLAYER_ENTERING_WORLD"); this:RegisterEvent("WORLD_MAP_UPDATE"); this:RegisterEvent("ZONE_CHANGED_NEW_AREA"); if (IsAddOnLoaded("FuBar")) then MetaMap_FuBar_OnLoad(); end end function MetaMapFrameDropDown_OnLoad() UIDropDownMenu_ClearAll(MetaMapFrameDropDown); UIDropDownMenu_Initialize(MetaMapFrameDropDown, MetaMapFrameDropDown_Initialize); UIDropDownMenu_SetWidth(175); end function MetaMapContainerFrame_OnLoad() this:SetWidth(WorldMapButton:GetWidth() - MetaMap_MapListFrame:GetWidth()-1); this:SetHeight(WorldMapButton:GetHeight()-41); this:SetFrameLevel(this:GetParent():GetFrameLevel()+3); MetaMapContainer_Header:SetFrameLevel(this:GetFrameLevel()+2); MetaMapContainer_Footer:SetFrameLevel(this:GetFrameLevel()+2); MetaMapContainer_CloseButton:SetFrameLevel(MetaMapContainer_Footer:GetFrameLevel()+2); end function MetaMapNotes_OnLoad() MiniNotePOI.TimeSinceLastUpdate = 0; SlashCmdList["MAPNOTE"] = MetaMapNotes_GetNoteBySlashCommand; for i = 1, table.getn(METAMAPNOTES_ENABLE_COMMANDS) do setglobal("SLASH_MAPNOTE"..i, METAMAPNOTES_ENABLE_COMMANDS[i]); end SlashCmdList["MININOTE"] = MetaMapNotes_NextMiniNote; for i = 1, table.getn(METAMAPNOTES_MININOTE_COMMANDS) do setglobal("SLASH_MININOTE"..i, METAMAPNOTES_MININOTE_COMMANDS[i]); end SlashCmdList["MININOTEONLY"] = MetaMapNotes_NextMiniNoteOnly; for i = 1, table.getn(METAMAPNOTES_MININOTEONLY_COMMANDS) do setglobal("SLASH_MININOTEONLY"..i, METAMAPNOTES_MININOTEONLY_COMMANDS[i]); end SlashCmdList["MININOTEOFF"] = MetaMapNotes_ClearMiniNote; for i = 1, table.getn(METAMAPNOTES_MININOTEOFF_COMMANDS) do setglobal("SLASH_MININOTEOFF"..i, METAMAPNOTES_MININOTEOFF_COMMANDS[i]); end SlashCmdList["QUICKNOTE"] = MetaMapNotes_Quicknote; for i = 1, table.getn(METAMAPNOTES_QUICKNOTE_COMMANDS) do setglobal("SLASH_QUICKNOTE"..i, METAMAPNOTES_QUICKNOTE_COMMANDS[i]); end end function MetaMapTopFrame_OnShow() if(not MetaMap_VarsLoaded) then return; end MetaMap_CurrentMap = GetCurrentMapZone(); StaticPopup1:SetFrameStrata("FULLSCREEN"); if(MetaMap_FullScreenMode) then MetaMapNotesEditFrame:SetParent("WorldMapFrame"); MetaMapNotesSendFrame:SetParent("WorldMapFrame"); end local continent, zone = MetaMap_NameToZoneID(GetRealZoneText()); if(zone == 0) then return; end local pX, pY = GetPlayerMapPosition("Player"); if(pX == 0 and pY == 0 and continent == 0) then MetaMapOptions.MetaMapZone = zone; MetaMap_Toggle(true) end end function MetaMapTopFrame_OnHide() SetMapToCurrentZone(); MetaMapNotes_HideAll() MetaMap_Toggle(false); MetaMap_ToggleDR(0); MetaMapOptions.SaveSet = MetaMap_CurrentSaveSet; MetaMapContainerFrame:Hide(); StaticPopup1:SetFrameStrata("DIALOG"); MetaMapNotesEditFrame:SetParent("UIParent"); MetaMapNotesEditFrame:SetFrameStrata("FULLSCREEN"); MetaMapNotesSendFrame:SetParent("UIParent"); MetaMapNotesSendFrame:SetFrameStrata("FULLSCREEN"); if(MetaMapContainer_CurrentFrame) then MetaMapContainer_CurrentFrame:Hide(); end end function MetaMap_OnEvent(event) if(event == "ADDON_LOADED" and arg1 == "MetaMap") then MetaMap_SetWorldMap(); for option, value in MetaMap_Default do if(MetaMapOptions[option] == nil) then MetaMapOptions[option] = value; end end MetaMap_Default = nil; for i=0, 9, 1 do if(MetaMap_NoteFilter[i] == nil) then MetaMap_NoteFilter[i] = true; end end MetaMap_LoadZones(); MetaMap_VerifyData(); MetaMap_FilterInit(); end if(event == "VARIABLES_LOADED") then MetaMap_CurrentSaveSet = MetaMapOptions.SaveSet; MetaMapOptions_Init(); MetaMapMenu_Init(); if(myAddOnsFrame_Register) then myAddOnsFrame_Register(MetaMap_Details); end if MetaMapNotes_MiniNote_Data.icon == "party" then MetaMapNotes_ClearMiniNote(true); end if MetaMapNotes_MiniNote_Data.icon ~= nil then MiniNotePOITexture:SetTexture(METAMAP_ICON_PATH.."Icon"..MetaMapNotes_MiniNote_Data.icon); end MetaMap_OrigWorldMapButton_OnClick = WorldMapButton_OnClick; WorldMapButton_OnClick = MetaMapNotes_WorldMapButton_OnClick; MetaMap_OrigChatFrame_OnEvent = ChatFrame_OnEvent; ChatFrame_OnEvent = MetaMap_ChatFrame_OnEvent; MetaMap_SetNUNtooltip(); if(MetaMapOptions.WKBalwaysOn) then MetaMap_LoadWKB(3); end if(MetaMapOptions.BWPalwaysOn) then MetaMap_LoadBWP(0, 3); end if(MetaMapOptions.QSTalwaysOn) then MetaMap_LoadQST(2); end if(MetaMapOptions.FWMalwaysOn) then MetaMap_LoadFWM(); end MetaMap_VarsLoaded = true; end if(event == "INSTANCE_MAP_UPDATE") then if(not MetaMap_VarsLoaded) then return; end if(not IsAddOnLoaded("MetaMapWKB") and not IsAddOnLoaded("MetaMapQST")) then MetaMapContainer_ShowFrame(); else if(IsAddOnLoaded("MetaMapWKB")) then MetaKB_OnEvent("INSTANCE_MAP_UPDATE"); end if(IsAddOnLoaded("MetaMapQST")) then QST_OnEvent("INSTANCE_MAP_UPDATE"); end end MetaMapNotes_HideAll(); MetaMap_Refresh(); MetaMap_ZoneHeader(); end if(event == "WORLD_MAP_UPDATE") then if(not MetaMap_VarsLoaded) then return; end if(MetaMap_CurrentMap ~= GetCurrentMapZone() and MetaMapFrame:IsVisible()) then MetaMap_Toggle(false); end MetaMap_CurrentMap = GetCurrentMapZone(); if(MetaMapOptions.usePOI) then MetaMapPOI_OnEvent(1); end if(not IsAddOnLoaded("MetaMapWKB") and not IsAddOnLoaded("MetaMapQST")) then MetaMapContainer_ShowFrame(); end if(MetaMap_CurrentMap ~= 0) then MetaMapNotes_HideAll(); end MetaMapOptions_Init(); MetaMapNotes_MapUpdate(); MetaMap_ZoneHeader(); end if(event == "ZONE_CHANGED_NEW_AREA") then if(not MetaMap_VarsLoaded) then return; end SetMapToCurrentZone(); MetaMapNotes_MiniNote_OnUpdate(0); if(MetaMapOptions.usePOI) then MetaMapPOI_OnEvent(2); end if(WorldMapFrame:IsVisible()) then MetaMapNotes_MapUpdate(); end MetaMapNotes_HideAll(); end if(event == "PLAYER_ENTERING_WORLD") then if(not MetaMap_VarsLoaded) then return; end MetaMap_CurrentMap = GetCurrentMapZone(); local continent, zone = MetaMap_NameToZoneID(GetRealZoneText()); if(zone == 0) then return; end local pX, pY = GetPlayerMapPosition("Player"); if(pX == 0 and pY == 0 and continent == 0) then MetaMapOptions.MetaMapZone = zone; MetaMap_Toggle(true); end end if(event == "MINIMAP_UPDATE_ZOOM") then MetaMapNotes_MinimapUpdateZoom(); end end function MetaMap_ChatFrame_OnEvent(...) local event = unpack(arg); if(strsub(event, 1, 16) == "CHAT_MSG_WHISPER" and strsub(arg1, 1, 6) == "<MapN>") then if(arg2 ~= UnitName("player")) then MetaMapNotes_GetNoteFromChat(arg1, arg2); end else MetaMap_OrigChatFrame_OnEvent(unpack(arg)); end end
1 下一页