Что такое символы?
Наверное все знают что компьютеры работают только с цифрами 1 и 0, текст не исключение.
Не буду вас грузить всеми нюансами, так как и сам если честно не до конца осведомлен что там и как работает, если вам все же очень интересно, то с легкостью сможете найти сами достаточное количество информации по этой теме.
Исходя из выше сказанного можно сделать вывод что каждая строка, на самом деле набор цифр, символы представлены в ASCII кодировке, она представляет каждый символ своим числом, диапазон чисел от 0 до 255, сюда входят и прописные и заглавные буквы латинского алфавита, обратите внимание что большие и маленькие буквы - не одно и тоже. Видимо уже созрел вопрос, зачем 255 если в алфавите 26 букв плюс 26 заглавных, получается на много меньше чем 255, все правильно в эту кодировку входят еще и другие символы, но о них мы не будем сейчас говорить.
ASCII кодировка и какое число за какую букву отвечает:
- A-Z диапозон 65-90. 65 = 'A' и 90 = 'Z'.
- a-z диапозон 97-122. 97 = 'a' и 122 = 'z'.
Заметили разницу между большими и маленькими буквами?
Каждая строка обязана заканчиваться символом 0.
То есть если в строке найдено пустое значение это конец строки.
По этому все массивы должны иметь на не 1 размера больше чем текст.
test - 4 символа, а массив под это слово должен иметь размер 5, 1 ячейку для последнего пустого символа.
Запись строк в массив
Предположим мы хотим поместить имя игрока в массив, допустим имя будет Kotelov, в нем 7 символов, значит необходим массив с размерностью 8
new StringPlayerName[] = "Kotelov"
При создании нового массива и записи в него слова, размер массива указывать не нужно, компилятор сделает это сам!
Создание двумерных массивов
Допустим нам необходимо запомнить все имена игроков на сервере.
Для этого нам понадобится массив, который бы запомнил связку айди игрока с его именем.
Выглядит это так:
Представим что у нас 3 игрока на сервере с именами Nick1 Nick2 Nick3 и их айди 1 2 3
//Объявление двумерного массива
new PlayersName[32][] //32 максимальное количество игроков на сервере, второй массив оставляем без размера
//Заполнение двумерного массива
PlayersName[0][] = "Nick1"
PlayersName[1][] = "Nick2"
PlayersName[2][] = "Nick3"
Что бы нам получить имя игрока с айди 1, нам необходимо обратиться к массиву следующий образом:
get_user_name(PlayersName[1],name,32)
Объявление массива и его заполнение:
new PlayersName[][]= {"Nick1","Nick2","Nick3"}
Что такое %s и как вывести содержание массива в сообщение
Что бы подставить массив из букв в сообщение игроку, необходимо использовать символ подстановки %s
Пример:
//Объявление нового массива под имя
new name[32]
//Получение имени игрока и запись в массив
get_user_name(id,name,31)
//вывод сообщения с именем игрока
client_print(id,print_chat,"Player name: %s",name)
Внутри кавычек "тело" сообщения "Player name: %s".
Оно не меняется, кроме %s, в это место подставляется массив name.
обратите внимание - подставляется без указания индекса, так как во всем массиве храниться всего лишь имя одного игрока.
Что бы подставить несколько массивов или переменных, нужно ставить все последовательно.
Пример:
//Объявление нового массива под имя
new name[32]
//Получение имени игрока и запись в массив
get_user_name(id,name,31)
//вывод сообщения с именем игрока и его id
client_print(id,print_chat,"Player name: %s he id: %d",name,id)
"Player name: %s he id: %d" - Сообщение
,name,id - массивы и переменные для подстановки.
Видите как в сообщение расположены символы для подстановки и как они идут за сообщением?
В одинаковом порядке, то есть:
client_print(id,print_chat,"Подставляемое значение1 , Подставляемое значение2", массив1,переменная2)
Этот пример для понятия и работать он не будет, так как переменная и массив написаны на русском.
Надеюсь понятно все рассказал.
На этом все.