PT153 #1 - 6 дней назад 0

» WarCraft 3 / 7.Перечисления

А как enum переносится в JASS2?
PT153 #2 - 1 месяц назад -3

» WarCraft 3 / Патч 1.29 вышел на основных серверах

То, что патч выпустили без многих багфиксов, - норма. Разработчикам поставили конкретный дедлайн, возможно, очень малый, а они не успели всё пофиксить. Их можно понять. Они обычные люди, устроились на работу и им дали разбираться со старой игрой, где местами было сделано на скорую руку. Вряд ли ими движет какой-то энтузиазм. По крайней мере, точно не всеми - выход патча это подтверждает.
Потому я не рекомендую делать карту на патчах выше 1.28. Всё ещё может много раз поменятся. Лучше всё продумать на 1.26, местами сделать костыльно, но это будет работать, и люди будут играть. Как только в редакторе поздних версий всё наладится, перенести карту, как мне кажется, не составит труда.
PT153 #3 - 1 месяц назад (отредактировано ) 0

» WarCraft 3 / OrderById

Вот тут все есть.
PT153 #4 - 1 месяц назад 0

» WarCraft 3 / Патч 1.29 вышел на основных серверах

pro100master:
PT153, ощутимо ничего не изменилось =)
Ну так это понятно, патч просто вышел на лайв. Баги должны были пофиксить или указать в Known Issues.
PT153 #5 - 1 месяц назад (отредактировано ) 0

» WarCraft 3 / Патч 1.29 вышел на основных серверах

Патч 1.29 на лайв вышел.
Узнал об этом из рекламы этого патча в Battle.net Launcher во вкладке StraCraft II.
PT153 #6 - 2 месяца назад 0

» WarCraft 3 / Что это?

Это Orientation Interpolation.
Этот ресурс утверждает, что смысл этого поля неизвестен. Потому Вы вряд ли сможете узнать ответ.
PT153 #7 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Что это?

MadeControl:
Графика - положение вставки
Нажми CTRL + D и скажи, что появилось вместо надписи "Графика - положение вставки". Тогда смогу ответить.
PT153 #8 - 2 месяца назад 0

» WarCraft 3 / Вопрос про Custom Script

Wadimiru:
В итоге ты кучу раз вызываешь функцию ForGroup, вместо того, чтобы вызвать её только один раз.
шта?
В варианте с циклом ты ее вообще не вызываешь.
А, пардон, я спутал с GroupPickRandomUnitEnum.
PT153 #9 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Вопрос про Custom Script

Talgar2:
Ты смотрел так?
Делаешь на гуи.
Потом заходишь в меню Edit -> convert to custom script. И смотришь.
Сначала надо определить функцию F. Потом функция, где происходит всё остальное.
function F takes nothing returns nothing
	local unit u = GetEnumUnit()
	...
	set u = null
endfunction

function action takes nothing returns nothing
	local group g = CreateGroup()
	set g = GroupEnum...(g, ...) // добавляет юнитов в группу. Сама функция зависит от того, как ты выбираешь юнитов.
	call ForGroup(g, function F)
	call DestroyGroup(g)
	set g = null
endfunction
Wadimiru:
Можешь циклом перебирать всех юнитов в группе.
Взял первого юнита группы, сделал с ним что-то нехорошее, удалил из группы (Переместил во вторую группу, если они тебе в дальнейшем нужны именно в этом составе). Повторил, пока юниты в группе не закончатся. Если юзал вторую группу - добавил ее юнитов в исходную.
В итоге ты кучу раз вызываешь функцию ForGroup, вместо того, чтобы вызвать её только один раз.
PT153 #10 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Как сделать прозрачный (бестелесный) юнит?

Steal nerves:
PT153, у меня даже через обычных не проходит, обходит их.
Единственное. что выяснил случайно: Моя тень не может проходить насквозь юнитов, а вот другие юниты могут через мою тень ходить.
Я делаю ТДшку, и у меня с этой способностью всё хорошо, так как приказы отдаются триггерно. Миньоны просто идут через друг друга. Без неё спотыкаются друг о дружку.
PT153 #11 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Вопрос про Custom Script

Делаешь на гуи.
Потом заходишь в меню Edit -> convert to custom script. И смотришь.
А так, делаешь локальную группу через local group g = Create Group(), потом добавляешь в неё тех, кого нужно, а после ForGroup(g, function F). F - функция, в которой описано, что делать с юнитами в группе. Уничтожаешь группу и обнуляешь g после ForGroup().
PT153 #12 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / [jass] Кроме констант как можно добавить в массив?

В структурах нужно обязательно указывать размер массива, так как для каждого поля создаётся массив (размер которого 8192). После на каждую инстанцию структуры отводится столько ячеек из 8192, сколько есть максимальный размер массива, который используется в структуре.
struct MyStruct
	integer array u[3]
	integer array k[5]
	integer array t[10]
endstruct
На каждый объект этой структуры будет отведено 10 ячеек из 8192, при этом ячейка 0 занята на "null" структуры, а 8191 не используется. То есть всего объектов мы можем единовременно иметь 8190 / 10 = 819. Если захотим создать больше, будут выводиться ошибки, если включён Debug Mode, а объект просто не будет создан: функция allocate вернёт 0.
А чтобы использовать константы в определении размера массивов, пишите так:
globals
 constant integer H = 500
 constant integer P = 2 * H
endglobals

struct MyStruct
	static constant integer U = 400
	integer array z[P]
endstruct
Тут нужно отметить факт, что константы должны быть заданы чётко. vJass не будет вычислять P при компиляции, потому размер массива z в структуре равен 2 - первому числу, которое встречается в выражении P. Компилятор vJass просто копирует значение переменной и генерирует Jass код. Отсюда вытекает, что вы не можете регулировать размер массива во время игры - он отводятся при компиляции и записан в коде.
А вообще, читайте это. Там всё рассказано очень хорошо (почти).
PT153 #13 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Как сделать прозрачный (бестелесный) юнит?

Steal nerves:
PT153, эти точно на проходимость через всех юнитов влияет?
Давал юнитам (не зданиям) в своей карте - проходят через всех, кроме зданий. Возможно, стоило сразу указать, просто для меня юнит = боевая единица, которая зданием не является.
PT153 #14 - 2 месяца назад 1

» WarCraft 3 / Как сделать прозрачный (бестелесный) юнит?

Способность Ghost (Visible) 'Aeth' - проходимость через всех юнитов, сам юнит видим.
Способность Ghost 'Agho' - проходимость через всех юнитов, сам юнит невидим.
PT153 #15 - 2 месяца назад 0

» WarCraft 3 / Иконка в mpq

quq_CCCP:
PT153, это из доты, выколупать вам или сами? Помнится где то видел пак этих сапогов всех цветов радуги...
Вообще иконка из WoW, насколько я знаю. Сам уже достал.
PT153 #16 - 2 месяца назад 0

» WarCraft 3 / Иконка в mpq

PrincePhoenix:
Эх, а жаль.
Она весит не более 15 кб, я думаю, в чем трудности?)
Я в любом случае буду рисовать на основе этой свою (уже сделал), просто я могу скачать с иконку с плохим качеством.
PT153 #17 - 2 месяца назад 0

» WarCraft 3 / Иконка в mpq

Этой иконки в стандартных MPQ нет, её нужно импортировать.
Эх, а жаль.
PT153 #18 - 2 месяца назад 0

» WarCraft 3 / Этот спелл можно сделать без heshtable

Andrey33:
AlexSan, я просто почитал что если в карте уже используется хеш то много утечек будет, +у меня уже есть хеш в карте
А где читали?
Насколько я знаю, если хеш чистить, то утечек не будет.
PT153 #19 - 2 месяца назад (отредактировано ) 0

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

Clamp:
PT153, это сильно зависит от того, как ты установил вторую копию.
Обе ставил НЕ через инсталлер. JNPG тоже архивом качал.
PT153 #20 - 2 месяца назад 0

» WarCraft 3 / Джайна взорвется?

Globder:
pro100master:
хотите 10% достаточно генерировать от 1 до 10 а условие поставить равен 10
нет, спс
Чем это не нравится?
Ну и как уже сказали выше, в настройках редактора выключаешь фиксированные числа при рандоме.
PT153 #21 - 2 месяца назад 0

» WarCraft 3 / Old School, и с чем его едят - часть третья.

P.S. Небольшой баг : рыбы иногда пройти мешают. Неприятно.
Им можно дать способность Ghost (Visible), тогда о них никто спотыкаться не будет.
PT153 #22 - 3 месяца назад 0

» WarCraft 3 / обнуление локальныйх массивов

