Составили код замены идентификаторов на ники (например: привет, @0" меняется на "привет, [ACF]OKStyle"). Полгода назад допилили на заказ, решил показать. На скрине недоработанная версия. Представленная срабатывает на все 100.
Код
public OnPlayerText(playerid, text[])
{
new PlayerName[MAX_PLAYER_NAME];
for(new i = strfind(text, "@", true), a = 0, tmp[4]; i != -1; i = strfind(text, "@", true, i)) // нашли включение обращения
{
++i, a = 0; // если их несколько - продолжаем до конца
while(48 <= text[i] <= 57 && a != 4) tmp[a++] = text[i++]; // ы
if(tmp[0] == EOS) continue; // если не найден
GetPlayerName(strval(tmp), PlayerName, sizeof(PlayerName)); // получаем имя введённого в чат ID
strdel(text, i - a - 1, i); // удаляем символ и ID
strins(text, PlayerName, i - a - 1, 128); // вставляем ник в чат
}
GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
format(text, 128, "%s: {FFFFF}%s", PlayerName, text);
SendClientMessageToAll(GetPlayerColor(playerid), text);
return 0;
}
Автор OKStyle.