21

» WarCraft 3 / Продажа юнита

не знаю когда добавили, но в 1.26 есть. только для начала их нужно объявить, так как они из common.ai.
21

» WarCraft 3 / Продажа юнита

Есть же функции:
native GetUnitGoldCost        takes integer unitid                    returns integer
native GetUnitWoodCost        takes integer unitid                    returns integer
Правда нелbзя использовать на воинов, у которых равкод начинается с прописной буквы (на героев).
21

» WarCraft 3 / Что сбросилось после загрузки?

Принятый ответ
Это же Фелвуд? Возможно сбились настройки функции SetDayNightModels( ), которая прописана в main.
native SetDayNightModels takes string terrainDNCFile, string unitDNCFile returns nothing
21

» WarCraft 3 / Что сбросилось после загрузки?

8gabriel8:
Extremator, так мне и нужен этот параметр. Где он лежит?
call TriggerRegisterGameEvent( trg, EVENT_GAME_LOADED )
21

» WarCraft 3 / Невосприимчивость к контролю

buffId можно узнать в редакторе заклинаний, нажав "ctrl+D". Событие на отлов урона срабатывает даже если урон равен нулю.

Вот пример.
Горного Короля невозможно оглушить или связать корнями.
Чародея Крови можно оглушить или связать корнями.
На Горном Короле всё же появляется анимация оглушения или корней, но это всего лишь анимация спецэффекта, которая не удаляется сразу.
Загруженные файлы
21

» WarCraft 3 / Невосприимчивость к контролю

Можно сделать через отлов урона. Если воин получил урон и при этом имеет бафф от стана, то скорее всего он получил урон именно от самого стана, значит удаляем бафф стана, снимая стан.
Правда прерываемые способности всё равно будут сбиваться.
Sladkoegka:
но как например снять с юнита стан?
сall UnitRemoveAbility( unit, buffId )
21

» Блог им. DarkLigthing / Математический троллинг

DarkLigthing, всё верно, но только построение фракталов методом хаоса warcraft не в силах воспроизводить.
21

» Блог им. DarkLigthing / Математический троллинг

Maniac_91, я пытался через эффекты, просадки ФПС начинаются примерно с 3000+ итерации..
Возможно из-за того что эффекты были эффектные, хз.
21

» Блог им. DarkLigthing / Математический троллинг

Тоже делал что-то подобное. Создание воинов - не самая лучшая идея. При 1000+ итерациях начинает заметно подтормаживать.
21

» WarCraft 3 / Id приказа

  1. Функция OrderId( ) преобразует строку с приказом в тип integer:
constant	native	OrderId	string orderIdString	integer
Например: OrderId( "polymorph" )
Порядок строк: включен (aord)
Загруженные файлы
21

» WarCraft 3 / Особенности потока или что?

Для отладки есть специальная функция BJDebugMsg( string ). А если есть JNGP, то он еще красиво светится красным цветом.
	debug call BJDebugMsg( "start" )
21

» WarCraft 3 / "Убивающая" камера

FabulousTiger:
ScopteRectuS:
FabulousTiger, а для чего нужна функция SyncReal( )?
синхронизировать координаты камеры кастующего игрока
FabulousTiger:
ScopteRectuS:
FabulousTiger, а для чего нужна функция SyncReal( )?
синхронизировать координаты камеры кастующего игрока
А с чем они синхронизируются? Сори за глупый вопрос, никогда не работал с кешем.
21

» WarCraft 3 / "Убивающая" камера

	if (GetLocalPlayer()==GetOwningPlayer(GetTriggerUnit())) then
        set p = GetCameraTargetPositionLoc()
    endif
21

» WarCraft 3 / Направление триггерных спеллов

Принятый ответ
есть специальная функция на jass, которая называется MoveRect() или SetRect(). С помощью этих функций и перемещаете.
native MoveRectTo takes rect whichRect, real newCenterX, real newCenterY returns nothing
native SetRect takes rect whichRect, real minx, real miny, real maxx, real maxy returns nothing
21

» WarCraft 3 / Область воздействия

Принятый ответ
Это из-за физического размера выбираемых воинов.
Если хотите сделать способность, которая будет работать также, как и стандартные, то при выборе воинов в качестве радиуса указываете нужный радиус + максимально возможный физический размер воинов на карте.
// 	Если перебор воинов идёт через цикл:
	call GroupEnumUnitsInRange( group, x, y, SPELL_RADIUS + MAX_COLLIZION_SIZE, boolexpr )
	loop
//		...
		set enumUnit = FirstOfGroup( group )
//		...
		if IsUnitEnemy( enumUnit, player ) and IsUnitInRangeXY( enumUnit, x, y, SPELL_RADIUS ) then
			call DoSomething( )
		endif
//		...
	endloop
Как показано выше, с помощью функции IsUnitInRange( ) мы можем отсеять воинов, которые не попали в радиус действия способности, но были выбраны в группу из-за того, что мы указали в функции GroupEnumUnitsInRange( ) радиус чуть больше нужного нам.
21

» Блог sleep`a / Ваша любимая карта Warcraft 3

  1. DotA. Многие, может быть, и не согласятся (все не согласятся), но я считаю, что именно дота популяризировала варкрафт. Конкретно я познакомился сперва с дотой, а лишь потом с варкрафтом.
  2. Green TD - просто и красиво.
  3. Петро - ...
21

» WarCraft 3 / Полоска здоровья

Не знал что такое DGUI, вроде разобрался. Осталось узнать, где можно взять интерфейс для полоски среди стандартных файлов игры.
Мультибоард и ресурсы не подходят.
21

» WarCraft 3 / Пробемы с ланщафтом

Obelick, это я к тому, что проблема всё же может быть не в игре, а в карте. У меня это происходило из-за неправильного редактирования ландшафта на определённой карте. Хз, может у меня руки растут не оттуда, откуда надо..)
21

» WarCraft 3 / Пробемы с ланщафтом

Obelick, это вроде проблема не игры, а именно карты. Сталкивался с подобным, когда редактировал ландшафт на своей карте.