Преобразуем символ в ник

Перейти вниз

Преобразуем символ в ник

Сообщение  Rush в Сб Окт 10, 2015 9:47 am

В общем, код замены ИД на ники.
Код:
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));
      strdel(text, i - a - 1, i);
      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.

Немного от меня:
Для того, чтобы можно было заменять там, "где хочешь" - создадим сток, и засунем туда данный код:
Код:
stock ChangeID(text[])
{
    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;
       strdel(text, i - a - 1, i);
       strins(text, GetName(strval(tmp)), i - a - 1, 128);
    }
    return true;
}
Код:
stock GetName(playerid)
{
    new name[20];
    format(name, sizeof(name), PlayerInfo[playerid][pNick]);
    new line = strfind(name,"_");
    if(line != -1) name[line] = ' ';
    return name;
}

Тут мы убираем _ из ника игрока. Не обязательно, но _ в нике не нужно.
Теперь мы можем вставить ChangeID(parametr); хоть куда, следовательно, будет заменяться ID на ник. Пример: /a ку, @2.
Будет: Nick_Nick: ку, Ivan Ivanov.
avatar
Rush

Сообщения : 201
Репутация : 46
Дата регистрации : 2012-12-10
Возраст : 20
Откуда : Россия

http://gs-games.gta-ru.com

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения