Les bases du codage

  1. Centre d'aide
  2. Garry's Mod
  3. Les bases du codage

Tutoriel proposé par Liolny

Je vais vous présentez ici deux trois bases du codage sur du DarkRP !

Les métiers

Vous allez ici apprendre à ajouter un métier , ici nous ajouterons le métier "Vendeur D'armes".

Editez le fichier srcds/garrysmod/addons/darkrpmodification-master/lua/darkrp_customthings/jobs.lua

Ajoutez le code :

TEAM_VendeurDArmes = DarkRP.createJob("Vendeur d'armes", {
    color = Color(200, 110, 20, 255),
    model = {"models/player/Group01/Male_09.mdl" },
    description = [[Vous vendez des armes légères.]],
    weapons = {},
    command = "VendeurDarmes",
    max = 2,
    salary = GAMEMODE.Config.normalsalary *2 ,
    admin = 0,
    vote = false,
    hasLicense = false,
    CanPlayerSuicide = function(ply) return false end,
    candemote = true,
})


TEAM_VendeurDArmes = nom de votre "TEAM" permettra de régler des paramètres par la suite exemple. Exemple: allowed = "TEAM_VendeurDArmes" voudra dire que seul cette "TEAM" peut acheter cette arme ou entité.

DarkRP.createJob("Vendeur d'armes", { "Vendeur d'armes" = nom du métier qui apparaitra dans le menu F4.

color = Color(200, 110, 20, 255), = le code couleur. Vous pouvez aller sur ce lien pour les couleurs. Choisissez les couleurs : R (ici = 200) G (ici = 110) et B (ici = 20) laissez toujours "255" à la fin.

model = {"models/player/Group01/Male_09.mdl" }, = model du personnage. Vous pouvez trouvez vos models dans votre menu avec les objets (souvent = a) en bas , cliquez sur le petit "+" et choisissez l'addon ou le model vous intéresse. Puis faites un clic droit et "copy to clipboard" puis ctrl + c (sur le fichier jobs)

description = [[Vous vendez des armes légères.]], = description affichée dans le menu F4.

weapons = {""}, = Armes de base qu'aura la personne en rejoignant ce job. (menu a -> Armes -> Votre Addon D'arme -> clic droit -> copy to clipboard et mettez le dans {""} [attention] : si il y a plusieurs armes , séparez les avec des virgules {"m9k_arme1", "m9k_arme2", "m9k_arme3"}

command = "VendeurDarmes", = commande executée dans le chat. Ne jamais mettre deux fois la même commande.

max = 2, = nombre maximum de joueurs ayant le droit à ce job.

salary = GAMEMODE.Config.normalsalary * 2 , salaire du métier peut-être aussi :

salary = 500

salary = GAMEMODE.Config.normalsalary = le salaire par défault (sur mon serveur $60) * = (fois) 2 donc ce métier gagnera $120 si je configurais :

salary = GAMEMODE.Config.normalsalary + 2 il gagnerait $62 et

salary = GAMEMODE.Config.normalsalary - 2 il gagnerait $58

pour connaitre votre salary = GAMEMODE.Config.normalsalary éditez le fichier :

/srcds/garrysmod/addons/darkrpmodification-master/lua/darkrp_config/settings.lua

-- normalsalary - Sets the starting salary for newly joined players.
GM.Config.normalsalary = 60
(Ligne : 215)
Salaire de base sans modification : 45

admin = 0, = besoin des privilèges d'admin (si admin = 1, les joueurs ne pourront plus devenir ce job) (si admin = 2, seul les superadmin le pourront).

vote = false, = faut-il un vote pour devenir le métier choisi (false = non , true = oui)
hasLicense = false, = le métier a t-il une license d'arme (false = non , true = oui)
candemote = true, = peut-il être "demote" (false = non , true = oui)

CanPlayerSuicide = function(ply) return false end, est une fonction, celle-ci permet au joueur de ne pas pouvoir ce suicider dans ce job. Je vais vous en donner 3 autres utiles :

PlayerLoadout = function(ply) ply:SetHealth(150) ply:SetArmor(100) end,

RequiresVote = function(ply, job) return #team.GetPlayers(job) >= 7 end,

PlayerDeath = function(ply, weapon, killer)
ply:teamBan(TEAM_VendeurDarmes)
ply:changeTeam(GAMEMODE.DefaultTeam, true)
if killer:IsPlayer() then
DarkRP.notifyAll(0, 4, "Le vendeur d'armes est mort, paix à son âme.")
else
DarkRP.notifyAll(0, 4, "Le vendeur d'armes est mort paix à son âme.")
end
end

PlayerLoadout veut dire que le joueur qui choisit ce job aura 150 points de vie et 100 points d'armures.
RequiresVote veut dire qu'il faudra au minimum 7 votes pour être accepté ou non.
PlayerDeath veut dire qu'à la mort du joueur, le job lui sera retiré et il sera banni jusqu'au prochain restart.

Les armes


/srcds/garrysmod/addons/darkrpmodification-master/lua/darkrp_customthings/shipments.lua


AddCustomShipment("Python", "models/weapons/w_colt_python.mdl", "m9k_coltpython", 2999, 1, false, 0, false, {TEAM_ArmesLegeres})


Alors , compliqué ? Roh , mais nan !



"Python" = Nom de l'arme qui apparaitra dans le menu F4.
"models/weapons/w_colt_python.mdl" = Model de l'arme qui apparaitra dans le menu F4.
"m9k_coltpython" = nom de l'arme (n'apparait pas)
2999 = prix de l'arme
1 = nombre d'arme que contient la caisse.
false,o,false veut simplement dire qu'ici , les armes seront achetées par caisse.
{TEAM_VendeurDarmes} veut dire que seule cette team pourra acheter cette arme (d'où le but de la team vu dans le 1) Les métiers)


3) Les chats de groupes :
/srcds/garrysmod/addons/darkrpmodification-master/lua/darkrp_customthings/groupschats.lua

GAMEMODE:AddGroupChat(TEAM_FournisseurPolicier, TEAM_RecruePolicier, TEAM_Policier, TEAM_SousChefPolicier, TEAM_ChefPolicier, TEAM_MAYOR)

C'est très simple :
GAMEMODE:AddGroupChat(Tous les métiers que vous souhaitez séparés par des virgules.)


Exemple :
GAMEMODE:AddGroupChat(TEAM_Metier1, TEAM_Metier2, TEAM_Metier3)


4) Les agendas :

/srcds/garrysmod/addons/darkrpmodification-master/lua/darkrp_customthings/agendas.lua

Ici aussi c'est plutôt simple :
AddAgenda("Agenda gouvernemental", TEAM_MAYOR, {TEAM_FournisseurPolicier, TEAM_RecruePolicier, TEAM_Policier, TEAM_SousChefPolicier, TEAM_ChefPolicier, TEAM_MAYOR})


"Agenda gouvernemental" est le nom de l'agenda que vous verrez en haut à gauche.
TEAM_MAYOR est la team qui pourra éditer l'agenda via un /agenda message
et le reste des teams sont les teams à pouvoir visionner l'agenda sans le modifier.

Exemple :

AddAgenda("Agenda Des Fous", TEAM_EditeurdeLagenda1, TEAM_EditeurdeLagenda2, TEAM_EditeurdeLagenda3,{TEAM_LisantLagenda1, TEAM_LisantLagenda2, TEAM_LisantLagenda3, TEAM_LisantLagenda4})

Note : Les éditeurs peuvent le lire aussi, logique.