shape1
shape2
shape3
shape4
shape7
shape8

Пишем мод с нуля [#1]


Статус
Закрыто для дальнейших ответов.

TheSeLToN

Участник
Пользователь
21.09.2014
452
125
0
Извиняюсь за задержку.

Добрый вечер, уважаемые пользователи портала PAWNO-CRMP. С сегодняшнего дня мы начнём писать мод с нуля, на основе которого Вы сможете сделать свой сервер. По стандарту, начинать мы будем с самого простейшего к более сложному. Поехали!

Что нам потребуется?

Для начала нам потребуется simple мод, который Вы можете скачать тут (жмём srv-pawno-crmp-c3-win.rar).

Скачали? Разархивировали? Ай молодцы :D83DDE09:  Поехали дальше.

Создание дефолтного скрипта; чистка от мусора.
 ​
1) Итак, работать мы будем с программой Pawno. Заходим в папку с сервером > pawno > pawno.exe.

Перед вами окно программы, давайте создадим дефолтный скрипт.

Для того чтобы создать скрипт, смотрим в самый вверх программы, и видим навигационное меню, там 10 кнопок. Нам понадобится первая кнопка, под названием "New", скриншот:

eef9013c237061ce32f422822ee14186.jpg


О остальных девяти кнопках, я расскажу позже.

2) Всё, скрипт мы создали, начинаем чистить его.

Удаляем:

// This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT

Код:
#if defined FILTERSCRIPT

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

public OnFilterScriptExit()
{
	return 1;
}

#else
Код:
#endif
Переходим в паблик OnPlayerRequestClass и удаляем:

SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

Переходим в паблик OnPlayerCommandText и удаляем:

if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
// Do something here
return 1;
}

В будущем, с этим пабликом мы работать не будем, т.к. командный процессор будет DC_CMD.

Прописываем необходимые функции, и настраиваем мод.
Всё, мод мы подчистили, теперь пора настроить сердечко нашего мода.

1) Переходим в паблик OnGameModeInit и добавляем:

DisableInteriorEnterExits();

Эта функция отключает все входы/выходы зданий (желтые маркеры).

EnableStuntBonusForAll(0);

Включает/отключает начисление денег за совершенные трюки (работает для всех игроков). Если включено, игроки будут получать денежное вознаграждение при выполнении трюков на транспортном средстве.

LimitPlayerMarkerRadius(100.0);

Функция определяет, на каком расстоянии будет виден клист игрока.

2) С функциями мы закончили, теперь настроим мод. Пока что, мы будем настраивать только одну функцию.

Переходим в паблик OnGameModeInit. Видим строчку:

SetGameModeText("Blank Script");

Где "Blank Script" - это название вашего мода, его Вы можете изменить (главное не удаляйте кавычки :D83DDE0F: ).

Теперь нам нужно скомпилировать мод. Для чего это нужно? Как правило: .pwn файл - это исходник, который мы редактируем, и с которым мы работаем сейчас; .amx - это исполняющий файл, который требуется для работоспособности сервера. Т.е. если мы не скомпилируем мод, то сервер работать не будет, т.к. мы не преобразовали .amx(исполняющий) файл из .pwn файла(исходник). Для того чтобы скомпилировать мод, жмём восьмую кнопку("Compile", скриншот ниже), перед вами появляется окно. Путь выбираем: папка с сервером > gamemodes. Имя вводим: new.

fe6388fc00f69ad1fe485a325f7f366a.jpg


На этом всё!

Полезные ссылки:

  • New.pwn

Урок подготовил: TheSeLToN.

Всем огромное спасибо за внимание!
 
Последнее редактирование модератором:

GRAVTIT

Новичок
Пользователь
02.02.2016
1
0
0
Полезно! Жду следующего урока.

 

Vadya_Bo

Освоившийся
Пользователь
06.01.2016
196
1
15
0
гуд, жду продолжения

 

Drakoncik

Освоившийся
Пользователь
01.04.2015
216
2
44
0
Я так понимаю в следующем уроке будет оптимизация и система регистрации.

 

SeregaOne

Освоившийся
Пользователь
28.12.2014
365
2
22
0
27
Хороший урок, по поводу будущих уроков, думаю лучше будет если сразу начнешь людей приучать к Sql.

 

westr

Новичок
Пользователь
24.10.2015
44
6
0
Нажимаю Compile выдает Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

И ни каких действий больше
 

JoKeR2020

Гуру
Пользователь
26.11.2014
1 800
4
321
0
@westr, ну? И вам что-то не нравится? Радуйтесь, ошибок нет.

 

Andrey11

Новичок
Пользователь
27.03.2016
13
0
0
как сделать чтобы игроки могли покупать много авто !!!Помогите

 

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@Andrey11,там должна быть проверка на количество автомобилей, которые имеет игрок (скорее всего в /buycar). 

 

ЦеиКэллей

Новичок
Пользователь
12.07.2016
5
0
0
C:\Users\User\Desktop\srv-pawno-crmp-c3-win\gamemodes\simple.pwn(76) : error 029: invalid expression, assumed zero
C:\Users\User\Desktop\srv-pawno-crmp-c3-win\gamemodes\simple.pwn(210) : warning 203: symbol is never used: "OnPlayerEnterVehicle"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
 
 
1 Error.
 

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@ЦеиКэллей, строку 210 можете удалить, а вот строку 76 скиньте (на всякий случай строку выше тоже можно) 

 

DOFAMIN

Новичок
Пользователь
03.08.2016
1
0
0
27
@AlexYakuza, сам только начал изучать, предполагаю, что ты не до конца дописал функцию, попробуй исправить на DisableInteriorEnterExits();

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

 
Последнее редактирование модератором:
Статус
Закрыто для дальнейших ответов.