23

» WarCraft 3 / выбор расы на игроков

Похожие вопросы:

ответ
Второй комп сломан поэтому проверить не могу, почему у меня подозрение, что оно должно работать....
Хотя могу и ошибаться, нормально делал карты года 2 назад.
ответ
  1. а) Создай 2 переменные-массива по типу "боевая единица" (массив - чтобы для каждого игрока, мы ведь за мультиплеер трем, прально?), назови типа MyChampion и MyChampionDummy.
    б) подготовь невидимого героя-пустышку с нужной тебе иконкой, убери ману, если у чемпиона ее нет. Убери ему радиус обзора, убери галочки типа "отмечать на мини-карте" - остальные - опционально.
    В дальнейшем мы будем синхронизировать пустышку и реального чемпиона, создавая видимость одной боевой единицы.
    Итак, наш первый триггер:
в) Отследи первое появление чемпиона, когда это случится - создай для игрока героя-пустышку. Соответственно сделай MyChampion [number of (Owner of trained unit)]= last trained unit, следующей строчкой создай того самого героя-пустышку для (owner of trained unit) и сделай MyChampionDummy = last created unit. Теперь мы прочно связали этих чуваков. Этот же триггер запускает остальные.
г) Отслеживание здоровья. Сделай изначально выключенный цикличный триггер, там, каждые 0.3 секунды. Триггер запускается пунктом в). Каждые 0.3 секунды меняй здоровье героя (чья икона висит, надо чтобы она соответствовала, прально?) в % на здоровье самого чемпиона.
д) пропищи событие, мол, если выбирает игрок своего героя (кликая на иконку) выбирается чемпион
е) убивай героя вместе с чемпионом
ж) отключай триггеры с проверкой и выбором, пока чемпион мертв
з) не забывай обновлять переменную чемпиона с каждым новым чемпионом.
ответ
Нет
ответ
Понадобится переменная содержащая количество играющих.
  1. Делай по принципу апгрейда крепости в замок. Только у базового здания несколько апгрейдов, на каждую расу. И триггером увеличить переменной +1 по окончанию апгрейда.
  2. Когда у переменной значение становится равное количеству играющих, создаешь работников.

23

» WarCraft 3 / Отдельный файл

Похожие вопросы:

ответ
кроме того, "тест карты" не подгружает данные кампании
ответ
Это далеко не обязательно сработает, надо знать, что там именно за скелет, как исходный, так и новый.
ответ
Скинул ссылку на бету RoC в лс
ответ
Помоему в WarRun'е был этот шрифт среди вариантов

Можешь чекнуть

23

» WarCraft 3 / Управление неподконтрольным юнитом

Похожие вопросы:

ответ
Я решил проблему, используя обработчики событий BlzTriggerRegisterPlayerKeyEvent и EVENT_PLAYER_MOUSE_DOWN
При нажатии правой кнопки мыши проверяется наличие живого героя и селекция юнитов, если в ней нет юнитов которыми игрок может управлять (или вообще никто не выбран) то юнит моментально отправляется приказом "move" в точку, на которую кликнул игрок и сразу выбирается.
При нажатии клавиши герой просто выбирается.

23

» WarCraft 3 / Продажа предметов

Похожие вопросы:

ответ
Diaboliko, у предметов с этим бага
юзай юнитов
с ними намного проще
ответ
2 магазина в одном месте. Один с предметами- другой нет. И через гетлокалплеер триггерно выбирать нужный магазин?
ответ
пример где-то надо еще таймером будет. просто по идее система работает так: происходит событие изменения ресурса (запоминаем сколько), следом происходит основное событие (покупка-продажа). значит, здесь ловим итем, потом вычисления с налогами. Но такой порядок бывает не всегда. Вот допустим продажа: сначала продаем (итем забирают, событие продажи), потом дают деньги (событие изменения ресурса). как видишь, здесь надо тогда таймером через 0.00 сек или сколько то сек проверять измену реса
хотел реализовать похожую систему (проводить торговлю не через чат, а через кнопочки). только на мем хаке. изменить можно только в мем хаке. если вы изменяете цену типу предмета, тогда она у всех итемов данного типа меняется. сделал так: копию на каждого игрока, у одного будет одна цена, у другого другая. короче каждый игрок товар может предложить по разной цене. как это будет работать пока не знаю (я не все продумал, и поэтому не доделал).

можно стоимость убрать и триггерами начислять/убавлять
ответ
используй подходящие константы к конкретным событиям триггера.
продажа итема
событие - юнит закладывает предмет в лавку
переменные:
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)
покупка итема
событие - продает предмет (из лавки)
GetSellingUnit()=GetTriggerUnit() =продающий торговец (в данном случае магазин продает нам)
GetBuyingUnit() = покупающий торговец (это наш герой отдает денюшку, а сам получает артефает или лошадь)

А предмет который продают или покупают
GetSoldItem()

23

» WarCraft 3 / Вылезает ошибка(только эта)

Похожие вопросы:

ответ
Вопрос закрыт.
ответ
Карта запротекчена, или не соответствие версии
ответ
Так тебе вджасс нужен)


Вджасс это дополнение к обычному джассу, у себя ты можешь видеть строки объявления библиотеки, продвинутые комментарии и статические константные переменные


23

» WarCraft 3 / Прогрузка карты в редакторе

Похожие вопросы:

ответ
Опен мап должно открыть вот такое меню
Возможно у тебя реально проблема в последней, например он сканирует список всех карт, находит какое-то непотребство и падает в ошибку, надо проследить и почистить этот путь

Я не понимаю как работать без него, особенно без ро
В идее выбираешь режим редактор, а не игры, и работаешь в редакторе как обычно
ответ
Вопрос решён.

23

» WarCraft 3 / Аура дамага

Похожие вопросы:

ответ
цели - враги, уяз, неуяз. другого туда не надо писать, если не делишь на воздух землю.
пауза дамми отключит действие аур. локуст не влияет никак
ответ
Такой ауры нету, есть аура на бонус атаки (наверн, это не то, что вам нужно). можешь посмотреть список
Можно сделать триггерно, делаешь ауру пустышку. Потом систему урона, в этой системе проверяешь наличие баффа ауры. Наносишь доп урон. Ну, и конечно, надо знать какой дамаг от магии, или физическ. Это тоже надо подумать. Вроде, столько систем на определения придумано

можно еще каждые 2-3 сек выделять всех вокруг кастера в группу и что-то делать с этими юнитами, добавляя им бонусы: реген, защита и пр

Если заклинания триггерные, то можно проверять висит ли на кастере бафф, и увеличивать дамаг. Многие стандартные способности можно сделать триггерно

23

» WarCraft 3 / Проблема с созданием предмета

Похожие вопросы:

ответ
Андреич:
Все карты кампании с нестандартными обьектами надо запускать в игре через "Доп. Кампании".Хоть в JNGP, хоть в просто WE.
ответ
GearOfRage, в данном случае надо тестировать кампанию, а не саму карту. Открываешь через игру доп кампанию и играешь нужную миссию (для этого надо сделать все миссии временно доступными)
ответ
Виджитайзер норм, если правильно все делать. Ultimate Slk Opt быстрый, но надо держать ухо в остро, то будет карта с иероглифами.
AntiMage:
quq_CCCP, виджитайзер слишком медленный, Ultimate opt непонятный, +они оба ведь защишают карту, мне этого ненужно тоесть я хочу чтоб мои обьектные данные о войсках и.т.д обратно восстановились когда угодно, чтоб world editor мог открывать
А нах юному IceFrog'у понадобилась слк оптимизация? Тем более виджитайзер ничего не защищает, но чтобы работать с данными карты в редакторе достаточно распаковать их из карты в папку с варом и все, странно что у вас нет других проблем о которых бы следовало спросить на форуме.
ответ
логика такова
цикл от 1 до всех предметов в карте призван Установить для Каждого Item_Init[Cnt_Item_Init]
Значение взятое из SetItemUserData
для удобства занес эти Значения в Переменную типа Массив чтобы Оперировать с ними там где мне это нужно
и когда в инвентаре окажется Индекс этого предмета я буду знать что этот предмет мне нужен для Удаления
для этого есть функция
function F_H_Section_ReturnItem takes unit u, integer id returns nothing
set Cnt_Inv = 0
loop
exitwhen Cnt_Inv > Min_Inv
set ItemsInSlots[Cnt_Inv] = UnitItemInSlot(u, Cnt_Inv)
if LoadBoolean(H, StringHash("H"), StringHash("RemoveItems")) then
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItems"), false)
call RemoveItem(ItemsInSlots[Cnt_Inv])
else
if GetItemTypeId(ItemsInSlots[Cnt_Inv]) == id then
call SaveBoolean(H, StringHash("H"), StringHash("RemoveItem"), true)
call RemoveItem(ItemsInSlots[Cnt_Inv])
endif
endif
set Cnt_Inv = Cnt_Inv + 1
endloop
set Cnt_Inv = 0
loop
exitwhen Cnt_Inv > Min_Inv
set ItemsInSlots[Cnt_Inv] = null
set Cnt_Inv = Cnt_Inv + 1
endloop
endfunction
достаточно одно SaveBoolean и готово
а дальше Создание предмета ПО Индексу расположенный в Item_Init

call SaveBoolean(H, StringHash("H"), StringHash("RemoveItems"), false)
призван удалить Все предметы из инвентаря Без проверки GetItemTypeId

либо использовать вариант который написал nazarpunk:

тут уже мне решать

function F_Pick_Item takes nothing returns nothing

set Cnt_Item_Init = 1
loop
exitwhen Cnt_Item_Init > Item_Init_Number_End
call SaveBoolean(H, StringHash("H"), StringHash("ItemUserDataSave"), true)
call SaveItemHandle(H, StringHash("H"), StringHash("ItemUserData"), GetManipulatedItem())

if GetItemTypeId(GetManipulatedItem()) == Item_Init[Cnt_Item_Init] then
set ItemUserDataMas[ItemUserDataAmount] = Cnt_Item_Init
endif

set Cnt_Item_Init = Cnt_Item_Init + 1
endloop

call F_H_Section_ItemUserData()

Я походу нашёл где ChatGPT обучается кодить...
я похож на ИИ?
даже мне стало интересно на что он способен :)

function F_H_Section_ItemUserData takes nothing returns integer
local item ItemUserData = LoadItemHandle(H, StringHash("H"), StringHash("ItemUserData"))
local integer I
set I = GetItemUserData(ItemUserData)
if LoadBoolean(H, StringHash("H"), StringHash("ItemUserDataSave")) then
call SaveInteger(H, StringHash("H"), StringHash("GetItemUserData"), I)
call SaveItemHandle(H, StringHash("H"), StringHash("ItemUserDataHandle"), ItemUserData)
call SaveInteger(H, StringHash("H"), StringHash("UserDataPlayerId"), GetPlayerId(GetItemPlayer(ItemUserData)))
call SaveInteger(H, StringHash("H"), StringHash("UserDataItemId"), GetItemTypeId(ItemUserData))
call SaveInteger(H, StringHash("H"), StringHash("ItemLevel"), GetItemLevel(ItemUserData))
call SaveBoolean(H, StringHash("H"), StringHash("ItemUserDataSave"), false)
endif
if ItemUserDataAmount < Size then
call SetItemUserData(ItemUserData, ItemUserDataMas[ItemUserDataAmount])
call SaveInteger(H, StringHash("H"), StringHash("ItemUserDataAmount")+ItemUserDataAmount, ItemUserDataMas[ItemUserDataAmount])
if LoadBoolean(H, StringHash("H"), StringHash("ItemUserDataIndicator")) then
set HRed[2] = GetRandomReal(0, 255)
set HGreen[2] = GetRandomReal(0, 255)
set HBlue[2] = GetRandomReal(0, 255)
call ItemAddIndicatorBJ(ItemUserData, HRed[2], HGreen[2], HBlue[2], 0)
endif
return I
else
call Text("|cFFFF0000ERROR: F_H_Section_ItemUserData - clear bad key|r")
set ItemUserDataAmount = Size - 1
return ItemUserDataAmount
endif
endfunction
constant integer Size = JASS_MAX_ARRAY_SIZE

спасибо за ответы, останусь на этом примере пожалуй

23

» WarCraft 3 / Герой: Hogger

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Типы файлов: png и не содержат один из: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
File types are: png and don't contain one of: mdl, mdx, fbx, obj, max, blend, mb, ma, 3ds, dae, dxf, usd, usdz, stl, stp, wrl, m2, zip, 7z, rar, tar, gz, apk, gzip, jar, lzip, tgz, tbz2, bz2, zipx, zz, dmg, ipg, z, iso
// CID2
23

» WarCraft 3 / Зрители

Похожие вопросы:

ответ
зрители и обсы не взаимодействуют ни с какими триггерами, они вне игры
ответ
GoJustGo, зрители это и есть те самые 2 игрока, просто в лтд за них компы, а если есть зрители, то они играют роль ботов, так же в доте.
ответ
Ну если взять стандартное мили 1х1, где обычно катки длятся 10-15 минут, то думаю афк на 2 минуты уничтожит игрока на первых 10 минутах. Если катка затянулась на полчаса, то афк 5-10 минут может уничтожить игрока. Если игра затянулась на 10 часов, то думаю, часок можно и поафкашить.
Вот тут афк на 6.5 часов было норм для игроков
Так что все зависит от игры, геймплея, условий, где это критично а где нет. Может быть у тебя будет не конкретное число минут для определения афк и передача войск союзнику, а прогрессирующая шкала, чем дальше катка тем дольше можно быть афк, ибо самая жара действий обычно происходит на старте-середине игры.
И я не уверен, что стоит кикать игрока, можно просто передать контроль союзникам, пока он не вернется. Но это уже твоя авторская идея и система, как посчитаешь правильным для своей карты.

И да, АФК - от англ. AFK = Away From Keyboard, что в переводе отошел от клавиатуры.

23

» WarCraft 3 / Проблема с тестом карты

Похожие вопросы:

ответ
Даже так не хочет работать. Я добавляю игрока и сразу же вызываю функцию.

нельзя делать call DestroyForce
или call RemoveRect после этого ты их ни разу не сможешь юзнуть даже указав новую переменную
Как видишь выше, дело не в этом. Да и не уничтожал я их.

Может она просто не работает в массиве?...

Закрою вопрос и перефразирую для понимания.

23

» WarCraft 3 / Изображение

Похожие вопросы:

ответ
JIEGEND, в смысле как, фотошоп тебе для чего?


ответ
Как я понимаю, тебе подойдет создание фрейма с какой-нибудь картинкой (иконкой)
Для примера могу посоветовать ресурс от Bergi
LUA, Reforged Варкрафт, если что.
В частности если подойдет, то попробуй поиграться со значением BlzFrameSetAbsPoint(), а точнее с параметрами x и y.
ответ
Создай изображение размером 256x256. Конвертируй его в формат TGA. Переименуйте в war3mapPreview.tga и загрузите в карту, в карте уберите путь war3mapimported
ответ
WellDoneTrooper, если используешь более поздние версии, 1.27, 28 и тд, могут выскакивать свои приколы.

23

» WarCraft 3 / ИИ героев

Похожие вопросы:

ответ
Совсем зазнались вы ребята. Вы чё совсем оборзели засерать пользователей !
Q/A для того и создан !
Не хочешь отвечать, молчи.
Учи то, учи это.
Я про конкретную наработку спросил. Зазнались, и обленились. Этим всё сказано...
ответ
WW перестаёт становиться DIS, когда у героя более одной абилки WW
типа что бы ты мог активировать другой, пока работает первый... но разблокировка идёт на все сразу (и на сам себя тоже)
ответ
за дальность выбора героя магазином отвечает способность магазина - выбор героя, выбор воина и пр. тобы настроить, смотрите в настройках абилы
ответ
Extremator предлагает делать переключение через выделения таверн через триггеры. Выделение с одной снял, выделение на другую переключил.

Хоттаб, предлагаю другой вариант - ОДНУ таверну со всеми героями. пример с итемами, там переключение система 14 верс
есть пример, тоже самое можно сделать например для героев. По идее можно всех-всех героев заранее забить в таверну. Так можно сделать ОДНУ таверну со всеми героями, но с переключением списков. Так можно сделать, это надо в РО забить всех героев в таверну, если не получается пробуйте через клавишу Shift. Но будет отображаться только первые 10-12, остальные не вместятся на панеле. Поэтому надо разбить героев на списки.
Можно спрятать всех героев, кроме определенных героев, находящей на первой странице. А когда нажимаешь, то прячешь для игрока одних героев на 1 странице, и показываешь других героев на след странице.

