Переменные в SourcePawn, Способ ввода новых переменных, типы переменных |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Переменные в SourcePawn, Способ ввода новых переменных, типы переменных |
Revelation |
8.8.2014, 8:30
Сообщение
|
Всем доброго времени суток!
В данном материале рассмотрим примеры работы с переменными, их типы, способы ввода. Объявление новых переменных. Вводятся новые переменные достаточно просто. Желательно вводить их в начале программы.Приставка new, далее название переменной и знак ; Названия переменных не должны начинаться с цифр и знаков. Пример: Код:
Типы переменных. Целое число (Integer):Код: new a; Дробное число (Float): Код: new Float:b; Булевая переменная (Bool): Хранит в себе правду или ложь. True - 1, False - 0 По умолчанию, значение переменной равно 0 (ложь/false). Код: new bool:c; Присвоение значения переменным. Название переменной, знак = (равно), значение, знак ;Код: //Для целого числа: В следующей статье разберем массивы и строки. Материал там большой, решил выделить в отдельную тему. Приношу свои извинения за ранее недоработанную статью с ошибками.
Отредактировал: Revelation, - 13.8.2014, 19:05
|
|
Поблагодарили 4 раз
|
|
mazdan |
8.8.2014, 8:58
Сообщение
|
|
Цитата Уникальный идентификатор (например, для id игрока, steamID): Handle вряд ли для этого, вы уверены что описание верное?new String:A; ? какой длины? очень сомневаюсь что вы правы https://wiki.alliedmods.net/Introduction_to_sourcepawn тут, например, не так написано. Это и на русском есть https://wiki.alliedmods.net/Ru:Introduction_to_SourcePawn Цитата Приставка new, далее название переменной и обязательно знак ; #pragma semicolon 0 ?
Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
|
Поблагодарили 2 раз
|
|
[WPMG]PRoSToTeM@ |
8.8.2014, 9:50
Сообщение
|
В SourcePawn any: есть?
|
|
|
|
Revelation |
8.8.2014, 14:37
Сообщение
|
Handle вряд ли для этого, вы уверены что описание верное? Handle используется для переменных-идентификаторов, обозначающих то, что он может быть единственным, уникальным new String:A; ? какой длины? очень сомневаюсь что вы правы Про длину я ничего не писал, поэтому вы не можете здесь судить прав или нет. Как таково, границы еще не "достигал", максимального значения не знаю. Да и сомневаюсь, что вы будете использовать в плагинах длинный текст размером >200 символов. #pragma semicolon 0 ? в #pragma, #define, #include знак ; не нужен. Если конечно, правильно вас понял.
Отредактировал: Revelation, - 8.8.2014, 14:48
|
|
|
|
Revelation |
8.8.2014, 14:42
Сообщение
|
|
|
mazdan |
8.8.2014, 14:45
Сообщение
|
|
Revelation, я sourcepawn не знаю вообще, я спрашиваю при объявлении new String:A; какой длины строку я могу положить в переменную A? подозреваю, что так нельзя объявлять.
Цитата в #pragma, #define, #include знак ; не нужен. Если конечно, правильно вас понял. неправильно. Я к тому что в pawn пропишите #pragma semicolon 1 и надо будет ставить ; ну и наоборот должно работать.Если вы беретесь что-то писать как "обучалки" то пишите правильно или вообще не пишите. Ваше new String:A; без размера (и указания значения) скомпилируется хотя бы? id и steamid не то для чего используется handle (в pawn точно, в сурспавне скорее всего так же) handle Сколько плагинов на sourcepawn вы написали? Можно посмотреть парочку? Цитата new color[3];
color[0] = 255; // Первый элемент массива color[1] = 50; // Второй элемент массива color[2] = 255; // Третий элемент массива color[3] = 180 // Четвертый элемент массива --- тут ловим ошибку index out of range Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
|
Поблагодарили 2 раз
|
|
Revelation |
8.8.2014, 14:53
Сообщение
|
mazdan,
Да, местами ошибался, признаю это, исправил. Если так интересуют мои плагины, прошу в лс, ибо многие приват, писал лично для своего сервера. |
|
|
|
Legenda |
8.8.2014, 14:57
Сообщение
|
|
new String:A; ? какой длины? очень сомневаюсь что вы правы длину можно задать decl String:text[192]; new String[]:A; - не скомпилируется new String[]:A = "text!"; - скомпилируется, длина определится автоматически... new String:A[6] = "text!"; - скомпилируется, длину задали при объявлении decl String:A[6]; - задали длину, это наиболее частый способ создания "временных" строк! A = "text!"; - скомпилируется, присвоили значение, decl String:A[192]; A = "text!"; - скомпилируется |
Поблагодарили 1 раз
|
|
Revelation |
8.8.2014, 15:01
Сообщение
|
#pragma semicolon 1 и надо будет ставить ; ну и наоборот должно работать. В SourcePawn принято ставить знак ; (даже при отсутствии в начале #pragma semicolon) 99% плагино-писателей работает именно с #pragma semicolon 1 (если сомневаетесь - идите на alliedmoders и смотрите плагины на SourceMod, "плагинов без ;" не найдете там). Тем более на оф.сайте скриптинга все примеры именно с ; Цитата Приставка new, далее название переменной и обязательно знак ; Без объявления #pragma semicolon в начале плагина все равно нужно использовать этот знак. По умолчанию #pragma semicolon 1 потому что.
Отредактировал: Revelation, - 8.8.2014, 15:03
|
|
|
|
[WPMG]PRoSToTeM@ |
8.8.2014, 15:29
Сообщение
|
|
|
csnet |
8.8.2014, 15:58
Сообщение
|
ничего нового не узнал. в амхх тоже самое практически
go v cs:go
|
|
|
|
BadDrive |
8.8.2014, 21:22
Сообщение
|
|
А можешь ещё парочку примеров массивов привести? Ибо я не очень понял)
|
|
|
Dasister |
13.8.2014, 11:30
Сообщение
|
Уникальный идентификатор (например, для id игрока, steamID): Код: new Handle:A; Не совсем верные примеры. UserID - целое число. SteamID (он же AuthID) - строка. В SourcePawn any: есть? Есть. Ваше new String:A; без размера (и указания значения) скомпилируется хотя бы? Подобное объявление компилятор пропустит. |
|
|
|
mazdan |
13.8.2014, 11:40
Сообщение
|
|
Dasister, и какой длины строку можно будет записать в A?
Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
|
|
|
[WPMG]PRoSToTeM@ |
13.8.2014, 11:51
Сообщение
|
mazdan, нульбайт только
Жаль в amx павне нет decl, хотя можно прикрутить спокойно. |
|
|
|
Dasister |
13.8.2014, 12:11
Сообщение
|
|
|
Revelation |
13.8.2014, 12:28
Сообщение
|
mazdan,
Да что ж вы к этой длине то прицепились? Про длину даже на оф.сайте скриптинга ничего не сказано. Переменные вмещают большое кол-во символов. Сомневаюсь, что сможете забить полностью. |
|
|
|
Dasister |
13.8.2014, 12:48
Сообщение
|
mazdan, Да что ж вы к этой длине то прицепились? Про длину даже на оф.сайте скриптинга ничего не сказано. Переменные вмещают большое кол-во символов. Сомневаюсь, что сможете забить полностью. Его интересует длина строки A именно в случае decl String:A;, а не максимальная длина строки, которая вообще возможна. |
|
|
|
mazdan |
13.8.2014, 14:09
Сообщение
|
|
Revelation, ну вы же написали у себя в статье что так можно объявлять строки, вот я пробую уточнить для каких строк пригодно такое объявление
Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
|
|
|
[WPMG]PRoSToTeM@ |
13.8.2014, 15:06
Сообщение
|
mazdan, её по идее даже ни в одну функцию связанную со строками не передашь, т.к. это не массив.
|
|
|
|