1. It works the same way as for a hero, but instead of Combat Script, you need to go lower in the city's properties and use the script string.
2. I don't know if it will work with Prayer, but try UnitCastGlobalSpell(GetDefenderHero(), SPELL_PRAYER). Don't forget to give the hero the Prayer skill.
3. StartDialogScene("link to the video", "function")