26

» WarCraft 3 / Помогите настроить триггер

PT153:
Hate, атакованный юнит на самом деле юнит триггера, а юнит триггера для события получения урона, собственно, является юнитом, что получил урон.
это русификатор такой? или бж хитрая?
26

» WarCraft 3 / Можно ли редактировать редактор GUI в JNPG?

в редакторе более новой версии вы все равно карту после не откроете, так что смысла ноль
26

» WarCraft 3 / Помогите настроить триггер

а все действия необходимые если таймер истекший можно закинуть в одно дерево if/then/else
26

» WarCraft 3 / Помогите настроить триггер

вообще есть конкретное событие на истечение таймера, не нужно проверять каждую секунду истек ли он
26

» WarCraft 3 / Моя попытка создания системы отрядов, версия 1.26a

полезнее прочесть и понять зачем, вместо предоставления готового решения. так не возникнет понимания "зачем"
потом мы видим как люди обнуляют числа и строки
26

» WarCraft 3 / Моя попытка создания системы отрядов, версия 1.26a

menover:
8gabriel8:
menover:
я добавил членам отряда "москиты" и "тёмный", и больше они сами не расставляются
Тогда понятно, в итоге просто не требуется убирать юнитов из отряда и удалять его, пока члены отряда не погибнут. По идее обычный pick выполнит то, что тебе требуется. Просто добавь целочисленную переменную, которой будешь прибавлять 1 с каждым пиком, она будет определять смещение координат для приказа.
раскрыть
function Trig_jpoint_Conditions takes nothing returns boolean
    return (GetUnitAbilityLevel(GetOrderedUnit(), 'BHad') > 0) //Проверка наличия способности "Командир"
endfunction

function patrol takes nothing returns nothing
    local unit f = GetEnumUnit()
    local real x = GetOrderPointX()
    local real y = GetOrderPointY()
    call IssuePointOrder( f, "patrol", x,y)
    set f = null
endfunction

function Trig_jpoint_Actions takes nothing returns nothing
    local unit com = GetOrderedUnit()
        if ((GetIssuedOrderId() == String2OrderIdBJ("patrol")) and (GetUnitAbilityLevel(com, 'BHad') > 0)) then
        call ForGroup(udg_Squad[GetUnitUserData(com)],function patrol)
        endif
    set com = null
endfunction

//===========================================================================
function InitTrig_jpoint takes nothing returns nothing
    set gg_trg_jpoint = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_jpoint, EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER )
    call TriggerAddCondition( gg_trg_jpoint, Condition( function Trig_jpoint_Conditions ) )
    call TriggerAddAction( gg_trg_jpoint, function Trig_jpoint_Actions )
endfunction
26

» WarCraft 3 / Моя попытка создания системы отрядов, версия 1.26a

ты сделал не копию группы, а задал в переменную ссылку другой переменной.
переменные это не фактические объекты, это ссылки на них
что бы скопировать группу тебе нужно сделать новую группу и добавить в нее всех из другой
например так
	function CopyGroup takes group g returns group
        set bj_groupAddGroupDest = CreateGroup()
        call ForGroup(g, function GroupAddGroupEnum)
        return bj_groupAddGroupDest
    endfunction
26

» WarCraft 3 / как делать проходимость на ходьбу и т.д на джассе?

если бы SetUnitPosition только останавливала приказы юнита, то это бы не работало
---@param source unit
	---@param x real
	---@param y real
	function SetUnitPositionSmooth(source, x, y)
		local last_x = GetUnitX(source)
		local last_y = GetUnitY(source)
		local bx
		local by

		SetUnitPosition(source, x, y)

		if (RAbsBJ(GetUnitX(source) - x) > 0.5) or (RAbsBJ(GetUnitY(source) - y) > 0.5) then

			SetUnitPosition(source, x, last_y)
			bx = RAbsBJ(GetUnitX(source) - x) <= 0.5
			SetUnitPosition(source, last_x, y)
			by = RAbsBJ(GetUnitY(source) - y) <= 0.5

			if bx then
				SetUnitPosition(source, x, last_y)
			elseif by then
				SetUnitPosition(source, last_x, y)
			else
				SetUnitPosition(source, last_x, last_y)
			end

		end
	end
26

» WarCraft 3 / как делать проходимость на ходьбу и т.д на джассе?

PT153:
Hate, так с помощью неё всё равно можно проскочить сквозь блокираторы.
можно, но подход несколько разный
26

» WarCraft 3 / Вопрос касательно прав на карту и модели.

делают на легке
очень хочу посмотреть как ты на легке делаешь модели к варику)
я уже молчу про другие модели из под блендера какого нибудь
26

» WarCraft 3 / "Лучший" Jass обработчик

Koladik:
а зачем?
Обоснованного на реальных цифрах, а не вере выбора реализации не достаточно?
это не вера, это здравый смысл
26

» WarCraft 3 / Заголовок

а откуда в этом триггере появится атакованный юнит?
тут очень большие проблемы с пониманием как все работает. вам нужен отдельный триггер который заставляет тень следовать, и отдельный который заставляет тень атаковать ту же цель что и герой
26

» WarCraft 3 / "Лучший" Jass обработчик

тогда нужно менять подход, все еще вы не объяснили зачем данная конструкция и какие проблемы она решает
вы попробуйте практично объяснить и экстраполировать применение данной конструкции