Well, I use a similar script for one of my events, but it didn't actually do anything with the character, it just got information about them (locs). I don't see why it wouldn't work to move them though, unless MovePC is broken. To verify, you should be able to try something like this:
Code:
sub EVENT_SAY {
if ($text =~/hail/i) {
quest::say("I am going to try to move you to Nexus with MovePC.");
$client->MovePC(152, 0, 0, -31);
}
}
If that doesn't work, then MovePC is the issue. If it does work, then I don't understand why it isn't working in the other script. It obviously has the client already, so it should be able to do stuff to them.
Also, just to mention it, we have some similar stuff setup on Storm Haven already. It is a bit tricky, but we do it using qglobals. You just set a time length for each member of the group via a qglobal with an expire time on it. Then, you have an NPC that runs the client check above and have it check their qglobals to see if they still have the global. If not, it just does a $client_search->Gate(); and sends them home :P