infernus
Умник
В этой теме, я постараюсь объяснить всем тем, кто не знает format
Прежде всего, предназначение функции - форматирование строки с добавлением в нее каких-либо значений переменных, или других строковых массивов.
Аргументы функции: (output[], len, const format[], arguments)
output[] - Массив, в которых будет записываться будущий форматированный текст
len - Максимальная длина, которую может содержать форматированная строка
const format[] - Сам так сказать формат, в этот аргумент попадают плейсхолдеры
arguments - аргументы формата.
Замечу, что аргументов формата может быть несколько.
Выше я упомянул о плейсхолдерах используемые в формате,
Перечислю, "часто используемые" плейсхолдеры:
%d - Плейсхолдер, вставит целое число, типа интегер
%f - Плейсхолдер, вставит число, с плавающей точкой, флоат (напр. координаты)
%s - Плейсхолдер, вставит строку, из аргументов (напр. имя игрока)
Хочу заметить, функция ничего не возвращает.
Как выглядит format на практике...
Первый пример
Второй пример
Третий пример
Хочу добавить ко всему, зачастую получается, а получается всегда xD, что плейсхолдер %f отображает здоровье(напр) вот таким образом: 85,88888888, чтобы такого небыло, есть небольшая тонкость, чтобы сократить кол-во символов после точки, добавляя в плейсхолдер число, означающее кол-во цифр, после точки, т.е.
%f - отобразит 100.00000
%0f - отобразит 100
%2f - отобразит 100.00
Урок первый, не пинайте xD
Прежде всего, предназначение функции - форматирование строки с добавлением в нее каких-либо значений переменных, или других строковых массивов.
Аргументы функции: (output[], len, const format[], arguments)
output[] - Массив, в которых будет записываться будущий форматированный текст
len - Максимальная длина, которую может содержать форматированная строка
const format[] - Сам так сказать формат, в этот аргумент попадают плейсхолдеры
arguments - аргументы формата.
Замечу, что аргументов формата может быть несколько.
Выше я упомянул о плейсхолдерах используемые в формате,
Перечислю, "часто используемые" плейсхолдеры:
%d - Плейсхолдер, вставит целое число, типа интегер
%f - Плейсхолдер, вставит число, с плавающей точкой, флоат (напр. координаты)
%s - Плейсхолдер, вставит строку, из аргументов (напр. имя игрока)
Хочу заметить, функция ничего не возвращает.
Как выглядит format на практике...
Первый пример
PHP:
new str[144]; //объявим массив, для формата строки
new playername[MAX_PLAYER_NAME]; //Объявим массив в который запишем ник игрока
GetPlayerName(playerid,playername,MAX_PLAYER_NAME);//Узнаем ник игрока и запишем его в массив playername
format(str,144,"Меня зовут: %s",playername);//Записываем ник игрока в строку str,
SendClientMessageToAll(-1,str);//Отправим форматированную строчку в чат
PHP:
new str[144];//Объявляем массив для будущего формата
new Float:x,Float:y,Float:z;//Объявим переменные для записи координат
GetPlayerPos(playerid,x,y,z);//запишем в переменные наши координаты
format(str,144,"Я нахожусь в X:%f , Y:%f , Z:%f",x,y,z)//Форматируем строчку Str записывая в нее наши координаты
SendClientMessage(playerid,-1,str);//Отправляем сообщение
PHP:
new str[144];//Объявим массив
format(str,144,"У меня %d убийств и $%d денег",GetPlayerScore(playerid),GetPlayerMoney(playerid));//формат...
SendClientMessage(playerid,-1,str);//сообщение
%f - отобразит 100.00000
%0f - отобразит 100
%2f - отобразит 100.00
Урок первый, не пинайте xD
