AngryTapok1337Хотелось бы чтобы по истечению какого-то времени, регион удалялся и ИИ смог проходить дальше
SetRegionBlocked("название региона", nil, PLAYER_номер игрока для которого нужно разблокировать);
AngryTapok1337Подскажите как можно реализовать появление караванов с войсками каждый месяц и чтобы они ехали прямо к городу
Да собственно взять скрипт из той самой миссии Арантира, скопировать и вставить, убрав всё что не нужно и подставив свои параметры. Важно помнить пару вещей о караване: Спавнится только на пустой точке; доставляет существ только в города(в спавне назначается точка на которой находится город), иначе пиши "обманку" типа едет на какую-то точку рядом с нужным объектом(скажем, гарнизон), удаляется(RemoveObject) и потом объект(в нашем случае гарнизон) наполняется существами через AddObjectCreatures; собственно да, караван спавнится пустым, и удалится когда закончится ход игрока которому принадлежит если не наполнен существами; наполняется и очищается командами взаимодействия с объектами, т.е. AddObjectCreatures/GetObjectCreatures/RemoveObjectCreatures. Так же на него работают проверка на существование объекта IsObjectExists и разворот SetObjectRotation:
CARAVAN = "caravan"; --дадим стартовое название каравану для использования в функции
function respawn_caravan()
if (GetDate( DAY_OF_WEEK ) == 5) then --день недели в который заспавним караван(можно изменить на другой триггер даты)
car = CARAVAN..GetDate(DAY); --не могу сказать в чем была фишка именовать караван по игровому дню, возможно без этого переспавн ломался. Оставим как есть, ведь зачем трогать то что итак исправно работает, верно?
CreateCaravan(car, PLAYER_1, GROUND, 130, 1, GROUND, 136, 14 ); --собственно, сам спавн каравана: имя каравана, кому принадлежит, на земле или под землёй спавнится, x y точки спавна, на земле или под землёй точка куда едет, x y точки назначения. Точка назначения либо пустое место, либо город(больше никуда караван технически существ не доставляет)
sleep(4);
SetObjectRotation(car, 180); --развернём караван чтоб смотрел в другую сторону
AddObjectCreatures(car, CREATURE_BONE_DRAGON, 4); --наполняем караван существами, иначе он удалится в конце хода игрока которому принадлежит
AddObjectCreatures(car, CREATURE_WIGHT, 8);
AddObjectCreatures(car, CREATURE_LICH, 12);
AddObjectCreatures(car, CREATURE_VAMPIRE, 20);
AddObjectCreatures(car, CREATURE_MANES, 36);
AddObjectCreatures(car, CREATURE_WALKING_DEAD, 60);
AddObjectCreatures(car, CREATURE_SKELETON, 80);
OpenCircleFog(130, 1, 0, 4, 1); --откроем область карты вокруг точки спавна каравана чтобы потом сместить камеру и показать караван
sleep(4);
MoveCamera(130, 1, 0, 30, 1, 3.14, 0, 0, 1); --сместим камеру к точке спавна каравана чтобы показать игроку что пришло подкрепление
end;
end;
Trigger(NEW_DAY_TRIGGER, "respawn_caravan")