Мр.Изя*
Умник
Здравствуйте уважаемые пользователи Pawno-Info.ru
[HR][/HR]
Я запускаю серию уроков... Пока что планирую: 5. В них мы будем учиться создавать мод для "SA-MP", режим будет DM.
[HR][/HR][HR][/HR]
Я запускаю серию уроков... Пока что планирую: 5. В них мы будем учиться создавать мод для "SA-MP", режим будет DM.
План работы:
- Обзор PAWNO. (1 урок)
- Добавление классов. (1 урок)
- Научимся использовать функции. (1 урок)
- Полезные ссылки. (1 урок)
[HR][/HR]
Действие Первое. Нужные файлы, и настройка сервера:
И так, для начала нам нужно:
- Скачать сервер "SA-MP" | (***
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
***)- Распаковать в любую папку
- Открываем server.cfg
- Меняем слово changeme, на свой пароль
- Стираем все filterscripts'ы.
- Меняем gamemode, на DM.
Теперь запускаем "pawno.exe", оно находиться в папке "pawno". После запуска мы увидим интерфейс PAWNO, рассмотрим его подробно...
Ещё раз: Компиляция - процесс конвертирования с .amx на .pwn(*)
Но об этом позже сейчас нам нужно:
- Нажать на белый листочек
- Скомпилировать мод
- Название мода такое: DM
И собственно запускаем сервер, если всё хорошо... То читаем урок дальше...
[HR][/HR]
"Обзор рабочего места"
Когда мы нажали на "белый листочек", у нас создался наш первый... Начальный мод, вот с ним мы и будем разбираться!Для начала просто взглянем на него со стороны...Что же в нём есть?1.Панель инструментов(**)
2.Наше "Рабочее поле"(***)
3.Список функций(****)
И так... Всё по порядку:
**(Панель инструментов) - Я уже объяснял и показывал...
***("Рабочее поле") - Это участок программы в котором мы будем писать наш код
****(Список функций) - Это по сути столбик, в котором перечислены все функции которые мы можем использовать.
Функция - "строка"(Пока что будем называть её так) которая будет выполнять то или иное действие(Пример: SendClientMessage(...); отправит сообщение игроку)
[HR][/HR]
"Начало начал"
Ну что же, давайте обозревать наш "МОД", давайте поглядим в самый верх рабочего поля, что мы там увидим?Вот что:
PHP:
// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
Комментарий служит для пометки/заметки.
Дальше:
PHP:
#include <a_samp>
Инклуд это файл, в котором содержаться все базовые функции "PAWNO"
Далее идёт:
PHP:
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
PHP:
#endif
[HR][/HR]
"Начало начал 2"
Теперь разбираем public'iПаблик выполняется при каком-либо игровом событии
Давайте рассмотрим что за что отвечает:
PHP:
public OnGameModeInit() //Отвечает за то что произойдет во время запуска мода!
{
// Don't use these lines if it's a filterscript
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
PHP:
public OnGameModeExit() //Что произойдёт во время выключения...
{
return 1;
}
PHP:
public OnPlayerConnect(playerid) //Когда игрок подключится к серверу
{
return 1;
}
PHP:
public OnPlayerDisconnect(playerid, reason) //Отключится
{
return 1;
}
PHP:
public OnPlayerSpawn(playerid) //Появиться игрок на спавне
{
return 1;
}
PHP:
public OnPlayerDeath(playerid, killerid, reason) //Умрёт
{
return 1;
}
PHP:
public OnPlayerCommandText(playerid, cmdtext[]) //Когда игрок наберёт команду
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}
return 0;
}
[HR][/HR]
Надо?Не надо?
Так, ну давайте "поиграемся" с пабликами... Ну что-же, возьмём public OnGameModeInit()Перво наперво я объясню что за что в нём отвечает...
PHP:
public OnGameModeInit() //Сам паблик
{//Скобочка открытия
SetGameModeText("Blank Script"); //Установка названия мода, можно изменить на своё, "" не убирать!
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);//Добавляет класс для мода
return 1;//Возврат
}//Скобка закрытия
PHP:
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
ДобавитьИгрокКлас(Ид скина, x, y, z(места персонажа при выборе скина, позже об этом), оружие 1, патроны 1, оружие 2, патроны 2, оружие 3, патроны 3);
PHP:
print("Привет братэлла");
Скомпилируем, запустим, всё работает?И так, если вам это было ну очень трудно... Дочитайте урок до конца... Если совсем всё будет не понятно, PAWNO не для вас... Простите...
[HR][/HR]
Предпоследняя часть
И так, хочу безумно спать... :be: Кароче, смотрим следующий паблик: public OnPlayerConnect(playerid)Для чего он служит?Ответ под катом
За действие которое произойдёт когда игрок подключиться к серверу
PHP:
SendClientMessage(playerid, 0xFFFFFFAA, "ТЕКСТ"); //Отправит сообщение в чат
ОтправитьКлиентуСообщение(ИД, цвет, "текст");
PHP:
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, 0xFFFFFFAA, "Добро пожаловать на сервер!");
return 1;
}
Концовка
Глаза слипаются...:bn: Последний, но не по значимости паблик:
PHP:
public OnPlayerCommandText(playerid, cmdtext[])//Паблик
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)//Конструкция
{
// Do something here
return 1;
}
return 0;
}
Сначало пишется if, if - если | Потом скобка, после в " " пишется команда, обязательно с "/", потом идёт текст с которым сравниваем, но об этом уже позже(Пока что это не надо) , true значит что команду можно написать любыми буквами(Большими маленькими), дальше вам пока что не надо.
ДАЛЬШЕ!Ставим скобочку открытия, после уже на следующей строчке пишем что будет делать команда!Давайте опять же отправим по команде сообщение в чат!Для этого вставляем после комментария(Можно убрать) уже известную нам функцию...Какую?Знаете сами какую...Получиться так:Но сначала попробуйте сами.Ответ под катом:
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/Ky", cmdtext, true, 10) == 0)//Я поменял название команды
{
SendClientMessage(playerid, 0xFFFFFFAA, "Добро пожаловать на сервер!");//Сама функция
return 1;//Ретурн, должен всегда стоять!
}//скобка закрытия
return 0;//Тоже должен всегда стоять!
}
[HR][/HR]
Вот урок подошёл к концу!Что понравилось что не понравилось пишите в комментариях, об ошибках туда-же... ПАВНО изучаю 8 дней... Хотел донести до вас что умею... Для новичков... От "+" не откажусь, но за ним не гонюсь... Удачи вам в изучении PAWNO скоро будет след. урок!
P.S писал сам!Ни капли не копировал!Прошу комментируйте...
Автор: Я!
И за все старании я получил уже 2 минуса!?Обидно господа
Последнее редактирование:
