Форум Pawn.Wiki - Воплоти мечту в реальность!: Основы Скриптинга (Часть 2) - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

  • (3 Страниц) +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Урок ]
Основы Скриптинга (Часть 2)
Оценка: ***** 4 Голосов

#1
Пользователь офлайн   Mike 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию
Здравствуйте, в этом уроке я расскажу вам про "Массивы" и "Условные конструкции".
Массивы -
это большие места для хранения данных, виртуальные таблицы. Вы можете иметь одномерные и многомерные массивы. Вам нужно создать новый массив вещественного или логического типа так же, как вы создаете переменные, не массивы, использую предопределенные имена тегов (bool:, Float:).
• Одномерный массив - это один столбец, разбитый на указанное число ячеек.

Пример:
new test[3] = {4, 6, 7}; // Тут число "3" в [] скобках показывает, сколько ячеек выделено для хранения данных

Теперь я покажу как это можно использовать:
if(strcmp(cmd, "/test", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new strinn[32];//создаем массив
new rand = random(sizeof(test)); // Получаем случайное число для ячейки
format(strinn,sizeof(strinn),"Вам выпало число %d", rand);
SendClientMessage(playerid,COLOR_GREEN,strinn);//показываем его в чате
}
return 1;
}

• Двумерный массив - позволяет вам иметь много строк и столбцов.

Пример:
new Float:poscar[3][2] = {
{50.0, 40.5}, // Столбец номер 0
{10.81, 71.34}, // Столбец номер 1
{20.12, 19.23}, // Столбец номер 2
};

И мы можем с помощью данного массива, дать координаты например транспорту:
SetVehiclePos(0, poscar[1][2], poscar[2][2], poscar[3][2]); // 0 это ид авто!

Условные конструкции -
позволяют вам посмотреть, удоволетворяют ли данные условиям, а затем в зависимости от результата выполнить код. Наиболее распространенный тип условных конструкций - if/else-конструкция, но помимо нее есть много других: case, цикл for и цикл while.
Изображение
Изображение

Примеры:
1)
new test = 1;
if(test != 1)
{
SendClientMessage(playerid,COLOR_GREEN,"Переменная test не равно 1");
return 1;
}

2)
new test[MAX_PLAYERS];
// и например при конектe"Public OnPlayerConnect(playerid)" ставим значение переменной 1
test[playerid] = 1;
// теперь ставим проверку
if(test[playerid] == 1)
{
SendClientMessage(playerid,COLOR_GREEN,"Переменная test равно 1");
return 1;
}

3)
new test = 1;
new test1 = 1;
if(test != 1 && test1 != 1)
{
SendClientMessage(playerid,COLOR_GREEN,"Переменныe test и test1 не равны 1");
return 1;
}

Вот на этом и закончу! Информация частично взята с wiki!

Автор: Mike/Maikkk
15

#2
Пользователь офлайн   Romzes 

  • ( ^_^ )
  • Вставить ник
  • Раскрыть информацию
Хорош урок Плюс тебе B)
1

#3
Пользователь офлайн   Mike 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияRomzes (18 октября 2011 - 23:45) писал:

Хорош урок Плюс тебе B)

спасибо :)
1

#4
Пользователь офлайн   Romzes 

  • ( ^_^ )
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMike (18 октября 2011 - 23:47) писал:

спасибо :)


Всегда пожалуйста
0

#5
Пользователь офлайн   Emka 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Самая, что не наесть, основа, будущая полезна для чайника. На других форумах, кстати, может что-то похожее есть, но это так далеко затолкали, что никто не найдет :)
0

#6
Пользователь офлайн   DragoSFire 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
new strinn[256];//создаем переменную

не холосо использовать стринги таких размеров....для новичков, которые хотят научится Pawn, подойдет)++

Сообщение отредактировал DragoSFire: 29 декабря 2011 - 18:38

0

#7
Пользователь офлайн   Mike 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияDragoSFire (24 декабря 2011 - 18:28) писал:

new strinn[256];//создаем переменную

не холосо использовать стирнги таких размеров....для новичков, которые хотят научится Pawn, подойдет)++

верно, писал и не заметил даже, уже поправил
0

#8
Пользователь офлайн   Bob_Marley 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Огромнейшее тебе спасибо! :) Этот урок помог мне в освоении скриптов и я исправил очередной баг в своем моде!
+ тебе!

Сообщение отредактировал Bob_Marley: 01 июля 2012 - 00:36

0

#9
Пользователь офлайн   McLean 

  • Знаток
  • Вставить ник
  • Раскрыть информацию
Хороший урок. Лови +

Сообщение отредактировал McLean: 01 июля 2012 - 06:49

0

#10
Пользователь офлайн   Hammer 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Спасибо за урок очень познавательно, но у меня вопрос, почему пишут иногда так:
1)if(strcmp(cmd, "/test", true) == 0);
2)if(strcmp("/test",true) == 0);
И вот так:
1)if(strcmp(cmd, "/test", true, 10) == 0);
2)if(strcmp(cmd,"/test",true) == 0);
Почему пишут этот аргумент 10 и что это значит? И второй вопрос по поводу cmd ? И в чём различие ?
0

Поделиться темой:


  • (3 Страниц) +
  • 1
  • 2
  • 3
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

  1. Ahrefs

Яндекс.Метрика