Вопросы по динамическим скриптам
|
Вовец | Дата: Воскресенье, 01.03.2015, 15:53 | Сообщение # 1 |
PsychoBotoKiller
Группа: Администраторы
Сообщений: 4230
Награды: 25
Репутация: 358
Статус: Offline
| Сюда пишите все вопросы по созданию динамических скриптов к своим картам.
Без лишней скромности: один из основателей R.A Гильдия бойцов: 2011-2014. Помним, любим, скорбим.
|
|
| |
|
Archer | Дата: Среда, 29.04.2015, 09:53 | Сообщение # 2 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| Как сделать динамическим скриптом, что-бы ИИ мог нанимать вместо ополчения только варваров, а в место лучников только бандитов?
Сообщение отредактировал archer - Среда, 29.04.2015, 09:55 |
|
| |
|
Вовец | Дата: Среда, 29.04.2015, 10:26 | Сообщение # 3 |
PsychoBotoKiller
Группа: Администраторы
Сообщений: 4230
Награды: 25
Репутация: 358
Статус: Offline
| archer, на карте Castle defenders это замутили так: при найме ополченца, и при условии, что включена починка зданий, снималось 3 топора, выходило 3 мента, которые тут же преобразовывались в варвара =)
3 топора это там особенность самой карты, а суть: снимается топор, выходит мент, убивается, появляется варвар. Насчёт как это выглядит в коде я подсказать не могу, ибо не шарю в этом деле. Мб поможет кто, или даже Андреус придёт.
Без лишней скромности: один из основателей R.A Гильдия бойцов: 2011-2014. Помним, любим, скорбим.
|
|
| |
|
Archer | Дата: Среда, 29.04.2015, 11:33 | Сообщение # 4 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| Вовец, ясно, спасибо.
играл в кампанию федерация Neryn, там в пятой миссии ИИ нанимает ополчение и варваров, но мне надо только варваров.
Сообщение отредактировал archer - Среда, 29.04.2015, 11:35 |
|
| |
|
andreus | Дата: Среда, 29.04.2015, 18:58 | Сообщение # 5 |
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
| вкратце - при найме ополчения убиваешь его и даешь вместо него варвара/воителя.
procedure OnWarriorEquipped(aUnitID, aGroupID: Integer); var Barb: Integer; begin if States.UnitType(aUnitID) = 14 then //нанят опол? begin Barb := Actions.GiveGroup(States.UnitOwner(aUnitID), (26 - 3 * Byte(States.KaMRandom < 0.5)), States.UnitPositionX(aUnitID), States.UnitPositionY(aUnitID) + 1, 4, 1, 1); //выдаем вара/воителя Actions.GroupHungerSet(Barb, States.UnitMaxHunger); //кормим если надо Actions.GroupOrderLink(Barb, aGroupID); //присоединяем к отряду Actions.UnitKill(aUnitID, True); //килл опола, true/false - без/с анимацией Actions.GroupSetFormation(aGroupID, 1 + Round(sqrt(States.GroupMemberCount(aGroupID)))); //задаем нормальный строй end; end;
(26 - 3 * Byte(States.KaMRandom < 0.5)) дает рандомно варвара или воителя. 0,5 - шансы, тут 50/50. Хочешь больше варваров - ставь соотв. шанс) Если только варвары - ставь 23 вместо (26 - 3 * Byte(States.KaMRandom < 0.5)), воители - 26.
Вроде так
|
|
| |
|
Вовец | Дата: Среда, 29.04.2015, 19:02 | Сообщение # 6 |
PsychoBotoKiller
Группа: Администраторы
Сообщений: 4230
Награды: 25
Репутация: 358
Статус: Offline
|
Без лишней скромности: один из основателей R.A Гильдия бойцов: 2011-2014. Помним, любим, скорбим.
|
|
| |
|
Archer | Дата: Среда, 29.04.2015, 19:17 | Сообщение # 7 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| andreus, спасибо.
|
|
| |
|
Archer | Дата: Среда, 29.04.2015, 19:39 | Сообщение # 8 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| А где можно посмотреть все скриптовые команды и процедуры?
|
|
| |
|
andreus | Дата: Среда, 29.04.2015, 19:43 | Сообщение # 9 |
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
| https://github.com/Kromster80/kam_remake/wiki/MissionScriptsDynamic правда все на английском
|
|
| |
|
Archer | Дата: Среда, 29.04.2015, 19:47 | Сообщение # 10 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| andreus, спасибо, у меня есть переводчик.
|
|
| |
|
Archer | Дата: Пятница, 01.05.2015, 11:23 | Сообщение # 11 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| andreus, Привет! а как поставить объект (например: дерево) через скрипт в определённой точке?
|
|
| |
|
andreus | Дата: Пятница, 01.05.2015, 21:12 | Сообщение # 12 |
Sir James Vagabond
Группа: Администраторы
Сообщений: 3876
Награды: 21
Репутация: 391
Статус: Offline
| archer, привет, объекты добавляются через команду
Actions.MapTileObjectSet(X, Y, TileΤype)
работает только в ремейке 6720
|
|
| |
|
Archer | Дата: Суббота, 02.05.2015, 15:46 | Сообщение # 13 |
Воин
Группа: Проверенные
Сообщений: 90
Награды: 6
Репутация: 3
Статус: Offline
| andreus, спасибо, он у меня есть.
|
|
| |
|
Azera | Дата: Пятница, 05.06.2015, 14:16 | Сообщение # 14 |
Воин
Группа: Проверенные
Сообщений: 148
Награды: 1
Репутация: 6
Статус: Offline
| Здрасте, впервые решил ознакомиться со скриптами. Так вот, как сделать регулярное пополнение индикатора голода как у обычных юнитов, так и у войск?
Король Азера XII Великий, владыка Союзного Королевства Великоазерии. Да поклонитесь же Его Величеству.
|
|
| |
|
Krom | Дата: Пятница, 05.06.2015, 14:50 | Сообщение # 15 |
Воитель
Группа: Супер Модераторы
Сообщений: 2526
Награды: 25
Репутация: 153
Статус: Offline
| Azera, примерно вот так, только вместо 7 - число игроков на твоей карте
Код var I, K: Integer; Units: array of Integer;
procedure OnTick; begin if (States.GameTime mod 6000 = 0) then // each 10 minutes for I := 0 to 7 do if States.PlayerEnabled(I) then begin Units := States.PlayerGetAllUnits(I); for K := 0 to Length(Units) - 1 do Actions.UnitHungerSet(Units[K], States.UnitMaxHunger); end; end;
Нашли баг в КаМ Ремейке? Отправьте отчет на с пометками, желательно на английском, в какой версии, что и когда случилось, приложите реплей или сохраненную игру в которой этот баг воспроизводится.
|
|
| |
|