ScorpioT1000, да, AFK я имел в виду, сорян, сейчас исправлю)
Союзы не катят, поскольку есть функционал объявления войны и заключения союза. То есть, тут всё меняться будет в процессе игры. И может случиться ситуация, что союзников нет ) Лишь вариант сделать поражение игроку остаётся. Вопрос лишь во времени проверки...
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
Можно ещё с хэш таблицей извернуться, используя handle id юнита в качестве ключа. Или же сохранить handle id юнита в массив, затем в запуске какого либо триггера определять индекс в массиве и сохранять данные по этому индексу в другие массивы (для одинаковых типов данных можно запилить "двумерный массив"). Или же сохранить самого юнита в отдельный массив и так же определять по индексу. Но в случае с handle id немного jass потребуется, не знаю, ввели ли в jngp в гуи функцию GetHandleId. И в целом это более муторная система, чем с user data. Но как вариант пойдёт ) Короче, возможностей полно.
konvan5, У него одноразовые, исчезают после покупки)
Насчёт твоего предложения... хм, наверно, я бы сделал 4 абилки пустышки по 2 левела каждая, на каждый вид предмета прописал бы что:
Если предмет продан, и левел пустышки равно 1, то увеличить левел пустышки на 1
И если все 4 пустышки имеют 2 левел, то взорвать лавку.
Ну чтоб получилось MUI, или как оно там правильно называется, когда триггер работает на нескольких юнитах одновременно)
А ещё для оптимизации можно равкоды абилок и предметов согласовать, чтобы равкод абилки был равен равкод предмета + 1, тогда можно обойтись без elseifа при определения типа предмета )
konvan5, предлагаю оптимизировать триггер, при покупке любого из 4 предметов проверить user data лавки, затем увеличить user data лавки на 1, а если при проверке будет user data > 4 взорвать лавку )
rsfghd, я играл как-то в эту кампанию, суть примерно в том, что после завершения исследования за произведённым в казарме юнитом создаётся автоматически паук и следует за юнитом, и автоматом атакует врагов на пути, или врагов юнита, как-то так.
nazarpunk, Если бы две... две то ладно, а вот 32 или больше, или ещё запиливать под проверку какой нибудь отдельный скрипт - ну нафиг.
Ну пока не дошло, просто если вижу, допустим, какой нибудь старый кусок кода и понимаю что это адское нагромождение костылей - сношу начинку функции и пишу уже относительно нормально. И стараюсь следовать советам из книги "Совершенный код" (за исключением конечно костылей из за отсутствия нативок).
И ещё нюансы в том, что я код не под конкретную карту делаю, а для bj, чтобы везде работало, в любой карте. Из за этого хочешь не хочешь, а приходится упираться в голый жасс, иначе, думаю, давно бы перешёл на луа или южапи или ангел скрипт. Просто их в bj не запихнёшь, а других способов, как запихнуть код в mpq, чтобы игра его по дефолту находила и запускала, я не знаю.
nazarpunk, да можно, конечно, сделать хорошо и супер точно, и писать много кода. Просто это долго и надо нехилую усидчивость, у меня её точно нет, потому мне проще костыль запилить и перейти к следующей механике. Которая стала мне интересна. Чтобы просто не выгореть нафиг) А править мб потом. Как другие делают - не знаю. вот такой я говнокодер, да)
nazarpunk, понимаю, с кривым кастом на краю круга не зацепит, хотя должно.
Да, 200 хватит. У себя столько и ставил примерно.
Если не зацепит, хотя должно было, это баг. А если наоборот сделать, и в описании абилки добавить "Способность имеет разброс, который может задеть больше юнитов", это фича ))
nazarpunk, Не доводилось сталкиваться с кривым радиусом каста в чужих картах. Но верю, что такое есть. Конечно , такого не должно быть, радиус круга выбора в абилке и радиус каста должны совпадать обязательно. Оптимальнее всего делать радиус с запасом, согласен, ведь у юнитов разные физ размеры, а у зданий тем более, и тут проблемно будет "средний физ размер" высчитать, мягко говоря. А так, если зацепит кого лишнего, при касте, не так критично. Хуже, если не зацепит, хотя должно было. Думаю, и без доп фильтров сойдёт. (Ну, это если не выйдет подогнать радиус к кругу)
nazarpunk, таки да, работает точно! Ок, я понял. А радиус "толщины юнита" по его физ размеру как вычислять? Допустим, у него физ размер 144. А какой будет радиус, чтобы его плюсануть к расстоянию и вбить общее число в функцию?
я не могу понять, как назначить анимацией ПОДГОТОВКИ именно анимацию ПОДГОТОВКИ
Нужно обозвать анимацию правильно в модели, например stand work или stand victory
А в поле анимации Канала прописать stand,victory 2мя строками stand и victory, тогда абилка будет кастоваться с этой анимацией.
Что же касается самой абилки и её алгоритма, то 1) после ожидания юнит триггера и тд не будут работать (поток сбивается), поэтому их нужно сохранять в переменные. 2) для радиуса поможет jass функция IsUnitInRange, она проверяет расстояние между юнитами и "даёт добро" или не даёт на дальнейшие действия, но я не помню, есть ли она в гуи, скорее всего нет, так что только custom script делать.
nazarpunk, я уже понял, что сам софт создан корпорацией, а ты делал только плагин. Посему извиняюсь за претензии к тормознутости и геморройности установки, это надо мне было им писать, а не сюда. Но всё равно я не понимаю, куда столько памяти софт просит, размером с пару микрософт офисов... ну и то, что он открывал какой то мелкий .j файл на 700кб аж 3 минуты (против 7 секунд у jasscraft) наводит на вопросы к разрабам - что они там вообще натворили? Каждый раз открывать прогу с танцами с бубнами, (особенно учитывая, что правлю я скрипты свои несколько раз за день, по желанию своей левой пятки) - не улыбается, честно говоря. Но ладно, я уже понял, что свои претензии пишу не по адресу )
Увидел отдельную установку, но для этого пришлось читать и переводить гайд...
Просто мне искренне непонятно, зачем столько ОЗУ. И вес на жестком диске 3 ГБ (!)
Для Jass это не стоит. Слишком простой и узконаправленный язык. И некоммерческий. Мб для геймдевщиков, компаний и программистов на C C# C++, lua итд это пойдёт, на массовое производство и большие мощности, но не на моддинг мимокрокодилом у себя на компе )
Бэкдор для хакеров и потенциальный шпионаж от корпорации.
Не потенциальный, а имеющийся. То, что корпорации шпионят за юзерами вопреки всем правовым нормам не секрет. Но хуже всего то, что все рычаги будут у корпорации и она сможет по желанию левой пятки делать с юзерами что хочет. Этакий локальный цифровой концлагерь. И ещё бэкдор для правительства, о чем ещё говорил Сноуден в незапамятные 10-е. Фигово всё это, никакой свободы, хоть комп отдельный без интернета заводи...
PT153, это не только брандмауэр, это антивирус встроенный, почему и возник вопрос.
4 ГБ ОЗУ для игр 2015 года, весящих по 50 ГБ, вполне норм. А тут надо 2 ГБ для проги для работы с кодом? Серьёзно? Не для музыкальной проги, не для видео монтажа, не 3Д графики, не для движка UE5, а просто для работы с кодом.
То есть, чтобы нормально работать, нужно а) открыть и изучить документацию б) поставить ещё плагин в) выбрать версию? Офигительно. Вместо того чтобы поставить дефолт и осваивать программу сразу в процессе работы.
Прочитал этот гайд по установке. Огромный талмуд с кучей параметров. И это только для установки (!). Установки, черт подери...
Ок, с community edition я прошляпил.
Автоматически куда? А если мне нужно скопировать файлы на другой диск или удалить файл, то где мне их искать? Через поиск в Проводнике тыкаться? Охрененно.
Если в облаке сохраняется, то это ещё хуже, что непонятно где, и фиг знает кто имеет туда доступ.
И опять же с установкой непонятно куда. Скорее всего, она поставится на диск С (а мне не надо на С, там только винда стоит, чтобы, если что, сносить её и форматировать диск С), а на другой диск не даёт ставить.
Как сам думаешь, это всё удобно или нет? Вот просто скажи своё мнение, под себя подставив. Я, конечно, понимаю, что есть мазохисты, которые любят возиться с талмудами гайдов, настроек и установок, но большинство людей всё же предпочитают не долбить себе мозги.
Отредактирован EugeAl
» WarCraft 3 / Допустимое время АФК (игрок отошёл)
Союзы не катят, поскольку есть функционал объявления войны и заключения союза. То есть, тут всё меняться будет в процессе игры. И может случиться ситуация, что союзников нет ) Лишь вариант сделать поражение игроку остаётся. Вопрос лишь во времени проверки...
» WarCraft 3 / Засунуть в юнита новый реал или интеджер
Отредактирован EugeAl
» WarCraft 3 / Засунуть в юнита новый реал или интеджер
» WarCraft 3 / пассивная способность "кража маны" при атаке
» WarCraft 3 / Засунуть в юнита новый реал или интеджер
» WarCraft 3 / Не срабатывает условие
Отредактирован EugeAl
» WarCraft 3 / Не срабатывает условие
Если предмет продан, и левел пустышки равно 1, то увеличить левел пустышки на 1
И если все 4 пустышки имеют 2 левел, то взорвать лавку.
Ну чтоб получилось MUI, или как оно там правильно называется, когда триггер работает на нескольких юнитах одновременно)
А ещё для оптимизации можно равкоды абилок и предметов согласовать, чтобы равкод абилки был равен равкод предмета + 1, тогда можно обойтись без elseifа при определения типа предмета )
» WarCraft 3 / Пасивная способность Ручной паук
» WarCraft 3 / Не срабатывает условие
» WarCraft 3 / Пасивная способность Ручной паук
» WarCraft 3 / Угон транспорта
» WarCraft 3 / Угон транспорта
И ещё нюансы в том, что я код не под конкретную карту делаю, а для bj, чтобы везде работало, в любой карте. Из за этого хочешь не хочешь, а приходится упираться в голый жасс, иначе, думаю, давно бы перешёл на луа или южапи или ангел скрипт. Просто их в bj не запихнёшь, а других способов, как запихнуть код в mpq, чтобы игра его по дефолту находила и запускала, я не знаю.
Отредактирован EugeAl
» WarCraft 3 / Угон транспорта
вот такой я говнокодер, да)
» WarCraft 3 / Угон транспорта
Отредактирован EugeAl
» WarCraft 3 / Угон транспорта
» WarCraft 3 / Угон транспорта
» WarCraft 3 / Угон транспорта
Отредактирован EugeAl
» WarCraft 3 / Угон транспорта
» WarCraft 3 / Угон транспорта
А в поле анимации Канала прописать stand,victory 2мя строками stand и victory, тогда абилка будет кастоваться с этой анимацией.
Что же касается самой абилки и её алгоритма, то 1) после ожидания юнит триггера и тд не будут работать (поток сбивается), поэтому их нужно сохранять в переменные. 2) для радиуса поможет jass функция IsUnitInRange, она проверяет расстояние между юнитами и "даёт добро" или не даёт на дальнейшие действия, но я не помню, есть ли она в гуи, скорее всего нет, так что только custom script делать.
» IntelliJASS / IntelliJASS
» IntelliJASS / IntelliJASS
» Прочее / Слух: Microsoft планирует покупку Valve и Steam за 16 млрд$
» IntelliJASS / IntelliJASS
» Прочее / Слух: Microsoft планирует покупку Valve и Steam за 16 млрд$
Отредактирован EugeAl
» IntelliJASS / IntelliJASS
Прочитал этот гайд по установке. Огромный талмуд с кучей параметров. И это только для установки (!). Установки, черт подери...
Если в облаке сохраняется, то это ещё хуже, что непонятно где, и фиг знает кто имеет туда доступ.