1)
function kool1 ()
while 1 do
sleep (1)
if GetObjectOwner ('elftown') == PLAYER_1 then
TransformTown ('elftown' , 1)
break --эта штука прерывает цикл while
end
end
end
startThread (kool1)
А фатальность первоначальной записи в том, что вы функции и другой переменной дали одно имя.
3) По Моему Нескромному Мнению