18

» WarCraft 3 / Глючит карта

Если не рефордж, то попробуй откатить карту конвертером и так скопировать куда надо
18

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

Choperok, запилят отдельно распространяемый редактор, так же за отдельную лавеху)
18

» WarCraft 3 / Формат карт Warcraft 3

DracoL1ch, грубо говоря:
берется размер, по этому размеру читается вектор
"Выводилка текста" читает как раз тот самый вектор и мусор до нуля
Проверял память, действительно всё совпадает
Вот как в хексе, не смотри что это конец файла (такое бывает и у первого триггера)

Это не зависит от версии редактора, но пока что у меня в 1.31 наблюдается такое
Но и в 1.26 несколько раз видел

P.S. после //ok и //ko должен стоять '\0' и конечно же размер 5 вместо 4
Просто я вручную редактировал, а так, такое в быту не встречается
Загруженные файлы
18

» WarCraft 3 / Формат карт Warcraft 3

Нашел серьезный косяк в алгоритмах чтения war3map.wct
Тут просто без слов, откройте карту и проверьте оба триггера, запомните что там было написано
Закройте карту и откройте ещё раз (если не будет никаких изменений - то ещё раз закройте/откройте)
P.S. открывать желательно в редакторе 1.31, т.к есть шанс что не увидите этого бага
Загруженные файлы
18

» WarCraft 3 / Формат карт Warcraft 3

GetLocalPlayer, там будут проблемы с событиями (их же в кастом код не сконвертишь)
А так, конвертер можно настроить в обратную сторону, чтобы он отключал и помечал всё что есть только в JNGP
Надо содержимое TriggerData_JNGP_26.txt заменить на TriggerData.txt из 1.31 ("UI\TriggerData.txt")
TriggerData.txt
Загруженные файлы
18

» WarCraft 3 / Формат карт Warcraft 3

PT153, в 1.31 зачем-то ввели эту штуку:
если триггер является комментарием, то он не содержит кода в .wct
(комментарий к триггеру, скрипт, триггер - всё это считается триггером, но с особыми флагами)
у всех остальных код присутствует, даже если это GUI (код конечно же будет пустым)
Пример
if( version == WCT_ROC )
{
	swct.customComment = "";
	swct.customScriptSize = 0;
} else
{
	swct.customComment = file.readStr();
	swct.customScriptSize = file.readInt();
	if( swct.customScriptSize )
	{
		swct.customScript = file.readStr();
	}
}

swct.trigCount = swtg.trgCount;
swct.trigs.resize(swct.trigCount);
for(int i=0;i<swct.trigCount;i++)
{
	TriggerScript& ts = swct.trigs[i];

	if( swtg.trgs[i].isComment )
		ts.size = 0;
	else
	{
		ts.size = file.readInt();
		if( ts.size )
			ts.script = file.readStr();
	}
}
Загруженные файлы
18

» WarCraft 3 / Конвертер карты в 1.26

borissuworov, карты не расчитаны на открытие в игре
Их надо пересохранить в редакторе
10-20 КБ это нормально, если не ошибаюсь, конвертер не сжимает карту после конвертирования

Проверил карту, нормально конвертируется и открывается в игре
Надеюсь исходник не перепутан со сконвертированной картой?)
Т.к варкрафт не будет видеть исходник если он создавался в версии 1.31
18

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

когда уже можно будет устроить замес пеонов 12 на 12?
Скоро рефорж на птр будет?
18

» WarCraft 3 / Конвертер карты в 1.26

ок, понял где ошибка
Попробую по версии редактора в war3map.w3i детектить сколько использовалось игроков, 12 или 24
Заодно исправлю ошибку если сконвертировать карту и снова открыть в 1.31 (типа нейтралы становятся бордовыми и фиолетовыми)

borissuworov, обновил
18

» WarCraft 3 / Открыть карту в редакторе рефорджа

