Приветствуем вас на форуме проекта WoW Circle. Если вы читаете это, значит не зарегистрировались у нас. Для того, чтобы получить доступ к расширенным возможностям нашего форума нажмите сюда и пройди регистрацию, которая не займет у вас много времени. После регистрации будут доступны новые, более расширенные, возможности.
Карта!

Упомянутые в теме пользователи:

Показано с 1 по 12 из 27

Тема: Карта!

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #21
    Почетный флудер Аватар для Artur91425
    Регистрация
    25.10.2012
    Адрес
    Россия
    Сообщений
    2,772
    Поблагодарил(а)
    339
    Получено благодарностей: 558 (сообщений: 391).
    Репутация: 1047
    Цитата Сообщение от Xайдекс Посмотреть сообщение
    Есть еще такая штука в сексимапе, показывающая никнеймы пингующих игроков, этого очень сильно не хватает стандартной миникарте)

    Вложение 943417
    Вот (прям из сексимапа последнего перенес):
    Код:
    local UnitName, UnitClass = UnitName, UnitClass
    
    local MinimapPingName = CreateFrame("Frame", "&parentName", MinimapPing)
    MinimapPing.name = MinimapPingName
    MinimapPingName:SetBackdrop({
      bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
      edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
      insets = {left = 4, top = 4, right = 4, bottom = 4},
      edgeSize = 16,
      tile = true,
    })
    MinimapPingName:SetBackdropColor(0,0,0,0.8)
    MinimapPingName:SetBackdropBorderColor(0,0,0,0.6)
    MinimapPingName:SetPoint("TOP", MinimapPing, "BOTTOM", 0, 15)
    MinimapPingName:SetFrameStrata("HIGH")
    MinimapPingName.text = MinimapPingName:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
    MinimapPingName.text:SetAllPoints()
    
    MinimapPing:HookScript('OnEvent', function(self, event, unit)
      if event ~= "MINIMAP_PING" or not unit then return end
      local _, class = UnitClass(unit)
      local color = class and RAID_CLASS_COLORS[class] or GRAY_FONT_COLOR
      self.name.text:SetFormattedText("|cFF%02x%02x%02x%s|r", color.r * 255, color.g * 255, color.b * 255, UnitName(unit))
      self.name:SetSize(self.name.text:GetStringWidth() + 12, self.name.text:GetStringHeight() + 10)
    end)
    - - - Updated - - -

    Кстати, нашел более качественные текстуры
    Capture1.PNG

    https://www.dropbox.com/s/swrsao8n5a...Blips.tga?dl=0

    Чтобы их использовать достаточно указать путь до этой новой текстуры.
    Код:
    тут
    partyUnitButton.icon:SetTexture(...)
    и тут
    raidUnitButton.icon:SetTexture(...)
    - - - Updated - - -

    Добавил поддержку BattlefieldMinimap (карта, которая отображается по Shift + M)
    WoWScrnShot_061321_203639.jpg

    Теперь для корректировки размера иконок две переменные WORLDMAP_UNITBUTTON_TEXTURE_SIZE и BATTLEFIELDMINIMAP_UNITBUTTON_TEXTURE_SIZE
    Менять размер можно все также в самом файле или из игры с помощью макроса
    Код:
    /run WORLDMAP_UNITBUTTON_TEXTURE_SIZE  = <значение>
    
    или
    
    /run BATTLEFIELDMINIMAP_UNITBUTTON_TEXTURE_SIZE = <значение>
    Код:
    WORLDMAP_UNITBUTTON_TEXTURE_SIZE = 16 -- default - 16
    BATTLEFIELDMINIMAP_UNITBUTTON_TEXTURE_SIZE = 12 -- default - 12
    
    local select = select
    local GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty, PlayerIsPVPInactive = GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty, PlayerIsPVPInactive
    
    local BLIP_TEX_COORDS = {
      ["WARRIOR"] = { 0, 0.125, 0, 0.25 },
      ["PALADIN"] = { 0.125, 0.25, 0, 0.25 },
      ["HUNTER"] = { 0.25, 0.375, 0, 0.25 },
      ["ROGUE"] = { 0.375, 0.5, 0, 0.25 },
      ["PRIEST"] = { 0.5, 0.625, 0, 0.25 },
      ["DEATHKNIGHT"] = { 0.625, 0.75, 0, 0.25 },
      ["SHAMAN"] = { 0.75, 0.875, 0, 0.25 },
      ["MAGE"] = { 0.875, 1, 0, 0.25 },
      ["WARLOCK"] = { 0, 0.125, 0.25, 0.5 },
      ["DRUID"] = { 0.25, 0.375, 0.25, 0.5 }
    }
    
    local BLIP_RAID_Y_OFFSET = 0.5
    
    local function OnLoad(frame)
      local size = frame == "BattlefieldMinimap" and BATTLEFIELDMINIMAP_UNITBUTTON_TEXTURE_SIZE or WORLDMAP_UNITBUTTON_TEXTURE_SIZE
      for i=1,4 do
        local partyUnitButton = _G[frame.."Party"..i]
        partyUnitButton:SetSize(size, size)
        partyUnitButton.icon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
      end
      for i=1,40 do
        local raidUnitButton = _G[frame.."Raid"..i]
        raidUnitButton:SetSize(size, size)
        raidUnitButton.icon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
      end
    end
    
    local function OnUpdate(self)
      local unit = self.unit
      if not UnitIsPlayer(unit) then return end
    
      local class = select(2, UnitClass(unit))
      if GetNumRaidMembers() > 0 then
        if UnitInParty(unit) then
          self.icon:SetTexCoord(
            BLIP_TEX_COORDS[class][1],
            BLIP_TEX_COORDS[class][2],
            BLIP_TEX_COORDS[class][3],
            BLIP_TEX_COORDS[class][4]
          )
        else
          self.icon:SetTexCoord(
            BLIP_TEX_COORDS[class][1],
            BLIP_TEX_COORDS[class][2],
            BLIP_TEX_COORDS[class][3] + BLIP_RAID_Y_OFFSET,
            BLIP_TEX_COORDS[class][4] + BLIP_RAID_Y_OFFSET
          )
        end
      else
        self.icon:SetTexCoord(
          BLIP_TEX_COORDS[class][1],
          BLIP_TEX_COORDS[class][2],
          BLIP_TEX_COORDS[class][3],
          BLIP_TEX_COORDS[class][4]
        )
      end
    end
    
    local function OnEnter(self)
      local unit = self.unit
      if not UnitIsPlayer(unit) then return end
    
      local tooltip = self:GetName():find("BattlefieldMinimap") and WorldMapTooltip or GameTooltip
      local tooltipText = ""
      local class = select(2, UnitClass(unit))
      local color = RAID_CLASS_COLORS[class]
      local coloredName = ("|cFF%02x%02x%02x%s|r"):format(color.r * 255, color.g * 255, color.b * 255, UnitName(unit))
      if PlayerIsPVPInactive(unit) then
        tooltipText = PLAYER_IS_PVP_AFK:format(coloredName)
      else
        tooltipText = coloredName
      end
      tooltip:SetText(tooltipText)
      tooltip:Show()
    end
    
    do -- WorldMap
      OnLoad("WorldMap")
      hooksecurefunc("WorldMapUnit_Update", OnUpdate)
      hooksecurefunc('WorldMapUnit_OnEnter', OnEnter)
    end
    
    do -- BattlefieldMinimap
      local f = CreateFrame('Frame')
      f:RegisterEvent('ADDON_LOADED')
      f:SetScript('OnEvent', function(self, event, addon)
        if addon ~= 'Blizzard_BattlefieldMinimap' then return end
        OnLoad("BattlefieldMinimap")
        hooksecurefunc('BattlefieldMinimap_OnUpdate', OnUpdate)
        hooksecurefunc('BattlefieldMinimapUnit_OnEnter', OnEnter)
      end)
    end

  2. 2 пользователей сказали cпасибо Artur91425 за это полезное сообщение:

    HA1DEKS (13.06.2021),mekas (13.06.2021)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •