Сайт восстановлен из веб архива. Сейчас он доступен только для чтения, скачивание материалов также недоступно. Если у вас до сих пор есть какие-то вопросы по разработке серверов CRMP, вы можете перейти на актуальный портал: https://pawno-rus.com

Перейти к содержимому

Уважаемый гость, если у Вас возникли проблемы с регистрацией, просьба обратиться в тех.поддержку или на почту admin@pawno-crmp.ru

Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.

Фотография
Мануал

Динамическая система гаражей на MySQL R41-2

- - - - -

  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1
offline   Elrmrnt-Kritik

Elrmrnt-Kritik
  • 760
    • Сообщений: 3 054
    • Регистрация: 19.07.15
Итак, здравствуйте, пользователи

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

.
Собственно сегодня хочу выложить самописную систему гаражей. Как видно из названия темы, система гаражей на MySQL, в большинстве основана на диалоговых окнах. Код старался оптимизировать как смог. Надеюсь, профессионалы укажут на ошибки, может что-то посоветуют.

Использующаяся версия MySQL [R41-2]

P.s. если Вам нужна система гаражей на файлах, идем сюда -> ссылка (автор - Basis).
Автор данного готового решения (хотя я постараюсь по максимуму объяснить каждое свое действие, приложить ссылки на темы, которые Вам помогут разобраться в том или ином коде) - я, Elrmrnt-Kritik.
 
1. В начале мода (можно сразу после include <a_samp>):

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

2. Ко всем переменным (можно сразу после данных мною строк выше) добавляем массив для гаражей:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

  • Немного хочется конкретизировать по поводу переменной gLoad. Дабы гаражи не удалялись "случайно" или "невольным образом" (глупая ситуация, но если взломают администратора и удалят все гаражи), можно будет вернуть их всего лишь заменив 0 на 1 в базе данных. А вообще, честно говоря, просто увидел это в одном моде и заинтересовался  :D83DDE1C:
  • Что касается 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

  • 6



Темы с аналогичным тегами Мануал

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Данную тему посетили 92 пользователей