Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 7 из 7
  1. #1
    Аватар для Hidden
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    74
    Репутация:
    41 ±

    Выражения и операторы PAWN.

    PHP код:
    new var_1var_2result// некоторые переменные 

     Арифметические выражения
    Арифметические выражения: Пример Пояснение
    + result = var_1 + var_2; Результатом (result) будет сумма var_1 и var_2.
    - result = var_1 - var_2;

    -var_1
    Результатом (result) будет разность var_1 и var_2.


    Отрицательное значение.
    * result = var_1 * var_2; Результатом (result) будет произведение var_1 и var_2.
    / result = var_1 / var_2; Результатом (result) будет частное var_1 и var_2.
    % result = var_1 % var_2; Результатом будет остаток деления var_1 и var_2.
    ++ var_1++


    ++var_1
    Прибавление единицы (1). Результатом будет значение var_1 перед прибавлением единицы (1).

    Прибавление единицы (1). Результатом будет значение var_1 после прибавления единицы (1).
    -- var_1--


    --var_1
    Уменьшение на единицу (1). Результатом будет значение var_1 перед уменьшением на единицу (1).

    Уменьшение на единицу (1). Результатом будет значение var_1 после уменьшения на единицу (1).



     Операторы присваивания
    Операторы присваивания: Пример Пояснение
    += var_1 += var_2; Прибавить к значению var_1 значение var_2.
    -= var_1 -= var_2; Отнять от значения var_1 значение var_2.
    *= var_1 *= var_2; Умножить значение var_1 на значение var_2.
    /= var_1 /= var_2; Разделить значение var_1 на значение var_2.
    %= var_1 %= var_2; Присвоить значению var_1 остаток от деления var на var_2.
    &= var_1 &= var_2; Применяет побитовое "и" к var_1 и var_2 и присваивает результат к var_1.
    |= var_1 |= var_2; Применяет побитовое "или" к var_1 и var_2 и присваивает результат к var_1.
    ^= var_1 ^= var_2; Применяет побитовое "исключающее или" к var_1 и var_2 и присваивает результат к var_1.
    = var_1 = var_2; Присваивает значению var_1 значение var_2.



     Операторы сравнения
    Операторы сравнения:
    (обычно используются
    с оператором if)
    Пример Пояснение
    == if(var_1 == var_2) Если var_1 равно var_2.
    != if(var_1 != var_2) Если var_1 не равно var_2.
    > if(var_1 > var_2) Если var_1 больше var_2.
    < if(var_1 < var_2) Если var_1 меньше var_2.
    >= if(var_1 >= var_2) Если var_1 больше либо равно var_2.
    <= if(var_1 <= var_2) Если var_1 меньше либо равно var_2.



     Логические операторы
    Логические операторы: Пример Пояснение
    ! if(!IsPlayerConnected(playerid)) Логическое "НЕ" (если игрок не подключён).
    || if(var_1 == 0 || var_2 == 0) Логическое "ИЛИ" (если var_1 равно нулю или var_2 равно нулю).
    && if(var_1 == 0 && var_2 == 0) Логическое "И" (если и var_1, и var_2 равны нулю).



     Побитовые операторы
    Побитовые операторы: Автор темы: Pop ссылка



     Операторы ветвления
    Операторы ветвления: Пример Пояснение
    if
    PHP код:
    if(var_1 == 256) print("var_1 равно 256"); 
    Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256".
    else
    PHP код:
    if(var_1 == 256) print("var_1 равно 256");
    else print(
    "var_1 не равно 256"); 
    Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256", а если иначе (else), то выведет "var_1 не равно 256".
    else if
    PHP код:
    if(var_1 == 256) print("var_1 равно 256");
    else if(
    var_1 == 255) print("var_1 равно 255");
    else print(
    "var_1 не равно ни 256, ни 255"); 
    Если (if) var_1 равно 256, то в консоли выведет "var_1 равно 256", если же (else if) var_1 равно 255 - выведет "var_1 равно 255", а если иначе (else) - выведет "var_1 не равно ни 256, ни 255".



     Оператор варианта
    Оператор варианта: Пример Пояснение
    switch
    PHP код:
    switch(var_1)
    {
        case 
    256: print("var_1 равно 256");
        case 
    255: print("var_1 равно 255");
        default: print(
    "var_1 не равно ни 256, ни 255");

    switch как бы перебирает все значения var_1. В случае, если var_1 = 256 (case 256), в консоли выведет "var_1 равно 256", если же var_1 равно 255 (case 255) - выведет "var_1 равно 255", а если иначе (default) - выведет "var_1 не равно ни 256, ни 255".
    case
    PHP код:
    case 1..100// Пример 1
    case 135577// Пример 2

    #define SOME_TEXT 0 // Пример 3
    switch(var_1)
    {
        case 
    SOME_TEXT: print("var_1 равно нулю"); 
        
    // равносильно:
        // case 0: print("var_1 равно нулю");

    Если рассмотреть отдельно case, то его можно использовать по-разному: можно просто число (пример выше), можно ряд чисел (Пример 1, от 1 до 100), можно несколько чисел (Пример 2). Также, можно задефайнить (#define*) значение и использовать задефайненный текст (Пример 3).
    *#define - директива. Информация о директивах - click.



     Оператор sizeof
    Оператор sizeof: Пример Пояснение
    sizeof
    PHP код:
    new array[25]; // создадим массив на 25 ячеек
    printf("Размер массива array - %i."sizeof(array)); 
    // выведем сообщение в консоль 
    Данный оператор позволяет узнать размер переменных (в консоли выведет "Размер массива array - 25.").



     Операторы циклов/функции, связанные с циклами
    Оператор циклов/функции,
    связанные с циклами
    Пример Пояснение
    for
    (начальное действие; условие повторения; шаг цикла)
    PHP код:
    new i, array[5];
    for(
    0sizeof(array); i++)
    {
        array[
    i] = 5

    Данный цикл содержит в себе счётчик, то есть цикл не остановится, пока переменная i меньше размера массива array, то бишь меньше 5 (в примере присваиваем переменным array[0], array[1], array[2], array[3] и array[4] значение 5).
    while
    (условие повторения)
    PHP код:
    new 2, array[5];
    while(
    5)
    {
        array[
    i] = 5;
        
    i++; 

    Особенность цикла заключается в том, что он не будет работать, если условие повторения не выполняется, то есть значения переменной проверяются перед запуском цикла, отчего данный цикл называют циклом с предусловием (в примере присваиваем переменным array[2], array[3], array[4] значение 5).
    do-while
    PHP код:
    new 2;
    do
    {
        
    i++; 
    }
    while(
    10);
    // пока i меньше 10, выполняем цикл ещё раз 
    Особенность цикла заключается в том, что он сначала выполняет действие, а потом проверяет соответствие условию, отчего данный цикл называют циклом с постусловием (в примере сначала прибавляем к i единицу, а потом проверяем, i меньше десяти или нет).
    if-goto
    PHP код:
    new 8;
    loop_start:
    if (
    10)
    {
        
    printf("Число: %i"i);
        
    i++;
        goto 
    loop_start;

    В этом цикле мы создаём переменную со значением 8 (new i = 8), присваиваем циклу loop_start проверку на значение i (if(i < 10)). Если значение истинно, то есть i действительно меньше 10, то выводим значение переменной i, прибавляем к этой переменной единицу и с помощью функции goto запускаем цикл снова (goto loop_start;), только теперь i будет равняться 9. И так далее.
    break
    PHP код:
    new i;
    for(
    010i++)
    {
        if(
    == 5) break;

    break обрывает действие цикла. Цикл будет прибавлять к i единицу до того момента, когда i станет равной 5. Когда это произойдёт (if(i == 5)), цикл остановится (break;).
    continue
    PHP код:
    new i;
    for(
    010i++)
    {
        if(
    == 5) continue;
        
    printf("%i"i);

    continue пропускает действие цикла. Цикл будет выводить в консоль значения i, а когда i станет равной 5, цикл пропустит это действие, то есть число 5 в консоль не выведется.



     Операторы возврата return
    Оператор возврата return: Автор темы: DeimoS ссылка



     Тернарный оператор
    Тернарный оператор: Пример Пояснение
    ? :
    PHP код:
    new 206c;
    = (b) ? b;

    // Пояснение на примере if/else:
    new 206c;
    if(
    ba;
    else 
    b
    Тернарный оператор, по сути, то же самое, что и операторы ветвления (if/else), только в нём код записывается в одну строку.
    Вид (если используются числа): условие ? выражение 1 : выражение 2
    Вид (если используется текст): условие ? (текст 1) : (текст 2)



     Прочее
    Прочее: Пример Пояснение
    [ ] new a[20];
    a[5] = 2;
    Индекс обычного массива (ячейки).
    { } new a[20 char];
    a{5} = 2;
    Индекс сжатого массива (символы).


    Использованы материалы из http://wiki.sa-mp.com/, PAWN_Language_Guide.pdf.
    Последний раз редактировалось Hidden; 14.12.2014 в 01:08.
    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

  2. 8 пользователя(ей) сказали cпасибо:
    codeo (15.06.2014)DeimoS (10.07.2016)Elaid (23.10.2014)Just_Fenix (25.05.2014)MR_BEN (26.05.2014)Salvacore (24.05.2014)[ForD] (24.05.2014)Антон01 (27.01.2016)
  3. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,282
    Репутация:
    417 ±
    Отлично!

  4. #3
    Аватар для Just_Fenix
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.05.2014
    Сообщений
    47
    Репутация:
    11 ±
    Хороший урок, молодец.

  5. #4
    Аватар для Daniel_Cortez
    new fuck_logic[0] = EOS;

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    1,662
    Репутация:
    2145 ±
    Убедительная просьба топикстартеру: когда оформляете тему, включайте хоть иногда темный стиль форума и убедитесь, что на нём всё видно.
    Индивидуально в PM и Skype по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).
    SA-MP 0.4 is a lie

  6. #5
    Аватар для Hidden
    Пользователь

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    74
    Репутация:
    41 ±
    Цитата Сообщение от Daniel_Cortez Посмотреть сообщение
    Убедительная просьба топикстартеру: когда оформляете тему, включайте хоть иногда темный стиль форума и убедитесь, что на нём всё видно.
    Внёс соответствующие поправки. Спасибо.
    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

  7. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Может лучше таблицы внести под спойлеры? И каждый спойлер подписать. Дабы не листать и не выискивать нужную таблицу среди всех
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. Пользователь сказал cпасибо:
    Just_Fenix (26.05.2014)
  9. #7
    Аватар для Maxim_Black
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.10.2014
    Сообщений
    2
    Репутация:
    1 ±
    Отличный урок, молодец. Спасибо.

    break обрывает действие цикла. Цикл будет прибавлять к i единицу то того момента, когда i станет равной 5. Когда это произойдёт (if(i == 5)), цикл остановится (break;).

  10. Пользователь сказал cпасибо:
    Hidden (14.12.2014)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •