Создание полноценного мода. [Урок первый] - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Создание полноценного мода. [Урок первый]
AdminДата: Суббота, 19.03.2016, 21:28 | Сообщение # 1
Гл.Администратор
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 32767
Статус: Offline
Здравствуйте, уважаемые пользователи SampFiles.Ucoz.Ru!


С Вами Admin, и я буду вместе с Вами писать мод, на основе которого Вы сможете сделать свой сервер.
Знаю что уроков по написанию модов очень много, но решил что у меня это получится немного лучше.
Мод будет жанра Role Play, написан с нуля, с системой сохранения аккаунтов посредством базы данных.

Шаг первый. Начало начал.
Открываем pawno.exe и нажимаем "создать новый файл", и удаляем всё то, что нам не нужно:
Код
#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
        print("\n--------------------------------------");
        print(" Blank Filterscript by your name here");
        print("--------------------------------------\n");
        return 1;
}

public OnFilterScriptExit()
{
        return 1;
}

#else


Код
#endif


Шаг второй. Изменение основ.

астраиваем внутреннюю часть мода под себя. В паблике OnGameModeInit пишем:

Код
[color=#a64d79]SetGameModeText[/color]("P-W RP v0.1"); // Где "P-W RP v0.1" название вашего будущего мода. У нас будет P-W.


Код
SendRconCommand("hostname [RUS|UA] SampFilesUcozRu Role Play (0.3e)"); // Где "hostname" - означает изменение названи SampFilesUcozRu  RUS|UA] SampFilesUcozRu Role Play (0.3e)" - само название
.

Так же, мы изменим спавн игрока, так как нам не нужен Las venturas:
Код
AddPlayerClass(299,1767.9595,-1667.1998,14.4126,90.9009,0,0,0,0,0,0);


вместо
Код
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);


Ещё мы уберём стандартные желтые пикапы входов:
Код
DisableInteriorEnterExits();

А ещё, мы избавимся Stunt бонусов:
Код
EnableStuntBonusForAll(0); // Убираем Stunt бонусы


Сердце мода теперь работает, продолжим.


Здесь будет собрано самое сложное, по этому просьба, отнестись к этому шагу на повышенном внимании.

Для начала подключаем два необходимых инклюда:
Код
#include <a_mysql> // Жизненно необходимый инклюд для работы с MySQL
#include <sscanf2> // Для вывода информации


Объявляем данные для входа в базу данных (о ней чуть позже):
Код
#define SQL_HOST                "127.0.0.1" // IP хостинга, на котором расположена БД, у нас локальный IP
#define SQL_DB                  "wow"       // Название БД, у нас myrp
#define SQL_USER                "root"      // Это логин вашего аккаунта на хостинге, на котором расположена БД
#define SQL_PASS                ""          // Пароль того самого аккаунта, у нас пустой, так как запускаем локально
#define TABLE_ACCOUNT   "accounts"  // Название таблицы в которой хранятся аккаунты


Далее, создаём массив pInfo, это сердце аккаунта, вся статистика здесь:
Код
enum pInfo
{
    pID,
    pPassword[256],
    pAdmin,
    pLevel,
    pMoney,
    pVip,
    pSkin,
    pLeader,
    pMember,
    pBan,
    pKills,
    pDeaths,
    pHealths,
    pClass,
    pLang
}
new Player[MAX_PLAYERS][pInfo];

Объявляем query, что бы не делать это при новом её использовании:
new query[500];


--------------------
Пока что все. Спасибо за внимание.

Удачи!


 
  • Страница 1 из 1
  • 1
Поиск: