1.n1 — номер игрока - бывшего владельца, n2 — номер игрока - нового владельца, s1 — имя героя, захвативашего объект, s2 — имя объекта.
2. 2 — это действительно номер игрока.
3. Повесьте тригнер касания на указатель, установите нерабочее состояние объекта, и выводите после касания объекта ShowFlyingSign, где можно настроить время полёта сообщения.
4. Абсолютно точно одновременно зайти двум игрокам не получится, потому можно добавить к телепорту блокировку игры, телепорт, отход игрока на 1 клетку вверх (y+1), разблокировка игры. Также добавлять проверку, равны ли координаты первого переместившегося объекта (имя узнаём в триггере, повешенном на псевдотелепорт), координатам второго объекта, но с y меньше на 1, и в зависимочти от этого либо перемешаем героя на 1 клетку вверх, либо не двигаем. Но это костыль, ваш вариант правилен, я просто предложил альтернативу.
5. Эти неизведанные функции просто не занесены разработчикамм в их мануалы. Таких функций хватает, при надобности можно спрашивать у тех, кто их знает.
6. Есть функция SetHeroesExpCoeff..
7. Наведение порядка — вещь хорошая. Рекомендую просто отделять различные части скрипта кучей дефисов с описанием, что где что делает.