мб поможет
еще вот это
еще это
да автор хочет все готовое. сам понимать и учиться не хочет, и поэтому сделать не сможет. еще поиском юзать не хочет. вбей это название, посмотри. есть кстати раздел - заклинание на заказ
этот спел использует хитрую математику отличающую от типичного движения. Это JASS
Ax, Ay - координаты точки кастера
Cx, Cy - координаты точки цели (если цель-юнит пустой, берем точку)
создаем двух даймиков: lAxe1 и lAxe2
создаем два таймера: lTimer1 и lTimer2 и аттачим на их хэндлы все: ID1 и ID2. хэндл - номер объекта
даймиков то мы создали, теперь нужно нам получить начальные точки смещения даймиков (смещаем 300 вперед по углом 45 градусов. одного влево +45, другого вправо -45):
set angle = Atan2(Cy-Ay,Cx-Ax) Аркстангенс, угол между двумя точками, возвращает радианы
координаты для первого даймика
set x3 = (Ax+300*Cos(angle+45))
set y3 = (Ay+300*Sin(angle+45))
координаты для второго даймика
set x4 = (Ax+300*Cos(angle-45))
set y4 = (Ay+300*Sin(angle-45))
получаем и смещаем даймиков под эти координаты
даем им абилку ворона - чтоб летал, и немножко приподнимаем (для красоты видимо, топоры летят же)
теперь сохраняем в хэш-таблицу данные для каждого даймика (вы должны заранее инициировать ее)
сохраняем кастера
самого даймика
координаты кастера (могли и не сохранять, можно напрямую у кастера брать нативками корды. но кастер может переместиться, и позиция будет не та, и вся система может сбиться, поэтому запоминаем позицию каста)
координаты цели (конечная цель, тоже самое, чтоб не сбилось)
координаты даймика x3, y3 или x4, y4 в зависимости от того какого даймика храним
сохраняем единицу (a=1). так понял это с каждым тиком таймера на 0.2 становится меньше или больше. Короче это не совсем радиан, как я думал, а множитель. Такая хитрая математика. Пропорция короче. 1.00 = 100% в одну сторону становится меньше, а когда дойдет до нуля, то обратно будет увеличиваться до 1.
сохраняем угол. Если даймик был смещен слева под углом 45, то сохраняем -45 (короче будем вычитать). Если второй даймик был смещен слева под углом -45, то сохраняем 45 (короче будем прибавлять).
сохраняем группу g. (для работ и вычислении всяких)
сохраняем логическую истину. RD2 = true
все сохранили, запускаем периодичные таймеры
каждый раз/через каждый период времени запускаем функцию
загружаем из хэш-таблицы по хэндлу таймера:
юнита и даймика, группу
A - точка кастера (не текущая). Ax, Ay - координаты
C - точка цели. Cx, Cy - координаты
B - третья точка = смещенная точка Cx, Cy - координаты (это координаты x3, y3 или x4,y4)
a - процент выгружаем из хэша (он каждый раз меняется)
RD2 - логическая для проверки, истина говорит, что движемся к цели. когда дойдет до цели, мы изменим на ложь, перевернем даймиков. И теперь будем двигать обратно к цели
далее вычисления
b = 1 - a
новые координаты ниже, смещаем по этим координатам. Меня вот эти ниже заинтересовали, очень похоже на квадрат суммы, откуда эти вычисления координат. порылся, ничего не нашел.
по этим координатам выделяем в группу, наносим урон, выделяем деревья и уничтожаем их
далее в конец каждый раз проверки идут
function RMaxBJ takes real a, real b returns real
if (a < b) then
return b
else
return a
endif
endfunction
//функция PAI вычисляет расстояние
function PAI takes real x1,real y1,real x2,real y2 returns real
return SquareRoot(((x1-x2)*(x1-x2))+((y1-y2)*(y1-y2)))
endfunction
//тут RE2 - выбирает макс. время между полученным и 0.4 сек. короче расстояние PAI поделенное на скорость 1300.
local real RE2=RMaxBJ(PAI(Ax,Ay,Cx,Cy)/1300,0.4)
если RD2 истинно, то изменяем и сохраняем только "a", иначе, еще и кастера
если a становится меньше нуля, то переворачиваем даймиков и RD2 = false
if(a<0 and RD2)then
call SaveBoolean(udg_Hash,(id),(291),(false)) //это RD2
//пересохраняем координаты третьей точки, короче та что смещается под углом
//тут изменились координаты, так как мы прибавили или убавили угол на 45
call SaveReal(udg_Hash,(id),(288),((Ax+300*Cos(Atan2(Cy-Ay,Cx-Ax)+(LoadReal(udg_Hash,(id),(292)))))*1.0))
call SaveReal(udg_Hash,(id),(289),((Ay+300*Sin(Atan2(Cy-Ay,Cx-Ax)+(LoadReal(udg_Hash,(id),(292)))))*1.0))
endif
не надо. основные утечки: это объекты и необнуленные локалки. группа эта как автобус, а пассажиры автобуса - юниты, при удалении удаляешь автобус с пассажирами, если ли смысл чистить группу перед удалением тогда? это же не спасательная операция или это вместо автобуса можно представить как таблицу. по идее нативка Destroy сама удалять и подчищать
узнать путь расположения текстуры (записано в импортируемой модели, если вы хотите поменять в существуемой стандартной модели вара, то тоже нужно узнать путь и заменить: то есть импортировать текстуру по этому пути). В этом поможет mpq-архив и прога работающая с моделью
приблизительно рассказываю
открываете РО юнитов, ищите нужного юнита, смотрите что за модель (там обычно прописан путь)
с помощью mpq-архиватора (проги: mpqmaster или Ladik's MPQ Editor) находите эту модель и вытаскиваете из архива вара (возможно просмотреть можно напрямую и с модельными прогами (War3ModelEditor и MdlVis) - неизвестно мне)
в программах, работающих с моделями (War3ModelEditor и MdlVis), смотрите какие текстуры используются, по какому пути лежат.
заменяете по этому же пути. Замена одной текстуры может быть повлиять и на другие модели.
Примечание: В случае с импортной моделью, обычно авторы дают модели и текстуры, текстовик приклепляют с этим, в нем указывают путь текстур, нужные для модели. Если нет там такого, используйте проги War3ModelEditor и MdlVis, чтоб посмотреть (можно даже самому изменить). Но и не редко, бывает, что текстура в модели есть, или использует стандартную варкрафтовскую, так что не нужно ничего импортировать и указывать пути. Кстати есть еще прога zmodeler-2.2.3-build971, скачал, у себя лежит, не пользовался
есть в триггерах раздел "Видимость". Есть черная маска (Black Mask) и туман войны (Fog of war). Черная маска заграждает обзор юнита черным, на мини-карте отображается, открыть можно если войти в нее юнитом, но разведанные участки ранее обратно не покрывается черной маской, остается туман. Туман - это тоже заграждение, но здесь оставляет разведанные участки, можем видеть какие здания поставил и прочее. Можно периодично включать и выключать эти настройки (EnableBlackMask/DisableBlackMask или EnableWarOfFog/DisableWarOfFog), но получается не очень красиво (юниты пропадают на секунду). Мгновенно туман или маска не может появится и тут же сразу же исчезнуть, одновременно с этим пропадают юниты, не сами юниты, а их изображение на секунду (типа баг).
Для того, чтобы ранее разведанные участки покрывали туманом войны или черной маской, достаточно создать модификатор видимости один раз на всю игру. можно без Enable - в скрине не нужное действие.
модификатор видимости можно выключить (disable), так и включить (enable). не нужно плодить. единственное, что нужно ли для каждого 12 игроков создавать свой модификатор или через гетлокалплеер заработает без десинка? по идее можно ли сделать, чтоб каждый игрок будет на своей машине видеть разные участки? ссылка
единственное вопрос, как сделать черную маску настолько темной (или как скрыть мини-карту), что даже не видно будет деревьев и прочее. не помню уже как это делал. вспомнил. Сценарий>>Параметры Карты>>Скрытые области частично видны, снимаем галочку. И все, мини-карта черная, и сама карта. ссылка
есть система реалистичного обзора на jass
DemonoiD, да ничего она не делает, по зданиям, не зданиям проверял. Видимо и правду убрали в ранних версиях. Теперь это чисто визуалка.Только можно этим скиллом модель анимации снаряда указать. Поменяет на указанную. Даешь лучнице, стреляет не стрелами, а чем-то другим. Все конец.
А можно ли сделать бафф отрицательным или положительным? Например, бафф от от скилла "Рев" друида. По идее это положительный бафф, а если сделать дебафф (там отрицательный реген, мана, защита, урон), то все равно это дебаффом то не будет. У меня вот есть автокастовый скилл дриады "Рассеять чары", вот она рассеивает эти бафы с врагов. Глупо.
Alexey103, а у меня работает, проверял. тут ошибка в названии переменной, скорее всего, зачем ты задал такое. Мб оно слишком длинное и через нижнее подчеркивание? и путь модель указывают в jass не через один обратный слэш "/", а через двойной слэш "//". Это на гуи один, на джаз два слэша
Maniac_91, Хм, посмотрю, хотя не вижу разницы между удалением джассом и обычным.
ну есть предположение, что переменная "последний созданный спецэффект" перезаписывается, и возможно из-за этого что-то не до конца работает. По идее так не должно быть. тогда либо локалка либо сразу удаляй как выше сказали
ForGroup - цикл, вызывает функцию.
но лучше сразу удаляй
Ну так если там не обнуляются локалки то как обнулить?
утечки: Units within 300 pos - бж функция, если раскрыть ее, то можно увидеть как там не обнуляются локалки
по поводу спецэффектов - попробуй воткнуть внутрь цикла ForGroup (на гуи Pick Every unit in group and do (action) ) локалки. Тогда точно все будут удаляться. Еще точнее прописать CS
Cancel, в генерированной карте, открываешь mpq-архиватором карту, и смотришь slk и тексты. Юниты и абилки например в папке Units находятся и др. Обратно в w3o преобразует программа w3map Restorer (но не всегда работает, в сложных картах типа доты пишет: "не удалось извлечь файлы", и дальше не может, все. Хотя нет, также и простые не работают тоже пишет: "не удалось извлечь файлы" )
Cancel, инструкция? там нужно правильные настройки ставить. так тоже пробовал, оказалось, что там в одной из папок внутри папки Widgitizer-а отредактированную карту сохраняет. Короче смотри в папке Widgitizer-а. Папка называется Output, в ней будет все сохраняться
там есть инструкция, найти текстовик, правда на английском
Запустите виджетайзер, нажмите кнопку «Добавить» и найдите карту, которую вы хотите виджетировать. Затем карта появится в списке исходных файлов.
Теперь вам нужно будет решить, какие типы объектов вы хотите конвертировать, как правило, вы захотите конвертировать все типы объектов, просто активировать соответствующие флажки (Units добавляют таблицы slk и тексты юнитов, Items добавляют таблицы slk и тексты предметов и др.).
Теперь у нас есть некоторые дополнительные настройки.
-> Remove Unused Objects (Удалить неиспользуемые объекты): эти семь флажков позволяют указать, какие неиспользуемые объекты будут удалены из выходных файлов, отключение этих параметров оставляет стандартные объекты без изменении, короче так и хранятся в исходных файлах
-> Keep Placed Objects (Сохранить размещенные на карте объекты): этот флажок определяет, все ли элементы: units, doodads и destructables, размещенные на карте, будут сохранены, а также единицы и элементы на случайных таблицах будут сохранены, если этот параметр включен
-> Keep Trigger Referenced Objects (Сохранить связь между триггерами и объектами): этот флажок определяет, будут ли объекты, на которые ссылаются где-то в триггере карты будут сохранены, а также технические элементы, которые изменить их доступность на экране свойств карты будут сохранены, а также
-> Keep Referenced Objects (Сохранить ссылочные объекты): этот флажок определяет, проверяются ли все сохраненные объекты для ссылок к другим объектам, они будут сохранены, если этот параметр включен, это вариант часто приводит к сохранению целой технологии расы не понял что пишут
-> Ignore Basic References (Игнорировать основные ссылки): в ini-файле этого инструмента вы найдете основной список исключений с Идентификаторы объектов, которые не следует удалять (например, перемещение и атака способности и крестьянская единица), теперь, если включен второй флажок, объекты, на которые ссылаются эти объекты (например, все построенные здания крестьянином) также будет сохранено, вы, вероятно, этого не хотите, так что вы может активировать эту опцию, чтобы игнорировать те ссылки основных объектов не понял что пишут
-> Clean Trigger Strings (Очистить строки из триггеров): множество строк, таких как имена элементов, суффиксы редактора, подсказки и т. д. сохраняются в WTS-файле карты, во время преобразования ссылки эти строки будут заменены фактическими строками, в большинстве случаев запись строки в файле WTS будет устаревшей, поэтому может быть удаляется, вот что делает этот флажок (только если одна и та же строка повторно используется в других местах, например, в скрипте карты, это может вызвать проблемы)
-> Clean SLK Tables (Очистить slk-таблицы): удаляет необязательные данные из таблиц SLK, таких как комментарии, бета-флаги и дефисы, и удалит комментарии и пустые строки из полученного TXT-файлы, если это не проверено, будут сохранены комментарии и комментарии, которые начало с :: будет добавлено в конец каждого файла
-> Custom Keys Resistant (отменить изменения в Custom Keys.txt): гарантирует, что результирующая карта будет работать с файлами CustomKeys.txt точно так же, как исходная карта (что означает, что ваши изменения будут отменены возможные файлы CustomKeys.txt)
-> Reference Logging: создаст файл ReferenceLog.txt в выходной папке, где вы можете почему некоторые объекты не очищаются
Итак, теперь мы готовы нажать кнопку компиляции, чтобы начать конвертацию.
Будьте терпеливы с инструментом, особенно на больших картах, конверсия может занять довольно много времени (до 5 минут на старых процессорах или больших картах, обычно около 1 минуты).
Найдите сгенерированные файлы в папке Output \ виджета. Вы, скорее всего, будете только интересуется созданным файлом карты. Он будет иметь то же имя, что и исходная карта. Чтобы открыть преобразованную карту в редакторе World без ошибок (и иметь возможность редактировать ее после конверсия) запустите редактор сгенерированным файлом Editor Patch.exe.
Для модов и итоговых преобразований он также скомпилирует ROC Patch.exe и файл TFT Patch.exe. Они могут использоваться, чтобы не импортировать скомпилированные файлы в каждую из ваших карт. Если вы собираетесь
для использования такого патча обязательно удалите все данные пользовательских объектов с карт, которые вы используете на нем (w3u, w3t, w3b, w3d, w3a, w3h, w3q). Скрытая опция конвертирования постоянных игр и игры
настройки интерфейса могут быть активированы с помощью констант ключа INI.
Вы можете заставить Виджеты автоматически заменять идентификатор ваших настроенных объектов на идентификатор твой выбор. Поэтому измените имя объекта в редакторе объектов на формат Имя :: newid (fex Blast :: Abla изменит идентификатор способности от A000 до Abla). После id был заменен, добавленный идентификатор будет удален из имени объекта.
ScopteRectuS, нет, в старой карте не может быть больше 12 слотов.
Тем не менее, войска нейтрала перестанут быть нейтральными и станут войсками неактивного игрока, что может что-нибудь сломать
Если в старой 12 игроков, то теперь стало 24. Действительно может сломать карту. я думаю, может быть так, что.в новых картах должна стоять галочка "Обновление 1.29" - Да. И тогда ничего не собьет. Они такое делали. Недавно, просматривал скилл "Похищение маны", там написано похищает ману у врага, а еще передает ее союзнику. Меня смутило, что может передавать. Пока на форуме на нашел ответ. В параметрах где-то галочка
а чем большинству не нравится интерфейс-то? мало что изменили. мне кажется, что стал покрасивее что ли с нижними боковинками, необычным от стандарта (интерфейс хуманов стал больше нравится с кирпичиками, а у орков что-то наоборот, у эльфов с андедами не видал пока) , хотя обзор карты закрывает (мб прозрачными слегка сделать?).
посмотри здесь тему, примеры
Используйте хэш-таблицу. С помощью нее делаете базу данных при инициализации. В ней сохраняете строку, название функции. Вызываете через ExecuteFunc. Выводы какие:
не надо перебирать if-ами условия, проще напрямую
можно было в качестве ключа строки использовать, но быстрее было бы использовать числа, что есть у хэш-таблицы.
Используйте фильтр boolexpr для отсеивания тех, на кого событие не должно работать. см. внизу нативку, вместо null ставите условие
Alexey103, тогда по-другому делать надо. Не до конца понимаю. У тебя скрещивание итемов или просто подборка итемов. Итемы случайны или что. Мог бы и сделать, но что-то сегодня лень.
Ред. MpW
» WarCraft 3 / Как сделать спелл Wild Axes?
еще вот это
еще это
да автор хочет все готовое. сам понимать и учиться не хочет, и поэтому сделать не сможет. еще поиском юзать не хочет. вбей это название, посмотри. есть кстати раздел - заклинание на заказ
» WarCraft 3 / Надо ли очищать группу перед уничтожением
Ред. MpW
» WarCraft 3 / Надо ли очищать группу перед уничтожением
Ред. MpW
» WarCraft 3 / Memory Hack: GetUnitAttackSpeed( )
тема
В процентах же конечно.
Ред. MpW
» WarCraft 3 / Как правильно установить текстурку?
Ред. MpW
» WarCraft 3 / Туман войны
Можно периодично включать и выключать эти настройки (EnableBlackMask/DisableBlackMask или EnableWarOfFog/DisableWarOfFog), но получается не очень красиво (юниты пропадают на секунду). Мгновенно туман или маска не может появится и тут же сразу же исчезнуть, одновременно с этим пропадают юниты, не сами юниты, а их изображение на секунду (типа баг).Для того, чтобы ранее разведанные участки покрывали туманом войны или черной маской, достаточно создать модификатор видимости один раз на всю игру. можно без Enable - в скрине не нужное действие.
ссылка
единственное вопрос, как сделать черную маску настолько темной (или как скрыть мини-карту), что даже не видно будет деревьев и прочее. не помню уже как это делал. вспомнил. Сценарий>>Параметры Карты>>Скрытые области частично видны, снимаем галочку. И все, мини-карта черная, и сама карта. ссылка
есть система реалистичного обзора на jass
Ред. MpW
» WarCraft 3 / Как задетектить число в сообщении?
английские буквы принимает как за 1 символ, русские буквы как за 2 символа принимает
Ред. MpW
» WarCraft 3 / Едкое дыхание
» WarCraft 3 / Новые нативные функции в 1.29
» WarCraft 3 / Новые нативные функции в 1.29
» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3
Ред. MpW
» WarCraft 3 / Помогите убрать утечку в триггерном заклинании
Ред. MpW
» WarCraft 3 / Помогите убрать утечку в триггерном заклинании
ForGroup - цикл, вызывает функцию.
Ред. MpW
» WarCraft 3 / Помогите убрать утечку в триггерном заклинании
по поводу спецэффектов - попробуй воткнуть внутрь цикла ForGroup (на гуи Pick Every unit in group and do (action) ) локалки. Тогда точно все будут удаляться. Еще точнее прописать CS
Ред. MpW
» WarCraft 3 / Работа с w3o
Ред. MpW
» WarCraft 3 / Работа с w3o
Для модов и итоговых преобразований он также скомпилирует ROC Patch.exe и файл TFT Patch.exe. Они могут использоваться, чтобы не импортировать скомпилированные файлы в каждую из ваших карт. Если вы собираетесь
для использования такого патча обязательно удалите все данные пользовательских объектов с карт, которые вы используете на нем (w3u, w3t, w3b, w3d, w3a, w3h, w3q). Скрытая опция конвертирования постоянных игр и игры
настройки интерфейса могут быть активированы с помощью констант ключа INI.
Ред. MpW
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Ред. MpW
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Ред. MpW
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Ред. MpW
» WarCraft 3 / Патч 1.29 вышел на основных серверах
см. выше скрин у клампазабыл что в чате это» WarCraft 3 / Оптимизация: Количество событий
» WarCraft 3 / Патч 1.29 вышел на основных серверах
» WarCraft 3 / Патч 1.29 вышел на основных серверах
Ред. MpW
» WarCraft 3 / Оптимизация: Количество событий
Используйте хэш-таблицу. С помощью нее делаете базу данных при инициализации. В ней сохраняете строку, название функции. Вызываете через ExecuteFunc. Выводы какие:
действие........
endfunction
Ред. MpW
» WarCraft 3 / Проверка заполненности логического массива