1
19
4 недели назад
Отредактирован EugeAl
1

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

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

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

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

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

konvan5, прогрузилось вроде. Посмотрю)
1
19
4 недели назад
1

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

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

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

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

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

konvan5, хм... ладно, буду обдумывать, как сделать. Спасибо )
0
19
4 недели назад
Отредактирован EugeAl
0

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

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

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

rsfghd, ну это уже по вкусу, как говорится)
0
19
4 недели назад
Отредактирован EugeAl
0

» 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
0
19
4 недели назад
0

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

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

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

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

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

konvan5, Ну да, а в данном случае вообще от запроса автора)) не добавил пояснения - ну извините, что просил, то получил)
0
19
4 недели назад
Отредактирован EugeAl
0

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

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

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

rsfghd, она триггерная , понятное дело. В ро такого нет
0
19
1 месяц назад
0

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

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

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

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

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

rsfghd, Спасибо. Работает, но есть костыли)
0
19
1 месяц назад
0

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

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

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

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

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

nazarpunk, понимаю, с кривым кастом на краю круга не зацепит, хотя должно.
Да, 200 хватит. У себя столько и ставил примерно.
Если не зацепит, хотя должно было, это баг. А если наоборот сделать, и в описании абилки добавить "Способность имеет разброс, который может задеть больше юнитов", это фича ))
0
19
1 месяц назад
Отредактирован EugeAl
0

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

nazarpunk, Не доводилось сталкиваться с кривым радиусом каста в чужих картах. Но верю, что такое есть. Конечно , такого не должно быть, радиус круга выбора в абилке и радиус каста должны совпадать обязательно. Оптимальнее всего делать радиус с запасом, согласен, ведь у юнитов разные физ размеры, а у зданий тем более, и тут проблемно будет "средний физ размер" высчитать, мягко говоря. А так, если зацепит кого лишнего, при касте, не так критично. Хуже, если не зацепит, хотя должно было. Думаю, и без доп фильтров сойдёт. (Ну, это если не выйдет подогнать радиус к кругу)
0
19
1 месяц назад
0

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

nazarpunk, я просто думал, что физ размер, это какая то другая единица измерения, которую нужно как-то переводить в радиус.
А так всё ещё проще оказалось. Всё понял, спасибо огромное )
0
19
1 месяц назад
0

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

nazarpunk, таки да, работает точно! Ок, я понял. А радиус "толщины юнита" по его физ размеру как вычислять? Допустим, у него физ размер 144. А какой будет радиус, чтобы его плюсануть к расстоянию и вбить общее число в функцию?
0
19
1 месяц назад
Отредактирован EugeAl
0

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

nazarpunk, О, а про это я не знал, спасибо за уточнение)
А какой коллизии? Которая в модели настроена как "форма" или которая как физический размер в настройках юнита или обоих?
0
19
1 месяц назад
0

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

я не могу понять, как назначить анимацией ПОДГОТОВКИ именно анимацию ПОДГОТОВКИ
Нужно обозвать анимацию правильно в модели, например stand work или stand victory
А в поле анимации Канала прописать stand,victory 2мя строками stand и victory, тогда абилка будет кастоваться с этой анимацией.
Что же касается самой абилки и её алгоритма, то 1) после ожидания юнит триггера и тд не будут работать (поток сбивается), поэтому их нужно сохранять в переменные. 2) для радиуса поможет jass функция IsUnitInRange, она проверяет расстояние между юнитами и "даёт добро" или не даёт на дальнейшие действия, но я не помню, есть ли она в гуи, скорее всего нет, так что только custom script делать.