muv4ansky
Изучающий
- Регистрация
- 30 Окт 2016
- Сообщения
- 832
- Лучшие ответы
- 0
- Репутация
- 119
Приветствую, скриптеры
В этом уроке вы научитесь использовать format, и оптимизировать string под него.
[HR][/HR]
И так, начнем с вопроса: "Что такое format?"
format - это функция, которая позволяет отформатировать текст, так как нам нужно, с использование string.
string - это массив состоящий из ячеек, которые будет использовать сам format.
Вот так выглядит стандартная функция format:
native format(output[], len, const format[], {Float,_}:...);
output[] - массив в который будет занесён наш отформатированный текст.
len - максимальная длинна уже отформатированной строки. Если она превысит это число, то строка попросту обрежется.
const format[] - эта константа обрабатывает непосредственно текст, который вам нужен. Так же она обрабатывает спецификаторы, при помощи которых мы будем выводить какие то данные, будь то об игроке или что то другое.
Вот список спецификаторов:
%s - | спецификатор который выводит только текст(string) |
%d - | спецификатор который выводит только целые числа |
%i - | тоже самое, что и %d |
%f - | выводит число с плавающей точкой, к примеру: 1.25 |
Теперь перейдем непосредственно к использованию формата в PAWN
PHP:
new string[28 + MAX_PLAYER_NAME + 1];
format(string, sizeof(string), "%s добро пожаловать на сервер!", GN(playerid));
SCM(playerid, -1, string);
И так первая строка:
PHP:
new string[28 + MAX_PLAYER_NAME + 1]; //Мы создали массив(new string[28 + MAX_PLAYER_NAME + 1])
format(string, sizeof(string), "%s добро пожаловать на сервер!", GN(playerid));
Если подсчитать полностью эту строку, то там 30 символов, но спецификаторы надо откидывать, когда мы выделяем им ячейки. Т.е 30 - 2 = 28.
Далее у нас идет значение для первого спецификатора(выделил цветом):
Вторая строка:
PHP:
format(string, sizeof(string), "%s добро пожаловать на сервер!", GN(playerid));
PHP:
stock GN(playerid) // узнает имя игрока
{
new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, sizeof Name);
return Name;
}
Следующее что бросается в глаза, тем кто в PAWN еще особо много не знает, это(выделил цветом):
PHP:
new string[28 + MAX_PLAYER_NAME + 1];
Рекомендую всегда писать именно MAX_PLAYER_NAME, вместо 24.
1 - эта ячейка нужна под символ конца строки: "\0". Если что, можете об этом почитать подробнее в интернете.
Теперь перейдем к выводу отформатированного текста:
PHP:
new string[28 + MAX_PLAYER_NAME + 1];
format(string, sizeof(string), "%s добро пожаловать на сервер!", GN(playerid)); // форматирование текста
SCM(playerid, -1, string); // вывод отформатированного текста
Автор данного урока: Mike World
Последнее редактирование: