8

» WarCraft 3 / Триггерная смена звука атаки

Elder_Shadow, я и имел ввиду, вытащи как раз СТАНДАРТНЫЕ звуки и импортируй их, чтобы к ним можно было обращаться, ни среди обычных триггеров, ни в мемхаке я не нашёл смены звука атаки юниту (я вроде хорошо искал, не знаю), может быть они есть в UjAPI, но это уже Мод, и это решение может не подойти
Предложу ещё 1 вариант - (Костыль)
Морф юнита через мемхаковскую функцию MorphUnitToTypeId, в юнита, созданого заранее, у которого установлен нужный звук
8

» WarCraft 3 / Как задетектить высоту полёта юнита?

Вариант 1 - Функция собственно, стандартная - детект высоты полёта
GetUnitFlyHeight(u)
Вариант 2 - Отследживание высоты юнита, зависящее от местности, вот наработка
globals
location ALICE_TR_Location = Location(0, 0)
endglobals
function GetLocZ takes real x, real y returns real
MoveLocation(ALICE_TR_Location, x, y)
return GetLocationZ(ALICE_TR_Location)
endfunction
function GetUnitZ takes unit u returns real
return GetUnitFlyHeight(u) + GetLocZ(GetUnitX(u), GetUnitY(u)) + 256
endfunction
8

» WarCraft 3 / Игра и карстостроение на новом ноутбуке

Вот хороший редактор карт xgm.guru/p/wc3/jngp-r-updated?ysclid=m7ng9pi972247185790
В WFE xgm.guru/p/wc3/wfetool с каким-нибудь параметром запуска -window варкрафт запустится в оконном режиме и норм будет
p.s. с чёрным экраном не сталкивался, не знаю как решить, но оконный режим в полный экран с шансом 90%+ это исправит (да-да это костыль, но хоть что-то)
8

» WarCraft 3 / Триггерная смена звука атаки

Вот карта, там найдёшь триггер HeroPhantomAssasin , ну и собственно герой Фантомка, при её атаке звуки ударов фартомки из доты
Функция баганная и недоделанная, была выключена, включил для тебя, что-то там работает и ладно, думаю с ней тебе будет попроще разобраться
Загруженные файлы
8

» WarCraft 3 / Триггерная смена звука атаки

Да, можно, через JASS например, вытащи с помощью MPQ Editor звуки и импортируй их с правильными именами для своего кода в варкрафте, после чего создавай/заменяй звук во время эвента получения урона на нужный в позиции атакующего/атакуемого юнита
Я такое тоже делал, недоделал вот НЕдоделанная наработка
library SoundAttackLib
function soundAttackStringVariationCount_Func takes integer sAttack returns string
local integer variationCount = 1
local integer variationNumber = 0
if sAttack >= 0 and sAttack <= 11
variationCount = 3
variationNumber = GetRandomInt(1, variationCount)
endif
return I2S(variationNumber)
endfunction

function soundAttackString_Func takes integer sAttack returns string
local string soundAttackString = ""
if sAttack == 0
soundAttackString = "MetalHeavyBash"
elseif sAttack == 1
soundAttackString = "MetalHeavyChop"
elseif sAttack == 2
soundAttackString = "MetalHeavySlice"
elseif sAttack == 3
soundAttackString = "MetalLightChop"
elseif sAttack == 4
soundAttackString = "MetalLightSlice"
elseif sAttack == 5
soundAttackString = "MetalMediumBash"
elseif sAttack == 6
soundAttackString = "MetalMediumChop"
elseif sAttack == 7
soundAttackString = "MetalMediumSlice"
elseif sAttack == 8
soundAttackString = "RockHeavyBash"
elseif sAttack == 9
soundAttackString = "WoodHeavyBash"
elseif sAttack == 10
soundAttackString = "WoodLightBash"
elseif sAttack == 11
soundAttackString = "WoodMediumBash"
endif
return soundAttackString
endfunction

function soundDefenceString_Func takes integer sDefence returns string
local string soundDefenceString = ""
if sDefence == 0
soundDefenceString = "Flesh"
elseif sDefence == 1
soundDefenceString = "Metal"
elseif sDefence == 2
soundDefenceString = "Stone"
elseif sDefence == 3
soundDefenceString = "Wood"
endif
return soundDefenceString
endfunction

function SoundAttack takes integer sAttack, integer sDefence, boolean greatSound, boolean melee returns string
if melee == true
local integer variationCount = 0
local integer variationNumber = 0
if greatSound == true
return "Sound_"+soundAttackString_Func(sAttack)+soundDefenceString_Func(sDefence)+soundAttackStringVariationCount_Func(sAttack)+".wav"
else
if sDefence == 0
soundDefenceString = "Ethereal"
endif
endif


else

endif
return ""
endfunction

endlibrary
8

» WarCraft 3 / Есть ли перегрузка функций в jass/vjass/cjass или где-то ещё тут?

Extremator, твой вариант для меня не потходит, функция D должна была просто ускорять "проверку кода на наличие ошибок", поэтому я хотел её перегрузить, чтобы я мог поместить в неё что угодно и оно мне это вывело как тескт
p.s. Спасибо за найденную опечатку, сейчас исправлю
8

» WarCraft 3 / Есть ли перегрузка функций в jass/vjass/cjass или где-то ещё тут?

Extremator, вот, хотел с одним именем сделать
function DS takes string s returns nothing
DisplayTextToForce( GetPlayersAll(), s)
endfunction
function DI takes integer i returns nothing
DisplayTextToForce( GetPlayersAll(), I2S(i))
endfunction
function DR takes integer r returns nothing
DisplayTextToForce( GetPlayersAll(), R2S(r))
endfunction

function DU takes unit u returns nothing
DisplayTextToForce( GetPlayersAll(), I2S(U2I(u)))
endfunction
8

» WarCraft 3 / Вылетает игра если глава/карта затягивается

Solar3584, Простыми словами - Утечки это когда что-то, что должно удалиться с карты не удаляется, или удаляется не до конца (как долбанные предметы), и остаётся в памяти (нагружает карту)
Есть такая программа Agent_Memory_Monitor, она позволяет отлеживать, чем конретно замусоривается карта, скачай её, поиграй в свою карту часик и посмотри, что там происходит вообще
8

» WarCraft 3 / Вылетает игра если глава/карта затягивается

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

» WarCraft 3 / Триггерное нанесение урона от способности

Используй функции из мемхака, с помощью него можно добиться того, что ты хочешь сделать
8

» WarCraft 3 / Автовоскрешение героя (через здание)

ShadowNinja, можешь карту скинуть? Я допишу чтобы их через 30 секунд воскрешало у Алтаря ихнего
8

» WarCraft 3 / Автовоскрешение героя (через здание)

  1. Тебе нужен процесс воскрешения или это необязательно?
  2. Алтари изначально будут где-то стоять или появятся потом?
8

» WarCraft 3 / Функция RemoveItem() не удаляет предмет

EugeAl, Да, скорее это и есть, ладно, я фигню до этого сказал, если же весь метод снести предмет же не будет спавниться, извиняюсь
8

» WarCraft 3 / Функция RemoveItem() не удаляет предмет

EugeAl, Не, в скобках помоему сам метод, вот эта строчка добавления
void __thiscall CWorldFrameWar3::AddNewItem(CWorldFrameWar3 *this, CItem *pItem)
От неё надо избавляться
8

» WarCraft 3 / Функция RemoveItem() не удаляет предмет

IceFog, Ну как не страшна, помоему страшна, когда у меня 2000 мобов на карте стоит, то всё чики-пуки
Но когда 2000 Мобов + 5000 этих "удалённых предметов", играть уже невозможно
Спасибо за ответ, но пока так и не понял как затирать код добавления, когда поумнею, пойму
8

» WarCraft 3 / Проблемы с экспортом из Blender

У тебя вроде рефоржед, поэтому скорее всего правильного варианта ответа тут не будет, но вот что на обычной версии
  1. На Обычной версии модель становится "Кашей" когда у неё в одном геосете +100500 полигонов
  2. У меня при экспорте моделей из Блендера 3.4 тоже когда подобную дичь пишет, всегда решается установкой хотя бы одного ключевого кадра, может и тут он тоже самое просит
На этом мои полномочия всё
8

» WarCraft 3 / Хэш-таблица и добавление юнита

rsfghd, Большое спасибо что уделили мне время, я посмотрел, всё понял как работает, но у меня ещё остались вопросы (но уже немного другие), я сейчас занят немного и задам их ближе к ночи или завтра, ещё раз спасибо