Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.
Как использывать "%s" и т.д.?
Лучший Ответ Elrmrnt-Kritik , 13 Ноябрь 2016 - 19:24
По сути, позволяет вставить вместо этого подставить значение переменной. Ну, например, была у Вас переменная целочисленного типа (целые числа). Объявляем ее следующим образом:
new argument;//Объявляем переменную argument = 15;//Присваиваем ей значение переменной. Теперь argument равен 15.
Для вывода ее значения необходимо использовать функцию SendClientMessage. Но она не может содержать аргументы, поэтому следует отформатировать строку.
Для этого создадим новую переменную, типа строки. Объявляется она следующим образом (обращаем внимание на строку ниже).
new string[128];//Объявляем переменную-строку format(string, sizeof(string), "Значение переменной argument равно: %d", argument);//В переменную string записываем текст, находящийся левее SendClientMessage(playerid, 0xFF0000FF, string);//Выводим игроку playerid сообщение красного цвета.
Также эта переменная может содержать не всю строку, а лишь часть текста. Ну, например,
new rank[10]; rank = "лейтенант"; format(string, sizeof(string), "Ранг игрока: %s", rank);
Обратите внимание, в первом случае мы использовали %d. Во втором - %s. Все дело в типах переменных. Если целочисленный тип, используется %d, если строковый - %s, если вещественный - %f. Кстати, о вещественном речи пока не было. Содержать этот тип переменных может только десятичные числа, ну, например, 10.18, 1.0, 11523.26562.
Соответственно, выводится будет так:
new Float:x;//Объявляем переменную вещественного типа (Float); x = 1568.0017;//Присваиваем переменной X значение 1568.0017 format(string, sizeof(string), "Переменной X присвоено значение: %f", x);
Также это может использоваться при создании диалога, при создании 3D текста, текстдравов.
Если Вы хотите вывести игроку его nick-name, его ID и позицию:
new string[128], sendername[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;//Создаем пять новых переменных. String будет содержать строку, которую мы выводим. Sendername - имя игрока, которое мы выводим (в данном случае наш nick-name), x,y,z - координаты игрока. GetPlayerName(playerid, sendername, sizeof(sendername));//Получаем имя игрока playerid, которое записываем в переменную sendername и занимаем количество ячеек sizeof(sendername). Короче говоря, сколько символов, столько и ячеек будет занято (эта функция у sizeof). GetPlayerPos(playerid, x,y,z);//Получаем имя игрока и записываем его в переменные x,y,z format(string, sizeof(string), "Ваш nick-name: %s; Ваш ID: %d; Ваши координаты: %f,%f,%f", sendername, playerid, x,y,z);//Форматируем строку, то есть в переменную string записываем все, что находится в скобках " "
- Почему мы использовали %s при выводе nick-name? Поскольку переменная содержит текст (а также является переменной типа строки (ведь мы указали количество ее ячеек)), то выводить необходимо через %s.
- Почему мы использовали %d при выводе ида игрока? Связано это с тем, что ID игрока принимает только целочисленные значения, а значит и переменная должна быть целочисленного типа. Следовательно, функция %d подойдет нам полностью для вывода ида.
- Почему мы использовали %f при выводе координат игрока? Ну, во-первых, они определяются по оси X, Y, Z. Каждая из них является вещественной, ведь принимает десятичные значения. В таком случае %f - то, что нам нужно.
Есть еще некоторые типы, но о них я не стал говорить, поскольку использованными в модах ни разу не видел.
Еще некоторую информацию можете найти здесь.
#1
offline
Отправлено 13 Ноябрь 2016 - 18:35
offline
Я только начал учить Pawn.
Ну так вот, как использывать %s и т.д.
#2
online
Отправлено 13 Ноябрь 2016 - 19:24
online
По сути, позволяет вставить вместо этого подставить значение переменной. Ну, например, была у Вас переменная целочисленного типа (целые числа). Объявляем ее следующим образом:
Для вывода ее значения необходимо использовать функцию SendClientMessage. Но она не может содержать аргументы, поэтому следует отформатировать строку.
Для этого создадим новую переменную, типа строки. Объявляется она следующим образом (обращаем внимание на строку ниже).
Также эта переменная может содержать не всю строку, а лишь часть текста. Ну, например,
Обратите внимание, в первом случае мы использовали %d. Во втором - %s. Все дело в типах переменных. Если целочисленный тип, используется %d, если строковый - %s, если вещественный - %f. Кстати, о вещественном речи пока не было. Содержать этот тип переменных может только десятичные числа, ну, например, 10.18, 1.0, 11523.26562.
Соответственно, выводится будет так:
Также это может использоваться при создании диалога, при создании 3D текста, текстдравов.
Если Вы хотите вывести игроку его nick-name, его ID и позицию:
- Почему мы использовали %s при выводе nick-name? Поскольку переменная содержит текст (а также является переменной типа строки (ведь мы указали количество ее ячеек)), то выводить необходимо через %s.
- Почему мы использовали %d при выводе ида игрока? Связано это с тем, что ID игрока принимает только целочисленные значения, а значит и переменная должна быть целочисленного типа. Следовательно, функция %d подойдет нам полностью для вывода ида.
- Почему мы использовали %f при выводе координат игрока? Ну, во-первых, они определяются по оси X, Y, Z. Каждая из них является вещественной, ведь принимает десятичные значения. В таком случае %f - то, что нам нужно.
Есть еще некоторые типы, но о них я не стал говорить, поскольку использованными в модах ни разу не видел.
Еще некоторую информацию можете найти
.Количество пользователей, читающих эту тему: 1
0 пользователей, 0 гостей, 0 анонимных
-
Alexa (1)


Тема закрыта
Сообщений: 22
Регистрация:
Skype: v.l.a.d.65