AstralLeinМинуточку...
Добавлено через 4 минуты
Trigger(OBJECT_CAPTURE_TRIGGER, "PlayerTown", "CaptureStraker")
function CaptureStraker()
if ( GetObjectOwner ("PlayerTown") == PLAYER_4 ) then
Trigger(OBJECT_CAPTURE_TRIGGER, "PlayerTown", nil)
sleep(5)
TransformTown("PlayerTown", TOWN_NECROMANCY)
ChangeHeroStat("Straker", 7, -999999999999999)
sleep(5)
SetAIPlayerAttractor("PlayerTown", 4, 1)
ReplaceDwelling("Dwell1", TOWN_NECROMANCY)
SetObjectOwner("Dwell1", 4)
ReplaceDwelling("Dwell2", TOWN_NECROMANCY)
SetObjectOwner("Dwell2", 4)
ReplaceDwelling("Dwell3", TOWN_NECROMANCY)
SetObjectOwner("Dwell3", 4)
ReplaceDwelling("Dwell4", TOWN_NECROMANCY)
SetObjectOwner("Dwell4", 4)
end
end
Добавлено через 1 минуту
ChangeHeroStat("Straker", 7, -999999999999999) - это в теории должно было отнять все очки движения и предотвратить суицид героя при трансформации замка, но он все равно успевает в него зайти и умереть.
sleep лишний, попробуйте так:
function CaptureStraker(oldOwner, newOwner, heroName, objectName)
local dwellings = {"Dwell1", "Dwell2", "Dwell3", "Dwell4"};
if GetObjectOwner(objectName) == PLAYER_4 then
Trigger(OBJECT_CAPTURE_TRIGGER, "PlayerTown", nil);
TransformTown(objectName, TOWN_NECROMANCY);
sleep(3);
for i = 1, length(dwellings) do
ReplaceDwelling(dwellings[i], TOWN_NECROMANCY);
sleep(1);
SetObjectOwner(dwellings[i], PLAYER_4);
SetAIPlayerAttractor("PlayerTown", PLAYER_4, 1);
end;
end;
end;
p.s. если не поможет добавить перед Transform BlockGame(); и Unblock в конце функции
Добавлено через 4 минуты
AstralLein И там еще проблемка... При превращении в погост, залы щитов почему-то становятся недоступными для посещения, хотя владелец нанимает караван оттуда без проблем. Остальные здания работают как надо.
так бывает, координаты с доступными тайлами у каждого двелинга разные, потому нужно вокруг поста оставить по проходимой клетке (а то и две) чтобы после трансформации, активный тайл не был заблочен посторонним объектом