23

» WarCraft 3 / импорт карт в blender

konvan5, Ninja Riper это делает. Текстуры он тоже извлекает и сохраняет в dds. А вот рип моделей нужно потом переводить с помощью другой проги во вменяемый формат. И у рипа все модели скучкованы друг на друга, отделять потом приходится
23

» WarCraft 3 / Конвертировать триггеры в листы с кодом

Vladimir TVK, Понял, тогда на данный момент остаётся только вручную копипастить всё это дело в файлы и переименовывать, чтоб самому не запутаться. Переименовать функции, я имею в виду, например, добавить им префиксы, чтобы разделить на категории и "библиотеки" и легко находить в листе функций того же JassCraft например. В теории, времени на это не сильно много уйдёт, дня 2 мб. Переименовывать можно автоматически в том же JassCraft через автозамену.
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

rsfghd, да, годно. Спасибо) на время синематиков можно отключать проверку)
23

» WarCraft 3 / импорт карт в blender

Карта - это не модель, это набор параметров для расположения моделей, ну может быть, кроме рельефа, не считая склоны, посему превратить её в 3д сцену и осуществить твою задумку вряд ли возможно софтом. Вручную конечно получится запихнуть все модели юнитов, декора и склонов в блендер, но это адовый геморрой. А для чего тебе такое? Создать модельку для main menu или экрана кампании?
23

» WarCraft 3 / Конвертировать триггеры в листы с кодом

Vladimir TVK, Хм, а имеет ли резон столько триггеров делать? Можно написать отдельную функцию, создающие 10-15 триггеров на основные события, и запускать её на старте, а все механики уже вписывать в функции trigger action, или отдельно, чтобы запускать их из разных триггеров. Да и кода так будет во много раз меньше. Ну и собственно в среде разработки проще будет работать - 1 файл тупо триггеры и их действия, а остальные файлы по механикам
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

konvan5, Да, нехило так. Ещё и двойной афк) Ок, было познавательно.
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

rsfghd, На 1 раз пойдёт, сходят в сортир на всю катку сразу, в быстром темпе, и даже на следующую катку хватит ) а курить за компом будут, лишь бы звуки не слышать )
Но ладно, шутки шутками, а ведь может найтись умник , который попытается систему обойти. Просто если она будет следить за действиями типа спелл каста, начала постройки, создания юнитов итд, игрок может договориться с союзником, чтобы тот агрил на него мобов время от времени, и тогда юниты с автокастом, работающим во время атаки, будут сбивать счётчик. Также атаки других игроков будут сбивать счётчик. Видимо придётся исключить автокастовые абилки из проверки.
Какие ещё проверки для отслеживания тогда стоит сделать?
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

rsfghd, ну это жёстко :D Пожалуй, какой нибудь резкий звук из самой игры пойдёт.
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

rsfghd, может, лучше громкий звук запустить, вместе с сообщением? Просто если игрок афк, он может не увидеть окно, а звук услышит. Прибежит на звук, а там оповещение.
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

ScorpioT1000, да, тоже как вариант, если он 1, то не трогать, а если с союзниками - передать союзникам.
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

konvan5, хм... ладно, буду обдумывать, как сделать. Спасибо )
23

» WarCraft 3 / Допустимое время АФК (игрок отошёл)

ScorpioT1000, да, AFK я имел в виду, сорян, сейчас исправлю)
Союзы не катят, поскольку есть функционал объявления войны и заключения союза. То есть, тут всё меняться будет в процессе игры. И может случиться ситуация, что союзников нет ) Лишь вариант сделать поражение игроку остаётся. Вопрос лишь во времени проверки...
23

» WarCraft 3 / Засунуть в юнита новый реал или интеджер

KaneThaumaturge, Ну и что? Handle Id ведь в массив нужно не как индекс пихать, а как значение. Перед этим естественно проверить, чтобы ячейка была пустая. Затем определять индекс по значению, через цикл по массиву.
Примерно так
function GetIndexArray takes integer Id, integer minIndex, integer maxIndex returns integer
    loop
    exitwhen Id == ArrayName [minIndex] or minIndex > maxIndex
        set minIndex = minIndex + 1
    endloop
        
    return minIndex
