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

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

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 12 из 27

Тема: Карта!

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Гуру Аватар для HA1DEKS
    Регистрация
    02.02.2020
    Сообщений
    439
    Поблагодарил(а)
    368
    Получено благодарностей: 170 (сообщений: 108).
    Репутация: 170

    Карта!

    /close
    Последний раз редактировалось HA1DEKS; 18.11.2022 в 19:12.

  2. #2
    Заблокирован
    Регистрация
    09.06.2016
    Адрес
    Rivne, Ukraine
    Сообщений
    907
    Поблагодарил(а)
    244
    Получено благодарностей: 412 (сообщений: 237).
    Репутация: 412
    Трекинг? Аддонами нельзя, сишная часть все рисует

  3. #3
    Заблокирован
    Регистрация
    09.06.2016
    Адрес
    Rivne, Ukraine
    Сообщений
    907
    Поблагодарил(а)
    244
    Получено благодарностей: 412 (сообщений: 237).
    Репутация: 412
    local RAID_CLASS_COLORS = RAID_CLASS_COLORS
    local UnitIsPlayer = UnitIsPlayer
    local UnitClass = UnitClass

    hooksecurefunc("WorldMapUnit_Update",function(self)
    local unitID = self.unit
    if UnitIsPlayer(unitID) then
    local _,class = UnitClass(unitID)
    local color = RAID_CLASS_COLORS[class]
    self.icon:SetVertexColor(color.r,color.g,color.b,1)
    return
    end
    icon:SetVertexColor(1,1,1)
    end)


    - - - Updated - - -

    но надо еще текстуру найти белую что бы цвета не смешивались

  4. #4
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59
    Цитата Сообщение от Xайдекс Посмотреть сообщение
    неактивных игроков на бг
    И Xайдекс получит медаль за репорт вставших афк игроков

    Цитата Сообщение от Xайдекс Посмотреть сообщение
    по дефолту иконки окрашиваются в фиолетовый цвет.
    Или побежит скорее их ганкать. А то активные то ему под сраку дают.
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

  5. #5
    Инопланетянин Аватар для Yamadao
    Регистрация
    24.04.2014
    Адрес
    Стальгорн. Банк
    Сообщений
    3,190
    Поблагодарил(а)
    273
    Получено благодарностей: 773 (сообщений: 541).
    Репутация: 507
    Цитата Сообщение от Worldwidex Посмотреть сообщение
    И Xайдекс получит медаль за репорт вставших афк игроков


    Или побежит скорее их ганкать. А то активные то ему под сраку дают.
    Хайдекс один из немногих, кто умеет (!) играть на сове. Да, 1х1 он получает по попке (я наказывал), но в командной игре на том же рбг он один из лучших друидов и лучшая сова

  6. 1 пользователь сказал cпасибо Yamadao за это полезное сообщение:

    HA1DEKS (12.06.2021)

  7. #6
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59
    Цитата Сообщение от Yamadao Посмотреть сообщение
    Хайдекс один из немногих, кто умеет (!) играть на сове. Да, 1х1 он получает по попке (я наказывал), но в командной игре на том же рбг он один из лучших друидов и лучшая сова
    Вся его командная игра заключается в прятании за спины более сильных товарищей под боп включать звездопад, а потом убегать на инженерке. На большее он не способен.
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

  8. #7
    Эксперт
    Регистрация
    26.12.2019
    Сообщений
    581
    Поблагодарил(а)
    26
    Получено благодарностей: 59 (сообщений: 44).
    Репутация: 59
    Цитата Сообщение от Xайдекс Посмотреть сообщение
    отпиши в игре как убьешь меня,
    Я делал это 10-ки раз пока ты не начал просто ливать с бг


    Цитата Сообщение от Xайдекс Посмотреть сообщение
    Я не конфликтный человек
    Да, и поэтому ты просто смываешься когда запахнет жареным на крыльях инженерии алхимии и еще бог знает чего. Ты не боец - ты курица
    Игрок может сменить сервер, но не намерение.
    "Починим сервер вместе!"

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

    Вложение 943321

    - - - Updated - - -

    Это уже есть в аддонах, но еще там много лишнего и в целом они отвратительны.
    Для меня идеальным решением этой проблемы была бы замена стандартных иконок на идентичные цвета классов с миникарты, с возможность увеличения самих иконок на карте и присутствием отображения неактивных игроков на бг, по дефолту иконки окрашиваются в фиолетовый цвет.
    Эти текстуры лежат в Interface\Minimap\PartyRaidBlips.blp. Вот код с панд.
    Код:
    local select = select
    local GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty = GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty
    
    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;
    
    for i=1,4 do
      local partyIcon = _G["WorldMapParty"..i.."Icon"]
      partyIcon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
    end
    
    for i=1,40 do
      local raidIcon = _G["WorldMapRaid"..i.."Icon"]
      raidIcon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
    end
    
    hooksecurefunc("WorldMapUnit_Update",function(self)
      local unit = self.unit
      if UnitIsPlayer(unit) then
        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
    end)
    P.S. можете объяснить, в чем разница на миникарте в текстурах которые цельные и которые вырезанные?) Никогда не понимал этого.

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

    HA1DEKS (13.06.2021)

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

    Вложение 943474
    да)

    - - - Updated - - -

    <br>блин, до меня дошло! Тестуры с дыркой это люди, которые НЕ в твоей группе!

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

    HA1DEKS (13.06.2021)

  13. #10
    Почетный флудер Аватар для Artur91425
    Регистрация
    25.10.2012
    Адрес
    Россия
    Сообщений
    2,772
    Поблагодарил(а)
    339
    Получено благодарностей: 558 (сообщений: 391).
    Репутация: 1047
    Обновил код в сообщении выше (взял код с панд), теперь логика как для миникарты. То есть если вы в рейде, то ВАША группа будет с цельными текстурами, а все игроки ВНЕ вашей группы будут иметь текстуры "пончики" (с дыркой по-середине).

    - - - Updated - - -

    Цитата Сообщение от Xайдекс Посмотреть сообщение
    Нет, точки не от этого, и не от пвп статуса)

    - - - Updated - - -

    Бог знает от чего они, мне не ответили)

    Да, они от этого. Я по коду понял.
    Код:
        if ( IsInRaid() ) then
            for i=1, MAX_PARTY_MEMBERS do
                local partyMemberFrame = _G["WorldMapParty"..i];
                partyMemberFrame:Hide();
            end
            for i=1, MAX_RAID_MEMBERS do
                local unit = "raid"..i;
                local partyX, partyY = GetPlayerMapPosition(unit);
                local partyMemberFrame = _G["WorldMapRaid"..(playerCount + 1)];
                if ( (partyX == 0 and partyY == 0) or UnitIsUnit(unit, "player") ) then
                    partyMemberFrame:Hide();
                else
                    partyX = partyX * WorldMapDetailFrame:GetWidth();
                    partyY = -partyY * WorldMapDetailFrame:GetHeight();
                    partyMemberFrame:SetPoint("CENTER", "WorldMapDetailFrame", "TOPLEFT", partyX, partyY);
                    local class = select(2, UnitClass(unit));
                    if ( class ) then
                        if ( UnitInParty(unit) ) then
                            partyMemberFrame.icon:SetTexCoord(
                                BLIP_TEX_COORDS[class][1],
                                BLIP_TEX_COORDS[class][2],
                                BLIP_TEX_COORDS[class][3],
                                BLIP_TEX_COORDS[class][4]
                            );
                        else
                            partyMemberFrame.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
                    end
                    partyMemberFrame.name = nil;
                    partyMemberFrame.unit = unit;
                    partyMemberFrame:Show();
                    playerCount = playerCount + 1;
                end
            end
    Вот этот BLIP_RAID_Y_OFFSET сдвигает текстуры на те, которые с дыркой для случая если IsInRaid() (в рейде) и UnitInParty(unit) (вне группы. Вне потому что BLIP_RAID_Y_OFFSET после else).
    Вложение 943484

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

    HA1DEKS (13.06.2021)

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

    Вложение 943497

    - - - Updated - - -

    Есть вариант добавления в этот код скалирования иконок? Используя такой вариант карты они получаются слишком мелкими, лишним это не будет.

    И еще неплохо было бы изменить тултипы, сделав окрас ников в цвет классов, с процентным соотношением хп рядом, как в аддоне который кидал Экзорцист, а я бы отблагодарил тебя чем нибудь позже за помощь)
    Так нормально? :
    Untitled.png

    Код


    Чтобы не заморачиваться с настройками и не плодить тонну кода - размер иконок настраивается через глобальную переменную "WORLDMAP_UNITBUTTON_TEXTURE_SIZE" (в коде выделил красным). Сделал глобально, чтобы можно было быстро изменять размер из игры без перезагрузки пользовательского интерфейса. Достаточно просто использовать макрос:
    Код:
    /run WORLDMAP_UNITBUTTON_TEXTURE_SIZE = <значение>
    Код:
    local select = select
    local GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty, PlayerIsPVPInactive = GetNumRaidMembers, UnitIsPlayer, UnitClass, UnitInParty, PlayerIsPVPInactive
    
    WORLDMAP_UNITBUTTON_TEXTURE_SIZE = 64 -- default - 16
    
    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;
    
    for i=1,4 do
      local partyUnitButton = _G["WorldMapParty"..i]
      partyUnitButton:SetSize(WORLDMAP_UNITBUTTON_TEXTURE_SIZE, WORLDMAP_UNITBUTTON_TEXTURE_SIZE)
      partyUnitButton.icon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
    end
    
    for i=1,40 do
      local raidUnitButton = _G["WorldMapRaid"..i]
      raidUnitButton:SetSize(WORLDMAP_UNITBUTTON_TEXTURE_SIZE, WORLDMAP_UNITBUTTON_TEXTURE_SIZE)
      raidUnitButton.icon:SetTexture('Interface\\Minimap\\PartyRaidBlips.blp')
    end
    
    hooksecurefunc("WorldMapUnit_Update",function(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)
    
    hooksecurefunc('WorldMapUnit_OnEnter', function(self, motion)
      local unit = self.unit
      if not UnitIsPlayer(unit) then return end
    
      local tooltipText = ""
      local class = select(2, UnitClass(unit))
      local name = UnitName(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, name)
      if ( PlayerIsPVPInactive(unit) ) then
        tooltipText = PLAYER_IS_PVP_AFK:format(coloredName)
      else
        tooltipText = coloredName
      end
      WorldMapTooltip:SetText(tooltipText)
      WorldMapTooltip:Show()
    end)
    [свернуть]

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

    HA1DEKS (13.06.2021)

  17. #12
    Гуру Аватар для KpoTwOw~
    Регистрация
    21.04.2017
    Адрес
    Continental
    Сообщений
    477
    Поблагодарил(а)
    669
    Получено благодарностей: 272 (сообщений: 139).
    Репутация: 963
    Аддон - Mapster пробовал? он должен тебя вполне устроить, по цветам показывает на карте всех.
    Последний раз редактировалось KpoTwOw~; 12.06.2021 в 14:44.

Страница 1 из 3 123 ПоследняяПоследняя

Ваши права

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