Как узнать версию графики в Warcraft 3 Reforged?

Not published
» Способ реализации: Lua
» Тип: Алгоритм
» Версия Warcraft: 132+
Минимум пояснений, всё в карте примере
» Содержимое fdf HD
Frame "SIMPLESTATUSBAR" "Chk" {
	Frame "SIMPLEFRAME" "" {
		DecorateFileNames,
		SetAllPoints,
		Layer "ARTWORK" {
			String "graph"{
				Text "HD",
			}
		}
	}
}
» Содержимое fdf SD
Frame "SIMPLESTATUSBAR" "Chk" {
	Frame "SIMPLEFRAME" "" {
		DecorateFileNames,
		SetAllPoints,
		Layer "ARTWORK" {
			String "graph"{
				Text "SD",
			}
		}
	}
}
Функция для проверки графики
function GetVersionGraph()
	BlzCreateSimpleFrame("Chk", BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0), 0)
	return BlzFrameGetText(BlzGetFrameByName("graph", 0))
end
И самое главное ИМПОРТ, это очень важно
Нужно 2 разных файла fdf SD и fdf HD, положить в разные графически пути, но назвать потом ОДИНАКОВО, чтобы в итоге получилось как на скрине
Спасибо пользователю prog за наводку в реализации метода
"Спасибо" Близзардам за то что не дали нативку


Views: 1 065

Bergi_Bear #1 - 11 months ago 0
Голосов: +0 / -0
И самые главный вопрос зачем всё это?
Например для изменения размера некоторых эффектов, которые слишком большие в HD режиме
Или же можно сделать полное отключение некоторых графических элементов в SD или HD графике, для повышения производительности на слабых компьютерах
Это сообщение удалено
JackFastGame #3 - 6 months ago 0
Голосов: +0 / -0
Bergi_Bear:
И самые главный вопрос зачем всё это?
Например для изменения размера некоторых эффектов, которые слишком большие в HD режиме
Или же можно сделать полное отключение некоторых графических элементов в SD или HD графике, для повышения производительности на слабых компьютерах
Я не мог перенести Скиллшот Арену на Рефорджед из-за этого бага. Масштаб у всех юнитов разный, даже у снарядов. Из-за этого перенос карты невозможен, т.к. если делать масштаб под одну графику, на другой будет дикое несоответствие хитбоксов и визуала, что очень важно для карты. Делал этот багрепорт ещё когда бета Рефорджеда была. До сих пор не пофиксили.
Bergi_Bear #4 - 6 months ago 0
Голосов: +0 / -0
JackFastGame, Да и не будут скорее всего этим уж точно заниматься. Если по сабжу, вроде как доступен способ без стороннего импорта определить графику. Через чтение значения локализованной строки isreforged.
Proshel_Doty #5 - 6 months ago 0
Голосов: +0 / -0
Если уж пилить на рефордже, то делать под новый графон, смысл обычный ещё поддерживать
Можно, конечно, как дополнение, но мне кажется, оно того не стоит
ScorpioT1000 #6 - 6 months ago (изм. ) 1
Голосов: +1 / -0
Некоторые особо одаренные покупают рефордж и ставят SD, у нас так в обзоре конкурса героев протупили пол ролика
PT153 #7 - 6 months ago 0
Голосов: +0 / -0
А не проще ли юзать это?
function IsReforged takes nothing returns boolean
   return GetLocalizedString("REFORGED") != "REFORGED"
endfunction
Bergi_Bear #8 - 6 months ago 0
Голосов: +0 / -0
PT153, пост написан в июле, а этот способ недавно нашли
И я как бы сам написал что есть способ проще
Моё 4 сообщение
Спасибо токсичный Кеп, молодец, выпендрился, доволен?
PT153 #9 - 6 months ago 0
Голосов: +0 / -0
Bergi_Bear, что есть способ проще, ты написал, но саму функцию нет.
Bergi_Bear #10 - 6 months ago 0
Голосов: +0 / -0
PT153, на всё есть способ проще, пойди их напиши на темы 10 летней давности
ScorpioT1000 #11 - 6 months ago 0
Голосов: +0 / -0
Bergi_Bear, мог бы и обновить статью
Bergi_Bear #12 - 6 months ago 0
Голосов: +0 / -0
ScorpioT1000, нет смысла, когда день моих потуг превратился в 1 строчку кода, о которой просто поздно догадались
ScorpioT1000 #13 - 6 months ago 0
Голосов: +0 / -0
Bergi_Bear, там у тебя еще и утечка целого фрейма
makkad #14 - 3 months ago 0
Голосов: +0 / -0
Для себя использую следующий способ (на основе того, что звуковые файлы в SD и HD разные):
function IsHD takes nothing returns boolean
	return GetSoundFileDuration("sound\\buildings\\death\\ancientuprootdeath1.flac")==4631 //4631 - HD; 3250 - SD
endfunction