Skip to content

Установка и настройка DarkRP

Краткое руководство по установке и настройке DarkRP на вашем Garry's Mod сервере.

Вступление

Давно мечтали создать свой собственный DarkRP сервер? Проследуйте указанными нами шагами дабы начать работу со своим новоиспечённым DarkRP сервером как можно скорее.

Рекомендуем пользоваться боковым меню справа для навигации по статье, так как все конфиги мы расписали максимально подробно для более глубокой настройки сервера.

Загрузка аддонов

Первым делом нам нужно будет скачать файлы самого режима. DarkRP имеет два аддона, которые важны для его существования - DarkRP и DarkRP-modification.

DarkRP это база, основа самого режима, а с помощью DarkRP-modification уже производятся все изменения в режиме: добавление профессий, вещей и оружия, включение/отключение различных функций и многое другое.

[Скачать DarkRP]

[Скачать DarkRP-modification]

ПОДСКАЗКА

Ссылки безопасны, и ссылаются на официальный GitHub репозиторий от оригинального разработчика режима - FPTje.

Установка аддонов

После скачивания этих файлов пройдите в управление нужным вам сервером, и загрузите архив DarkRP-master.zip по пути /garrysmod/gamemodes, а darkrpmodification-master.zip - /garrysmod/addons.

Распакуйте эти архивы.

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

Папку DarkRP-master нужно обязательно переименовать под darkrp.

После установки аддонов не забудьте перейти в "параметры запуска" и изменить режим с sandbox на darkrp.

Разбор файлов darkrpmodification

Теперь давайте же настроим наш новоиспечённый сервер. С помощью аддона darkrpmodification можно кастомизировать различные аспекты DarkRP - будь то профессии, функции режима, оружия, и многое другое.

settings.lua

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

Находится по пути: /garrysmod/addons/darkrpmodification/lua/darkrp_config/settings.lua.

jobs.lua

Этот файл отвечает за профессии на вашем сервере. Вы можете настроить существующие профессии или добавить новые.

Находится по пути /garrysmod/addons/darkrpmodification/lua/darkrp_customthings/jobs.lua.

entities.lua

Этот файл отвеачет за настройку энтити (предметов) в DarkRP. Например, можно добавить магазины оружия или улучшить существующие.

Путь к файлу: /garrysmod/addons/darkrpmodification/lua/darkrp_customthings/entities.lua.

mysql.lua

Этот файл отвеачет за настройку базы данных MySQL. С её помощью вы сможете хранить данные сервера в более безопасном, отдельном от игрового сервера месте.

Путь к файлу: /garrysmod/addons/darkrpmodification/lua/darkrp_config/mysql.lua.

Настройка settings.lua

Toggle settings

Этот раздел содержит параметры, которые могут быть включены или выключены (т.е. поддерживаются значения true или false).

voice3D

Включает или выключает 3D звук в голосовом чате.

Рекомендуется оставить значение по умолчанию.

AdminsCopWeapons обратите внимание

Включает или выключает возможность администраторам использовать полицейское оружие.

adminBypassJobRestrictions обратите внимание

Включает или выключает возможность администраторам принудительно устанавливать профессии в обход привелегий по типу VIP.

allowActs обратите внимание

Включает или выключает возможность использования анимаций (например, приветствия или танцы).

allowjobswitch

Позволяет игрокам переключаться на свои собственные пользовательские рабочие профессии.

allowrpnames обратите внимание

Позволяет игрокам устанавливать свои RP имена с помощью команды /rpname.

allowsprays обратите внимание

Включает или выключает возможность использования граффити на сервере.

Рекомендуется оставить значение по умолчанию.

allowvehicleowning

Включает или выключает возможность владения транспортными средствами.

allowvnocollide

Включает или выключает возможность обхода коллизий для транспортных средств (для безопасности).

alltalk

Включает глобальный чат, отключает локальный чат.

Рекомендуется оставить значение по умолчанию.

antimultirun обратите внимание

Запрещает игрокам заходить на сервер дважды с одного и того же аккаунта.

autovehiclelock

Включать ли автоматическую блокировку транспортного средства при выходе игрока из него.

babygod обратите внимание

Спаун игроков в режиме бога (предотвращает убийства при спауне).

canforcedooropen

Позволяет игрокам открывать непринадлежащие им двери с помощью отмычек, ломов и т.д.

chatsounds обратите внимание

Проигрывать ли звуки, когда игроки в чате пишут определенные фразы, например cheese.

chiefjailpos

Позволяет начальнику устанавливать позиции тюремных камер.

cit_propertytax

Включает или выключает налог на имущество, который применяется только к гражданам.

copscanunfreeze обратите внимание

Включает или выключает возможность полицейским размораживать чужие предметы.

copscanunweld обратите внимание

Включает или выключает возможность полицейским распаивать чужие предметы.

cpcanarrestcp осторожно

Разрешает/запрещает полицейским арестовывать других полицейских.

currencyLeft

Позиция символа валюты. true для отображения слева, false для отображения справа.

customjobs

Включает или выключает команду /job (пользовательские имена у профессий).

customspawns осторожно

Включает или выключает использование пользовательских точек спауна.

deathblack

Определяет, видит ли игрок черный экран при смерти.

showdeaths

Отображает информацию о смертях игроков в верхнем правом углу экрана у каждого игрока (killfeed).

server killfeed

deadtalk

Включает или выключает возможность говорить и использовать команды, будучи мертвым.

deadvoice

Включает или выключает возможность говорить через микрофон, будучи мертвым.

deathpov

Включает или выключает возможность видеть свою смерть от первого лица.

first person death

decalcleaner

Включает или выключает автоочистку всех декалей игроков.

disallowClientsideScripts осторожно

Запрещает использование клиентских скриптов.

doorwarrants

Включает или выключает требование наличия ордера для вылома дверей.

dropmoneyondeath

Включает или выключает возможность выпадения денег при смерти.

Осторожно: может вызвать зависания на сервере.

droppocketarrest

Включает или выключает возможность выпадения вещей из карманов при аресте.

droppocketdeath

Включает или выключает возможность выпадения вещей из карманов при смерти.

dropweapondeath

Включает или выключает возможность выпадения текущего оружия при смерти.

dropspawnedweapons

Позволяет или запрещает выпадение оружия, с которым игрок спаунился.

dynamicvoice

Включает или выключает возможность того, чтобы только игроки в одной комнате могли слышать микрофон.

earthquakes осторожно

Включает или выключает землетрясения.

enablebuypistol

Включает или выключает команду /buy.

enforceplayermodel

Определяет, нужно ли принудительно использовать модели персонажей, соответствующие роли игрока.

globalshow

Определяет, нужно ли отображать информацию о игроках над их головами в игре.

show or hide user info

ironshoot

Включает или выключает необходимость прицеливания для использования оружия.

aim down sights to shoot

showjob

Определяет, нужно ли отображать рабочую должность игрока над его головой в игре.

show or hide user profession

letters

Включает или выключает возможность написания писем друг-другу.

license

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

lockdown

Включает или выключает возможность начала и завершения комендантского часа для мэров с помощью команд /lockdown и /unlockdown.

mayor lockdown

Рекомендуется оставить значение по умолчанию.

lockpickfading

Включает или выключает возможность подбора замков на исчезающих дверях (Fading Doors).

logging

Включает или выключает логирование всего, что происходит на сервере.

lottery

Включает или выключает создание лотерей для мэров.

showname

Определяет, нужно ли отображать имя игрока над его головой в игре.

show or hide user name

showhealth

Определяет, нужно ли отображать здоровье игрока над его головой в игре.

show or hide user health

needwantedforarrest

Включает или выключает возможность ареста только тех игроков, которые находятся в розыске.

noguns

Включает или выключает запрет на оружие и оружейные лавки.

norespawn

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

keepPickedUp

Включает или выключает сохранение подобраного оружия при смене профессии.

instantjob

Включает или выключает мгновенный респаун, когда norespawn выключен.

npcarrest

Включает или выключает возможность ареста NPC.

ooc обратите внимание

Определяет, включен ли OOC (глобальный) чат.

propertytax

Включает или выключает налог на имущество.

proppaying

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

propspawning

Включает или выключает спаун предметов. Применимо также к администраторам.

removeclassitems

Включает или выключает удаление предметов, связанных с профессией (например, посылок, микроволновок и т.д.), при смене профессии.

removeondisconnect

Включает или выключает удаление предметов, связанных с профессией (например, посылок, микроволновок и т.д.), при отключении.

respawninjail осторожно

Включает или выключает возможность респауна в тюрьме при смерти.

restrictallteams

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

restrictbuypistol

Включает или выключает возможность использования команды /buy только для оружейных торговцев.

restrictdrop

Включает или выключает ограничение на возможность сбрасывать оружие. Установка этого значения в true запрещает сброс оружия из посылок.

revokeLicenseOnJobChange

Определяет, отзываются ли лицензии, когда игрок меняет рабочую должность.

shouldResetLaws

Включает или выключает сброс законов до значений по умолчанию, когда мэр меняется.

strictsuicide осторожно

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

telefromjail осторожно

Включает или выключает возможность телепортации из тюрьмы.

teletojail осторожно

Включает или выключает возможность телепортации в тюрьму.

unlockdoorsonstart

Включает или выключает разблокировку всех дверей при старте карты.

voiceradius

Включает или выключает локальный голосовой чат.

wallettax

Определяет, должны ли игроки платить налог на свой баланс.

wantedrespawn

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

wantedsuicide

Включает или выключает возможность самоубийства, будучи в розыске полицией.

realisticfalldamage

Включает или выключает динамический урон от падений. Установка mp_falldamage на 1 переопределяет это значение.

printeroverheat

Определяет, может ли денежный принтер перегреваться самостоятельно.

weaponCheckerHideDefault

Скрывать ли оружие выдаваемое профессии при проверке оружия.

weaponCheckerHideNoLicense

Скрывать ли оружие, для которого не требуется лицензия.

Value settings

Этот раздел содержит параметры, значение которых может быть только циферным.

adminnpcs осторожно

Определяет, должны ли NPC быть доступны только для администраторов. Значения: 0 = все, 1 = администратор или выше, 2 = суперадмин или выше, 3 = только RCON.

Значение по умолчанию: 3

adminsents осторожно

Определяет, должны ли SENT быть доступны только для администраторов. Значения: 0 = все, 1 = администратор или выше, 2 = суперадмин или выше, 3 = только RCON.

Значение по умолчанию: 1

adminvehicles осторожно

Определяет, должны ли транспортные средства быть доступны только для администраторов. Значения: 0 = все, 1 = администратор или выше, 2 = суперадмин или выше, 3 = только RCON.

Значение по умолчанию: 3

adminweapons осторожно

Определяет, кто может спаунить оружие: 0 = только администраторы, 1 = только суперадмины, 2 = никто, 3 = все.

Значение по умолчанию: 1

arrestspeed

Устанавливает максимальную скорость ареста.

Значение по умолчанию: 120

babygodtime обратите внимание

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

Значение по умолчанию: 5

chatsoundsdelay обратите внимание

Устанавливает время ожидания перед тем, как игрок сможет снова издать звук через чат.

Рекомендуем установить это значение хотя бы на 5 секунд, дабы предотвратить спам звуками.

Установите значение на 0 для отключения.

Значение по умолчанию: 5

deathfee

Сумма денег, которую теряет игрок при смерти.

Значение по умолчанию: 30

decaltimer

Устанавливает периодничность очистки клиентских декалей (в секундах).

Значение по умолчанию: 120

demotetime

Количество секунд, через которое игрок сможет снова перейти на профессию после понижения.

Значение по умолчанию: 120

doorcost обратите внимание

Устанавливает стоимость одной двери.

Значение по умолчанию: 30

entremovedelay

Время ожидания перед удалением купленного объекта после отключения.

Значение по умолчанию: 0

gunlabweapon

Оружие, которое спаунится в оружейной лаборатории.

Значение по умолчанию: "weapon_p2282"

jailtimer

Устанавливает срок нахождения в тюрьме (в секундах).

Значение по умолчанию: 120

lockdowndelay

Время, которое мэр должен подождать перед началом следующего комендантского часа.

Значение по умолчанию: 120

maxadvertbillboards

Максимальное количество рекламных щитов, которые игрок может разместить.

Значение по умолчанию: 3

maxCheques

Максимальное количество чеков, которые игрок может выписать.

Значение по умолчанию: 5

maxdoors

Максимальное количество дверей, которыми можно владеть один игрок.

Значение по умолчанию: 20

maxdrugs

Максимальное количество наркотиков которое может быть у одного игрока.

Значение по умолчанию: 2

maxfoods

Максимальное количество упаковок еды на одного владельца микроволновой печи.

Значение по умолчанию: 2

maxfooditems

Максимальное количество предметов еды, которые игрок может купить через F4-меню.

Значение по умолчанию: 20

maxlawboards

Максимальное количество досок с законами, которые мэр может разместить.

Значение по умолчанию: 2

maxletters

Максимальное количество писем на одного игрока.

Значение по умолчанию: 10

maxlotterycost

Максимальная сумма, которую мэр может установить для участия в лотерее.

Значение по умолчанию: 250

maxvehicles

Максимальное количество транспортных средств, которые можно купить.

Значение по умолчанию: 5

microwavefoodcost

Устанавливает цену продажи еды из микроволновой печи.

Значение по умолчанию: 30

gunlabguncost

Начальная цена оружия из оружейной лаборатории. Обратите внимание, что владелец оружейной лаборатории может изменить эту цену.

Значение по умолчанию: 200

druglabdrugcost

Начальная цена наркотиков из нарколаборатории. Обратите внимание, что владелец нарколаборатории может изменить эту цену.

Значение по умолчанию: 100

minlotterycost

Минимальная сумма, которую мэр может установить для участия в лотерее.

Значение по умолчанию: 30

moneyRemoveTime

Время, через которое деньги будут удалены, если они не будут подобраны. Установите на 0, чтобы отключить.

Значение по умолчанию: 600

mprintamount

Сумма денег, печатаемая денежным принтером за одну ходку.

Значение по умолчанию: 250

normalsalary

Начальная зарплата для вновь присоединившихся игроков.

Значение по умолчанию: 45

npckillpay

Сумма денег, выдаваемая за каждое убийство NPC.

Значение по умолчанию: 10

paydelay

Время, через которое игроки получают зарплату.

Значение по умолчанию: 160

pocketitems

Максимальное количество объектов, которые сможет вместить карман игрока.

Значение по умолчанию: 10

pricecap

Максимальная цена предметов (с использованием команды /price).

Значение по умолчанию: 500

pricemin

Минимальная цена предметов (с использованием команды /price).

Значение по умолчанию: 50

propcost

Сколько должен стоить спаун предмета (значение proppaying должно быть включено, чтобы эта настройка работала).

Значение по умолчанию: 10

quakechance осторожно

Шанс возникновения землетрясения.

Значение по умолчанию: 4000

respawntime обратите внимание

Минимальное количество секунд, которое игрок должен подождать перед респауном.

Значение по умолчанию: 1

changejobtime обратите внимание

Минимальное количество секунд, которое игрок должен подождать перед сменой работы.

Значение по умолчанию: 10

runspeed обратите внимание

Устанавливает максимальную скорость бега.

Значение по умолчанию: 240

runspeedcp

Устанавливает максимальную скорость бега для полицейских профессий.

Значение по умолчанию: 255

searchtime

Количество секунд, на которое действителен ордер на обыск.

Значение по умолчанию: 30

ShipmentSpamTime

Кулдаун между спауном каждого shipment.

Значение по умолчанию: 3

shipmentspawntime

Количество секунд, которое требуется для полного спауна shipment.

Значение по умолчанию: 10

startinghealth обратите внимание

Здоровье которое выдается игроку при спауне.

starting amount of money

Значение по умолчанию: 100

startingmoney обратите внимание

Сумма денег в кошельке при первом заходе на сервер.

starting amount of money

Значение по умолчанию: 500

stunstickdamage обратите внимание

Количество урона, наносимого электрошокером объектам. Когда значение между 0 и 1, урон относительный, где 1 убирает все здоровье объекта. Когда значение больше 1, урон абсолютный.

Значение по умолчанию: 1000

vehiclecost

Стоимость транспортного средства (для владения им).

Значение по умолчанию: 40

wallettaxmax

Максимальный процент налога, который должен быть уплачен.

Значение по умолчанию: 5

wallettaxmin

Минимальный процент налога, который должен быть уплачен.

Значение по умолчанию: 1

wallettaxtime

Время в секундах между налогообложением игроков. Требует перезапуск сервера.

Значение по умолчанию: 600

wantedtime обратите внимание

Количество секунд, на которые игрок становится в розыск.

Значение по умолчанию: 120

walkspeed обратите внимание

Устанавливает максимальную скорость ходьбы.

Значение по умолчанию: 160

falldamagedamper

Амортизатор урона от падений. Значение по умолчанию: 15. Уменьшите это значение для большего урона.

Значение по умолчанию: 15

falldamageamount

Минимальный урон от падений. Значение по умолчанию: 10.

Значение по умолчанию: 10

printeroverheatchance

Вероятность перегрева принтера. Чем выше это число, тем менее вероятно (минимум 3, по умолчанию 22).

Значение по умолчанию: 22

printerreward

Вознаграждение за уничтожение денежного принтера.

Значение по умолчанию: 950

Chat distance settings обратите внимание

Расстояние указано в единицах Source Engine (похожие на дюймы)

talkDistance

Расстояние для обычных разговоров.

Значение по умолчанию: 250

whisperDistance

Расстояние для шёпота (в текстовом чате).

Значение по умолчанию: 90

yellDistance

Расстояние для крика (в текстовом чате).

Значение по умолчанию: 550

meDistance

Расстояние для команды /me (в текстовом чате).

Значение по умолчанию: 250

voiceDistance

Расстояние для работы голосового чата.

Значение по умолчанию: 550

Other settings

MoneyClass

Класс имени денежных пакетов. Используйте это значение для создания собственного денежного объекта!

Примечание: денежный пакет должен поддерживать метод "Setamount" (или переменную DTVar).

Значение по умолчанию: spawned_money

Рекомендуется оставить значение по умолчанию.

moneyModel

Если вы хотите изменить модельку денег, отредактируйте это значение.

Значение по умолчанию: models/props/cs_assault/money.mdl

Рекомендуется оставить значение по умолчанию.

lockdownsound

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

ПОДСКАЗКА

Примечание: Не забудьте написать полный путь к папке, где находится звуковой файл.

Значение по умолчанию: npc/overwatch/cityvoice/f_confirmcivilstatus_1_spkr.wav

DarkRPSkin

Тема интерфейса DarkRP. Установите значение на "default", чтобы перейти на стандартную тему GMod.

Значение по умолчанию: DarkRP

currency

Символ валюты, используется в F4-интерфейсах и HUD.

Значение по умолчанию: $

currencyThousandSeparator

Разделитель тысяч для валюты.

Значение по умолчанию: ,

chatCommandPrefix

Префикс для команд чата.

Значение по умолчанию: /

F1MenuHelpPage

Страница справки для F1-меню.

Значение по умолчанию: https://darkrp.miraheze.org/wiki/Main_Page

F1MenuHelpPageTitle

Заголовок страницы справки в F1-меню.

Значение по умолчанию: DarkRP Wiki

notificationSound

Звук, воспроизводимый при появлении уведомления от DarkRP.

Значение по умолчанию: buttons/lightswitch2.wav

DefaultPlayerGroups

SteamID и ранги по умолчанию для игроков при присоединении.

Значение по умолчанию:

lua
{
    ["STEAM_0:0:00000000"] = "superadmin",
    ["STEAM_0:0:11111111"] = "admin",
}

DisabledCustomModules обратите внимание

Отключение модулей DarkRP.

Значение по умолчанию:

lua
{
    ["hudreplacement"] = false,
    ["extraf4tab"] = false,
}

DisallowDrop обратите внимание

Список оружия, которое игроки не смогут выбросить или потерять. Предметы, установленные на true, никак нельзя потерять.

Значение по умолчанию:

lua
{
    ["arrest_stick"] = true,
    ["door_ram"] = true,
    ["gmod_camera"] = true,
    ["gmod_tool"] = true,
    ["keys"] = true,
    ["lockpick"] = true,
    ["med_kit"] = true,
    ["pocket"] = true,
    ["stunstick"] = true,
    ["unarrest_stick"] = true,
    ["weapon_keypadchecker"] = true,
    ["weapon_physcannon"] = true,
    ["weapon_physgun"] = true,
    ["weaponchecker"] = true,
}

