28

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Как ты так сделал?
Grimoire -> Enable Colorizer.
Временно перебрался на другой комп, так как мой в ремонте, и столкнулся с проблемой: когда я включаю UMSWE и перезапускаю редактор, тот пишет "Unable to apply patch". Можно нажать крестик или ОК, но редактор запустится. При открытии или создании карты редактор начнёт спамить ошибками Trigger Editor. Права админа не помогают. JNPG и Варкрафт в разных папках на диске C, пути не содержат кириллицу.
Это пофиксил, был удалён MPQ Editor в папке bin.
28

» WarCraft 3 / I2H как сконвертировать

Как Правильно написать функцию для перебора группы В структуре
call ForGroup( udg_grSpell, function SpellEngine.execSpell )
28

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Кстати, в R4 pjass странный, сам добавляет Condition там, где я их намеренно не делал, обновите его до последней версии.
Это делает JassHelper (edit 14.01.2021).
Ох уж эта склейка сообщений)
Временно перебрался на другой комп, так как мой в ремонте, и столкнулся с проблемой: когда я включаю UMSWE и перезапускаю редактор, тот пишет "Unable to apply patch". Можно нажать крестик или ОК, но редактор запустится. При открытии или создании карты редактор начнёт спамить ошибками Trigger Editor. Права админа не помогают. JNPG и Варкрафт в разных папках на диске C, пути не содержат кириллицу.
28

» WarCraft 3 / Сброс перезарядки предмета.

Sebra2:
Ты хочешь сказать, что:
1.Кд висит на герое.
2.Кд нет на инвентаре.
3.Кд нет на предмете.
4.Кд не снимается удалением абилы.
Откуда такая информация?
Спасибо, но мемхак не хочу. Скорее изменю способность.
Ну так возьми и протести, это просто сделать. Заоодно выяснишь, кто прав.
28

» WarCraft 3 / Повторы слов в war3mapSkin\war3mapMisc

ScopteRectuS:
Смею предположить, что это текст для каждой кнопки, которая встречается в редакторе.
Тоже так подумал, но не использую AIEditor.
28

» WarCraft 3 / Своя подсветка функций

Borodach:
А автонабор также будет работать?
Функции со стрелочкой вниз - твои функции из tesh\includes.
Автонабор по умолчанию включён. Его можно отключить, если что.
Загруженные файлы
28

» WarCraft 3 / Позиционный звук

Lotus101:
Там нет правильного ответа, локальный игрок совершенно не то и создание звука в модельке тоже.
Попробуй так:
function CreateMirrorSoundPoint takes real x, real y, real z returns nothing
   local sound s = CreateSound("Abilities\\Spells\\Orc\\MirrorImage\\MirrorImage.wav", false, true, true, 10, 10, "SpellsEAX")
   call SetSoundParamsFromLabel(s, "MirrorImage")
   call SetSoundDuration(s, 1756)
   call SetSoundPosition(s, x, y, z)
   call StartSound(s)
   call KillSoundWhenDone(s)
   set s = null
endfunction
Можно ещё прикрепить на юнита:
function CreateMirrorSoundUnit takes unit u returns nothing
   local sound s = CreateSound("Abilities\\Spells\\Orc\\MirrorImage\\MirrorImage.wav", false, true, true, 10, 10, "SpellsEAX")
   call SetSoundParamsFromLabel(s, "MirrorImage")
   call SetSoundDuration(s, 1756)
   call AttachSoundToUnit(s, u)
   call StartSound(s)
   call KillSoundWhenDone(s)
   set s = null
endfunction
Но способ ssbbssc проще и лучше.
28

» WarCraft 3 / Продолжение: фатал из-за переполнения памяти

а таймер глобальный если не удален то всегда крутится и проверяет
Есть такая функция, называется PauseTimer().
К тому же, таймер можно и не стартовать (Timer Start()), тогда и крутиться нечему.
триггеры могут просто вообще даже не созданы быть
Может быть, выключены, а не созданы?
все я говорю тема не об этом уже
Да я понял, просто совет даю.
Можете не отвечать.
28

» WarCraft 3 / Продолжение: фатал из-за переполнения памяти

относительно глобального периодического таймера - нет, конечно, одно дело что-то каждую секунду вертится и проверяет кучу условий вне зависимости от того, есть там юниты вообще удовлетворяющие этим условиям или нет; другое дело - что-то только при конкретных действиях создается и проверяется.
Кажется, Вы плохо понимаете, как работает периодический триггер.
Периодически триггер вызывает условие, если оно есть, (TriggerEvaluate), а после действие (TriggerExecute). Потому если есть N периодических триггеров с разными условиями, то будет вызываться N условий каждый тик, то есть N новых потоков (если не 2N, я вот не знаю, наследуют ли действия поток условий или создают новый).
А если заменить это всё 1 таймеров с if - elseif, то условия будут вычисляться только до того момента, пока одно из них не даст TRUE. В худшем случае, будет посчитано N условий. Но даже в этом случае это будет лучше триггеров, так как те каждый тик создают как минимум N новых потоков, а 1 таймер каждый тик создают только 1 новый поток.
Другое дело, разница между одним период. триггером и 1 период таймером. Таймер регулировать проще, чем триггер, а в случае ненадобности, таймер можно просто удалить.
что не так?
Глобальные таймеры - это ни хорошо, ни плохо. Глобальный таймер можно создать 1 раз и его использовать.
globals
   constant timer TIMER = CreateTimer()
endglobals
Этот таймер нельзя перезаписать, но можно удалить.
А можно создавать и удалять, если это нужно. Я так делаю, чтобы быть убеждённым, что отсроченные действия не будут выполнены после удаления структуры и уже созданный таймер не будет потерян в памяти из-за его пересоздания при инициализации структуры.
struct CustomTimer
   timer t
   // some parameters

   static method create takes nothing returns thistype
      local thistype this = allocate()
      set t = CreateTimer()
      return this
   endmethod

   method onDestroy takes nothing returns nothing
      call DestroyTimer(t)
   endmethod
endstruct
В целом можно таймер просто паузить при удалении структуры, а при создании написать условие для проверки наличия таймера, но тогда это будет 4 строки, вместо 2-х, а таймеры будут всегда висеть в памяти.
28

» WarCraft 3 / Продолжение: фатал из-за переполнения памяти

Прочитайте вот тут.
А глобальный периодический таймер с кучей условий проверки - это нагрузка всегда.
А триггер нет?
Но производительность стремительно снижалась с появлением новых заклинаний.
Делаю много таймеров, так как у меня своя система баффов. Таймеры хранятся в глобальном массиве, но постоянно удаляются и создаются снова, и ничего не глючит. Может, всё-таки дело в локациях?
И в функциях таймеры должны быть ЛОКАЛЬНЫЕ...
Простите, ЧТО? Откуда вы это вообще взяли?
28

» WarCraft 3 / Продолжение: фатал из-за переполнения памяти

мне тяжелее пока использовать координаты, многого не понимаю в их вычислении, даже не понимаю, как, например, юнит в направлении X и Y другого юнита подвинуть
Математика Вам в помощь)
у себя и так делаю, это форматирование побилось тут
Я так и думал, потому лучше прикрепляйте ещё и .txt файл с кодом. А ещё TESH позволяет Tab переводить в пробелы и наоборот.
28

» WarCraft 3 / Своя подсветка функций

Скачай новую версию TESH с HIVE, удали папку tesh в папке JNPG, вместо неё распакуй туда скачанную. В блокноте пишешь свои функции, сохраняешь в папку tesh\includes. Если в это время открыт редактор, то в меню Trigger Editor кликаешь TESH -> Reload user includes, и твои функции начинают подсвечиваться. Формат подсветки можно настроить в Options, что над рабочей областью редактора.
28

» WarCraft 3 / Продолжение: фатал из-за переполнения памяти

IsDead(u5) == true можно просто писать IsDead(u5).
Ровно как и not IsDead(u7) вместо IsDead(u7) == false.
Сделай скриншот ошибки и кинь сюда, избавься от локаций и сломанных моделек, после этого протестируй на фатал. Если он снова будет, вновь сделай скрин ошибки.
Bergi_Bear:
ну да может быть, а если триггер такой всего 1 и он крутит с десяток функций, которые не нужно будет уничтожать или очищать, может в этом случае и да таймеры лучше, коли дело разовое
Крутить десяток функций можно и таймером)
28

» WarCraft 3 / Продолжение: фатал из-за переполнения памяти

Ну, во-первых, делай отступы, код читаться будет проще.
Во-вторых, разделяй функции одной пустой строкой.
В-третьих, никогда не используй локации, если тебе не нужна координата Z.
Bergi_Bear:
таймеры - на периодический триггер
Нет, таймеры лучше периодических триггеров, так как первые можно удалить при ненадобности, а со вторым так не сделаешь.
Я читал где-то на сайте, что периодические триггеры - зло.
28

» WarCraft 3 / Система Save/Load для PUBG

проблема в том, что я плохо знаю жасс и не люблю его из-за крашей и вылетов.
Только вот ГУИ тоже написано на JASS, и вылетов там будет больше, чем если сразу писать на JASS.
28

» WarCraft 3 / Цепь молний, которая пожирает ману

Loran124:
PT153,
Как именно называется условие, что источник урона дамми?
Тип юнита самый простой способ (Unit-Type Comparison). Но тогда дамми не должен быть универсальным, то есть дамми должен быть создан только для этого спела.
28

» WarCraft 3 / Цепь молний, которая пожирает ману

Пусть твой скил X.
Юнит кастует скил Y. У юнита есть дамми (можно его создавать каждый раз при касте Y и удалять через 5 секунд), который при касте Y кастует спел X в ту же цель. В триггере, что отлавливает получение урона, пишешь условие, что если источник урона есть тот самый дамми, пожрать ману у поражённого юнита. Думаю, что это вполне себе просто реализовать на ГУИ.
ClotPh:
ну вокруг цели пикаешь всех врагов в группу, саму цель сразу из нее исключаешь, выбираешь случайного нового врага из группы на расстоянии перескока молнии от последнего пораженного, бьешь его следующей молнией и удаляешь из группы, ну и повторять так, сколько надо отскоков или пока группа не будет пустой.
новые молнии можно просто даммикастить
В данной реализации можно даже юзать стандартный манабёрн.
28

» WarCraft 3 / Способности, не прерывающие текущий приказ

Steal nerves:
ссылка
не прерывается приказ почти у любой абилы без цели. В большинстве случаев, останавливаются, чтоб заюзать скилл. А потом продолжают делать те действия, которые оборвал. Типа Рев. Есть длительные касты, например: заговор неуязвимости, он остановится, попрыгает (channeling-анимация), и потом дальше будет идти. Или заклинание крови дракончика.
А вот тех, из-за чего еще и не останавливается на ходу, совсем мало
То есть если я поставлю в очередь приказы постройки, а в середине использую эти способности, то очередь прервётся?
можно проверить
Во многом остановка при касте спела зависит от юнита, что его кастует. Если у юнита поставить Art - Animation - Cast Backswing и Art - Animation - Cast Pint на 0, то он при касте не будет останавливаться (те же Рёв и Провокация).
28

» WarCraft 3 / Способности, не прерывающие текущий приказ

DracoL1ch:
Не прерывают выполнение ходьбы, отданной до этого приказа*
Reveal не прерывает приказ вообще, а эти - так, развлечься
То есть если я поставлю в очередь приказы постройки, а в середине использую эти способности, то очередь прервётся?
28

» WarCraft 3 / Равкод 'A00\'

prog:
PT153, прочитав вопрос я не понял почему "без конвертации в число", о чем и спросил.
Решение данной проблемы через конвертацию в число очевидно, я хотел узнать другие способы)
28

» WarCraft 3 / Равкод 'A00\'

prog:
Что мешает конвертировать в число, а в комментариях рядом написать что это был за айдишник, на случай если понадобится?
Ничего, прочитайте вопрос.
28

» WarCraft 3 / Равкод 'A00\'

Hate:
может попробуй занести этот участок с
 //! novjass

//! endnovjass
Думал, но не пробовал. Это записано в константах, боюсь, что не перенесёт вверх.
Сейчас протестирую.
Компилятор просто пропускает то, что в этом блоке, то есть я не смогу использовать глобалку, что в этом блоке.
If that code is parsed by a vJass compiler, it will remove what is inside the //! novjass blocks. If the function is just saved in normal World Editor, it will just ignore the //! novjass tags (since it will think they are comments) so it will still consider their contents.
Steal nerves:
DracoL1ch, если я хочу '\' мне надо '\\'? Короче дебагом проверять надо.
инфа полезна, тоже как-то делал такую ошибку
'\\' = 92
'\' - вылетает в меню
'[' = 91
'\\' = 92
']' = 93
А как ты записал в '' только 2 символа?