Dans ce guide, nous allons voir comment créer un serveur DarkRP et plus particulièrement l'installation & la configuration.
DarkRP est l’un des gamemodes les plus connues et les plus joués de GMod. Il vous permet de vivre des aventures de façon RolePlay tout en incarnant le personnage que vous voulez.
Installation du gamemode DarkRP
Nous allons donc voir comment installer le gamemode sur votre serveur.
- Rendez vous sur votre panel de gestion.
- Allez dans
Plugins
. - Installez
DarkRP
etDarkRP Modification
. - Redémarrez votre serveur.
srcds/garrysmod/addons/darkrpmodification/lua/
.Configuration du darkrp_config
Configurer le disabled_default.lua
C’est dans ce fichier que vous pourrez désactiver certaines fonctionnalités ainsi que les objets et autres paramètres de base dans le gamemode. (ex: désactiver les jobs par défaut)
Pour désactiver certaines choses par défaut il vous suffit de remplacer false
par true
.
Configurer le licenseweapons.lua
Ce fichier permet d’indiquer au gamemode quels armes n’ont pas besoin de licence d’arme.
Pour ajouter une arme, ajoutez une ligne de ce style, où class
est l'ID de l’arme disponible en faisant un clique droit sur l’arme en jeu puis “Copier dans le presse-papiers” :
GM.NoLicense["class"] = true
Configurer le mysql.lua
Ce fichier vous permet de sauvegarder les données en rapport avec le gamemode directement sur une base de donnée externe. Si vous n'avez pas encore votre base de donnée: Hébergement Web + SQL.
Ne touchez pas au fichier si vous ne souhaitez pas utiliser une base de donnée externe.
RP_MySQLConfig.EnableMySQL = true RP_MySQLConfig.Host = "sql.mtxserv.com" RP_MySQLConfig.Username = "w_XXXXX" RP_MySQLConfig.Password = "votre mot de passe" RP_MySQLConfig.Database_name = "XXXXX_sql" RP_MySQLConfig.Database_port = 3306 RP_MySQLConfig.Preferred_module = "mysqloo" RP_MySQLConfig.MultiStatements = false
- Remplacez les
XXXXX
par les chiffres présent sur le dashboard de votre site web. - Rendez vous sur le panel de gestion de votre serveur.
- Allez dans
Plugins
. - Installez
MySQLOO
. - Redémarrer votre serveur.
Configurer le settings.lua
Ce fichier vous permet de changer tous les paramètres du gamemodes. Comme par exemple, retirer les lois par défaut, activer le spawn des véhicules, des npcs, etc.
Configuration du darkrp_customthings
Configurer le agendas.lua
Ce fichier permet d’ajouter pour certain job la possibilité d’avoir un agenda en haut à gauche de l’écran. Dans l’exemple ci-dessous TEAM_CHIEF
est le seul à pouvoir éditer l’agenda et TEAM_POLICE
peut voir l’agenda.
Vous pouvez aussi autoriser l’accès de l’agenda de la police pour une autre TEAM que la TEAM_POLICE
:
- Ajoutez à la suite du
TEAM_POLICE
, une virgule. - Et pour finir, la TEAM que vous voulez mettre.
AddAgenda("Agenda de la police", TEAM_CHIEF, {TEAM_POLICE})
Vous pouvez utiliser ce site pour ne pas avoir d’erreur.
Configurer le ammo.lua
Ce fichier permet d’ajouter des munitions pour les armes. Il vous suffit de copier le code ci dessous, de le coller dans le ammo.lua
.
- Vous devrez modifier le type de munition, disponible en allant dans le fichier de l’arme ayant besoin des munitions.
- Cherchez
SWEP.Primary.Ammo
et récupérez le type de munition entre guillemets. - Modifiez le prix à votre guise.
- Modifiez le nombre de munitions donné.
DarkRP.createAmmoType("m9k_ammo_357", { -- Le type de munition name = "M9K 357 ammo", -- Le nom donné dans le F4 model = "models/Items/357ammobox.mdl", -- Le modèle visible dans le F4 price = 100, -- Le prix amountGiven = 20 --Le nombre de munition })
Vous pouvez utiliser ce site pour ne pas avoir d’erreur.
Configurer le categories.lua
Ce fichier permet d’ajouter des catégories pour les jobs, les armes, les munitions, les entitées et pour les véhicules.
- Copiez le code ci-dessous.
- Collez le dans
categories.lua
. - Modifiez le nom de la catégorie.
- Modifiez le type de catégorie.
- Modifiez la couleur.
- Modifiez l’ordre de la catégorie.
DarkRP.createCategory{ name = "Citizens", -- Le nom de la catégorie. categorises = "jobs", -- Ce qu'il catégorise doit être l'un des ses mots: "jobs", "entities", "shipments", "weapons", "vehicles", "ammo". startExpanded = true, -- Indique si la catégorie est développé lorsque vous ouvrez le F4. color = Color(0, 107, 0, 255), -- La couleur de la catégorie. canSee = function(ply) return true end, -- Facultatif: si le joueur peut voir cette catégorie. sortOrder = 100, -- facultatif: avec cela, vous pouvez décider où se trouve votre catégorie. Des nombres bas pour le mettre en haut, des nombres élevés pour le mettre en bas. }
Configurer le demotegroups.lua
Ce fichier permet de faire en sorte que lorsqu’un membre d’un groupe est rétrogradé, il sera banni de chaque emploi dans le groupe.
Par exemple, si une personne est ban de la TEAM_1
, il sera aussi banni de la TEAM_2
.
Vous pouvez aussi rajouter une TEAM autre que la TEAM_1
ou la TEAM_2
.
- Copiez le code ci dessous.
- Collez le dans
demotegroups.lua
. - Modifiez le nom.
- Modifiez la TEAM.
DarkRP.createDemoteGroup("Test", {TEAM_1, TEAM_2})
Configurer le doorgroups.lua
Vous en avez marre d’ajouter un à un l’accès aux portes pour les jobs ?
Ce fichier est fait pour vous !
Il vous permet tout simplement de regrouper tous les jobs que vous souhaitez en un seul groupe pour les portes !
- Copiez le code ci dessous.
- Collez le dans
doorgroups.lua
. - Modifiez le nom.
- Modifiez la TEAM.
AddDoorGroup("Police", TEAM_CHIEF, TEAM_POLICE)
Configurer le entities.lua
Ce fichier permet d’ajouter des entités dans le F4. Vous pouvez ajouter n’importe quelle entité tout en suivant le code et les indication ci dessous.
- Modifiez l’ID de l’entité, disponible en faisant un clique droit sur l’entité en jeu puis “Copier dans le presse-papiers”.
- Modifiez le modèle, que vous pourrez retrouver dans vos contents d’addons.
- Modifiez le prix à votre guise.
- Modifiez le nombre d’entité maximum que la personne peut acheter (applicable uniquement sur cet entité).
- Modifiez la commande de l’entité, elle doit être différente d’une autre commande d’une autre entité.
DarkRP.createEntity("Machine à cigarette", { -- Le nom de l'entité ent = "cf_cigarette_machine", -- L'ID de l'entité model = "models/props_wasteland/laundry_washer003.mdl", -- Le modèle de l'entité, visible dans le F4 price = 596, -- Le prix de l'entité, visible dans le F4 max = 1, -- Le nombre d'entité maximum que la personne peut acheter cmd = "buymachineciga", -- La commande exécuter quand une personne achète l'entité, elle doit être différente d'une autre commande d'entité allowed = {TEAM_1} -- facultatif: permet l'achat d'une entité pour qu'une seul TEAM })
Configurer le food.lua
Ce fichier permet d’ajouter de la nourriture pour le cuisinier.
ATTENTION ! Le job cuisinier doit contenir le morceau de code cook = true
. Sinon, le job cuisinier ne pourra pas voir la catégorie food dans votre menu F4.
- Modifiez le nom de la nourriture.
- Modifiez le modèle, que vous pourrez retrouver dans vos contents d’addons.
- Modifiez l’
energy
, c’est à dire: les points de faim donné par la nourriture. - Modifiez le prix à votre guise.
- Modifiez l’accès de cette nourriture à une certaine TEAM.
DarkRP.createFood("Pizza", { -- Le nom de la nourriture model = "models/foodnhouseholditems/pizzabox.mdl", --Le modèle de la nourriture, visible dans le F4 energy = 52, -- Les points de nourriture donné par la nourriture price = 3200, -- Le prix allowed = {TEAM_COOK} -- Facultatif: permet l'achat d'une entité pour qu'une seul TEAM })
Configurer le groupchats.lua
Vous n’avez pas de radio pour les jobs de police et vous voulez que certains jobs puissent communiquer entre eux via le chat ?
Ce fichier est fait pour vous! Il vous permet tout simplement de regrouper tous les jobs que vous souhaitez en un seul groupe pour la communication via le chat.
- Copiez le code ci dessous.
- Collez le dans le fichier
groupchats.lua
. - Modifiez les TEAM.
GAMEMODE:AddGroupChat(TEAM_1, TEAM_2)
Comme vous pouvez le voir, la TEAM_1
peut communiquer avec la TEAM_2
, via le chat.
Vous pouvez utiliser ce site pour ne pas avoir d’erreur.
Configurer le jobs.lua
Ce fichier vous permet d’implémenter des jobs autre que ceux de base du DarkRP.
Les jobs que vous allez ajouter doivent être en dessous de la ligne 17 (strictement)
- Votre job doit disposer d’une TEAM et d’un nom UNIQUE.
- D’une couleur pour le job.
- Optionnel: d’une catégorie si vous en avez créé une auparavant.
- D’un playermodel, qu’on peut retrouver ici, en décompilant un addon de playermodel avec ce site, ou tout simplement, In Game, dans votre liste des contents. Les playermodels sont à mettre entre guillemets suivie d’une virgule.
- Il vous faudra aussi une description.
- De quelques armes, à mettre entre guillemets et en les séparants avec une virgule, si vous souhaitez en mettre plusieurs.
- D’une commande, qui doit ABSOLUMENT être unique, elle vous servira plus tard pour mettre des spawns de jobs.
- D’un nombre maximum de personnes qui peuvent rejoindre ce job.
- D’un salaire, qui est par défaut toutes les 2 minutes.
- De savoir si il a besoin d’un vote lors de la prise du job.
- De savoir si le job à une licence d’arme.
TEAM_POMPIER = DarkRP.createJob("Pompier", { --TEAM (doit toujours être unique) + Nom du job color = Color(255, 165, 51, 255), --Couleur du job category = "Other", -- Catégorie du job model = {"models/player/portal/male_02_fireman.mdl", --Modèle disponible pour le job "models/player/portal/male_04_fireman.mdl", "models/player/portal/male_05_fireman.mdl", "models/player/portal/male_05_fireman.mdl", "models/player/portal/male_06_fireman.mdl", "models/player/portal/male_08_fireman.mdl", "models/player/portal/male_09_fireman.mdl"}, description = [[You have to turn off fires.]], --Description du job weapons = {"fire_extinguisher", "fire_axe"}, -- Arme pour le job command = "pompier", -- Commande du job (doit toujours être unique) max = 3, -- Nombre de joueurs maximum dans le job (0 = pas de limite) salary = 45, -- Salaire du job admin = 0, -- Job admin ? (0 = non, 1 = admin et +, 2 = superadmin) vote = false, -- Nécessite un vote pour prendre le job ? hasLicense = false, -- Possède une license d’arme de base ? })
Si vous utilisez une autre TEAM que TEAM_CITIZEN
alors changer la TEAM du code ci-dessous (présent à la fin du fichier) par la nouvelle TEAM.
GAMEMODE.DefaultTeam = TEAM_CITIZEN
GAMEMODE.CivilProtection = { [TEAM_POLICE] = true, [TEAM_CHIEF] = true, [TEAM_MAYOR] = true, }
- Éditez le fichier
srcds/garrysmod/addons/darkrpmodification/lua/darkrp_config/disabled_defaults.lua
. - Recherchez dans le fichier la ligne
DarkRP.disabledDefaults["jobs"] = {
. - Juste en dessous de cette ligne, vous trouverez la liste des métiers de base.
Pour désactiver les jobs, passez la valeurfalse
àtrue
.DarkRP.disabledDefaults["jobs"] = { ["chief"] = true, ["citizen"] = true, ["cook"] = true, --Hungermod only-- ["cp"] = true, ["gangster"] = true, ["gundealer"] = true, ["hobo"] = true, ["mayor"] = true, ["medic"] = true, ["mobboss"] = true, }
- Sauvegardez le fichier et redémarrez votre serveur.
- Connectez-vous à votre serveur, vous ne devez plus voir les métiers de base DarkRP.
Configurer le shipments.lua
Ce fichier vous permet d'ajouter des armes achetables via le F4.
L’ID de l’arme est disponible en faisant un clique droit sur l’arme en jeu puis “Copier dans le presse-papiers”.
- Modifiez le nom de l’arme.
- Modifiez le modèle, que vous pourrez retrouver dans vos contents d’addons (le modèle doit être présent sur le serveur et quand vous le faîtes spawn il doit avoir de la physique).
- Modifiez l’id de l’arme.
- Optionnel: Ajoutez une catégorie.
- Modifiez le prix.
- Modifiez le nombre d’arme avec les shipment.
- Savoir si l’arme est vendu séparément.
- Modifiez le prix de l’arme vendu séparément.
- Ne pas faire apparaître une caisse contenant l’arme ?
- Optionnel: Ajoutez une TEAM qui peut seulement acheter une arme.
- Optionnel: Changez le model de la caisse d’arme.
DarkRP.createShipment("Grenade Aveuglante", { -- Nom de l’arme model = "models/shenesis/w_flashbang.mdl", -- Modèle de l’arme entity = "weapon_sh_flashbang", --ID de l’arme category = "Other", -- Catégorie de l’arme price = 9000, -- Le prix de l’arme (si noship = false et separate = false) amount = 1, -- Nombre d’arme avec le shipment (si noship = false et separate = false) separate = false, -- L’arme est vendu séparément ? (pas de caisse) pricesep = 1200, -- Le prix de l’arme vendu séparément noship = false, -- Pas de caisse d’arme ? allowed = {TEAM_GUN}, -- TEAM pouvant l’acheter shipmodel = "models/items/item_item_crate.mdl", --Modèle de la caisse d’arme })
Configuration du darkrp_language
De base, le darkrpmodification n’est pas traduit. C’est pour cela que nous vous proposons une traduction, celle-ci sera à remplacer dans le darkrp_language
. Vous devrez supprimer le fichier english.lua
, et remplacer celui-ci par le fichier ci-joint.
Traduire les armes du DarkRP (keys, arrest, ...)
Nous allons voir comment traduire le nom des armes de DarkRP. Pour cela rien de plus simple:
- Connectez vous au FTP.
- Allez dans
srcds/garrysmod/gamemode/darkrp/entities/weapons/
. - Accédez à une des armes et ouvrez le fichier
shared.lua
. - Modifiez la ligne
SWEP.PrintName
. - Modifiez maintenant ce qui est entre guillemet par le nom que vous voulez.
Et voilà une des armes est traduite il vous suffit maintenant de faire de même pour les autres !