так, я чуть ошибся
содержимое TriggerData_JNGP_26.txt нужно поменять на содержимое TriggerData из 1.32 (CascView, папка UI)
а содержимое TriggerData_JNGP_31.txt поменять на TriggerData_JNGP_26.txt

или лучше просто скинь карту я сам это сделаю
18

» WarCraft 3 / Открыть карту в редакторе рефорджа

Smart096, либо с потерями, либо ждать JNGP для 1.32
В теории конвертер можно легко обмануть
Поменять местами содержимое TriggerData_JNGP_26.txt и TriggerData_JNGP_31.txt
Все функции JNGP которые не поддерживаются - будут отключены и отображаться как "Ошибка"

Только не забудь потом обратно поменять местами, а то даунгрейд карт поломается)
18

» WarCraft 3 / Конвертер карты в 1.26

я эту проблему уже решил)
Везде где только знаю, я уменьшаю номер игрока, к примеру 13 (бордовый) в 1 (красный)
Триггеры, юниты и т.д
Т.е по идее благоприятные условия чтобы карта открылась и сохранилась
Всё остальное, типа ручное указывае номера игрока, мультиборды на 24 игрока и т.д - это конечно же должен уже юзер сам исправлять
18

» WarCraft 3 / Конвертер карты в 1.26

UPD:
остался по идее последний шаг
До этого я просто отключал несовместимые функции, но теперь оказалось что могут быть ещё несовместимые типы, параметры и т.д
Придется уже серьёзно написать код чтобы это лечить, заодно придется в один большой лог выводить всё что было удалено
18

» WarCraft 3 / подменить war3map.lua на свой кастомный

Надо не забывать что в war3map.w3i лежит флаг который говорит игре/редактору что юзать
К примеру если карта сохранялась в JASS-моде, то нельзя будет вместо war3map.j подсунуть war3map.lua и наоборот

И после подмены скрипта важно не сохранять карту в редакторе - иначе всё сводится к бесполезности
18

» WarCraft 3 / Урон скилла множенный на стату

  1. Сделать молот-бурь пустышку
  2. Отловить момент когда он кидается на юнита
  3. Создать дамми юнита и заставить его кидать настоящий молот бурь
  4. Сохранить по хендлу дамми всё что нужно, к примеру урон
  5. Отловить событие получения урона
  6. Если тот кто наносит урон имеет равкод этого дамми, то берем по его хендлу урон и наносим его цели
P.S. и нужно в событии получения урона делать проверку чтобы он был больше 0

В текущей реализации урон нанесется ещё до того как молоток полетит
18

» WarCraft 3 / Конвертер карты в 1.26

нашли где офтопить(
я пока что пишу конвертирование триггеров, закончу в ближайшие несколько часов и напишу конвертирование данных о камерах

UPD:
окей не сегодня, конвертер триггеров готов, но там куча багов (а это надо на свежую голову чинить)

UPD:
дописал и довёл до рабочего состояния конвертер триггеров
ща отдохну и по быстрому надо написать конвертер камер + вывод и удаление несовместимых функций триггеров

UPD:
дописал конвертер камер, доработал/укомплектовал код и сделал его адекватным
думаю сегодня вечером уже закончу
ещё несколько дней наверное займет оформление графической оболочки
а там уже можно будет код в опенсорс на гитхаб залить

UPD:
всё отдебажил, всё в рабочем состоянии
осталось сделать "стресс-тест" и прочие проверки чтобы всё работало без ошибок конвертирования
думаю сегодня вечером уже опубликую
графическую оболочку пока что не хочется делать, т.к там свои тонкости и геморрой
главное программа в рабочем состоянии)))
с гитхабом тоже придется потянуть

UPD:
как обычно всплыла ещё проблема после тестов
war3mapUnits.doo если содержит индексы игрока больше 12 - то карта фаталит
так же с war3map.w3i
и как я это прогадал...
в общем завтра окончательно допишу и опубликую
18

» WarCraft 3 / Бета версия Warcraft III Reforged 1.32

рефордж на птр уже есть?
Просто надо кое что проверить в редакторе