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

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

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

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Эксперт
    Регистрация
    17.01.2014
    Сообщений
    623
    Поблагодарил(а)
    0
    Получено благодарностей: 98 (сообщений: 59).
    Репутация: 98

    Lightbulb Активация поддержки DBM'ом героических режимов инстов ЦЛК и РС

    Работоспособность проверена на DBM версии 4.52 r4442 и сервере logon3 x1 PvE

    Таймеры и способности в об и гер режимах иногда сильно различаются. Для выяснения текущей сложности инста в DBMе используется следующая функция:
    Код:
    function bossModPrototype:GetDifficulty() 
    	local _, instanceType, difficulty, _, _, playerDifficulty, isDynamicInstance = GetInstanceInfo()
    	if instanceType == "raid" and isDynamicInstance then -- "new" instance (ICC)
    		if difficulty == 1 then -- 10 men
    			return playerDifficulty == 0 and "normal10" or playerDifficulty == 1 and "heroic10" or "unknown"
    		elseif difficulty == 2 then -- 25 men
    			return playerDifficulty == 0 and "normal25" or playerDifficulty == 1 and "heroic25" or "unknown"
    		end
    	else -- support for "old" instances
    		if GetInstanceDifficulty() == 1 then 
    			return (self.modId == "DBM-Party-WotLK" or self.modId == "DBM-Party-BC") and "normal5" or 
    			self.hasHeroic and "normal10" or "heroic10" 
    		elseif GetInstanceDifficulty() == 2 then 
    			return (self.modId == "DBM-Party-WotLK" or self.modId == "DBM-Party-BC") and "heroic5" or 
    			self.hasHeroic and "normal25" or "heroic25" 
    		elseif GetInstanceDifficulty() == 3 then 
    			return "heroic10" 
    		elseif GetInstanceDifficulty() == 4 then 
    			return "heroic25" 
    		end
    	end
    end
    где GetInstanceInfo() стандартная функция интерфейса WoW API, возвращающая подробную информацию об инсте.

    Блок
    Код:
    		if difficulty == 1 then -- 10 men
    			return playerDifficulty == 0 and "normal10" or playerDifficulty == 1 and "heroic10" or "unknown"
    		elseif difficulty == 2 then -- 25 men
    			return playerDifficulty == 0 and "normal25" or playerDifficulty == 1 and "heroic25" or "unknown"
    		end
    возвращает значение сложности (normal10/normal25/heroic10/heroic25/unknown) для инстов ЦЛК/РС в зависимости от значений параметров difficulty и playerDifficulty. Всё было бы хорошо, если бы GetInstanceInfo() не возвращал значения 3 и 4 для параметра difficulty в инстах ЦЛК/РС 10гер/25гер. А так как эта часть кода не обрабатывает значения difficulty равные 3 и 4, то никакое значение обратно не передаётся. Чтобы всё заработало "как надо", следует подкорректировать данную функцию:

    Код:
    function bossModPrototype:GetDifficulty() 
    	local _, instanceType, difficulty, _, _, playerDifficulty, isDynamicInstance = GetInstanceInfo()
    	if instanceType == "raid" and isDynamicInstance then -- "new" instance (ICC)
    		if difficulty == 1 or difficulty == 3 then -- 10 men
    			return playerDifficulty == 0 and "normal10" or playerDifficulty == 1 and "heroic10" or "unknown"
    		elseif difficulty == 2 or difficulty == 4 then -- 25 men
    			return playerDifficulty == 0 and "normal25" or playerDifficulty == 1 and "heroic25" or "unknown"
    		end
    	else -- support for "old" instances
    		if GetInstanceDifficulty() == 1 then 
    			return (self.modId == "DBM-Party-WotLK" or self.modId == "DBM-Party-BC") and "normal5" or 
    			self.hasHeroic and "normal10" or "heroic10" 
    		elseif GetInstanceDifficulty() == 2 then 
    			return (self.modId == "DBM-Party-WotLK" or self.modId == "DBM-Party-BC") and "heroic5" or 
    			self.hasHeroic and "normal25" or "heroic25" 
    		elseif GetInstanceDifficulty() == 3 then 
    			return "heroic10" 
    		elseif GetInstanceDifficulty() == 4 then 
    			return "heroic25" 
    		end
    	end
    end
    Сама функция находится в файле DBM-Core.lua каталога DBM-Core

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

    j.Foxy (30.05.2014),Manool (29.05.2014),NoGoodLife (02.08.2020)

Похожие темы

  1. Ответов: 0
    Последнее сообщение: 29.05.2014, 04:13
  2. Ответов: 0
    Последнее сообщение: 14.12.2013, 15:46
  3. Ответов: 6
    Последнее сообщение: 28.10.2013, 22:50
  4. Отчети Гмов/модеров/админов
    от Zewer в разделе Отклонено
    Ответов: 1
    Последнее сообщение: 27.12.2012, 02:21

Ваши права

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