TeX13, карта в весе не потеряла после такой процедуры?
если в весе не потеряла и бекапов нигде нету - то скинь карту сюда или в лс, я попробую пошаманить
на крайний случай всегда можно вытащить war3map.wpm (ландшафт)
если не поможет - то последняя запущенная с редактора карта должна лежать по пути:
C:\Users\%USERNAME%\AppData\Local\Temp\Maps\Test
(просто вбей это в строку над проводником) Так у 1.31, хз как в 1.30
P.S. "запущенная" через кнопку "Проверка карты"
vasya1, проблема знака '-' в том что не получится в пути написать пробелы, поэтому лучше путь пихать в кавычки "")
только нафиг '-' писать) Да и вообще никто так не делает вроде)
vasya1, не может быть) У меня всё открывалось и там нету разницы по формату) Откроется даже TurtleRock.txt
А сама карта больше нигде не открыта? Никакие приложения не используют её?
Забыл в инструкцию добавить:
можно просто запустить карту с помощью pw3i.exe (тупо навести на .exe), output в этом случае должен сохраниться там где лежала карта
А из cmd примерно вот так: pw3i.exe "D:\Warcraft 3\Maps\TurtleRock.w3x"
И ещё надо учесть что строки могут содержать переходы, походу надо кидать строки в блок {}
vasya1, ух ладно короче ща по феншую допилю отображение полного названия ошибки
заодно засуну строки в {}
vasya1, number of players это кол-во игроков заданное редактором
к примеру ты сделал в игре 5 игроков, остальные 7 выключены и num of players будет стоять на пяти.
Да, я накосячил, указывать игроков и так и так не нужно.
Мне во время парса игроков надо запомнить какие в игре, а какие нет (долго объяснять почему, просто лишние 12 игроков прилипали к первому клану при 24 игроках)
и ещё кое что хотел сказать:
.w3i может ссылаться на строки из war3map.wts
у меня есть парсер который составляет таблицу строк из .wts
но одно большое но
раскрыть
.wts должен быть строго по шаблону:
STRING 123
{
text
}
просто иногда есть люди которые ради незначительной экономии размера или красоты сокращают .wts до такого шаблона:
STRING 123
{text}
и ещё есть туча способов и варкрафт их прочитает
WorldEditor собирает .wts по первому шаблону
а точить парсер .wts под все случаи и ошибки в .wts - такое себе
поэтому я в output.txt добавил отображение номера TRIGSTR (если он конечно используется, т.к в .w3i можно писать строки не ссылась в .wts)
Steal nerves, да ладно фиг с этой статьей, в ней есть неточности
в основном это перепутаны флаги
пруф
в .w3i лежит инфа о кланах, в том числе их флаги
чтобы проще понять - эти флаги идут как набор единиц и нулей (да/нет), читаются справа налево и у кланов их пять
От "Союзник" до "Общие войска: все"
Так вот
Я собрал карту, взял флаг и там написано 11000, т.е если исходить из той статьи
раскрыть
0x00000001: allied (force 1)
0x00000002: allied victory
0x00000004: share vision
0x00000010: share unit control
0x00000020: share advanced unit control
у меня должны стоять галки на "Общие войска" и "Общие войска: все"
но проблема вот в чем:
я конечно сразу посчитал это тем что я не выспался, поэтому вручную каждый флаг перепроверял и всё равно не совпадает со статьей
Вот правильный список составил:
0x00000001 Allied
0x00000002 Share victory
0x00000004 Share advanced unit control
0x00000008 Share vision
0x00000010 Share unit control
В общем собрал парсер, инструкция в архиве
Точность не гарантирую, но вроде все пункты правильно парсятся)
P.S. Технологии/Способности/Улучшения/Случайные предметы/Таблицы предметов не стал делать, т.к это геморройно и долго очень
В war3map.w3i всё хранится
В ROC картах он чуть отличается от TFT
Если говорить по версиям, то близзарды .w3i меняли только в 1.31 чтобы добавить пункт с луа и еще какие то 4 константы + они убрали различие между ROC и TFT картами (т.е и в тех и в других будет одна и та же структура .w3i)
У меня есть сурс от парсера, но он заточен чтобы брать нужные значения, типа высота-ширина карты и т.д
И там нету гуи) Ну всмысле тупо код чтобы распарсить .w3i
Чего ж сразу ручками, можно же из карты собранный jass вытащить)
Вот этот вариант самый верный.
Тут есть один нюанс
Привычные переносы строки это сочетание 0x0D0A
Вакрафту пофиг на такие переносы, он пережует и 0D и 0A хоть по отдельности, а вот блокнот поломается)
если у cJass включена оптимизация - то пишется 0A, тулы векса пишут 0D
я специально написал parsed_war3map.j, а не optimized_war3map.j (чтобы люди, не имеющие под рукой hex редактор смогли читать код) оптимизация включена - в vJass парсер передается optimized_war3map.j, выключена - то передается parsed_war3map.j
И в каком месте вариант самый верный если вопрос был о vJass?
Парсер cJass'а парсит код прямо в vJass, т.к он обязан парсить в том числе конструкции vJass которые написаны на cJass, то что оптимизирует - согласен
scope TestScope
{
}
//Разве может на выходе это оказаться сразу в JASS2?)
//Это пропарсится в
scope TestScope
endscope
//А уже потом JassHelper (vJass) из этого соберет war3map.j
Мой вариант практичнее всего, т.к выигрывает время на зарезервированных словах типа "function" и т.д
А насчет
некоторых хитрых конструкций
Блин, можно в пустой карте комментариями оградить нужный код в одном "триггере", а дальше имхо быстрее будет выделять и делать таб, чем сидеть и писать тучу букв
в jngp сначала код обрабатывает парсер cJass'a, потом vJass'a
если подумать логически, то cJass и так на выходе должен выдать код на vJass
берешь вырубаешь vJass, сохраняешь карту и берешь уже готовый код по пути ...\Jass New Gen Pack Rebuild\AdicHelper\parsed_war3map.j
upd:
пардон, vJass можно не отключать)
NazarPunk, а где я говорил что я лучше кого то?
я сказал что понимаю в ассемблере, но опыта очень не хватает и тяжело искать нужный/годный мануал
надоели, честное слово
что ни скажи - то понт
quq_CCCP, вот нашел один сегмент и там подозрительные константы (.rdata это сегмент констант как я помню)
вот байтовый массив 'Ogre Magi has a lot of survivability but he does need the ability'
и таких ещё дофига
'ReplaceableTextures\CommandButtons\BTNHeroTinker.blp'
попробую по их адресу порыть че нибудь
нашел перекрестные ссылки в сегменте .text
аж даже интересно стало
.text сегмент это вроде уже сам исполняемый код, блин, у меня такое ощущение что они этим .exe собирают что то
т.к эти константы почему то ровно в столбик передаются куда то
Bergi_Bear, для бара-варс можно такую идею сделать:
скорость разгона будет разной, если оба бары столкнутся - то победит тот, у кого скорость разгона выше ну или итемы такие то
ещё может быть вот так, один бара стоит - другой разогнался, второй прилетел и убил первого бару, т.к тот стоял (т.е скорость разгона 0)
игра будет что то типа вышибал
» WarCraft 3 / Отключили свет = минус карта
» WarCraft 3 / Отключили свет = минус карта
если в весе не потеряла и бекапов нигде нету - то скинь карту сюда или в лс, я попробую пошаманить
на крайний случай всегда можно вытащить war3map.wpm (ландшафт)
» WarCraft 3 / Отключили свет = минус карта
C:\Users\%USERNAME%\AppData\Local\Temp\Maps\Test
(просто вбей это в строку над проводником)
Так у 1.31, хз как в 1.30
P.S. "запущенная" через кнопку "Проверка карты"
» WarCraft 3 / Отключили свет = минус карта
» WarCraft 3 / Где и как считать свойства карты?
» WarCraft 3 / Где и как считать свойства карты?
у тебя просто нету карты с таким именем
» WarCraft 3 / Где и как считать свойства карты?
до "-(4)TurtleRock.w3x"
после "(4)TurtleRock.w3x"
» WarCraft 3 / Где и как считать свойства карты?
только нафиг '-' писать) Да и вообще никто так не делает вроде)
вроде решил проблему
» WarCraft 3 / Где и как считать свойства карты?
всегда были проблемы с этими русскими буквами...
» WarCraft 3 / Где и как считать свойства карты?
А сама карта больше нигде не открыта? Никакие приложения не используют её?
Забыл в инструкцию добавить:
можно просто запустить карту с помощью pw3i.exe (тупо навести на .exe), output в этом случае должен сохраниться там где лежала карта
А из cmd примерно вот так: pw3i.exe "D:\Warcraft 3\Maps\TurtleRock.w3x"
И ещё надо учесть что строки могут содержать переходы, походу надо кидать строки в блок {}
vasya1, ух ладно короче ща по феншую допилю отображение полного названия ошибки
заодно засуну строки в {}
Ред. Hodor
» WarCraft 3 / Где и как считать свойства карты?
к примеру ты сделал в игре 5 игроков, остальные 7 выключены и num of players будет стоять на пяти.
Да, я накосячил, указывать игроков и так и так не нужно.
Мне во время парса игроков надо запомнить какие в игре, а какие нет (долго объяснять почему, просто лишние 12 игроков прилипали к первому клану при 24 игроках)
8gabriel8: я подумаю)
vasya1,
и ещё кое что хотел сказать:
.w3i может ссылаться на строки из war3map.wts
у меня есть парсер который составляет таблицу строк из .wts
но одно большое но
WorldEditor собирает .wts по первому шаблону
поэтому я в output.txt добавил отображение номера TRIGSTR (если он конечно используется, т.к в .w3i можно писать строки не ссылась в .wts)
» WarCraft 3 / Где и как считать свойства карты?
в основном это перепутаны флаги
чтобы проще понять - эти флаги идут как набор единиц и нулей (да/нет), читаются справа налево и у кланов их пять
От "Союзник" до "Общие войска: все"
Я собрал карту, взял флаг и там написано 11000, т.е если исходить из той статьи
но проблема вот в чем:
В общем собрал парсер, инструкция в архиве
Точность не гарантирую, но вроде все пункты правильно парсятся)
P.S. Технологии/Способности/Улучшения/Случайные предметы/Таблицы предметов не стал делать, т.к это геморройно и долго очень
» WarCraft 3 / Где и как считать свойства карты?
нуууу, это не совсем скрипт, это считай кусок кода из хостбота
Экспорт в .txt можно сделать, но не раньше чем завтра (мб к вечеру освобожусь)
» WarCraft 3 / Где и как считать свойства карты?
» WarCraft 3 / Где и как считать свойства карты?
В ROC картах он чуть отличается от TFT
Если говорить по версиям, то близзарды .w3i меняли только в 1.31 чтобы добавить пункт с луа и еще какие то 4 константы + они убрали различие между ROC и TFT картами (т.е и в тех и в других будет одна и та же структура .w3i)
У меня есть сурс от парсера, но он заточен чтобы брать нужные значения, типа высота-ширина карты и т.д
И там нету гуи)
Ну всмысле тупо код чтобы распарсить .w3i
» WarCraft 3 / cJass -> vJass
Привычные переносы строки это сочетание 0x0D0A
Вакрафту пофиг на такие переносы, он пережует и 0D и 0A хоть по отдельности, а вот блокнот поломается)
если у cJass включена оптимизация - то пишется 0A, тулы векса пишут 0D
я специально написал parsed_war3map.j, а не optimized_war3map.j (чтобы люди, не имеющие под рукой hex редактор смогли читать код)
оптимизация включена - в vJass парсер передается optimized_war3map.j, выключена - то передается parsed_war3map.j
И в каком месте вариант самый верный если вопрос был о vJass?
Парсер cJass'а парсит код прямо в vJass, т.к он обязан парсить в том числе конструкции vJass которые написаны на cJass, то что оптимизирует - согласен
Мой вариант практичнее всего, т.к выигрывает время на зарезервированных словах типа "function" и т.д
А насчет Блин, можно в пустой карте комментариями оградить нужный код в одном "триггере", а дальше имхо быстрее будет выделять и делать таб, чем сидеть и писать тучу букв
ну я имел в виду после того как карта пропарсится
» WarCraft 3 / cJass -> vJass
если подумать логически, то cJass и так на выходе должен выдать код на vJass
берешь вырубаешь vJass, сохраняешь карту и берешь уже готовый код по пути ...\Jass New Gen Pack Rebuild\AdicHelper\parsed_war3map.j
upd:
пардон, vJass можно не отключать)
» WarCraft 3 / Лаги при создание юнитов через loop
» WarCraft 3 / Rikimaru из DotA 6.83d
я сказал что понимаю в ассемблере, но опыта очень не хватает и тяжело искать нужный/годный мануал
надоели, честное слово
что ни скажи - то понт
» WarCraft 3 / Rikimaru из DotA 6.83d
NazarPunk: знал бы ты как тяжело искать нужные мануалы, а ведь ещё самому их понимать приходится
а на лекции всё по полочкам и по буквам рассказывают
» WarCraft 3 / Rikimaru из DotA 6.83d
в .rdata прячутся именно все строки которые под "" бывают в.j
блин, реально ощущение такое что они вышли за рамки вм jass'a и код доты исполняется прямо "над варкрафтом"
это резонней, "нативный мемхак", меньше лагов и т.д
Ред. Hodor
» WarCraft 3 / Rikimaru из DotA 6.83d
quq_CCCP, вот нашел один сегмент и там подозрительные константы (.rdata это сегмент констант как я помню)
вот байтовый массив 'Ogre Magi has a lot of survivability but he does need the ability'
и таких ещё дофига
'ReplaceableTextures\CommandButtons\BTNHeroTinker.blp'
попробую по их адресу порыть че нибудь
нашел перекрестные ссылки в сегменте .text
аж даже интересно стало
.text сегмент это вроде уже сам исполняемый код, блин, у меня такое ощущение что они этим .exe собирают что то
т.к эти константы почему то ровно в столбик передаются куда то
» WarCraft 3 / Rikimaru из DotA 6.83d
скорость разгона будет разной, если оба бары столкнутся - то победит тот, у кого скорость разгона выше ну или итемы такие то
ещё может быть вот так, один бара стоит - другой разогнался, второй прилетел и убил первого бару, т.к тот стоял (т.е скорость разгона 0)
игра будет что то типа вышибал
» WarCraft 3 / Rikimaru из DotA 6.83d