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

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

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

    Post API GetInstanceLockTimeRemaining

    1) Функция API GetInstanceLockTimeRemaining() https://wowwiki.fandom.com/wiki/API_...kTimeRemaining

    2) Либо вообще не отображает количество убитых боссов в сохраненном инсте, либо возвращает неправильное значение.

    3) Четвертый аргумент должен возвращать количество убитых боссов (Number of bosses already dead in the instance. )

    4) 22-23.07.2019 логон х100

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

    6) 10/10 (влияет не только на работу аддонов, использующих эту функцию, но и на игровой интерфейс, так как используется в StaticPopup.lua)

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


    PHP код:
    StaticPopupDialogs["INSTANCE_LOCK"] = {
        -- 
    we use a custom timer called lockTimeleft in here to avoid special casing the static popup code
        
    -- if you use timeout or timeleft then you will go through the StaticPopup system's standard OnUpdate
        -- code which we don'
    t want for this dialog
        text 
    INSTANCE_LOCK_TIMER,
        
    button1 ACCEPT,
        
    button2 INSTANCE_LEAVE,
        
    OnShow = function(self)
            
    local lockTimeleftisPreviousInstance =GetInstanceLockTimeRemaining();
            if ( 
    lockTimeleft <= then
                self
    :Hide();
                return;
            
    end
            self
    .lockTimeleft lockTimeleft;
            
    self.isPreviousInstance isPreviousInstance;

            
    local typedifficulty;
            
    self.nametypedifficultyself.difficultyName GetInstanceInfo();

            
    self.extraFrame:SetAllPoints(self.text)
            
    self.extraFrame:Show()
            
    self.extraFrame:SetScript("OnEnter"InstanceLock_OnEnter)
            
    self.extraFrame:SetScript("OnLeave"GameTooltip_Hide)
            
        
    end,
        
    OnHide = function(self)
            
    self.extraFrame:SetScript("OnEnter"nil)
            
    self.extraFrame:SetScript("OnLeave"nil)
        
    end,
        
    OnUpdate = function(selfelapsed)
            
    local lockTimeleft self.lockTimeleft elapsed;
            if ( 
    lockTimeleft <= then
                local OnCancel 
    StaticPopupDialogs["INSTANCE_LOCK"].OnCancel;
                if ( 
    OnCancel then
                    OnCancel
    (selfnil"timeout");
                
    end
                self
    :Hide();
                return;
            
    end
            self
    .lockTimeleft lockTimeleft;

            
    local name GetDungeonNameWithDifficulty(self.nameself.difficultyName);

            -- 
    Set dialog message using information that describes which bosses are still around
            local text 
    _G[self:GetName().."Text"];
            
    local lockstring string.format((self.isPreviousInstance and INSTANCE_LOCK_TIMER_PREVIOUSLY_SAVED or INSTANCE_LOCK_TIMER), nameSecondsToTime(ceil(lockTimeleft), nil1));
            
    local timeextending;
            
    timeextendingself.extraFrame.encountersTotalself.extraFrame.encountersComplete GetInstanceLockTimeRemaining();
            
    local bosses string.format(BOSSES_KILLEDself.extraFrame.encountersCompleteself.extraFrame.encountersTotal);
            
    text:SetFormattedText(INSTANCE_LOCK_SEPARATORlockstringbosses);

            -- 
    make sure the dialog fits the text
            StaticPopup_Resize
    (self"INSTANCE_LOCK");
        
    end,
        
    OnAccept = function(self)
            
    RespondInstanceLock(true);
            
    self.nameself.difficultyName nilnil;
            
    self.lockTimeleft nil;
        
    end,
        
    OnCancel = function(selfdatareason)
            if ( 
    reason == "timeout" then
                self
    :Hide();
                return;
            
    end
            RespondInstanceLock
    (false);
            
    self.nameself.difficultyName nilnil;
            
    self.lockTimeleft nil;
        
    end,
        
    timeout 0,
        
    showAlert 1,
        
    whileDead 1,
        
    interruptCinematic 1,
        
    notClosableByLogout 1,
        
    noCancelOnReuse 1,
    }; 
    [свернуть]


    Здесь также задействована функция GetInstanceInfo() https://forum.wowcircle.com/showthread.php?t=896593

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

    local lockTimeleft
    isPreviousInstanceencountersTotalencountersComplete GetInstanceLockTimeRemaining();
    print(
    "---GetInstanceLockTimeRemaining")
    print(
    "1= "..tostring(lockTimeleft))
    print(
    "2= "..tostring(isPreviousInstance))
    print(
    "3= "..tostring(encountersTotal))
    print(
    "4= "..tostring(encountersComplete))
    print(
    "----GetInstanceLockTimeRemainingEncounter")
    for 
    id 1,encountersTotal do
        
    local bossNametextureisKilled GetInstanceLockTimeRemainingEncounter(id);
        print(
    "id= "..id.." bossName= "..tostring(bossName).." texture= "..tostring(texture).." isKilled= "..tostring(isKilled))
    end
    print("---"
    Результат:

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


    ИВК10 с кд 5/5
    WoWScrnShot_072319_003036_ивк10кд.jpg

    тоже кд при входе в инст
    WoWScrnShot_072219_165644_ивк10.jpg

    ИК25 после сохранения кд
    WoWScrnShot_072319_181153_ик25.jpg
    [свернуть]

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

    Animagus (25.07.2019),Musly (25.07.2019)

Ваши права

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