Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#5009
Старый 03.06.2020, 19:31
  #5009
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 2056
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 2056
Выставка наград
Сообщение
Re: Текущие вопросы и ответы по редактору карт

FallenruДобрый вечер.Подскажите пожалуйста,а то я намучался ...Создал мультиплеерную карту на 2х человек ,для этих 2х человек есть дополнительные замки(той же фракции по крайней мере были..пока я не засунул туда героев для охраны ,пришлось 3-го игрока добавлять компьютера(
Хотелось бы ,чтобы тот же 3-игрок компьютер
1)сидел и охранял замки внутри и использовал заклинания!
2)не выходил
3) не покупал армию
4)замки были той же фракции ,какие выпали 1 и 2-му игроку.
5)AI -не тратил время на ход.
6)и не покупал героев
Записал все ,что смог найти в mapscript в самом начале ,проверил их(через print каждый)..и последние 2 оказались не рабочие вообще...
* EnableHeroAI("Freyda", nil); работает
*SetHeroLootable('Freyda', nil);работает
*EnableAIHeroHiring(3, 'Castle1', nil);работает,хоть и ошибок не было вызывает сомнения
* BlockTownGarrisonForAI( 'Castle1', isBlocked ); -выдает ошибку value was NIL when getting global with name 'isBlocked'
*DoNotGiveTurnToPlayerAIIfNoTownsandactiveheroes (3, true) ;-выдает ошибку value was NIL when getting global with name 'DoNotGiveTurnToPlayerAIIfNoTownsandactiveheroes'
7)Чтобы при старте игры было все заблокировано у 3-го игрока(раса,герой,начальны бонус)
В предпоследней скрипиовой функции значения должны быть не isBlocked, а true или nil. При true заблокирует гарнизон города, при nil — разблокирует.
А последняя скриптовая функция правильно пишется так: DoNotGiveTurnToPlayerAIIfNoTownsAndActiveHeroes, а не как у вас.
Далее по пунктам:
1. Просто обездвидьте компов в замке функцией EnableHeroAI, и запретите найм других героев функцией EnableAIHeroHiring. Повесьте триггер на касание замка, и в функцию, вызывающуюся этим триггером, впишите EnableHeroAI(nHeroName, true); и занулите триггер. Эта заморочка нужна, так как я не уверен, что нерабочий герой компа сможет участвовать в защите от осады замка. Будет ли комп использовать заклы — на всё то воля Эльрата, а не скриптов. Но можно скачать мод mega AI.
2. Нерабочий комп героя никуда не выбежит.
3. Банально, читерно и не совсем рационально, но гениально: не тратим ваше время излишне на изучение скриптов и ставим компу 0 золота, функцией SetPlayerStartResources(PLAYERID, дерево, руда, ртуть, кристаллы, сера, самоцветы, 0);
А далее в скрипте:
	function NewDayCheck()
SetPlayerResource(1,6,0);
...
end;

Trigger(NEW_DAY_TRIGGER, "NewDayCheck");
4. Ни разу не видел функции, возвращающей расу замка. Пока без идей.
5. В начале моего ответа я вам написал правильное оформление функции. Но учтите — пока под контролем компа есть хоть 1 замок, ходить он будет несмотря ни на что.
6. См. п.1.
7. Зайдите на карте в Map Properties Tree => Players => + => Player ID => Строка StartBonus отвечает за бонус, CanChangeBonus => ставим в false, чтобы нельзя было изменить. Далее, CanBeHumanPlayer ставим в false. Затем идём в Map Properties => Players Properties => Выбираете игрока, в MainHero выбираете ГГ, TOWN_TYPE ставите в нужную расу. Готово.
Филе, саве.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием