for -
этот цикл очень удобен, например для поиска по массивам, а так же, для выполнения одной и той же операции. Но перегружать мод данным циклом не стоит, так как это может повлиять на загрузку сервера.
Примеры:
Сейчас я покажу 1 пример, где мы будем, отнимать значение, у каждого транпорта:
for(new i; i<=MAX_VEHICLES; i++) // объявляем цикл { Gas[i] -= 1; // отнимаем 1 }

Его вы можете использовать в разных местах, вот например погрузка 3д текстов на дома:
for(new h = 0; h < sizeof(HouseInfo); h++) // с пом. данного цикла мы всем домам ставим 3д тексты { new strinhouse[256]; AddStaticPickup(1273, 2, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]); format(strinhouse,sizeof(strinhouse),"[Дом]\nЦена: %d\nУровень: %d",HouseInfo[h][hValue],HouseInfo[h][hLevel]); HouseInfo[h][hLabel] = Create3DTextLabel(strinhouse,0x000000FF,HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]+0.5,40.0,0,1); pickups++; }

Print - с помощью него, мы можем выводить в консоль сервера различные значения!
Сам print выглядит вот так:
print("Hello!");

Примеры:
public OnGameModeInit(playerid); { print("Hello"); }

Текст "Hello" будет в консоли сервера при его запуске.
Printf - он отличается от print тем, что в него можно передать различные значения переменных и функций, с помощью управляющих символов:
%b - Бинарный тип
%c - Символьный тип
%d, %i - Целочисленный тип
%f - Число с плавающей точкой – вещественный тип
%s - Строка
Выглядит printf вот так:
printf("Test %d", test);

Примеры:
new test = 10; // Для начала мы создаем переменную, которой придаем значение 10 // Потом, можно вывести printf например в том же OnGameModeInit public OnGameModeInit() { printf("Test: %d", test); }

И при запуске сервера покажет в чате "Test: 10". Можно, еще это использовать, например когда админ кого-то забанил, или посчитать сколько транспорта всего на сервере, бизов, много чего, принцип работы я думаю вы поняли!
format - с пом. формата, можно тоже передать в строку, значения переменных/функций... У него всего лишь 4 аргумента.
Вот как он выглядит:
format(string, sizeof(string), "%s", test);

Примеры:
new test = 5; // создаем переменную и присваеваем значение 5 new string[5]; // создаем массив, в котором будем хранить текст format(string,sizeof(string), "3 + %d", test); // передаем в строку SendClientMessage(playerid, COLOR_WHITE, string); // выводим в чат ( 3+5 )

Арифметика - любые переменные в pawn, могут принимать различный арифметические значения, сейчас я вам об этом немного расскажу.
Оператор сложения +
Оператор вычитания -
Оператор умножения *
Оператор деления /
Оператор деления с остатком %
Примеры:
new test = 5; // создаем переменную и присваеваем ей значение 5 new test1 = 10; // создаем переменную и присваеваем ей значение 10 new nomer; // создаем переменную (как раз она должна присвоить результат арифметического выражения) // теперь создаем выражение: nomer = test*test1; // тут мы умножили 5*10, и получили результат 50 nomer = test1-test; // ну а тут мы получили 5 // Деление с остатком: nomer = (test + test1)%6; // тут получится 2, как получилось 2? Сейчас объясню ниже

Мы сначало выполняем выражение в скобках(как нестранно ;D), получаем 15, 15/6 = 2.5, потом 2*6=12, 15-12=2 , вот и все :).
На этом я закончу свой урок, до скорого!
Автор: Mike