rendered paste body#define COLOR_YELLOW 0xFFFF00AA#define COLOR_GREEN 0x00FF00AAnew gLastMsg[MAX_PLAYERS];public OnPlayerCommandText(playerid, cmdtext[]){ if( !IsPlayerConnected(playerid)) return 0; new cmd[256], idx; cmd = strtok(cmdtext, idx); if( strcmp(cmd, "/m", true) == 0 ) { new idstr[56]; idstr = strtok(cmdtext, idx); new id; id = strval(idstr); new message[256]; message = strtokspace(cmdtext, idx); if (strlen(message)==0) { SendClientMessage(playerid, COLOR_YELLOW, "Please enter a message! Usage /m ID MESSAGE"); return 1; } if (!(IsPlayerConnected(id))) { SendClientMessage(playerid, COLOR_YELLOW, "Please enter a valid player id! Usage /m ID MESSAGE"); return 1; } if (id == playerid) { SendClientMessage(playerid, COLOR_YELLOW, "You cannot pm yourself! Usage /m ID MESSAGE"); return 1; } new msg[256], msgecho[256], playername[MAX_PLAYER_NAME],playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); GetPlayerName(id, playername2, sizeof(playername2)); format(msg, sizeof(msg), "[pm from %s]: %s \n", playername, message ); format(msgecho, sizeof(msgecho), "[sent to %s]: %s \n", playername2, message ); printf("[%s to %s]: %s\n", playername, playername2, message); SendClientMessage(id, COLOR_YELLOW, msg); SendClientMessage(playerid, COLOR_GREEN, msgecho); gLastMsg[id]=playerid; return 1; } if( strcmp(cmd, "/r", true) == 0 ) { new id; id = gLastMsg[playerid]; new message[256]; message = strtokspace(cmdtext, idx); if (strlen(message)==0) { SendClientMessage(playerid, COLOR_YELLOW, "Please enter a message! Usage /m ID MESSAGE"); return 1; } if (!(IsPlayerConnected(id))) { SendClientMessage(playerid, COLOR_YELLOW, "That player is no longer connected!"); return 1; } new msg[256], msgecho[256], playername[MAX_PLAYER_NAME],playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); GetPlayerName(id, playername2, sizeof(playername2)); format(msg, sizeof(msg), "[pm from %s]: %s \n", playername, message ); format(msgecho, sizeof(msgecho), "[sent to %s]: %s \n", playername2, message ); printf("[%s to %s]: %s\n", playername, playername2, message); SendClientMessage(id, COLOR_YELLOW, msg); SendClientMessage(playerid, COLOR_GREEN, msgecho); gLastMsg[id]=playerid; return 1; } return 0;} //strtokpublic strtok(const string[], &index){ new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result;}//strtokstrtokspace(const string[], &index){ new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[256]; while ((index < length) && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result;}