DefaultWeapons обратите внимание

Список оружия, с которым игроки начинают игру.

Значение по умолчанию:

lua
{
    "keys",
    "weapon_physcannon",
    "gmod_camera",
    "gmod_tool",
    "pocket",
    "weapon_physgun",
}

CategoryOverride обратите внимание

Переопределение категорий. Используется для переопределения категорий по умолчанию для всяких профессий, вещей и оружий.

Значение по умолчанию:

lua
{
    jobs = {
        ["Citizen"] = "Citizens",
        ["Hobo"] = "Citizens",
        ["Gun Dealer"] = "Citizens",
        ["Medic"] = "Citizens",
        ["Civil Protection"] = "Civil Protection",
        ["Gangster"] = "Gangsters",
        ["Mob boss"] = "Gangsters",
        ["Civil Protection Chief"] = "Civil Protection",
        ["Mayor"] = "Civil Protection",
    },
    entities = {
        ["Drug lab"] = "Other",
        ["Money printer"] = "Other",
        ["Gun lab"] = "Other",
    },
    shipments = {
        ["AK47"] = "Rifles",
        ["MP5"] = "Rifles",
        ["M4"] = "Rifles",
        ["Mac 10"] = "Other",
        ["Pump shotgun"] = "Shotguns",
        ["Sniper rifle"] = "Snipers",
    },
    weapons = {
        ["Desert eagle"] = "Pistols",
        ["Fiveseven"] = "Pistols",
        ["Glock"] = "Pistols",
        ["P228"] = "Pistols",
    },
    vehicles = {}, -- There are no default vehicles.
    ammo = {
        ["Pistol ammo"] = "Other",
        ["Shotgun ammo"] = "Other",
        ["Rifle ammo"] = "Other",
    },
}

AdminWeapons обратите внимание

Список оружия, с которым администраторы начинают игру, в дополнение к стандартному оружию и оружию от GM.Config.AdminsCopWeapons.

Значение по умолчанию:

lua
{
    "weapon_keypadchecker",
}

DefaultLaws обратите внимание

Стандартные законы, которые не могут быть изменены в игре.

Значение по умолчанию:

lua
{
    "Do not attack other citizens except in self-defence.",
    "Do not steal or break into people's homes.",
    "Money printers/drugs are illegal.",
}

PocketBlacklist обратите внимание

Список вещей, которые нельзя поместить в карман.

Значение по умолчанию:

lua
{
    ["fadmin_jail"] = true,
    ["meteor"] = true,
    ["door"] = true,
    ["func_"] = true,
    ["player"] = true,
    ["beam"] = true,
    ["worldspawn"] = true,
    ["env_"] = true,
    ["path_"] = true,
    ["prop_physics"] = true,
    ["money_printer"] = true,
    ["gunlab"] = true,
    ["prop_dynamic"] = true,
    ["prop_vehicle_prisoner_pod"] = true,
    ["keypad_wire"] = true,
    ["gmod_button"] = true,
    ["gmod_rtcameraprop"] = true,
    ["gmod_cameraprop"] = true,
    ["gmod_dynamite"] = true,
    ["gmod_thruster"] = true,
    ["gmod_light"] = true,
    ["gmod_lamp"] = true,
    ["gmod_emitter"] = true,
}

noStripWeapons

Оружие, которое считается 'легальным' при проверке оружия и не изымается при конфискации.

Эта настройка используется В ДОПОЛНЕНИИ к GM.Config.weaponCheckerHideDefault и GM.Config.weaponCheckerHideNoLicense.

preventClassItemRemoval

Список энтити, которые не будут удаляться при смене работы игрока. Это применяется только когда значение removeclassitems установлено на true.

Примечание: энтити будут удаляться только при смене работы на ту, которая не имеет права на эту энтити.

Значение по умолчанию:

{ ["gunlab"] = false, ["microwave"] = false, ["spawned_shipment"] = false, }

allowedProperties обратите внимание

Свойства из C-меню, которые разрешено использовать любому игроку.

Значения, установленные на true, разрешены, в то время как значения, установленные на false - запрещены.

