7

» WarCraft 3 / Как заменить Wait на Таймер?

Проблемы с turnon/turnoff будут если спелл использует больше чем один юнит.
Здесь поподробней. Какие меня ждут проблемы и что с этим делать?
На эту тему даже вопрос задавал недавно, никто толком не ответил.
7

» WarCraft 3 / Как заменить Wait на Таймер?

периодический таймер
Ах да, периодический же ещё есть... Значит можно разбить где-то на два-три триггера. Использовать TurnOn и TurnOff, чтобы они зря не мотали, и передавать управление следующему триггеру. У меня там два по 120 в одном триггере, значит два таких триггера хватит. Один отработал, передал другому... Но код мне придётся писать вместе с таймером, верно? То есть это не универсальный таймер, а для какого-то одного триггера? Для другого нужно делать другой таймер?
7

» WarCraft 3 / Как заменить Wait на Таймер?

и еще нужен другой триггер
У меня есть Wait-ы в цикле Integer, и там очень важное заклинание, которое Я долго делал, которое работает стабильно, всё отлажено... Отказаться жалко. И после каждого прохода цикла идёт проверка условия, изменилось ли значение в булёвой переменной в режиме реального времени. А за тем циклом, идёт другой цикл, и немного вводного и конечного кода, и кругом Wait-ы. И получается, что нельзя триггер прерывать, и переносить в другой триггер тот же самый участок кода. У меня там 120 проходов, и что, на каждое истечение Таймера делать новый триггер с тем же кодом? Это 120 триггеров, и каждый передаёт управление следующему по таймеру? Жаль нет функции "Go To", как это в других языках программирования. Возможно действительно, стоит сделать отдельный триггер как jass-функцию, к которой и нужно обращаться через Custom Script? Но будет ли он обратно переходить на ту точку откуда его вызвали? В Гуях такого нет.
7

» WarCraft 3 / Как заменить Wait на Таймер?

вейты с 0.01 = 0.2 примерно,да и темболее 0.2-1 сек погрешности это пустяк
Тогда нет, у меня есть такие важные периоды... Объясни тогда, как правильно написать таймер? Просто создал, не помогло. Тут вечно не договаривают. Скупы на слова. Приходится вытягивать по слову.
7

» WarCraft 3 / Как заменить Wait на Таймер?

AlexSan, сгодится на крайний случай, но Я работаю на GUI, мне нужно малой кровью сделать.
Не пойму, зачем так извращаться? Есть "Wait", а под ним, тут же, "Wait (game-time)", проверил тщательно, ждал 5 минут в Паузе Игры 30-ти секундную задержку, всё работает. А под ним, ещё, Wait For Condition, Wait For Sound, на любую потребу.
7

» WarCraft 3 / предметный, который невозможно подобрать

Можно ещё сделать триггер, что если подбирается предмет, то он сразу же выбрасывается на то место на котором ему и положено быть. Это произойдёт так моментально, что будет казаться что его нельзя взять. Однако герой будет бежать к нему чтобы подобрать его, и если этот момент неприятен, то можно отключить саму команду, дать команду "Отставить" когда он указывает на этот предмет.
7

» WarCraft 3 / Посоветуйте карт

на 11 ночь приходит босс
... и говорит - Чего вы тут настроили? Давайте сносите всё. ))))
Spector_Mark, такую карту нужно год строить, Я сам про это думал.
7

» WarCraft 3 / Как вызвать юнита на время в конкретную точку карты?

ызывает на время Духа Воды куда ты укажешь
Ошибся. Это заклинание не вызывает куда укажешь.
7

» WarCraft 3 / Как вызвать юнита на время в конкретную точку карты?

Попробуй заклинание Дух Воды, то что у Верховного Мага. Оно вызывает на время Духа Воды куда ты укажешь. Ещё есть Тинкер Механик, который кидает завод, это тоже вызываемая единица.
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

на чистом джассе
Тогда отбой! Я умышленно не работаю на jass-е сейчас. Обойдусь!
Про центр карты видимо не знаешь?
7

» WarCraft 3 / Засунул цепную молнию в сферу молний, а иконку никак не скрыть

Ну так а причём здесь предмет Сфера Молний если ты хотел прицепить к юниту? Или ты хочешь чтобы при каждой атаке Сферой Молний вылетала ещё и молния заклинания Цепь Молний со 100% вероятностью? Непонимаю. Ах, быть может ты использовал Цепь Молний (враг), та что у Ящерицы? Но непонятно тогда, хочешь ли ты чтобы Цепь Молний поражала сразу несколько целей, или только одну? Если только одну, то это можно сделать и в других заклинаниях. Ну а у Ящерицы эта способность действительно притемнённая, потому что она пассивная, применяется сама при каждой атаке. Обрати внимание что у каждого заклинания есть параметр Эффект Молнии, только не везде он действительно работает, и тебе придётся поискать такое заклинание у которого эффект стрельбы молнии виден, но иконки нет. Незнаю даже, есть ли такая способность, потому что нужно все их перебрать, а это очень много работы. Но тебе нужно лишь скопировать на другое заклинание с этого, параметры, отвечающие за графику молнии. Легче сделать триггерно, вот честно. Просто отобразить молнию от атакующего до атакуемого, и удалить через секунду.
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

