Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

[Урок] Основы скриптинга(часть 5)

Статус
В этой теме нельзя размещать новые ответы.

I'm Cobra

Специалист
Здравствуйте, с вами снова я, и в этот раз, хотел бы вас познакомить с циклом "for" , "print" , "printf" , "format" ну и немного о арифметике в pawn!

for​
-
этот цикл очень удобен, например для поиска по массивам, а так же, для выполнения одной и той же операции. Но перегружать мод данным циклом не стоит, так как это может повлиять на загрузку сервера.

Примеры:

Сейчас я покажу 1 пример, где мы будем, отнимать значение, у каждого транпорта:
PHP:
for(new i; i<=MAX_VEHICLES; i++) // объявляем цикл
   {
Gas[i] -= 1; // отнимаем 1
   }
Его вы можете использовать в разных местах, вот например погрузка 3д текстов на дома:
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");
}
Текст "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);
}
И при запуске сервера покажет в чате "Test: 10". Можно, еще это использовать, например когда админ кого-то забанил, или посчитать сколько транспорта всего на сервере, бизов, много чего, принцип работы я думаю вы поняли!

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? Сейчас объясню ниже
Мы сначало выполняем выражение в скобках(как нестранно ;D), получаем 50, 50/6 = 8,3, потом 8*6=48, 50-48=2 , вот и все :)
На этом я закончу свой урок, до скорого!

Автор: Mike
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу