Если просто написать MessageBox, то работать он будет в начале миссии. Если вам нужно, чтобы сообщение выводилось, когда вы заходите в регион после гарнизона, то вставьте MessageBox в эту функцию, перед SetObjectOwner.
Т.е., должно быть где-то так:
EnableHeroAI('Duncan',false);
function garrison(hero)
if hero=='Giovanni' then
MessageBox("/Maps/SingleMissions/ExampleMaP/msg.txt");
SetObjectOwner('Duncan',PLAYER_1);
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'reg', nil);
end;
Trigger(REGION_ENTER_AND_STOP_TRIGGER, 'reg', 'garrison', nil);