Как тригернно сделать так, чтобы как в стандарте создавалась "ратуша" и 5 рабов, на каждого игрока?
Именно в таком же положении, 5 рабов перед рудником. Т.е. между ратушей и рудником.
Нужно, чтобы рабочие создавались в том квадрате(см.рис)(как в стандартном развитии), а получается только вот так.

Принятый ответ

находим ближайший к точке старта рудник
и создаём рабочих на половине пути от рудника до точки старта
расстояние высчитывается по теореме пифагора (должны были проходить в 6-7 классе)
либо с помощью векторов (10-11 класс)
Aristokrat952, для кода нужно юзать форматирование код
Aristokrat952, xgm.guru/p/help/txt2#h13
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
1
9
8 лет назад
1
Поищи такую тему Archmage Owenalacaster CustomRaceSystem. Это библиотека для подключения рас, и там может быть нужный тебе код.
И желательно заголовок делать информативным, например "Создать рабов в кружок у рудника"
3
4
8 лет назад
3
Ну можно сделать триггер поиска ближайшего рудника от ратуши, и создания работником между ними, могу сделать пример, если надо...
0
7
8 лет назад
0
Aristokrat952:
Ну можно сделать триггер поиска ближайшего рудника от ратуши, и создания работником между ними, могу сделать пример, если надо...
Если не сложно, буду благодарен.
1
4
8 лет назад
Отредактирован Aristokrat952
1
так это же bj функции, посмотри сам как там сделано, вот пример одной из рас: "MeleeStartingUnitsHuman". У тебя Jass New Pack? Просто если бы я и сделал пример, то я взял бы и просто переписал все эти BJ функции сам, с некоторыми правками конечно, но по факту это делать глупо, раз ты сам можешь посмотреть их в редакторе.
А вообще вот фрагмент кода, для создания юнитов у орков:
Код
определение ближайшего рудника
set nearestMine = MeleeFindNearestMine(startLoc, bj_MELEE_MINE_SEARCH_RADIUS)
здесь создается главное здание
set townHall = CreateUnitAtLoc(whichPlayer, 'htow', startLoc, bj_UNIT_FACING)

локейшн рудника
set nearMineLoc = MeleeGetProjectedLoc(GetUnitLoc(nearestMine), startLoc, 320, 0)

определение координат этого рудника(x, y)
set peonX = GetLocationX(nearMineLoc)
set peonY = GetLocationY(nearMineLoc)
создание каждого рабочего; переменная unitSpacing по умолчанию равна 64-ем
call CreateUnit(whichPlayer, 'hpea', peonX + 0.00 * unitSpacing, peonY + 1.00 * unitSpacing, bj_UNIT_FACING)
call CreateUnit(whichPlayer, 'hpea', peonX + 1.00 * unitSpacing, peonY + 0.15 * unitSpacing, bj_UNIT_FACING)
call CreateUnit(whichPlayer, 'hpea', peonX - 1.00 * unitSpacing, peonY + 0.15 * unitSpacing, bj_UNIT_FACING)
call CreateUnit(whichPlayer, 'hpea', peonX + 0.60 * unitSpacing, peonY - 1.00 * unitSpacing, bj_UNIT_FACING)
call CreateUnit(whichPlayer, 'hpea', peonX - 0.60 * unitSpacing, peonY - 1.00 * unitSpacing, bj_UNIT_FACING)
не забудь удалить локейшны после этого
(честно, не знаю, что за таблица вначале ._.)
1
28
8 лет назад
1
находим ближайший к точке старта рудник
и создаём рабочих на половине пути от рудника до точки старта
расстояние высчитывается по теореме пифагора (должны были проходить в 6-7 классе)
либо с помощью векторов (10-11 класс)
Aristokrat952, для кода нужно юзать форматирование код
Aristokrat952, xgm.guru/p/help/txt2#h13
Принятый ответ
1
4
8 лет назад
1
nvc123, спс, и кстати, в оригинале, работники создаются не на половине расстояния от рудника до стартовой позиции, а на фиксированном расстоянии от рудника.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.