else if (stristr(Msg2, "!Teleport <players name>") == 0 && strcmp(Get_Player_Name_By_ID(ID),"<nick>") == 0) {
Are you expecting to to compile a version of the scripts.dll for each person in the game?
I believe the best way to have one command for this is to tokenize the string seperating the char* into two parts.
For yourself, it may be easier to convert Msg2 into a std::string for the time being and using subrstr(Start, Length).
It has been a while since I have looked into the scripts/bhs.dll but you could perform something like the following?
std::string ChatMsg(Msg2);
else if (ChatMsg.substr(0, 9) == "!Teleport") {
const char* TargetName = Get_Player_Name_By_ID(atoi(ChatMsg.substr(10).c_str));
PS: This is an idea, not complete code and may require editing.