Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: [Урок] Изучение Скриптового Языка Pawno

  1. #1
    Аватар для Tolyanchik
    Активный участник
    Регистрация
    25.06.2012
    Сообщений
    150
    Благодарностей
    28
    Сказали спасибо: 107

    [Урок] Изучение Скриптового Языка Pawno

    Всех поздравляю с переездом со старого форума на новый!
    На прошлом форуме эта тема была очень нужной,так как мы переехали придётся создать её всё заного,надеюсь модеры сочтут эту тему нужной и не дадут мне бан.
    Теперь будем заполнять эту тему всё заного)


    Итак начнём.
    Введение:

    Язык Pawn используется для написания скриптов в игре San Andreas Multiplayer. Если же вы имеете базовые понятия о программировании, тогда вам будет не сложно. Если же вы вообще ничего не понимаете в программировании, тогда советую немного порыться в поисках информации о компьютере, его памяти, ее использовании и т.п. Дабы получить базовый навык и лучше освоить Pawn. Главное набраться терпения и не лениться, так как результат учебы вас порадует. Я не советую вам сильно залипать за компьютером и сидеть учить и учить. По 1 уроку в день достаточно, главное не забудьте практиковаться в изученных уроках. Вы наверно спросите: "Как так? Учит, а сам говорит, чтобы мы не увлекались.". Ответ прост, если вы сейчас будете засиживаться за компьютером и не выходить из Pawno, то когда у вас будет навык профессионала, то вам просто будет не интересно, так как язык вам наскучит за время учебы. Уроки обязательно читать в заданном порядке.
    В общем удачи в учебе!

    Переменные:

    Что же такое переменные?
    Переменная - область памяти, хранящая определенные данные.
    То есть в переменные мы можем записывать данные игрока, сервера и т.п.
    Объявляется переменная следующим образом:

    Скрытый текст

    PHP код:
    new Variable Name[Variable size]; 
    [свернуть]

    Имя переменной:
    Может быть заданно любое. Важно учитывать регистр букв.
    VaRName и varname разные имена. Важно не указывать ключевые слова. Ключевые слова, это слова, которые объявляют что либо, или же имеют функции, заданные по умолчанию.

    Размер переменной: Размер переменной вы указываете сами. Память исчисляется в битах. Важно не указывать большой размер, если вы хотите использовать чуть-чуть от этого размера. Учитесь экономить память.

    Типы переменных:
    В Pawn, да и наверно не только в Pawn, а во всех языках программирования существуют типы переменных. Тип переменных указывает на тип данных, хранящихся в этой переменной. В общем существует 3 типа переменных.
    1. Целочисленный тип - данный тип используется для хранения целых чисел.
    2. Вещественные тип - данный тип используется для хранения дробных чисел.
    3. Символьный тип - данный тип используется для хранения символов.

    Массивы:

    Что же такое массивы?
    Массив - область памяти, хранящая переменные.
    Мы можем использовать массивы для удобства, чтобы классифицировать переменные. Также в некоторых случаях использование массивов просто необходимо. Объявление и использование массивов мы изучим на следующих уроках, а сейчас постарайтесь усвоить материал.

    Циклы:

    Что же такое циклы?
    Цикл - Выполнение указанного действие, пока условие цикла не будет ложно.
    Цикл полезен во многих случаях. Допустим нам надо перебрать всех игроков и отсеять из них определенных, для этого мы используем цикл. Или же нам надо сделать функцию, которая что-либо делала бы со всеми игроками, для этого мы используем цикл. Подробнее мы будем изучать их в последующих уроках. А пока теория и еще раз теория.

    Функции:

    Что же такое функции?
    Функция - Определенный блок программы, выполняющий какую-либо последовательность действий, которая приводит к конечному результату. Функция задается самим программистом или же по умолчанию. В языке pawn существуют стандартные функции, но также для удобства вы можете создавать свои. Подробнее о функциях на следующих уроках.

    Константы:

    Что же такое константы?
    Константа - Неизменное число. Использовать константы можно для надежности сохранения данных, чтобы они не были изменены какой-либо функцией или кодом программы. Подробно константы изучать мы не будем потому, что тут информация небольшая, и она изложена здесь.

    Макросы:

    Что же такое макросы?
    Макрос - Программный объект, которые является последовательностью действий или команд. В Pawn макросы играют не маловажную функцию. Подробно рассматривать макросы мы будем на следующих уроках.

    Вот вы и изучили базовые понятия программирования.А также затронем еще другие темы, позволяющие более углубиться в Pawn.


    Добовляйте свои уроки,помогайте изучать Pawno другим людям не ленитесь и всё у вас получиться!))
    Последний раз редактировалось Нико; 18.12.2012 в 19:49.

  2. 3 пользователей сказали cпасибо Tolyanchik за это полезное сообщение:

    ProfessorGreen (24.01.2014),Михей (31.07.2012),_KING_ (31.07.2012)

  3. #11
    Аватар для Tolyanchik
    Активный участник
    Регистрация
    25.06.2012
    Сообщений
    150
    Благодарностей
    28
    Сказали спасибо: 107
    Не знаю нужен ли этот урок или нет,но всёравно мало кто понимает операторы
    PHP код:
    for

    while 


    Цикл while:

    Скрытый текст

    PHP код:
    new variable;//Объявляем переменную
    while(variable 500)//Пока переменная меньше 500 будет выполнятся действие
    {
    Интрукции//Тут то, что будет происходить пока условие правильно

    [свернуть]


    Пример:
    В начале ставим переменную перед началом оператора while

    Скрытый текст

    PHP код:
    new int;
    while(
    int MAX_PLAYERS)
    {
    if(
    IsPlayerConnect(int), int++)

    [свернуть]


    Цикл for:

    Цикл for проще, и я вам советую использовать его, нежели while. Его использовать легче в том что ненадо определять переменную,в цикле for она объявляется сразу, ставится условие, и действие которое будет происходить после каждого условия.

    Скрытый текст

    PHP код:
    for(объявляем переменнуюусловиедействие после окончания условия)
    {
    Инструкции

    [свернуть]

    Пример цилка for:

    Скрытый текст

    PHP код:
    for(new intint MAX_PLAYERSint++)
    {
    if(
    IsPlayerConnect(int))

    [свернуть]


    Бывает ещё 1 цикл но он используется редко,но всё же напишу,цикл do...while.
    Цикл do...while это можно сказать перевернутый цикл while. Его отличие в том, что сперва выполняются инструкции, а потом уже проверяется условие

    Скрытый текст

    PHP код:
    do
    {
    Инструкции
    }
    while(
    условие
    [свернуть]

    вот 1 пример с циклом do...while

    Скрытый текст

    PHP код:
    new i;
    do
    {
    SendClientMessageToAll(COLOR_GREEN"Все для вас, включая нас"i++);
    }
    while(
    3
    [свернуть]


    Ну вродебы все,надеюсь урок полезен и вам понравился

    Мужиком считается не тот кто баб еб..,а тот кто мид не про....

  4. 3 пользователей сказали cпасибо Tolyanchik за это полезное сообщение:

    ProfessorGreen (24.01.2014),Takashi (06.08.2013),Нико (02.08.2012)

  5. #12
    Аватар для Нико
    Game Модератор
    Регистрация
    22.06.2012
    Сообщений
    4,163
    Благодарностей
    768
    Сказали спасибо: 1,372
    Конечно нужен). Давай еще с таким же понятным объяснением)

  6. 1 пользователь сказал cпасибо Нико за это полезное сообщение:

    Tolyanchik (02.08.2012)

  7. #13
    Аватар для MeTP
    Активный участник
    Регистрация
    22.06.2012
    Адрес
    Казань
    Сообщений
    195
    Благодарностей
    243
    Сказали спасибо: 20
    Цитата Сообщение от DrakulA Посмотреть сообщение
    C++ - Pawn. Если ты считаешь C++ скудным то Лес рядом.
    лес далеко... по крайней мере от меня.
    pawn это же не си плас плас (я имею ввиду не чистый, а со своими плюшками, фитчами и т.п.)
    по сему повторю, на этом pawn'e только гта выпиливать можно?

  8. #14
    Аватар для Tolyanchik
    Активный участник
    Регистрация
    25.06.2012
    Сообщений
    150
    Благодарностей
    28
    Сказали спасибо: 107
    Цитата Сообщение от MeTP Посмотреть сообщение
    лес далеко... по крайней мере от меня.
    pawn это же не си плас плас (я имею ввиду не чистый, а со своими плюшками, фитчами и т.п.)
    по сему повторю, на этом pawn'e только гта выпиливать можно?
    На pawno можно работать только для ГТА,но pawno это чуток упрощённый С++,так что можно считать что pawno=С++

    Мужиком считается не тот кто баб еб..,а тот кто мид не про....

  9. 1 пользователь сказал cпасибо Tolyanchik за это полезное сообщение:

    MeTP (04.08.2012)

  10. #15
    Аватар для Tolyanchik
    Активный участник
    Регистрация
    25.06.2012
    Сообщений
    150
    Благодарностей
    28
    Сказали спасибо: 107
    Всем привет ещё раз,сегодня мы с вами научимся создавать простый команды для сервера итак начнём.

    Откройте Pawno найдите паблик вот такой
    PHP код:
    public OnPlayerCommandText 
    Если вы нашли его то вы молодцы,запомните все команды пишутся в этом паблике,все команды я подразумеваю такие команды как
    PHP код:
    /goto  /tp  /invite  /uninvite 
    и таму подобные команды.Сейчас мы с вами разберём что вообще пишется когда делаем команду

    Скрытый текст

    PHP код:
    public OnPlayerCommandText(playerid,cmdtext[])
    {
         if(
    strcmp("/mycommand",cmdtext,true,10) == 0)
              {
               \\
    Код команды
               
    return 1;
         }
    }

    \\
    Где написано "/mycommand" вы напишите ту команду которую создаёте сами
    [свернуть]


    Давайте разберём что означает написание "strcmp"

    strcmp-имеет 4 аргумента.Первый аргумент имя строки,которая будет сравниваться с другой строкой.Второй аргумент-имя строки,с которой будет сравниваться предыдущая строка.Третий аргумент-логический аргумент.Если указать true то при сравнении строк регистр букв не учитывается,по умолчанию,если даже его не указать регистер учитываться будет.
    Хочу отметить, что если вы не указали третий аргумент, то и четвертый аргумент уже указать не
    получится, поскольку пустой аргумент оставлять нельзя. Также если третий аргумент не обязательный для
    указания, а четвёртый аргумент обязательный, то третий аргумент, так или иначе, придется указать, пропускать
    аргументы нельзя. Так как у функции strcmp два последних аргумента не обязательны, их можно не указывать,
    поскольку они последние. Сама функция возвращает 0 – если совпадение 100%, в противном случае возвратит 1.
    Ну а дальше все зависит от вас. Если условие по сравнению команд выполняется, команда обязательно
    должна возвратить true (return 1;), потому что функция OnPlayerCommandText всегда возвращает false. Если
    функция возвратит false, в чат будет выведено сообщение «Неизвестная команда», а сама команда сработает.


    Ну так вродебы всё,надеюсь вам было всё понятно и удобно,спасибо за внимание,будем стараться в том же духе!

    Мужиком считается не тот кто баб еб..,а тот кто мид не про....

  11. 1 пользователь сказал cпасибо Tolyanchik за это полезное сообщение:

    Нико (06.08.2012)

  12. #16
    Аватар для Нико
    Game Модератор
    Регистрация
    22.06.2012
    Сообщений
    4,163
    Благодарностей
    768
    Сказали спасибо: 1,372
    Спасибо

  13. #17
    Аватар для Se7en
    Активный участник
    Регистрация
    27.09.2012
    Адрес
    IP "127.0.0.1", Port "81"
    Сообщений
    120
    Благодарностей
    6
    Сказали спасибо: 9
    Оуу) Вспомнил старый, добрый C++.
    А почему не все директивы перечислены? Где #emit, #error, #file???
    Access is, do not mind
    Love, coming soon...


  14. #18
    Аватар для DrakulA
    Забанен(а)
    Регистрация
    22.06.2012
    Адрес
    Ташкент, Узбекистан
    Сообщений
    95
    Благодарностей
    14
    Сказали спасибо: 6
    Добрый день. Сегодня я бы хотел поделиться с вами уроками PAWN, которые писал сам.

    Сегодняшний урок посвящен тем кто ознакомлен с #define'ами и плагином MySQL от BlueG.

    Создание таблицы базы данных из игры

    Создаём #define:

    PHP код:
    #define CreateDB1 "CREATE TABLE IF NOT EXISTS 'Objects'
    ('x' varchar(16) NOT NULL,' Password' varchar(16) NOT NULL)
    ENGINE=MyISAM DEFAULT CHARSET=windows1251;"
    Выполним запрос из #define тем самым создадим базу данных:

    Вариант для MySQL:

    PHP код:
    mysql_query("CreateDB1");

    Если вы всё сделали правильно то мод скомпилируется без ошибок, данный вариант только для тех кто не умеет импортировать базу данных, или просто лень. В созданной нами таблице будет хранится информация о динамических объектах.

    Если хотите получить следующий урок, пишите в данной теме - Я обязательно вам его напишу если будет много желающих его увидеть!

    Если вы нашли ошибку в данном уроке, аргументируйте, ошибка обязательно будет исправлена!

    Автор урока: DrakulA.

    - - - Добавлено - - -

    Добавление объектов в мод


    Если вы нашли в интернете интересную карту для SA:MP и незнаете как её добавить в мод? Итак этот урок специально для вас.

    Объекты обычно именуются как: CreateObject (До 10.000 объектов без Streamer), CreateDynamicObject (С плагином Streamer от Incognito (Инкогнито)).

    Ищем CTRL+F: public OnGameModeInit(), и после открывающей скобки: {
    вставляем.

    Если объекты сделаны в MTA: Map Editor то скомпилировать вы их сможете на сайте: convertffs.com предварительно вставив в редактор.

    Автор урока: DrakulA

  15. #19
    Аватар для DrakulA
    Забанен(а)
    Регистрация
    22.06.2012
    Адрес
    Ташкент, Узбекистан
    Сообщений
    95
    Благодарностей
    14
    Сказали спасибо: 6
    Выполнение функции

    Создали вы допустим public, но хотите его использовать, для этого создадим команду. Я предпочитаю использовать коммандный процессор: ZCMD, т.к он быстрее и более оптимизированный чем стандартный A_SAMP.

    Пример выполнения команды запуска гонки:

    COMMAND:startrace(playerid)
    {
    StartRace(playerid);
    SendClientMessage(playerid, "Гонка запущена");
    }
    Также можно использовать действие функции при использовании пикапа, но это уже в следующем уроке.

    Автор урока: DrakulA

  16. #20
    Аватар для OLIMXON
    Участник
    Регистрация
    09.07.2012
    Адрес
    Юнусабад 15
    Сообщений
    51
    Благодарностей
    19
    Сказали спасибо: 9
    pawno это программа ? если да ! то закинтье пожплуйста !
    Ник - Alim_Khan

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Ваши права

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