Значение по умолчанию:

lua
{
    remover = true,
    ignite = false,
    extinguish = true,
    keepupright = true,
    gravity = true,
    collision = true,
    skin = true,
    bodygroups = true,
}

Настройка jobs.lua

Создание файла jobs.lua

Для начала откройте файл jobs.lua, который находится по пути:

/garrysmod/addons/darkrpmodification/lua/darkrp_customthings/jobs.lua.

Если файла не существует, его нужно будет создать. В этот файл вы будете добавлять настройки для каждой профессии.

Пример создания простой профессии

Давайте рассмотрим пример создания базовой профессии — "Полицейский":

lua
...
TEAM_POLICE = DarkRP.createJob("Полицейский", { 
    color = Color(25, 25, 170, 255), 
    description = [[Вы полицейский, ваша задача поддерживать порядок в городе.]], 
    weapons = {"arrest_stick", "unarrest_stick", "weapon_pistol", "stunstick", "door_ram", "weaponchecker"}, 
    command = "police", 
    max = 4, 
    salary = 65, 
    admin = 0, 
    vote = true, 
    hasLicense = true, 
    category = "Государственные Службы" 
})
...

Параметры профессии

TEAM_POLICE: Переменная-идентификатор профессии. Название переменной должно быть уникальным.

DarkRP.createJob("Полицейский", {...}): Эта функция создаёт новую профессию с именем "Полицейский".

color: Определяет цвет профессии в списке. Используется формат RGBA.

model: Указывает модель игрока для данной профессии. Можно указать несколько моделей.

description: Описание профессии, которое увидят игроки.

weapons: Список оружия, которое получит игрок при выборе профессии.

command: Команда для выбора этой профессии. Игроки могут вводить её в чате для смены профессии.

max: Максимальное количество игроков, которые могут одновременно быть в этой профессии.

salary: Зарплата, которую игрок будет получать каждый игровой цикл.

admin: Определяет, доступна ли профессия только администраторам (0 - доступна всем, 1 - только админам, 2 - только супер-админам).

vote: Определяет, нужно ли голосование для получения профессии. Если true, другие игроки должны будут проголосовать.

hasLicense: Определяет, имеет ли игрок лицензию на оружие по умолчанию.

category: Категория, к которой относится профессия. Позволяет группировать профессии в меню.

Настройка дополнительных параметров

Дополнительные модели игроков

Если вы хотите, чтобы профессия имела несколько моделей на выбор, просто добавьте их к ней:

lua
model = {
    "models/player/police.mdl",
    "models/player/police_fem.mdl"
},

Добавление уникальных привилегий

Если вы хотите, чтобы у профессии были особые привилегии, например, доступ к определённым командам или правам, вы можете использовать параметр customCheck:

lua

customCheck = function(ply) return ply:IsUserGroup("vip") end,
CustomCheckFailMsg = "Эта профессия доступна только для VIP игроков.",

Здесь customCheck проверяет, принадлежит ли игрок к группе "VIP". Если нет, он не сможет выбрать профессию.

Ограничения по здоровью и броне

Можно установить стартовое количество здоровья и брони для профессии:

lua
health = 150,
armor = 50,

Уникальные свойства

Если профессии нужно добавить уникальные способности, вы можете это сделать с помощью параметра customCheck и дополнительных условий в коде, который будет проверять эти способности.

Создание пользовательских профессий

Вы можете создавать свои профессии с любым параметрами. Например, создадим профессию "Мэр":

lua
TEAM_MAYOR = DarkRP.createJob("Мэр", {
    color = Color(150, 20, 20, 255),
    model = "models/player/breen.mdl",
    description = [[Как мэр, вы управляете городом. Вы можете вводить законы и работать над улучшением жизни граждан.]],
    weapons = {"weapon_fists"},
    command = "mayor",
    max = 1,
    salary = 100,
    admin = 0,
    vote = true,
    hasLicense = false,
    mayor = true,
    category = "Государственные Службы"
})

Организация профессий в категории

Для удобства игроков, профессии можно группировать по категориям. Например, все профессии государственных служб могут быть объединены в категорию "Государственные Службы":

