Решил недавно написать простенькую функцию, но при сохранении редактор тупо закрылся.
function dummy_cast takes integer playerCast, unit dummy, string spell, widget target returns nothing
    call CreateUnit(Player(playerCast), 0, 0, 0, 0)
    call IssueTargetOrder( dummy, spell, target )
    call UnitApplyTimedLife(dummy, 'BHwe', 1)
endfunction
Как использую: imgur.com/a/Ty4PXzT
АПД. Хм, сейчас вроде работает. Мб что-то ещё добавлял. Но тут вопрос скорее в том, что может вызвать краш редактора в таком контексте.

map_maiker, какой то глупый код, у тебя если нет аргумента dummy - то идет обрыв потока, ибо обращение к пустой переменной.
	function DummyTargetCast takes unit cast, unit targ, integer spellid, integer order returns nothing
    	local unit dummy = CreateUnit( GetOwningPlayer(cast), 'hdum', GetUnitX(targ), GetUnitY(targ), bj_UNIT_FACING )
		call SetUnitPathint( dummy, false )
		call UnitAddAbility( dummy, spellid )
		call UnitApplyTimedLife( dummy, 'BTLF', 5.00 )
		call UnitShareVision( targ, GetOwningPlayer(cast). true )
		call IssueTargetOrder( dummy, order, targ )
		call UnitShareVision( targ, GetOwningPlayer(cast). false )
		set dummy = null
	endfunction
	// пример использования
	call DummyTargetCast( GetSpellAbiliutyUniut(), GetSpellTargetUnit(), 'Ahtb', OrderId("thunderbolt"))

Код не универсальный, да и вовсе можно круче и оптимальнее, ты совершенно не учитываешь следующие вещи:
  1. выгоднее юзать специально заготовленные глобальные переменные чтобы хранить того же даммика.
  2. даммик может мешатся, толкатся, желательно создавать его в позиции цели, и убирать карту путей.
  3. не стоит ставить короткое время жизни даммикам, если они наносят урон, может случится конфуз - кто убил не известно
  4. Даммик может не видеть цель, поэтому нужно создавать даммика за врага (но в настройках способности указать цели - союзники) что катит только для спеллов не наносящих урон, или делать SharedVision.
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Без понятия что в этом коде могло вызвать краш редактора. Единственное, у тебя тут утечка в первой строке. Зачем ты создаёшь юнита, если никак с ним не взаимодействуешь? Тупо заспавнил и всё, да и по равкоду вроде как тоже должно ошибку выдать. Ну и в плане оптимизации лучше одного глобального дамми создать и при таких то кастах выдавать/забирать, устанавливать уровень абилок и т.п., а так же менять владельца на время
9
Единственное, у тебя тут утечка в первой строке. Зачем ты создаёшь юнита, если никак с ним не взаимодействуешь?
Оу. По идее это именно с ним надо взаимодействовать. А параметр определяет тип юнита.
Мб краш из-за того, что рав-код передаётся в отдачу приказа?
rsfghd:
Ну и в плане оптимизации лучше одного глобального дамми создать и при таких то кастах выдавать/забирать, устанавливать уровень абилок и т.п., а так же менять владельца на время
А что на счёт одновременного каста и всего такого?
32
map_maiker, какой то глупый код, у тебя если нет аргумента dummy - то идет обрыв потока, ибо обращение к пустой переменной.
	function DummyTargetCast takes unit cast, unit targ, integer spellid, integer order returns nothing
    	local unit dummy = CreateUnit( GetOwningPlayer(cast), 'hdum', GetUnitX(targ), GetUnitY(targ), bj_UNIT_FACING )
		call SetUnitPathint( dummy, false )
		call UnitAddAbility( dummy, spellid )
		call UnitApplyTimedLife( dummy, 'BTLF', 5.00 )
		call UnitShareVision( targ, GetOwningPlayer(cast). true )
		call IssueTargetOrder( dummy, order, targ )
		call UnitShareVision( targ, GetOwningPlayer(cast). false )
		set dummy = null
	endfunction
	// пример использования
	call DummyTargetCast( GetSpellAbiliutyUniut(), GetSpellTargetUnit(), 'Ahtb', OrderId("thunderbolt"))

Код не универсальный, да и вовсе можно круче и оптимальнее, ты совершенно не учитываешь следующие вещи:
  1. выгоднее юзать специально заготовленные глобальные переменные чтобы хранить того же даммика.
  2. даммик может мешатся, толкатся, желательно создавать его в позиции цели, и убирать карту путей.
  3. не стоит ставить короткое время жизни даммикам, если они наносят урон, может случится конфуз - кто убил не известно
  4. Даммик может не видеть цель, поэтому нужно создавать даммика за врага (но в настройках способности указать цели - союзники) что катит только для спеллов не наносящих урон, или делать SharedVision.
Принятый ответ
9
map_maiker, какой то глупый код, у тебя если нет аргумента dummy - то идет обрыв потока, ибо обращение к пустой переменной.
Это промежуточная версия. Просто после краша я забил на дописывание. Да и писал ночью, как-то вот захотелось.
Так краш из-за обрыва потока?
quq_CCCP:
выгоднее юзать специально заготовленные глобальные переменные чтобы хранить того же даммика.
А если их несколько?
quq_CCCP:
даммик может мешатся, толкатся, желательно создавать его в позиции цели, и убирать карту путей.
не стоит ставить короткое время жизни даммикам, если они наносят урон, может случится конфуз - кто убил не известно
Даммик может не видеть цель, поэтому нужно создавать даммика за врага (но в настройках способности указать цели - союзники) что катит только для спеллов не наносящих урон, или делать SharedVision.
Учту.
32
map_maiker, даже если их несколько, все действия с даммиком делаются мгновенно, без разрыва потока вейтами или чем то еще, даммик естественно не должен провоцировать события триггеров которые используют эту глобальную переменную, и все.

map_maiker, потом скрин из редактора даммика в студию, то часто многие тупят и делают даммика из кого попало, идеальные кандидаты - светлячок\тень нежити, им модель на dummy.mdx, атак нету, теней и прочего тоже, способности 'Aloc'- москиты и можно вручить пустышку на которую можно проверить, чтобы исключать даммиков, расходы хп, регены и опыты с наградами - убираем в 0, апгрейды тоже, имя по вкусу, хп можно 150к, тоже можно юзать как способ чтобы отличать технических юнитов от всех других, макс хп такое, какого нет у никаких других юнитов кроме даммиков.
9
потом скрин из редактора даммика в студию, то часто многие тупят и делают даммика из кого попало, идеальные кандидаты - светлячок\тень нежити, им модель на dummy.mdx, атак нету, теней и прочего тоже, способности 'Aloc'- москиты
Я из пехотинцев даммиков делаю, всё остальное так же - модель убираю, москиты, атаки убираю, тени тоже.
quq_CCCP:
и можно вручить пустышку на которую можно проверить, чтобы исключать даммиков, расходы хп, регены и опыты с наградами - убираем в 0, апгрейды тоже, имя по вкусу, хп можно 150к, тоже можно юзать как способ чтобы отличать технических юнитов от всех других, макс хп такое, какого нет у никаких других юнитов кроме даммиков.
Хм, интересно.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.