утечка - это ссылка на объект, который больше не нужен. массив нужно обнулять, чтобы эти объекты удалились дальше. неважно, выделена под него память или нет, важно, что будет с объектами. Поэтому хендлы чистить надо
То есть даже у глобальных массивов надо обнулять ячейки?
PT153 #23 - 3 месяца назад 0

» WarCraft 3 / Бесконечные герои

Поставить лимит на юнита игроку.
PT153 #24 - 3 месяца назад 2

» WarCraft 3 / Как сделать способность "Кровотечение"?

Nort:
Это? Просто я уже все менял, а эффект не изменился.
Надо бафф изменить.
PT153 #25 - 3 месяца назад 0

» WarCraft 3 / Вопрос по циклам

Несколько exitwhen в теле цикла пишешь.
PT153 #26 - 3 месяца назад (отредактировано ) 0

» WarCraft 3 / Jass New Gen Pack - Rebuild 1.4

У меня стоят 2 версии варкрафта 1.26 - русская и английская. Карты делаю на английской, играю на русской. После того, как запускаю русскую версию варкрафта, поля в РО в JPNG становятся русскими (при установке выбирал путь к английской версии). Чтобы это исправить, приходится запускать английскую версию варкрафта. Можно ли в JNPG как-то установить путь к редактору, чтобы он не менялся?
PT153 #27 - 3 месяца назад (отредактировано ) 0

» WarCraft 3 / Приказ 851974

DracoL1ch:
И смена игрока тоже просто стоп. Как именно этот приказ увидеть вживую? В коде игры вижу, а на практике первый раз. Вроде как у пеонов есть, может, поэтому и не встречал
У меня следующий триггер выводит этот приказ, после смены игрока и смены позиции.
function Trig_OrderID_Actions takes nothing returns nothing
	local integer id = GetIssuedOrderId()
	call DebugMsg(OrderId2String(id) + " " + I2S(id))
endfunction

