Emplacements et boutique
Combien de personnages chaque joueur peut créer : emplacements gratuits, VIP par ACE, bonus par commande ou Tebex, et bouton boutique sur les emplacements verrouillés.
Le calcul
À chaque ouverture de la sélection, le nombre d’emplacements d’un joueur est :
Config.Slots.Default(1 par défaut) ;- plus le bonus de chaque ACE de
ServerConfig.Slots.Acesqu’il possède ; - plus les emplacements achetés, enregistrés en base ;
- au moins la valeur de
ServerConfig.Slots.Identifierss’il y figure ; - au maximum
Config.Slots.Max(4 par défaut).
Exemple : 1 gratuit, VIP (+2) et 1 acheté, soit 4 emplacements. Avec 3 achetés, il en aurait toujours 4 à cause du maximum.
La grille affiche Config.Slots.Max cartes : les personnages, les emplacements libres, puis les emplacements verrouillés.
VIP par permission ACE
Par défaut, l’ACE multicharacter.slots.vip donne 2 emplacements de plus :
ServerConfig.Slots.Aces = {
['multicharacter.slots.vip'] = 2
}
Donnez-la à un groupe dans server.cfg :
add_ace group.vip multicharacter.slots.vip allow
add_principal identifier.license:1a2b3c… group.vip
Plusieurs paliers sont possibles, leurs bonus s’additionnent. Un joueur qui perd son groupe perd ses emplacements à la sélection suivante.
Commande console
multichar_slots ajoute des emplacements achetés à un joueur. Elle fonctionne depuis la console serveur, txAdmin, RCON ou Tebex, pas en jeu.
multichar_slots 12 1
multichar_slots license:1a2b3c4d5e… 2
multichar_slots 12 0 set
12est l’ID serveur d’un joueur connecté. Sinon, utilisez sa licence Rockstar.- Le nombre s’ajoute au bonus actuel ; un nombre négatif en retire.
- Avec
set, le bonus est remplacé (0retire tout).
Livraison Tebex
Dans votre paquet Tebex, ajoutez une commande exécutée sur votre serveur :
multichar_slots {sid} 1
Totaux par identifiant
ServerConfig.Slots.Identifiers garantit un nombre minimum à certains comptes, par exemple au staff :
ServerConfig.Slots.Identifiers = {
['license:1a2b3c4d5e…'] = 4,
['discord:123456789012345678'] = 3
}
Tous les identifiants FiveM fonctionnent : license:, discord:, fivem:, steam:…
Depuis vos scripts
exports.mrpoulpi_multicharacter:AddSlots(source, 1)
exports.mrpoulpi_multicharacter:SetSlots('license:1a2b3c…', 0)
local total = exports.mrpoulpi_multicharacter:GetSlots(source)
Détails dans API et hooks.
Personnages en trop
Un joueur a 3 personnages et retombe à 1 emplacement (fin de VIP, par exemple) :
- avec
Config.Slots.LockExcessCharacters = false, ses 3 personnages restent jouables, il ne peut juste plus en créer ; - avec
true, les personnages des emplacements 2 et 3 sont verrouillés jusqu’à ce qu’il récupère ses emplacements.
Bouton boutique
Chaque emplacement verrouillé affiche « Accéder à la boutique ». Le bouton ouvre une fenêtre avec les offres de Config.Shop.Packages, puis la page choisie dans le navigateur du joueur.
Config.Shop = {
Enabled = true,
Url = 'https://ma-boutique.tebex.io',
Packages = {
{
id = 'vip',
title = 'Pack VIP',
description = '2 emplacements inclus + avantages',
icon = 'crown',
url = 'https://ma-boutique.tebex.io/package/1234567'
}
}
}
| Champ | Rôle |
|---|---|
id |
Identifiant libre. |
title, description |
Textes de l’offre. |
icon |
Icône (voir la liste). |
url |
Page à ouvrir. Sans url, c’est Config.Shop.Url. |
slot ou slots |
Réserve l’offre à un emplacement (slot = 2) ou à plusieurs (slots = { 3, 4 }). |
Pour proposer une offre différente par emplacement :
Packages = {
{ slot = 2, id = 'slot2', title = 'Deuxième personnage', description = 'Débloque l’emplacement 2', url = 'https://ma-boutique.tebex.io/package/111' },
{ slots = { 3, 4 }, id = 'slot34', title = 'Pack famille', description = 'Débloque les emplacements 3 et 4', url = 'https://ma-boutique.tebex.io/package/222' },
}
Les adresses doivent commencer par https://. Tant que l’adresse d’exemple votre-boutique.tebex.io est en place, le joueur voit « Boutique non configurée ». Pour masquer le bouton : Config.Shop.Enabled = false.