Использующаяся версия MySQL [R41-2]
2. Ко всем переменным (можно сразу после данных мною строк выше) добавляем массив для гаражей:
- Немного хочется конкретизировать по поводу переменной gLoad. Дабы гаражи не удалялись "случайно" или "невольным образом" (глупая ситуация, но если взломают администратора и удалят все гаражи), можно будет вернуть их всего лишь заменив 0 на 1 в базе данных. А вообще, честно говоря, просто увидел это в одном моде и заинтересовался

- Что касается gResident. Это nick-name совладельца гаража. Поскольку я писал эту систему для своего мода, где предусматривался совладелец для автомобилей, то сделал и совладельца для гаража. Имена совладельца транспорта и совладельца гаража совпадают.
- GI можно заменить на GarageInfo, чтобы Вам было понятнее что к чему.
3. Добавим загрузку гаражей на сервер. Сделано с расчетом на то, что база данных MySQL у Вас уже подключена. Подробнее об ее подключении можно вычитать тут, тут и тут.
dbHandle - название переменной, содержащей подключение к базе данных
В public OnGameModeInit() добавляем после подключения к базе данных:
Создаем новый public LoadGarages():
Скачать sscanf - нужен для работы sscanf (часто использовал я эту функцию)
Скачать streamer - нужен для пикапа гаража
ID пикапов - если надумаете изменить внешний вид пикапа
ID типов пикапов - если надумаете изменить принцип действия пикапа, но тогда придется несколько менять код.
4. Добавим меню гаража (будет открываться при нажатии на ALT в радиусе двух метров от пикапа).
- После public LoadGarages() добавляем функцию получения ID гаража:
- В OnPlayerKeyStateChange добавляем:
Возможно, if(newkeys & KEY_WALK) у Вас уже есть в этом паблике. Не стоит создавать еще одно условие. Также возможно, что вместо KEY_WALK будет стоять 1024. Это одно и то же.
- Добавляем stock, который будет показывать окно информации о гараже.
- Добавляем диалоги. Поскольку у меня диалоговый процессор, выглядит все несколько иначе. При необходимости меняйте шапку на свою. (DLG:150 = if(listitem == 150)):
5. Добавляем в public OnPlayerEditObject (не думаю, что он у Вас будет, поэтому скорее всего придется создавать) - для постановки ворот гаража в открытом и закрытом положениях.
6. Добавляем в свободное место (можно в конец мода):
Вообще, для того чтобы данную команду перевести на стандартный, достаточно заменить лишь шапку. Но можно установить и DC_CMD plugin.
Данную систему вырезал из своего мода. Пока создавал эту тему, убрал ряд функций, которые не посчитал нужными. Возможно, что-то забыл вырезать или где-то дописал ошибку. Пишите, буду исправлять.
Сообщение отредактировал Elrmrnt-Kritik: 26 Апрель 2017 - 18:21



Сообщений: 3 054
Регистрация:
Skype: v.l.a.d.65