endfunction
23

» WarCraft 3 / пассивная способность "кража маны" при атаке

ScorpioT1000, сам урон не задетектить, это верно, увы. Вот и приходится костылить.
23

» WarCraft 3 / Засунуть в юнита новый реал или интеджер

Можно ещё с хэш таблицей извернуться, используя handle id юнита в качестве ключа. Или же сохранить handle id юнита в массив, затем в запуске какого либо триггера определять индекс в массиве и сохранять данные по этому индексу в другие массивы (для одинаковых типов данных можно запилить "двумерный массив"). Или же сохранить самого юнита в отдельный массив и так же определять по индексу. Но в случае с handle id немного jass потребуется, не знаю, ввели ли в jngp в гуи функцию GetHandleId. И в целом это более муторная система, чем с user data. Но как вариант пойдёт ) Короче, возможностей полно.
23

» WarCraft 3 / Не срабатывает условие

konvan5, Ну да, а в данном случае вообще от запроса автора)) не добавил пояснения - ну извините, что просил, то получил)
23

» WarCraft 3 / Не срабатывает условие

konvan5, У него одноразовые, исчезают после покупки)
Насчёт твоего предложения... хм, наверно, я бы сделал 4 абилки пустышки по 2 левела каждая, на каждый вид предмета прописал бы что:
Если предмет продан, и левел пустышки равно 1, то увеличить левел пустышки на 1
И если все 4 пустышки имеют 2 левел, то взорвать лавку.
Ну чтоб получилось MUI, или как оно там правильно называется, когда триггер работает на нескольких юнитах одновременно)
А ещё для оптимизации можно равкоды абилок и предметов согласовать, чтобы равкод абилки был равен равкод предмета + 1, тогда можно обойтись без elseifа при определения типа предмета )
Как то так)
23

» WarCraft 3 / Пасивная способность Ручной паук

rsfghd, она триггерная , понятное дело. В ро такого нет
23

» WarCraft 3 / Не срабатывает условие

konvan5, предлагаю оптимизировать триггер, при покупке любого из 4 предметов проверить user data лавки, затем увеличить user data лавки на 1, а если при проверке будет user data > 4 взорвать лавку )
23

» WarCraft 3 / Пасивная способность Ручной паук

rsfghd, я играл как-то в эту кампанию, суть примерно в том, что после завершения исследования за произведённым в казарме юнитом создаётся автоматически паук и следует за юнитом, и автоматом атакует врагов на пути, или врагов юнита, как-то так.
23

» WarCraft 3 / Угон транспорта

rsfghd, Спасибо. Работает, но есть костыли)
23

» WarCraft 3 / Угон транспорта

nazarpunk, Если бы две... две то ладно, а вот 32 или больше, или ещё запиливать под проверку какой нибудь отдельный скрипт - ну нафиг.
Ну пока не дошло, просто если вижу, допустим, какой нибудь старый кусок кода и понимаю что это адское нагромождение костылей - сношу начинку функции и пишу уже относительно нормально. И стараюсь следовать советам из книги "Совершенный код" (за исключением конечно костылей из за отсутствия нативок).
И ещё нюансы в том, что я код не под конкретную карту делаю, а для bj, чтобы везде работало, в любой карте. Из за этого хочешь не хочешь, а приходится упираться в голый жасс, иначе, думаю, давно бы перешёл на луа или южапи или ангел скрипт. Просто их в bj не запихнёшь, а других способов, как запихнуть код в mpq, чтобы игра его по дефолту находила и запускала, я не знаю.
23

» WarCraft 3 / Угон транспорта

nazarpunk, да можно, конечно, сделать хорошо и супер точно, и писать много кода. Просто это долго и надо нехилую усидчивость, у меня её точно нет, потому мне проще костыль запилить и перейти к следующей механике. Которая стала мне интересна. Чтобы просто не выгореть нафиг) А править мб потом. Как другие делают - не знаю.
вот такой я говнокодер, да)