Перейти к содержанию
Авторизация  
Devin Coleman

Урок №11–Форматирование строки с помощью format и printf

Рекомендуемые сообщения

Devin Coleman

Урок №11 – Форматирование строки с помощью format и printf

В этом уроке я покажу как передавать значение переменных в строку, т.е вы научитесь

форматировать строку с помощью format и printf. Рассмотрим их работу на примере приведенном

ниже:

 

public OnPlayerConnect(playerid)
{
new plname[MAX_PLAYER_NAME];
new string[40];
GetPlayerName(playerid,plname,24);
format(string, sizeof(string),”%s – Добро пожаловать на наш сервер!”,plname);
SendClientMessage(playerid,0xFFFF00AA,string);
return 1;
}
Для передачи значений переменных в текст сообщения используется оператор format.

Скрипт писать нужно в автовызываемой функции OnPlayerConnect, т.к. она вызывается, как

только игрок подключается к серверу. Для начала мы создаем две переменных, одна будет

хранить имя игрока(plname), а другая текст сообщения(string). Дальше функцией GetPlayerName

получаем имя игрока, и записывает имя в переменную plname.

Теперь пишем функцию format. В скобках пишем имя переменной, в которой будет

храниться текст отформатированного сообщения. Дальше через запятую пишем sizeof(string) и

текст сообщения. Последним ставим имя переменной, из которой будет взято значение.

%s – это строка, в которую передается значение из строковой переменной plname в данном

примере. Нельзя указывать переменную другого типа для строки. При форматировании

сообщения придется пользоваться не только строкой, но и другими типами.

%b Бинарный тип

%c Символьный тип

%d, %i Целочисленный тип

%f Число с плавающей точкой

%s Строка

Теперь функцией SendClientMessage, выводим текст в чат, только вместо текста

сообщения пишем имя переменной, в которой хранится текст сообщения, т.е. string.

Усовершенствуем наш пример. Допустим кроме имени игрока, нам нужно показать его ID. В

целом наш пример остается тем же, за исключением оператора format.

format(string, sizeof(string),”%s – Добро пожаловать на наш сервер! (ID: %d)”,plname,playerid);
В выше указанном примере показано, мы передаем значение переменной plname в %s, а

значение playerid в %d. Если мы поменяем местами имена переменных, это будет неправильно, так

как мы не можем передать строке %s числовое значение в переменной playerid, а целочисленному

типу %d мы не можем передать строку, это разные типы. Вот еще один вариант форматирования,

тут переставлены местами и типы и переменные.

format(string, sizeof(string),” (ID: %d) Добро пожаловать на наш сервер! - %s”,playerid,plname);
В принципе тут все более менее понятно. Ну а теперь о printf. С printf все немного проще, тут

естественно ненужно никакой переменной string. Если в вышеуказанном примере использовать

printf вместо format, Скрипт будет выглядеть следующим образом:

1 printf(”(ID: %d) Добро пожаловать на наш сервер! - %s”,playerid,plname);

Но это всего лишь бессмысленный пример, но зато он показывает, как используется printf. В

завершении этого урока, я просто покажу вам правильный пример использования printf.

public OnPlayerConnect(playerid)
{
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid,plname,24);
printf(”(ID: %d) Добро пожаловать на наш сервер! - %s”,playerid,plname);
return 0;
}
Я думаю тут все более менее понятно, если вы разобрались, то можете переходить к

следующему уроку.

 

Автор Cloud

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.