It is doable without editing the source , although it would require a rescript to the spell. It would take atleast 3 days , and I dont have that time on me. Although , I can provide some ideas for someone else to work with them.
You need to get the targets id with string.explode, then get his position , and get the casters position. Then you want to make a function to fill an empty table with positions FromPos, ToPos of the trainers area. Then you need to make a for loop that checks if the targets position is in any of the positions inside of the previously filled empty table, If true then set a local to true, else false. Then , make a check on the true/false local... If true(target is in trainers) then make it send a sendPlayerTextMessage to the caster with the number of the trainer room the target is inside. Else if false then make a local function to compare the players position with the targets position in the sense of direction, and then send a sendPlayerTextMessage with the direction previously worked on.
Should work perfectly in this sense.