Сайт восстановлен из веб архива. Сейчас он доступен только для чтения, скачивание материалов также недоступно. Если у вас до сих пор есть какие-то вопросы по разработке серверов CRMP, вы можете перейти на актуальный портал: https://pawno-rus.com

Перейти к содержимому

Уважаемый гость, если у Вас возникли проблемы с регистрацией, просьба обратиться в тех.поддержку или на почту admin@pawno-crmp.ru

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

Фотография

Как использывать "%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 записываем все, что находится в скобках " "
  1. Почему мы использовали %s при выводе nick-name? Поскольку переменная содержит текст (а также является переменной типа строки (ведь мы указали количество ее ячеек)), то выводить необходимо через %s.
  2. Почему мы использовали %d при выводе ида игрока? Связано это с тем, что ID игрока принимает только целочисленные значения, а значит и переменная должна быть целочисленного типа. Следовательно, функция %d подойдет нам полностью для вывода ида.
  3. Почему мы использовали %f при выводе координат игрока? Ну, во-первых, они определяются по оси X, Y, Z. Каждая из них является вещественной, ведь принимает десятичные значения. В таком случае %f - то, что нам нужно.

 

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

Еще некоторую информацию можете найти здесь.

Перейти к сообщению »


  • Закрытая тема Тема закрыта
В теме одно сообщение

#1
offline   Staro4nik

Staro4nik
  • 2
    • Сообщений: 22
    • Регистрация: 02.11.16
Всем здаров :)
Я только начал учить Pawn.
Ну так вот, как использывать %s и т.д.

#2
online   Elrmrnt-Kritik

Elrmrnt-Kritik
  • 804
    • Сообщений: 3 242
    • Регистрация: 19.07.15
✓  Лучший Ответ

По сути, позволяет вставить вместо этого подставить значение переменной. Ну, например, была у Вас переменная целочисленного типа (целые числа). Объявляем ее следующим образом:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

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

Для этого создадим новую переменную, типа строки. Объявляется она следующим образом (обращаем внимание на строку ниже).

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Также эта переменная может содержать не всю строку, а лишь часть текста. Ну, например,

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Обратите внимание, в первом случае мы использовали %d. Во втором - %s. Все дело в типах переменных. Если целочисленный тип, используется %d, если строковый - %s, если вещественный - %f. Кстати, о вещественном речи пока не было. Содержать этот тип переменных может только десятичные числа, ну, например, 10.18, 1.0, 11523.26562.

Соответственно, выводится будет так:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

 

Также это может использоваться при создании диалога, при создании 3D текста, текстдравов.

Если Вы хотите вывести игроку его nick-name, его ID и позицию:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

  1. Почему мы использовали %s при выводе nick-name? Поскольку переменная содержит текст (а также является переменной типа строки (ведь мы указали количество ее ячеек)), то выводить необходимо через %s.
  2. Почему мы использовали %d при выводе ида игрока? Связано это с тем, что ID игрока принимает только целочисленные значения, а значит и переменная должна быть целочисленного типа. Следовательно, функция %d подойдет нам полностью для вывода ида.
  3. Почему мы использовали %f при выводе координат игрока? Ну, во-первых, они определяются по оси X, Y, Z. Каждая из них является вещественной, ведь принимает десятичные значения. В таком случае %f - то, что нам нужно.

 

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

Еще некоторую информацию можете найти

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

.


  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 0 гостей, 0 анонимных


    Alexa (1)

Данную тему посетили 12 пользователей