Jobs Docs

kairo-jobs v1.3.0 dépendance : kairo-core Voir le produit

Présentation

Kairo Jobs gère les métiers : leurs grades, les salaires, la prise de service et les zones de travail. Tout se déclare dans un seul fichier de configuration.

Les salaires sont versés par Kairo Core à intervalle régulier, uniquement aux joueurs en service. Les zones (vestiaire, coffre, garage de service) sont créées automatiquement avec leurs points d'interaction.

Installation

  1. Télécharge l'archive depuis « Mes achats » et décompresse-la.
  2. Place le dossier kairo-jobs dans resources/[kairo]/ de ton serveur.
  3. Vérifie que kairo-core est démarré avant kairo-jobs dans ton server.cfg.
  4. Ajoute la ligne ensure kairo-jobs, puis redémarre le serveur. Les tables sont créées automatiquement au premier lancement.
server.cfg
# server.cfgensure kairo-coreensure kairo-jobs

Configuration

Chaque métier a un nom technique, un libellé, une liste de grades et un salaire par grade. Les zones utilisent des coordonnées vector3.

Le grade le plus élevé est considéré comme patron : il peut recruter, promouvoir et renvoyer depuis le menu du métier.

config.lua
-- config/jobs.luaConfig.PayInterval = 15 -- minutesJobs.mechanic = {    label  = 'Mécanicien',    grades = { 'Apprenti', 'Ouvrier', 'Chef' },    salary = { 120, 180, 260 },    zones  = {        duty  = vector3(-347.3, -133.6, 39.0),        stash = vector3(-339.8, -125.4, 39.0),    },}

API

Les exports s'appellent avec exports['kairo-jobs']:Nom(...). Les fonctions serveur ne sont jamais accessibles depuis le client.

GetJob

serveur
exports['kairo-jobs']:GetJob(source)

Renvoie le métier et le grade d'un joueur.

ParamètreTypeDescription
sourcenumberID serveur

Retour table { name, label, grade, gradeLabel, onDuty }

exemple.lua
local job = exports['kairo-jobs']:GetJob(source)if job.name == 'mechanic' and job.onDuty then    -- …end

SetJob

serveur
exports['kairo-jobs']:SetJob(source, name, grade)

Attribue un métier et un grade à un joueur.

ParamètreTypeDescription
sourcenumberID serveur
namestringNom technique du métier
gradenumberIndex du grade (1 = le plus bas)

Retour boolean

exemple.lua
exports['kairo-jobs']:SetJob(source, 'mechanic', 1)

SetDuty

serveur
exports['kairo-jobs']:SetDuty(source, onDuty)

Met un joueur en service ou hors service.

ParamètreTypeDescription
sourcenumberID serveur
onDutybooleantrue pour prendre son service

Retour rien

exemple.lua
exports['kairo-jobs']:SetDuty(source, true)

CountOnDuty

serveur
exports['kairo-jobs']:CountOnDuty(name)

Nombre de joueurs en service pour un métier. Pratique pour exiger un minimum de policiers avant un braquage.

ParamètreTypeDescription
namestringNom technique du métier

Retour number

exemple.lua
if exports['kairo-jobs']:CountOnDuty('police') < 2 then    return player:notify('Pas assez de policiers', 'error')end

Événements

kairo-jobs:jobChanged

serveur

Le métier ou le grade d'un joueur a changé.

exemple.lua
AddEventHandler('kairo-jobs:jobChanged', function(source, job, previous)end)

kairo-jobs:dutyChanged

serveur

Un joueur prend ou quitte son service.

exemple.lua
AddEventHandler('kairo-jobs:dutyChanged', function(source, job, onDuty)end)

kairo-jobs:paid

serveur

Un salaire vient d'être versé.

exemple.lua
AddEventHandler('kairo-jobs:paid', function(source, job, amount)end)

Commandes

CommandeDescription
/jobAffiche ton métier et ton grade.
/setjob <id> <métier> <grade>Change le métier d'un joueur (administration).

FAQ

Peut-on avoir plusieurs métiers ?

Un joueur a un métier principal à la fois. Pour un second emploi, déclare un métier de type secondaire (option secondary = true) : il n'est pas payé mais donne accès à ses zones.

Le salaire est-il versé hors service ?

Non. Seuls les joueurs en service reçoivent leur paie.