Установка и настройка DarkRP
Краткое руководство по установке и настройке DarkRP на вашем Garry's Mod сервере.
Вступление
Давно мечтали создать свой собственный DarkRP сервер? Проследуйте указанными нами шагами дабы начать работу со своим новоиспечённым DarkRP сервером как можно скорее.
Рекомендуем пользоваться боковым меню справа для навигации по статье, так как все конфиги мы расписали максимально подробно для более глубокой настройки сервера.
Загрузка аддонов
Первым делом нам нужно будет скачать файлы самого режима. DarkRP имеет два аддона, которые важны для его существования - 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).
deadtalk
Включает или выключает возможность говорить и использовать команды, будучи мертвым.
deadvoice
Включает или выключает возможность говорить через микрофон, будучи мертвым.
deathpov
Включает или выключает возможность видеть свою смерть от первого лица.
decalcleaner
Включает или выключает автоочистку всех декалей игроков.
disallowClientsideScripts
осторожно
Запрещает использование клиентских скриптов.
doorwarrants
Включает или выключает требование наличия ордера для вылома дверей.
dropmoneyondeath
Включает или выключает возможность выпадения денег при смерти.
Осторожно: может вызвать зависания на сервере.
droppocketarrest
Включает или выключает возможность выпадения вещей из карманов при аресте.
droppocketdeath
Включает или выключает возможность выпадения вещей из карманов при смерти.
dropweapondeath
Включает или выключает возможность выпадения текущего оружия при смерти.
dropspawnedweapons
Позволяет или запрещает выпадение оружия, с которым игрок спаунился.
dynamicvoice
Включает или выключает возможность того, чтобы только игроки в одной комнате могли слышать микрофон.
earthquakes
осторожно
Включает или выключает землетрясения.
enablebuypistol
Включает или выключает команду /buy
.
enforceplayermodel
Определяет, нужно ли принудительно использовать модели персонажей, соответствующие роли игрока.
globalshow
Определяет, нужно ли отображать информацию о игроках над их головами в игре.
ironshoot
Включает или выключает необходимость прицеливания для использования оружия.
showjob
Определяет, нужно ли отображать рабочую должность игрока над его головой в игре.
letters
Включает или выключает возможность написания писем друг-другу.
license
Включает или выключает необходимость наличия лицензии для того, чтобы подбирать оружие.
lockdown
Включает или выключает возможность начала и завершения комендантского часа для мэров с помощью команд /lockdown
и /unlockdown
.
Рекомендуется оставить значение по умолчанию.
lockpickfading
Включает или выключает возможность подбора замков на исчезающих дверях (Fading Doors).
logging
Включает или выключает логирование всего, что происходит на сервере.
lottery
Включает или выключает создание лотерей для мэров.
showname
Определяет, нужно ли отображать имя игрока над его головой в игре.
showhealth
Определяет, нужно ли отображать здоровье игрока над его головой в игре.
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
обратите внимание
Здоровье которое выдается игроку при спауне.
Значение по умолчанию: 100
startingmoney
обратите внимание
Сумма денег в кошельке при первом заходе на сервер.
Значение по умолчанию: 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 и ранги по умолчанию для игроков при присоединении.
Значение по умолчанию:
{
["STEAM_0:0:00000000"] = "superadmin",
["STEAM_0:0:11111111"] = "admin",
}
DisabledCustomModules
обратите внимание
Отключение модулей DarkRP.
Значение по умолчанию:
{
["hudreplacement"] = false,
["extraf4tab"] = false,
}
DisallowDrop
обратите внимание
Список оружия, которое игроки не смогут выбросить или потерять. Предметы, установленные на true
, никак нельзя потерять.
Значение по умолчанию:
{
["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
обратите внимание
Список оружия, с которым игроки начинают игру.
Значение по умолчанию:
{
"keys",
"weapon_physcannon",
"gmod_camera",
"gmod_tool",
"pocket",
"weapon_physgun",
}
CategoryOverride
обратите внимание
Переопределение категорий. Используется для переопределения категорий по умолчанию для всяких профессий, вещей и оружий.
Значение по умолчанию:
{
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
.
Значение по умолчанию:
{
"weapon_keypadchecker",
}
DefaultLaws
обратите внимание
Стандартные законы, которые не могут быть изменены в игре.
Значение по умолчанию:
{
"Do not attack other citizens except in self-defence.",
"Do not steal or break into people's homes.",
"Money printers/drugs are illegal.",
}
PocketBlacklist
обратите внимание
Список вещей, которые нельзя поместить в карман.
Значение по умолчанию:
{
["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
- запрещены.
Значение по умолчанию:
{
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
.
Если файла не существует, его нужно будет создать. В этот файл вы будете добавлять настройки для каждой профессии.
Пример создания простой профессии
Давайте рассмотрим пример создания базовой профессии — "Полицейский":
...
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
: Категория, к которой относится профессия. Позволяет группировать профессии в меню.
Настройка дополнительных параметров
Дополнительные модели игроков
Если вы хотите, чтобы профессия имела несколько моделей на выбор, просто добавьте их к ней:
model = {
"models/player/police.mdl",
"models/player/police_fem.mdl"
},
Добавление уникальных привилегий
Если вы хотите, чтобы у профессии были особые привилегии, например, доступ к определённым командам или правам, вы можете использовать параметр customCheck:
customCheck = function(ply) return ply:IsUserGroup("vip") end,
CustomCheckFailMsg = "Эта профессия доступна только для VIP игроков.",
Здесь customCheck проверяет, принадлежит ли игрок к группе "VIP". Если нет, он не сможет выбрать профессию.
Ограничения по здоровью и броне
Можно установить стартовое количество здоровья и брони для профессии:
health = 150,
armor = 50,
Уникальные свойства
Если профессии нужно добавить уникальные способности, вы можете это сделать с помощью параметра customCheck
и дополнительных условий в коде, который будет проверять эти способности.
Создание пользовательских профессий
Вы можете создавать свои профессии с любым параметрами. Например, создадим профессию "Мэр":
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 = "Государственные Службы"
})
Организация профессий в категории
Для удобства игроков, профессии можно группировать по категориям. Например, все профессии государственных служб могут быть объединены в категорию "Государственные Службы":
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:
- Перейдите в папку
/garrysmod/lua/bin/
на вашем сервере. Создайте папкуbin
, если её не существует. - Загрузите соответствующий файл MySQLOO в эту папку.
Убедитесь, что вы используете правильную версию модуля в зависимости от ОС и битности сервера (32bit или 64bit).
Настройка MySQL в DarkRP
Подключение базы данных
После установки модуля нужно настроить DarkRP для работы с базой данных MySQL.
Откройте файл
mysql.lua
, который находится по пути/garrysmod/addons/darkrpmodification/lua/darkrp_config/
.Найдите и раскомментируйте следующие строки, заменив их на ваши данные для подключения к базе данных MySQL:
--[[---------------------------------------------------------------------------
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"
Данные можно найти во вкладке "Базы данных" в игровой панели управления, подробнее о вкладке можно узнать тут: 💿 Базы данных
Пример настроек:
--[[---------------------------------------------------------------------------
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
.