Doc, Поподробней напиши альтернативу. Посмотрим, может и впрямь откажусь.
И вдогонку вопрос, как написать в MoveLocation... координаты центра карты, чтобы объявить в начале инициализации карты как стартовую точку?
7

» WarCraft 3 / Засунул цепную молнию в сферу молний, а иконку никак не скрыть

без инвентаря, без иконки
А как ты тогда собрался её применять? Триггерами что ли? Тогда и делай триггерами, там есть категория Молнии!
7

» WarCraft 3 / Посоветуйте карт

Бордер, Ладно, есть покороче вариант, и с кровью, если к жестокости тяга. Пехотинцы пробегают под давящими ловушками. Нужно успеть пробежать, или пехотинец будет explosion. Цель - добежать до конца.
7

» WarCraft 3 / Засунул цепную молнию в сферу молний, а иконку никак не скрыть

Я не поверил и решил сам так же сделать! Взял обычный предмет Сфера Молний, засунул в него способность Цепь Молний, от героя орды, и сделал её для категории предметов. Сделал активацию кнопки предмета. Не заработало. Потому что там ещё была способность Очищение. Убрал Очищение - Заработало! Никакой иконки нет! Видимо только одну активную способность можно заложить в предмет! И нужно чтобы она была первой в списке способностей предмета!
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

Сделал так. Использую только MoveLocation..., можно даже вообще не удалять переменную точки а лишь двигать её, как курсор мыши, и указывать молниеносно и невидимо для всех триггеров одной точкой что и куда им делать. Все стрелы полетели как надо, в россыпь. Хотя когда Я делаю удаление точки в конце, это не отражается на следующем вызове триггера, так что можно и удалять, главное не удалять когда она ещё нужна до завершения триггера. Проверил на Хендлах, один Хендл создаётся один раз, чтобы объявить эту точку, а то что двигаю в цикле никак не прибавляет Хендлы. Получилась точка-указатель, как курсор мыши, и одной хватает, ведь Warcraft однопоточный. Оставлю ещё вопрос открытым на несколько часов, может Я не прав и кто-то меня поправит.
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

Hate, Ну так Я её удаляю в конце прохода! А потом новый проход цикла и снова объявляю переменную, уже для другого юнита. Однако если старую не удалить сразу, а просто перезаписать переменную новой точкой, то старая точка останется, и расплодится их целая уйма, тысячи будут. В том то и смысл чтобы удалять точки!
Hate, Вот как Я удаляю точку после каждого прохода! Чтобы надёжно было... Потом объявляю заново переменную. А как иначе?
Всё. Убрал полностью удаление точки. Включил снова MoveLocation... - не работает. Сижу ломаю голову дальше...
Загруженные файлы
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

quq_CCCP, Делаю полный скрин как есть, того участка кода на котором остановился, со всеми отключениями, как есть. Суть заклинания в том, что по краям карты появляются невидимые лучники, которые по этому триггеру выпускают стрелы, и они сыпятся как Дождь Стрел, и всё выглядит круто, их выбрать нельзя и не видно. Здесь три группы по 12 лучников, и 19 залпов, выпускают 684 стрелы, и им нужно указывать каждый раз случайную точку, куда летит каждая стрела вроссыпь, тут-то мне и нужны полярные координаты которые указывают случайные точки от места указанного заклинанием. И когда нужно использовать RemoveLocation ... происходит тихая остановка триггера, когда же Я использую просто set ... = null, всё идёт, но Я не знаю решает ли это проблему утечки. Я сделал появление Еретика, просто выбрал случайно юнита, чтобы понять сколько раз исполняется команда, один появился. Отключая эту функцию, появляется множество, что как бы намекает что проблема в ней.
На всякий случай делаю ещё два скрина того что до- этого блока кода, и того что после-,но не думаю что проблема там...
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

