Марта, извиняюсь, не доглядел что именно Вам необходимо... Да, конечно можно. К первой функции прикручиваем дополнительные проверки, т.е:
function Beacon_Tilgatal_F ()
if GetObjectOwner("Dungeon_1") == 1 then
SetObjectPosition("Port_Tilgatal", 81, 133, 0);
sleep(1);
print("замок Тилгатал наш");
sleep(1);
else
SetObjectPosition("Port_Tilgatal", 127, 142, 1);
sleep(1);
print("замок Тилгатал не наш");
sleep(1);
end;
if GetObjectOwner("Dungeon_2") == 1 then
SetObjectPosition("Port_Halad", 63, 104, 0);
sleep(1);
print("замок Халад наш");
sleep(1);
else
SetObjectPosition("Port_Halad", 127, 142, 1);
sleep(1);
print("замок Халад не наш");
sleep(1);
end;
if GetObjectOwner("Dungeon_3") == 1 then
SetObjectPosition("Port_Torost", 104, 105, 0);
sleep(1);
print("замок Торост наш");
sleep(1);
else
SetObjectPosition("Port_Torost", 127, 142, 1);
sleep(1);
print("замок Торост не наш");
sleep(1);
end;
end;
Мартаif (GetObjectOwner("Dungeon_1") == 2)
or (GetObjectOwner("Dungeon_1") == 3)
or (GetObjectOwner("Dungeon_1") == 4)
or (GetObjectOwner("Dungeon_1") == 5)
or (GetObjectOwner("Dungeon_1") == 6)
or (GetObjectOwner("Dungeon_1") == 7)
or (GetObjectOwner("Dungeon_1") == 8)
or (GetObjectOwner("Dungeon_1") == 0) then
Эту проверку на принадлежности к игрокам можно сократить до такого(т.к. Вам нужно чтобы только один игрок владел замками):
if (GetObjectOwner("Dungeon_1") ~= 1) then --Если замок не принадлежит первому игроку то тут наши полномочия всё