function InitTrig_OrderID takes nothing returns nothing
	set gg_trg_OrderID = CreateTrigger(  )
	call TriggerRegisterAnyUnitEventBJ( gg_trg_OrderID, EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER )
	call TriggerRegisterAnyUnitEventBJ( gg_trg_OrderID, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
	call TriggerRegisterAnyUnitEventBJ( gg_trg_OrderID, EVENT_PLAYER_UNIT_ISSUED_ORDER )
	call TriggerAddAction( gg_trg_OrderID, function Trig_OrderID_Actions )
endfunction
Игрок, которому передаётся юнит, должен быть под управлением компьютера (MAP_CONTROL_COMPUTER). Если поставить другой MAP_CONTROL или вообще не обозначать игрока, то приказ отдаваться не будет.
PT153 #28 - 3 месяца назад 0

» WarCraft 3 / Приказ 851974

DracoL1ch:
SetUnitPos вообще-то просто "стоп" приказывает
Я ещё перед этим игрока меняю, может потому и высвечивается этот приказ.
PT153 #29 - 3 месяца назад 0

» WarCraft 3 / Проблемы с переменной "Боевая единица"

Maniac_91:
Выбери на карте (кнопка "выбрать" справа).
Он имеет в виду окно создания переменной.
Там иначе никак, нужно будет после присвоить значение этой переменной.
PT153 #30 - 3 месяца назад 0

» WarCraft 3 / Приказ 851974

О, спасибо за ссылку на айди все приказы.
PT153 #31 - 3 месяца назад 0

» WarCraft 3 / Death type

quq_CCCP:
Death-time это время разложения и анимы смерти, после его истечения юнита уже нету на карте, но труп может быть и хендл пока висит.
Все неразлагающиеся (вспомни летунов) умирают сразу не оставляя трупов и удаляются после death time.
Так же суммоны, всякие варды. Можно добавить баф призыва волков, тогда юниты удалятся сразу после смерти.
Отлично, я так и думал, что "Can't raise, does not decay" удаляет хендл после смерти. А что насчёт "Can raise, does not decay"?
PT153 #32 - 3 месяца назад 0

» WarCraft 3 / Death type

А если конкретнее.
Can't raise, does not decay и Can raise, does not decay удаляют хендл юнита после смерти?
PT153 #33 - 3 месяца назад 1
PT153 #34 - 3 месяца назад 0

» WarCraft 3 / Новые нативные функции в 1.29

Clamp:
Клик по иконке незанятого раба в углу возвращает координаты за иконкой, забавно.
Ещё забавнее, что на семь if приходится девять endif, и при этом карта работает.

В смысле ЧТОО?!
Кстати да. Скачал карту DarkLightning-а, увидел тоже это.
А кто Clamp минусы ставит?
PT153 #35 - 3 месяца назад (отредактировано ) 1

» WarCraft 3 / Новые нативные функции в 1.29

к чему было отдельно делать GetUnitMaxMana/Life? Что вообще такое AutomationTest?
Вот тоже интересно.
uranus:
Я не понял про события начала/конца каста, в чем их отличие от того, что было?

было

constant unitevent EVENT_UNIT_SPELL_CHANNEL = ConvertUnitEvent(289)
constant unitevent EVENT_UNIT_SPELL_CAST = ConvertUnitEvent(290)
constant unitevent EVENT_UNIT_SPELL_EFFECT = ConvertUnitEvent(291)
constant unitevent EVENT_UNIT_SPELL_FINISH = ConvertUnitEvent(292)
constant unitevent EVENT_UNIT_SPELL_ENDCAST = ConvertUnitEvent(293)

стало

constant unitevent EVENT_UNIT_SPELL_CHANNEL = ConvertUnitEvent(292)
constant unitevent EVENT_UNIT_SPELL_CAST = ConvertUnitEvent(293)
constant unitevent EVENT_UNIT_SPELL_EFFECT = ConvertUnitEvent(294)
constant unitevent EVENT_UNIT_SPELL_FINISH = ConvertUnitEvent(295)
constant unitevent EVENT_UNIT_SPELL_ENDCAST = ConvertUnitEvent(296)
PT153 #36 - 3 месяца назад 0

» WarCraft 3 / Новые нативные функции в 1.29

pro100master:
но если надо то поставить GetEventDamage(-100.00) даст лечение хп здоровья чистый с учетом регеном.
GetEventDamage(100.00) снимает 100 здоровья с юнита чистый даже учитивает регенерация
Тут наверное имеется в виду SetEventDamage()?
pro100master:
то есть юит получает урон
получает сколько нанес урон через GetEventDamage c учетом брони
То есть по умолчанию в GetEventDamage() записан урон с вычитом брони?
PT153 #37 - 3 месяца назад 0

» WarCraft 3 / Новые нативные функции в 1.29

Объясните ещё раз, что делает SetEventDamage(), пожалуйста.
PT153 #38 - 3 месяца назад (отредактировано ) 0

» WarCraft 3 / Новые нативные функции в 1.29

pro100master:
Clamp, угу и русский не показывает...
Потому что поддержку кириллицы так и не завезли.
Ну и на сайте написано:
PTR only supports English version of the client.
PT153 #39 - 3 месяца назад 0

» WarCraft 3 / Патч 1.29 вышел на основных серверах

ScorpioT1000:
ClotPh, game.dll
но по сути там всё перекроили, Frozen Throne.exe устранено, теперь 1 лаунчер.
Один лаунчер в 1.28 был.
PT153 #40 - 3 месяца назад 2

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Вспомнил про один баг. Есть сделать PauseTimer() на периодический таймер, а потом на этой таймер использовать ResumeTimer(), то таймер повторит свой цикл лишь раз, а потом остановится.
PT153 #41 - 3 месяца назад 0
PT153 #42 - 3 месяца назад (отредактировано ) 0

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

И вот, что хотелось бы исправить в способностях:
Добавлю ещё способность Death Coil, у которой не меняется эффект, накладываемый на цель.
То есть его изменяешь или убираешь, но он всё равно остаётся. Лечится заменой модельки на пустышку.
PT153 #43 - 4 месяца назад 0

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Clamp:
но можно расширить на сколько угодно.
Ценой падения производительности в целом, ЕМНИП.
С чего бы? Просто создаются ещё массивы, а при передаче нужный массив выбирается в If-е. Не такое уж и падение.
PT153 #44 - 4 месяца назад (отредактировано ) 4

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

Будет очень интересно глянуть, как они реализуют структуры. В своей карте я их использую очень активно, так как знаю о них всё, и во всех триггерах сразу делаю переход от нативных объектов к структурам. Надеюсь, они добавят способ привязывания структур к нативным объектам.
Нативные структы - очень гуд, потому что строились они изначально на хаках и параллельных массивах и были лимиты и т.д.
Любой данный лимит можно всегда расширить. Базово не более 8190 (на самом деле 8191) элементов у структуры, и этого хватает обычно, но можно расширить на сколько угодно.
Рендер проверю.

Работают вот эти функции:

native SetImageRenderAlways takes image whichImage, boolean flag returns nothing
native SetUbersplatRenderAlways takes ubersplat whichSplat, boolean flag returns nothing

А эти нет:

native SetImageRender takes image whichImage, boolean flag returns nothing
native SetUbersplatRender takes ubersplat whichSplat, boolean flag returns nothing
Уже просили передачу параметров в функции, что вызываются в ForGroup, ForForce и TimerStart?
PT153 #45 - 4 месяца назад 0

» WarCraft 3 / Blizzard готовят Producer Update для Warcraft 3

GF RaiseD:
Пишите сюда ваши идеи. Если это что-нибудь новое - закину на хайв. Или на хайв пишите. А то как лохи.
Аккаунта на хайве пока нет, напишу сюда.
Не заметил в багфиксах этой функции.
native SetImageRender takes image whichImage, boolean flag returns nothing
Она не работает.
Ну и функцию GetUnitZ хотелось бы.
PT153 #46 - 4 месяца назад 0

» WarCraft 3 / Игровые Константы

  1. Показ состояния зданий - у юнитов в панели информации есть строка Status, где отображаются все текущие баффы. Этот параметр отвечает за показ этой строки у зданий.
  2. Радиус разведки тумана - юнит игрока умирает (был атакован), то вокруг умирающего (атакующего) даётся обзор указанного радиуса на некоторое время.
  3. Столкновение: максимальный радиус - максимальный возможный радиус хитбокса юнита.
  4. Уведомление о атаке - очевидно, что это про сигнал атаки. Минимальный интервал и минимальное расстояние (от текущего положения камеры?), чтобы сигнал звучал.
Остальные неизвестны.
PT153 #47 - 4 месяца назад 0

» WarCraft 3 / Аттачменты у способностей

DracoL1ch:
Уверен, что это фича кэля. Не используй на его модели подобное и будет норм, думаю
Я давал Mountain King, менял точки прикрепления, сам эффект, кулдаун, длительность - пропадает.
PT153 #48 - 4 месяца назад 0

» WarCraft 3 / Аттачменты у способностей

DracoL1ch:
Нет, с чего бы?
Хм, просто Кель имеет эту способность и при атаке использует именно ту анимацию (камни ещё при этом пропадают). Или я чего-то не понимаю?
Эффект пропадает при атаке, и появляется через некоторое время. Изменение полей "Duration" и "Cooldown" не помогло.
PT153 #49 - 4 месяца назад 0

» WarCraft 3 / Почему нельзя создать больше TriggerAddCondition для 1 триггера?

Используйте не Filter(), а Condition(). С последним точно работает.
PT153 #50 - 4 месяца назад 0

» WarCraft 3 / Аттачменты у способностей

Укрепленные логова 'Arbr' - пустышка с невидимой иконкой, которая есть у логова и сторожевых вышек. Открывается при завершении исследования. Скорее всего больше создана для эффектов. У этих строении пояляются стальное укрепление. Короче железки с четырех сторон.
Шипы 'Aspi' - пустышка с невидимой иконкой, которая есть у всех орочьих строении. Открывается при завершении исследования. Скорее всего больше создана для эффектов. У этих строении появляются шипы.
Надо написать сборник такой по всем абилкам.
У этих способностей нет требований, но эффект появляются только в результате улучшений, что меня настораживает.
JaBeN_Симфер:
Если нет необходимости в таких уникальных механиках работы абилки с аттачами, как Сфера Келя, то стоит задуматься об отказе от абилок и переходе на триггерную систему аттачей, тем более, если абилок очень много.
Мне проще создать абилку, так как:
  • её эффект сразу удалится, как только юнит умрёт;
  • не нужно проверять, есть ли уже такой эффект у юнита.
DracoL1ch:
Можно добавить, что Asph - лучший вариант, самый легкий с точки зрения движка. Остальные так или иначе являбются абилками и подтягиваются лишний раз при определенных действиях. Asph считается чисто визуальной абилкой и не генерирует лишних операций
А если у юнита атака, то модель снаряда будет браться из Asph?