Daniil18, считаю что стандарт - это игра 1 час. 2 часа - это если игрокам интересно доигрывать. И карту свою затачиваю для игры как минимум в 1 час - партия. Самое короткое - 40 минут. Как сделаю, выложу для вас для всех, делаю для людей безвозмездно. Карта типа Footman Frenzy, и хочу заменить свою картой стандартный Footman Frenzy, чтобы в мою карту играли, когда произносят это название, поэтому надо сделать более качественно, и никаких утечек!
Сейчас утечки попали в таймер и растут как на дрожжах. 4000~ утечек при старте, и далее растёт по ~1000 за 30 секунд, но волнами, то больше то меньше, потому что игра так устроена. Делал уже почти 4 месяца и теперь назад дороги нет, иначе вся работа зря делалась, и зря потратил время!
quq_CCCP, написал снова, снова произошёл вылет, причём когда Я ещё в редакторе писал. Понял что строка слишком длинная, слишком длинные названия переменных, но это мой стиль. Написал в две строки. Написал - "set udg_GlobalCurrentAngle = (udg_GlobalCurrentAngle * bj_DEGTORAD)". Не работает!
Стал экспериментировать, отключать и включать строки. Оказалось что проблема в другом, а эта формула работает нормально! Оказалось что "Pick every ... "останавливается когда идёт последняя строчка, в которой Я и не думал что может скрываться ошибка, и даже не рассматривал из-за простоты. Это - "call RemoveLocation(udg_GlobalCurrentPoint1)", которая и срабатывает в конце цикла чтобы удалить остаточную позицию, и по тихому ломает весь триггер, и никаких ошибок компиляции, ничего вообще! Я даже Wait добавлял чтобы дать побольше времени для срабатывания, не помогло. Вы не могли этого знать, это нужно было чисто мне определить, картостроителю. Добавил ещё в конец "set udg_GlobalCurrentPoint1 = null", так же ничего. Добавил объявление как локальной "local location udg_GlobalCurrentPoint1 = udg_IssueOrderRainArrows[udg_CurrentNumber1]" прямо в начале цикла, на каждого юнита, так же ничего. Но отключаю её и всё прёт и множится, но без неё смысл теряется. Значит удаляю Я неправильно! В другом заклинании просто срабатывает один раз, поэтому и не заметил. Какие будут ещё предложения?
7

» WarCraft 3 / Посоветуйте карт

Тут так не мыслят! Когда придумывается игра, нужно чтобы она развивала какое-то качество у игрока, и это качество ставится за основу всей игры. Работает правило - То, чего в игре больше, будет главным развивающим элементом для игрока! То есть, можно придумать что цель игры найти Лампу Алладина, но всю игру он бегает и бьёт Мобов, значит игра не про поиски а про лутание.
Что в Warcraft-е можно делать? Просто драться, заниматься стратегией, собирать предметы, бегать по карте, покупать и продавать, прокачивать героя, строить башенки, исследоваться, защищать, нападать, патрулировать, стоять на месте ... - вот это и становится принципом игры, который развивает какое-то одно качество у игрока.
Если совсем простенькую, то могу посоветовать игру по типу Мартовского Зайца, когда нужно собирать красивые предметы быстрее других игроков, развивает стремление взять предмет быстрее оппонента, когда тот выпадает. Ну а сам предмет должен быть аппетитным, что его хочется взять, или неприятной бякой, или аппетитной ловушкой, и сделать, скажем, что-то вроде грибы растут в лесу и их нужно собирать, а на опушке леса стоит торговая избёнка, дальше можно додумать самостоятельно...
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

Hate, так приятель, давай докапываться до истины! Загрузил чистую карту, удалил сценарии инициализации, оставил только счётчик Хендлов. Показывает 91 хендл - это абсолютно чистая карта, на сколько возможно. Далее, загрузил все необходимые переменные и функцию, запустил проверку, счётчик показал 93 уже. Отключил стандартную функцию Преобразование координат, но оставил всё остальное, что обслуживало её, это объявление трёх переменных и три строчки в конце их обнуления. Счётчик показал 93. То есть так же. Вывод практический - 0 хендлов, что включена она, что выключена, разницы никакой.
Теперь чисто теоретически. Как эта функция может создавать точку если она берёт чистые координаты по X и Y (цифры), и получившаяся точка записывается в переменную, которую потом можно благополучно удалить. Вывод теоретический, процесс контролируем, лишних точек она не создаёт. Докажи обратное если Я не прав! бубубуб не засчитывается!
Hate, Сорри, допустил маленькую ошибочку, 1 хендл прибавляется!
Финальный разбор показал. Функция Преобразование координат = 1 хендл, функция Полярный координат = 1 хендл, функция MoveLocation = 0 хендлов. Ну что ж, придётся признать что хендлы всё таки делаются, что ж тут поделать. Сегодня Я устал, завтра продолжу...
7

» WarCraft 3 / Не работает строчка Custom Script о полярных координатах?

quq_CCCP, вот это ты гад! ))))) У меня случается крах и всё закрывается! Причём два раза так пробовал!
Короче. Вот как у меня это было в том заклинании где работало:
set udg_GlobalCurrentAngle = AngleBetweenPoints(udg_GlobalCurrentPoint1, udg_GlobalCurrentPoint2)
Это угол между двумя точками. Потом эта переменная шла как здесь Random Angle.
Я сделал через GUI сейчас, всё заработало. Использовал стандартную функцию Преобразование - Convert Coordinates To Point, а остальное так же. Будут так утечки или нет? Только честно!
quq_CCCP, Проверил сейчас и то и то заклинание, всё работает. В одном Random Angle, в другом функция AngleBetweenPoints, но разницы никакой, работает чёрт возьми! Значит логически ты уже не прав. Причём когда работало с утечками, были заметные торможения, а теперь всё гладко, без лагов. Крутил камеру прямо на ходу, всё норм. Но по счётчику Хендлов сейчас сказать трудно, там и другие утечки идут... Думаю решено.