Jack_of_shadowsВы бы лучше прислушивались к советам и исправляли явные ошибки, вместо того чтобы говорить что что-то где-то работает. В функцию передается переменная hero, значит она и должна использоваться дальше. Где-то в другом месте кода вы случайно создали глобальную переменную с именем heroname, которой присвоили имя главного героя. Поэтому при тестировании вам показалось что данная функция сработала как надо. Но это просто совпадение, которое в любой момент может исчезнуть.
Я в своём ЧаВо описывал методы отладки кода. Чтобы консоль работала на полную катушку, нужно использовать отладочные сообщения. До/после/внутри функции, до/после триггера.
Я Вас понял

Как говорится, век живи - век учись.