Четверг, 17.07.2025, 18:34
Приветствую Вас Гость | RSS
[•X•X•X•X•X•X•X•X•X• SRK •X•X•X•X•X•X•X•X•X•] - 193.107.179.214:7777
Главная | Урок №11 – Форматирование строки с помощью format и printf - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: DimanCC, Awesome, [Tuner_Life]Nikotin  
Урок №11 – Форматирование строки с помощью format и printf
AwesomeДата: Пятница, 17.02.2012, 23:53 | Сообщение # 1
Генерал-майор
Группа: Проверенные
Сообщений: 70
Награды: 14
Репутация: 25
Статус: Offline
Форматирование строки с помощью format и printf
В этом уроке я покажу как передавать значение переменных в строку, т.е вы научитесь
форматировать строку с помощью format и printf. Рассмотрим их работу на примере приведенном
ниже:

Code
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.
Code
format(string, sizeof(string),”%s – Добро пожаловать на наш сервер! (ID: %d)”,plname,playerid);


В выше указанном примере показано, мы передаем значение переменной plname в %s, а
значение playerid в %d. Если мы поменяем местами имена переменных, это будет неправильно, так
как мы не можем передать строке %s числовое значение в переменной playerid, а целочисленному
типу %d мы не можем передать строку, это разные типы. Вот еще один вариант форматирования,
тут переставленыa
В принципе тут все более менее понятно. Ну а теперь о printf. С printf все немного проще, тут
естественно ненужно никакой переменной string. Если в вышеуказанном примере использовать
printf вместо format, Скрипт будет выглядеть следующим образом:
1 printf(”(ID: %d) Добро пожаловать на наш сервер! - %s”,playerid,plname);
Но это всего лишь бессмысленный пример, но зато он показывает, как используется printf. В
завершении этого урока, я просто покажу вам правильный пример использования printf.

Code
public OnPlayerConnect(playerid)    
{    
new plname[MAX_PLAYER_NAME];    
GetPlayerName(playerid,plname,24);    
printf(”(ID: %d) Добро пожаловать на наш сервер! - %s”,playerid,plname);    
return 0;    
}


Я думаю тут все более менее понятно,




я вернулся
 
  • Страница 1 из 1
  • 1
Поиск:

Поддержка пишите на наш форум:Walter & alisa