Здравствуйте уважаемые друзья,вот и пришел тот момент когда я выкладываю свой 2-ой урок pawn-скриптинга. Ну что-ж,начнем.
В предыдущем уроке мы рассмотрели что за файлы в папке с сервером,теперь поговорим о самом главном - Для этого нам придется открыть свой мод ( .pwn ) Для этого мы заходим в папку с сервером - ищем папку pawno,далее заходим в программу "Pawno",и тут у нас открывается окошко где ничего нету - не проблема: В левом верхнем углу есть кнопка - File,жмем на нее и после жмем Open,у нас вышло окно - Указываем путь к самому серверу,а именно: Server\gamemodes\server.pwn. После когда мы открыли,у нас появляются много непонятных строк,и что же нам с вами делать? Ответ: Учить.
Первое что нам бросается в глаза это #include - и #define.
Что такое #include:
1. Знак # означает - подключение.
2. После слова #include - У нас идет слово: #include test. Test - это само название инклуда,сам инклуд хранится в папке pawno\includes.
3. В инклуде хранятся часть данных такие как - Маппинг,цвета, и другое.
4. Чтобы подключить инклуд вам стоит всего-лишь поместить инклуд в папку ( pawno\include. ) и вписать в начало мода ( #include Название Инклуда ) и конечно же скомпилировать.
Что такое #define:
1. Знак # - подключение.
2. define упрощает работу скриптерам,а именно - в define можно хранить цвета т.к в pawno цвета формата: 0x00... Пример: #define COLOR_YELLOW 0x0.... ( 0x0.... - сам код цвета. ) Чтобы использовать #define - впишите в текст,пример: "sendclientmessage(playerid,COLOR_YELLOW,"Текст"); Теперь текст будет такого цвета который мы написали ( COLOR_YELLOW ). А так же в #define можно хранить диалоги - пример: #define DIALOG_HELP "1" ( 1 - Текст который будет содержаться в диалоге. ) А как именно #define использовать в диалоге - Ответ: когда мы написали нужный текст на месте "1" мы можем вставить его в код - Пример: ShowPlayerDialo(playerid,DIALOG_HELP ( название диалога с #define ).DIALOG_STYLE_INPUT,"Да","Нет");. В #define можно хранить и еще информацию,пример: #define SITE "Сюда Адресс сайта",чтобы подключить #define вам стоит просто в сообщение написать название #define - "SITE",пример: Наш форум "SITE" - и будет высвечиваться текст который вы написали вместо "Сюда Адресс сайта." ( можно это использовать не только для адресса и для имени главного администратора,ну вообщем используйте с фантазией )
И так,мы разобрали #include & #define - теперь идем ниже,там видим Forward: Форвард используется для создания public'a например:
Forward test(playerid); // Запоминаем название и значение Форварда - на данный момент у нас test(playerid)
Паблик:
public test(playerid) // Пишем название Форварда и значение - public test(playerid)
{
// функция - например SendClientMessage.
return 1; // Переход.
} // Заставить использовать паблик можно так - ищем место где будет использоваться этот паблик,и вписываем test(playerid);
Что я этим хочу сказать - Форварды используются для public'ov но я советую создавать stock т.к для stock'ov не надо создавать Форварды. А так же в моде есть стандартные паблики и самописные.
Теперь о Stock'ax которые хранятся в конце модов:
Чтобы создавать сток нам не надо опять делать Форвард - просто стоит написать код:
stock test(playerid); // Сам Stock
{
// Тут пишем свою функцию.
} // Закрывем
вот и готов наш Stock - думаю проблем вам не составит его написать.
Теперь поговорим о самих public'ax.
В предыдущем уроке мы рассмотрели что за файлы в папке с сервером,теперь поговорим о самом главном - Для этого нам придется открыть свой мод ( .pwn ) Для этого мы заходим в папку с сервером - ищем папку pawno,далее заходим в программу "Pawno",и тут у нас открывается окошко где ничего нету - не проблема: В левом верхнем углу есть кнопка - File,жмем на нее и после жмем Open,у нас вышло окно - Указываем путь к самому серверу,а именно: Server\gamemodes\server.pwn. После когда мы открыли,у нас появляются много непонятных строк,и что же нам с вами делать? Ответ: Учить.
Первое что нам бросается в глаза это #include - и #define.
Что такое #include:
1. Знак # означает - подключение.
2. После слова #include - У нас идет слово: #include test. Test - это само название инклуда,сам инклуд хранится в папке pawno\includes.
3. В инклуде хранятся часть данных такие как - Маппинг,цвета, и другое.
4. Чтобы подключить инклуд вам стоит всего-лишь поместить инклуд в папку ( pawno\include. ) и вписать в начало мода ( #include Название Инклуда ) и конечно же скомпилировать.
Что такое #define:
1. Знак # - подключение.
2. define упрощает работу скриптерам,а именно - в define можно хранить цвета т.к в pawno цвета формата: 0x00... Пример: #define COLOR_YELLOW 0x0.... ( 0x0.... - сам код цвета. ) Чтобы использовать #define - впишите в текст,пример: "sendclientmessage(playerid,COLOR_YELLOW,"Текст"); Теперь текст будет такого цвета который мы написали ( COLOR_YELLOW ). А так же в #define можно хранить диалоги - пример: #define DIALOG_HELP "1" ( 1 - Текст который будет содержаться в диалоге. ) А как именно #define использовать в диалоге - Ответ: когда мы написали нужный текст на месте "1" мы можем вставить его в код - Пример: ShowPlayerDialo(playerid,DIALOG_HELP ( название диалога с #define ).DIALOG_STYLE_INPUT,"Да","Нет");. В #define можно хранить и еще информацию,пример: #define SITE "Сюда Адресс сайта",чтобы подключить #define вам стоит просто в сообщение написать название #define - "SITE",пример: Наш форум "SITE" - и будет высвечиваться текст который вы написали вместо "Сюда Адресс сайта." ( можно это использовать не только для адресса и для имени главного администратора,ну вообщем используйте с фантазией )
И так,мы разобрали #include & #define - теперь идем ниже,там видим Forward: Форвард используется для создания public'a например:
Forward test(playerid); // Запоминаем название и значение Форварда - на данный момент у нас test(playerid)
Паблик:
public test(playerid) // Пишем название Форварда и значение - public test(playerid)
{
// функция - например SendClientMessage.
return 1; // Переход.
} // Заставить использовать паблик можно так - ищем место где будет использоваться этот паблик,и вписываем test(playerid);
Что я этим хочу сказать - Форварды используются для public'ov но я советую создавать stock т.к для stock'ov не надо создавать Форварды. А так же в моде есть стандартные паблики и самописные.
Теперь о Stock'ax которые хранятся в конце модов:
Чтобы создавать сток нам не надо опять делать Форвард - просто стоит написать код:
stock test(playerid); // Сам Stock
{
// Тут пишем свою функцию.
} // Закрывем
вот и готов наш Stock - думаю проблем вам не составит его написать.
Теперь поговорим о самих public'ax.
OnGameModeInit()Загрузится скриптаOnGameModeExit()До того как скрипт завершает свою работуOnPlayerRequestClass(playerid, classid)Выбор класса персонажаOnPlayerConnect(playerid)При подключении к серверуOnPlayerDisconnect(playerid, reason)При отключении от сервераOnPlayerSpawn(playerid)При появлении на спавнеOnPlayerDeath(playerid, killerid, reason)При смерти персонажаOnVehicleSpawn(vehicleid)Когда транспорт спавнитсяOnVehicleDeath(vehicleid, killerid)Когда транспорт взрываетсяOnPlayerText(playerid, text[])При отправке игроком сообщения в чатOnPlayerCommandText(playerid, cmdtext[])При отправке игроком команды в чатOnPlayerEnterVehicle(playerid, vehicleid, ispassenger)При входе в т/сOnPlayerExitVehicle(playerid, vehicleid)При выходе с т/сOnPlayerStateChange(playerid, newstate, oldstate)При изменении своего статусаOnPlayerEnterCheckpoint(playerid)При входе в зону контрольной точкиOnPlayerLeaveCheckpoint(playerid)При покидание зоны контрольной точкиOnPlayerEnterRaceCheckpoint(playerid)При входе на гоночную контрольной точкиOnPlayerLeaveRaceCheckpoint(playerid)При покидание гоночной контрольной точкиOnRconCommand(cmd[])При вводе в консоль RCON командыOnPlayerRequestSpawn(playerid)При смене точки спавнаOnObjectMoved(objectid)При движении объектаOnPlayerObjectMoved(playerid, objectid)При движении объекта созданного для игрокаOnPlayerPickUpPickup(playerid, pickupid)При взятии пикапаOnVehicleMod(playerid, vehicleid, componentid)При модификации т/сOnVehiclePaintjob(playerid, vehicleid, paintjobid)При смене покраски т/с (не только цвета а также и винила)OnVehicleRespray(playerid, vehicleid, color1, color2)При смене цвета т/сOnPlayerSelectedMenuRow(playerid, row)При выборе пункта менюOnPlayerExitedMenu(playerid)При выходе из выбора пункта менюOnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)При смене интерьераOnPlayerKeyStateChange(playerid, newkeys, oldkeys)При нажатии на кнопкуOnRconLoginAttempt(ip[], password[], success)При заходе на сервер под видом RCON админаOnPlayerUpdate(playerid)Функция вызывается постоянно, пока игрок находится на сервереOnPlayerStreamIn(playerid, forplayerid)При входе в радиус видимости другого игрокаOnPlayerStreamOut(playerid, forplayerid)При выходе из радиуса видимости другого игрокаOnVehicleStreamIn(vehicleid, forplayerid)При въезде машины в радиус видимости другого игрокаOnVehicleStreamOut(vehicleid, forplayerid)При выезде машины из радиуса видимости другого игрокаOnDialogResponse(playerid, dialogid, response, listitem,inputtext[])При нажатии кнопка в диалоговом окнеOnPlayerClickPlayer(playerid, clickedplayerid, source)При нажатии на имя игрока в списке игроков
Выше указаны названия и функционал пабликов.
Каждые знают что в pawn-скриптинге используются основы математических операторов - а именно:
"*" - Умножение.
"+" - Сложение.
"/" - Деление.
"-" - Вычитание.
"%" - Оператор модуля.
Но это еще не все,есть такие знаки которые вам пригодятся для написания кода - а именно:
== Левое равно правому.
!= Левое не равно правому.
> Левое больше право.
>= Левое больше или равно правому.
< Левое меньше правому.
&& И
|| Или
! Не.
На этом урок закончен. Строго не судите,писал на быструю руку т.к на работе.
Автор: !#Bush (Я).
Выше указаны названия и функционал пабликов.
Каждые знают что в pawn-скриптинге используются основы математических операторов - а именно:
"*" - Умножение.
"+" - Сложение.
"/" - Деление.
"-" - Вычитание.
"%" - Оператор модуля.
Но это еще не все,есть такие знаки которые вам пригодятся для написания кода - а именно:
== Левое равно правому.
!= Левое не равно правому.
> Левое больше право.
>= Левое больше или равно правому.
< Левое меньше правому.
&& И
|| Или
! Не.
На этом урок закончен. Строго не судите,писал на быструю руку т.к на работе.
Автор: !#Bush (Я).
Последнее редактирование модератором: