How code appears in script event commands is important. Different lines are treated as completely separate and unrelated lines unless they're made to run on via certain situations.
What the game thinks you currently have is a line which says:
Code:
Kernel.pbNoticePlayer(get_character
And a separate line which says:
Both lines are incomplete - the first has one fewer ) than (, and the second is the other way around. The game is too stupid to wonder if they're both supposed to be part of the same line, so it deals with each separately, and both end up being errors due to the brackets.
You
can make the game see that one line should run into the next line, though, and that's when the first line ends with something that clearly expects something else. Like
( or
&& or
|| - these imply there's more to come, so it looks to the next line for more to bolt onto the end of it.
Alternatively, use ExtendText. That's the easiest option.
As for the range of an event,
Trainer(1) will look only at the tile directly in front of the event,
Trainer(2) will look at that tile plus the one immediately beyond it, and so forth. An event having the name
Trainer(3) (or some other number) plus a trigger of Event Touch is the
only thing that causes the event to activate at a distance. The
pbNoticePlayer just produces the exclamation mark and moves the event towards the player, and is unrelated to the distant triggering (although trainer NPCs typically use both, of course).