I'm Cobra
Специалист
Здравствуйте, с вами снова я, и в этот раз, хотел бы вас познакомить с циклом "for" , "print" , "printf" , "format" ну и немного о арифметике в pawn!
этот цикл очень удобен, например для поиска по массивам, а так же, для выполнения одной и той же операции. Но перегружать мод данным циклом не стоит, так как это может повлиять на загрузку сервера.
Примеры:
Сейчас я покажу 1 пример, где мы будем, отнимать значение, у каждого транпорта:
Его вы можете использовать в разных местах, вот например погрузка 3д текстов на дома:
Сам print выглядит вот так:
Примеры:
Текст "Hello" будет в консоли сервера при его запуске.
%b - Бинарный тип
%c - Символьный тип
%d, %i - Целочисленный тип
%f - Число с плавающей точкой – вещественный тип
%s - Строка
Выглядит printf вот так:
Примеры:
И при запуске сервера покажет в чате "Test: 10". Можно, еще это использовать, например когда админ кого-то забанил, или посчитать сколько транспорта всего на сервере, бизов, много чего, принцип работы я думаю вы поняли!
Вот как он выглядит:
Примеры:
Оператор сложения +
Оператор вычитания -
Оператор умножения *
Оператор деления /
Оператор деления с остатком %
Примеры:
Мы сначало выполняем выражение в скобках(как нестранно ;D), получаем 50, 50/6 = 8,3, потом 8*6=48, 50-48=2 , вот и все 
На этом я закончу свой урок, до скорого!
Автор: Mike
for
- этот цикл очень удобен, например для поиска по массивам, а так же, для выполнения одной и той же операции. Но перегружать мод данным циклом не стоит, так как это может повлиять на загрузку сервера.
Примеры:
Сейчас я покажу 1 пример, где мы будем, отнимать значение, у каждого транпорта:
PHP:
for(new i; i<=MAX_VEHICLES; i++) // объявляем цикл
{
Gas[i] -= 1; // отнимаем 1
}
PHP:
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 выглядит вот так:
PHP:
print("Hello!");
PHP:
public OnGameModeInit(playerid);
{
print("Hello");
}
Printf
- он отличается от print тем, что в него можно передать различные значения переменных и функций, с помощью управляющих символов:%b - Бинарный тип
%c - Символьный тип
%d, %i - Целочисленный тип
%f - Число с плавающей точкой – вещественный тип
%s - Строка
Выглядит printf вот так:
PHP:
printf("Test %d", test);
PHP:
new test = 10; // Для начала мы создаем переменную, которой придаем значение 10
// Потом, можно вывести printf например в том же OnGameModeInit
public OnGameModeInit()
{
printf("Test: %d", test);
}
format
- с пом. формата, можно тоже передать в строку, значения переменных/функций... У него всего лишь 4 аргумента.Вот как он выглядит:
PHP:
format(string, sizeof(string), "%s", test);
PHP:
new test = 5; // создаем переменную и присваеваем значение 5
new string[5]; // создаем массив, в котором будем хранить текст
format(string,sizeof(string), "3 + %d", test); // передаем в строку
SendClientMessage(playerid, COLOR_WHITE, string); // выводим в чат ( 3+5 )
Арифметика
- любые переменные в pawn, могут принимать различный арифметические значения, сейчас я вам об этом немного расскажу.Оператор сложения +
Оператор вычитания -
Оператор умножения *
Оператор деления /
Оператор деления с остатком %
Примеры:
PHP:
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? Сейчас объясню ниже
На этом я закончу свой урок, до скорого!
Автор: Mike
