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

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

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

Тема: API UnitExists

  1. #1
    Местный
    Регистрация
    24.02.2014
    Сообщений
    49
    Поблагодарил(а)
    3
    Получено благодарностей: 63 (сообщений: 22).
    Репутация: 63

    Post API UnitExists

    1) Функция API UnitExists https://wowwiki.fandom.com/wiki/API_UnitExists

    2) Не возвращает 1, если рядом находится босс ("bossN")

    3) Должна возвращать 1.

    4) 25.07.2019 логон х100.

    5) Неизвестно как давно это не работает

    6) 10/10 (не работают аддоны, использующие эту функцию при поиске босса, в частности, WhoPulled)

    Код из аддона:

    Скрытый текст

    PHP код:

            local i
    ,boss;
                
    1;
                while(
    UnitExists("boss"..i)) do
                    if(
    UnitName("boss"..i) == enemy[2]) then
                        
    if(not strfind(WhoPulled_Tanks,"[ ,.|]"..player.."[ ,.|]") and not WhoPulled_Ignore[enemy[2]]) then
                            
    if(UnitInRaid("player") and WhoPulled_Settings["rwonboss"] and (IsRaidOfficer() or IsRaidLeader())) then
                                WhoPulled_RaidWarning
    (enemy[2]);
                            else
                                
    WhoPulled_Yell(enemy[2]);
                            
    end
                        end
                        
    break;
                    
    end
                    i 
    i+1;
                
    end 
    [свернуть]


    7) Код который использовался при проверке:
    PHP код:

    for index 1do
        if (
    UnitExists ("boss"..index)) then
            local name 
    UnitName("boss"..index)
            
    local classification UnitClassification("target");
            print(
    "boss"..index.." обнаружен! Его зовут ".. tostring(name)..". Он классифицируется как "..tostring(classification))
        else
            print(
    "boss"..index.." не обрнаружен.")
        
    end            
    end
    if (UnitExists ("target")) then
        local name 
    UnitName("target")
        
    local classification UnitClassification("target");
        print(
    "Имя моего таргета "..tostring(name)..". Он классифицируется как "..tostring(classification))
    end 
    Результат:

    Скрытый текст

    UnitExists_not_exist.jpg
    [свернуть]


    Выскажу свои соображения по этому поводу:
    Первое предположение: Если номер карты локации у нас +1 https://forum.wowcircle.com/showthread.php?t=897978 , то возможно и InstanceMapID также неверный (проверить не знаю как - GetInstanceInfo() на WotLK не возвращает instanceMapID)
    Второе предположение: Для поиска босса функция UnitExists использует журнал DungeonEncounter, который для 3.3.5.12340 использует номера InstanceMapID ( "bossN" - The active bosses of the current encounter if available N (1,2,3 or 4) из https://wowwiki.fandom.com/wiki/UnitId)
    Если первое и второе предположение верно, то и функция UnitExists босса обнаруживать не будет - номер карты не тот - босса нет.
    Третье предположение: Возможно из-за этого также неправильно работают функции https://forum.wowcircle.com/showthread.php?t=897540 и https://forum.wowcircle.com/showthread.php?t=897544

    Это все догадки, факт остается - UnitExists босса, находящегося рядом, не определяет.

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

    Musly (26.07.2019),XVI (26.07.2019)

Ваши права

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