как прятать героев вот ссылка когда задаешь лимит обучения данного типа ноль, то иконка этого героя исчезает. прячешь одних. разблокируешь других.
ответ
Тригером выдавать на время указанный тип боевой еденицы (твоего героя)
Через время его убивать, разве не очевидно)))?

23

» WarCraft 3 / Невосприимчивость к аурам

Похожие вопросы:

ответ
Еще раз, 'Aams' - щит от магии, он дает маг имун и только. 'Aam2' - нейтрализует урон от магии, при этом в цель можно применять заклинания, обрати внимание там другой бафф.

23

» WarCraft 3 / Вариации моделей юнита.

Похожие вопросы:

ответ
Вписываешь Alternate в РО в пункт "нужная анимация"
ответ
Для каждого дерева нужны три модели: обычная, неактивная (с названием Doodads\Terrain\AshenTree\AshenTree0S.mdx, например) и неактивная разрушенная (Doodads\Terrain\AshenTree\AshenTree0D.mdx). У неактивных моделей должна быть только одна анимация — Stand. У первой — только деревце, у второй — только пенёк, соответственно.
Когда с деревом никто не взаимодействует, отображаются неактивные модели. Ты их не заменил, потому такая вот фигня.
Как сделать полноценно работающие деревья с моделями, не заменяющими стандартные, я не знаю. Возможно, никак.
ответ
Мб оно связано с морфом, или с какими то параметрами заклинания - в доте аватар превращал тинкера в танк..
Можно попробовать морфнутся в альтернативного тинкера скиллом 'Aave' - превратится в сфинкса, тогда он навсегда останется тинкером в ульте.
ответ
В редакторе скелета
ответ
Не должно так критовать. А ты добавлял юнитов в unit ui slk и unit abilities slk? Туда тоже надо добавлять.
Ещё желательно править не neutral unit string, а human unit string или orc unit string.
Кроме того, надо править human unit func. txt или orc unit func. txt
Далее: custom v0 и melee v0 не обязательно править, достаточно добавить файлы в папку units архива и в папку custom v1.
просто непонятно, зачем делать юнитов для версии Roc

23

» WarCraft 3 / Карта не запускается

Похожие вопросы:

ответ
SirDragdord, никак, последние патчи баганые, там много чего не работает, играть там не вочто, хотите поиграть - 1.26а к вашим услугам, старшие патчи вара только для ознакомления и обучения, пока не вышел рефордж там нечего делать.
ответ
XGM Bot:
Похожие вопросы:

ответ
Кажется проблему решили, ответ крылся в текстурах, скорее всего в типе сжатия Sequental JPEG при пресохранени с другим типом сжатия (Пересохранил текстуры в тга и обратно в блп) - проблема решилась (По крайней мере сейчас так кажется).
Из чего могу предположить, то при определенных обстоятельства Варик или система неадекватно воспринимает текстуры с этим типом сжатия и выпадает
ответ
Чувак, ты JASS API хоть 1 сек смотрел?
Что за trig?, что за c?
	local trigger trig = CreateTrigger()
У тебя переменные не объявлены, а ты пытаешься к ним обратится, ясно что выдаст ошибку.
ответ
vovana123, на данный момент штатный телепат в отпуске
дождитесь его возвращения либо сообщите всю необходимую информацию, а именно:
  1. версия war3 на старом компьютере
  2. версия на новом компьютере
  3. используется ли в картах рб/мемхак
  4. настройки графики в обоих war3
  5. карта которая не запускается

ответ
На айкапе если играете? Кикает антихак, нужно скрывать мемхак, это умеет делать анрайз. И другие, кто активно юзает мемхак в своих проектах.
ответ
РБ был запрещен в определенный момент. Поэтому эти старые карты не работают на 1.26

23

» WarCraft 3 / Сделайте наработку.

Похожие вопросы:

ответ
Создаем целочисленную переменную.
В редакторе тригеров:
Действия: Время суток становится 6 утра
Условия: Ставим если надо
Действия:
Установить переменная + 1
Вывести текст на экран наша переменная
ответ
пиши в тему для заказов
здесь только вопросы
ответ
Сделал за 5 минут не тестировал
library RPGText
    globals
        private unit array s
        private real array d
    endglobals
    
    function displayTextExp takes nothing returns nothing
        local timer t = GetExpiredTimer()
        local unit u = s[GetHandleId(t)]
        local real r = d[GetHandleId(u)]
        
        // дальше уже можно шаманить с текстом
        
        
        // Очишаем утечки
        call DestroyTimer(t)
        set u = null
        
        // А также очистка массива 
        //
        //
        //
    endfunction
    
    function createText takes unit u, real r, code c returns nothing
        local integer i =  GetHandleId(u)
        local timer t 
        
        if d[i] == 0 then
            set t = CreateTimer()
            
            // Записиваем значение
            set s[GetHandleId(t)] = u
            set d[i] = r 
            
            call TimerStart(t, 0.03, false, c)
            set t = null
        else
            set d[i] = d[i] + r // Увеличивает число
        endif
        
        set u = null
    endfunction
endlibrary
ответ
~8gabriel8:
Слева есть панель WARCRAFT 3, а там кнопка Добавить ресурс
ответ
Такую систему сделать можно, но через создание локальных (через локальные переменные) триггера входа в область, области, таймера и принудительной смены координат входящего в область юнита, после проверки на владельца юнита, с добавлением спецэффектов в точке входа и в точке перемещения. После истечения таймера удалить область, таймер и триггер. Получится временный портал, работающий на опрелеленных юнитов. Такая система будет MUI, но её не получится сделать с помощью только GUI... придётся кодить

23

» WarCraft 3 / Undead Doodad Pack

Ваш ресурс не прошёл автомодерацию. Пожалуйста, внесите исправления или ожидайте проверки модератором.
Причина
Число вставленных изображений: 0, а требуется не менее 1
Your resource has not passed automoderation. Please make corrections or wait for the moderator to check.
Reason
Count of inserted images is: 0, but required not less than 1
// CID3
23

» WarCraft 3 / Как обнулить данный тип переменной

Похожие вопросы:

ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Юнитов поднимает тогда же, когда и опускает, потому что я удаляю их из DedG[3], но забываю удалить из группы снарядов, таким образом, к тем кто попал под падение, уже навечно задействован акт снарядов(опускание), пока они в DedG[3]
ответ
похоже более всего на мусор, попадающий в память откуда-то извне. Обычно пропущенная строка автокаста такой фигней страдает. Нельзя точно сказать, нужно менять поля и смотреть. К счастью, описания можно менять и локально, не перепаковывая карту
ответ
Вопрос в том, что мне делать с ней при каждом новом присвоении.
Ничего
я не могу понять, глобальная она или локальная
Почитайте про локальные переменные. Статьи тоже будут полезны.
Не знаю, не понимаю, что лучше, или оба, но в какой последовательности?
Я тоже ничего не понимаю, когда не вижу кода.

23

» WarCraft 3 / области

Похожие вопросы:

ответ
можно задать постоянную музыку при входе юнита в область.
А выключать её по событию "юнит покидает область".
Они же рядом события эти, чего усложнятьв сё.
ответ
Aльфонс, можно же изображение в комментарий вставлять.
ответ
Ну, только массивами. У тебя просто нет бд, где прописаны области.
Либо, вы берете записываете бд:
R - массив областей rect, это прямокгольные области rectangle
В триггере инициализайии прописываешь все массивы:
R [1] = область 0001
R [2] = область 0002
R [3] = область 0003
Когда нужно, создать юнита в ранд точке в R [ random от 1 до 3]
Другой вариант. Есть только регион Region, но там не помню как работает. В него можно засунуть несколько rect. Есть функция добавления области в регион. Но аот применять этот регион сложна. Я помню есть функция, поищи: рандомная точка в регион. Ты можешь сразу спавнить в рандом точке. К сожалению, не нашел нв хигаме GetRandomPointInRegion()
ответ
Правда с 1.26а вроде были какие-то косяки с этими картинками, и мб даже лучше будет моделька кастомная (и проще).