lua
DarkRP.createCategory{
    name = "Государственные Службы",
    categorises = "jobs",
    startExpanded = true,
    color = Color(0, 107, 0, 255),
    canSee = function(ply) return true end,
    sortOrder = 100,
}

Перезагрузка сервера

После внесения изменений в файл jobs.lua, сохраните файл и перезапустите сервер, чтобы изменения вступили в силу. Теперь новые профессии будут доступны для ваших игроков.

Подключение базы данных MySQL

Для хранения данных игроков мы строго рекомендуем использовать базы данных MySQL — так данными управлять намного удобнее и безопаснее.

Установка MySQLOO

По умолчанию Garry's Mod не умеет устанавливать подключение к базам данных MySQL. Это решается установкой lua-модулей, которые позволяют устанавливать подключения и записывать данные в базы данных прямо в аддонах Garry's Mod. Одним из самых популярных модулей является MySQLOO — его мы и будем использовать в качестве примера в этой статье.

Скачивание MySQLOO

Первым делом нужно будет скачать сам модуль.

Последняя версия модуля на момент написания этой статьи — 9.7.6.

Прямые ссылки на скачивание:

MySQLOO Linux 32bit | MySQLOO Linux 64bit

MySQLOO Windows 32bit | MySQLOO Windows 64bit

Серверы, расположенные на нашем игровом хостинге, по умолчанию используют 32-битную Linux версию Garry's Mod. В случае перехода на 64-битную версию Garry's Mod, нужно будет скачать соответствующую версию модуля.

Загрузка MySQLOO на сервер

После скачивания модуля MySQLOO необходимо разместить соответствующий файл .dll в директории вашего сервера Garry's Mod:

  1. Перейдите в папку /garrysmod/lua/bin/ на вашем сервере. Создайте папку bin, если её не существует.
  2. Загрузите соответствующий файл MySQLOO в эту папку.

Убедитесь, что вы используете правильную версию модуля в зависимости от ОС и битности сервера (32bit или 64bit).

Настройка MySQL в DarkRP

Подключение базы данных

После установки модуля нужно настроить DarkRP для работы с базой данных MySQL.

  1. Откройте файл mysql.lua, который находится по пути /garrysmod/addons/darkrpmodification/lua/darkrp_config/.

  2. Найдите и раскомментируйте следующие строки, заменив их на ваши данные для подключения к базе данных MySQL:

lua
--[[---------------------------------------------------------------------------
Database configuration
---------------------------------------------------------------------------]]
MySQLite_config = {}
MySQLite_config.EnableMySQL = true
MySQLite_config.Host = "localhost" -- IP вашего MySQL сервера
MySQLite_config.Username = "root" -- Имя пользователя MySQL
MySQLite_config.Password = "password" -- Пароль пользователя MySQL
MySQLite_config.Database_name = "darkrp" -- Название базы данных
MySQLite_config.Database_port = 3306 -- Порт MySQL, по умолчанию 3306
MySQLite_config.Preferred_module = "mysqloo"

Данные можно найти во вкладке "Базы данных" в игровой панели управления, подробнее о вкладке можно узнать тут: 💿 Базы данных

Пример настроек:

lua
--[[---------------------------------------------------------------------------
Database configuration
---------------------------------------------------------------------------]]
MySQLite_config = {}
MySQLite_config.EnableMySQL = true
MySQLite_config.Host = "db.snk.wtf" -- IP вашего MySQL сервера
MySQLite_config.Username = "senkowiki.acf78z1a" -- Имя пользователя MySQL
MySQLite_config.Password = "gbp_ced0PQV-jwp6nvz" -- Пароль пользователя MySQL
MySQLite_config.Database_name = "darkrp" -- Название базы данных
MySQLite_config.Database_port = 3306 -- Порт MySQL, по умолчанию 3306
MySQLite_config.Preferred_module = "mysqloo"

Тестирование подключения

После выполнения вышеуказанных шагов, проверьте, подключился ли успешно сервер к базе данных MySQL.

Запустите сервер и следите за консолью сервера. Если настройка выполнена корректно, то вы не увидите каких-либо ошибок, связанных с MySQL.

Готово! Вы успешно настроили базу данных MySQL, и теперь все данные игроков будут сохраняться в базу данных заместо файла sv.db.