/// PIMPMYRUST PLUGIN
Player Events Messages
Guide des réglages de Player Events Messages pour cette version. Vérifiez la fiche du plugin avant de l'utiliser sur votre serveur.
Préparer votre fichier
- Vérifiez la version installée
Ce guide décrit Player Events Messages 0.1.2. Le configurateur doit utiliser cette même version.
- Récupérez les réglages
Cliquez sur Importer, puis Depuis mon serveur. Choisissez les fichiers et confirmez leur chargement. Sélectionner un serveur ne remplace pas le document ouvert. Vous pouvez aussi importer des fichiers de cet appareil ou une configuration depuis Mes projets.
- Modifiez et envoyez
Ajustez les réglages, corrigez les erreurs, puis utilisez Envoyer pour transmettre les fichiers au serveur choisi. Un conflit bloque l’envoi jusqu’à votre décision. Vous pouvez toujours exporter seulement les fichiers dont vous avez besoin.
Les envois au serveur disposent de sauvegardes privées. Enregistrer conserve votre travail dans Mes projets ; cette action n’envoie rien au serveur. Un téléchargement permet aussi de reprendre sans connexion.
Réglages de cette version
Général 5
- Délai entre deux annonces · secondes
- Nombre · obligatoire
Délai global par joueur entre deux annonces, en secondes. En LTS, la première annonce peut aussi attendre ce délai après le démarrage du serveur. Le délai par événement reste applicable.
Chemin JSON
(By player) Message Cooldown for any types (seconds)Minimum : 0 · Maximum : 31536000
- Délai par événement · secondes
- Nombre · obligatoire
Attente par joueur avant une nouvelle annonce du même événement : mort, élimination, connexion ou déconnexion.
Chemin JSON
(By player) Message Cooldown for each types (seconds)Minimum : 0 · Maximum : 31536000
- Commandes d’ouverture
- Liste · obligatoire
Commandes chat ouvrant le panneau de sélection des annonces, sans le / initial.
Chemin JSON
Commands for show UI - Annonces
- Valeur JSON · obligatoire
Catalogue des annonces. Chaque identifiant correspond à une clé du fichier de langue PlayerEventChatMessages.json.
Chemin JSON
Messages (go to lang directory for values) - Plugins Extensions (optional)
- Valeur JSON
Réglages supplémentaires conservés pour les intégrations de plugins. Laissez ce groupe vide sans intégration qui les utilise.
Chemin JSON
Plugins Extensions (optional)
Monnaie 4
- Plugin de monnaie
- Choix · obligatoire
Fournisseur utilisé pour payer les annonces. Custom appelle les fonctions du plugin indiquées ci-dessous.
Chemin JSON
Money → Money Plugin Type ('Economics' | 'ServerRewards' | 'Custom')Valeurs possibles : Economics, ServerRewards, Custom
- Plugin personnalisé
- Texte
Nom du plugin de monnaie chargé sur le serveur. Utilisé uniquement avec le fournisseur Custom.
Chemin JSON
Money → (Custom) Plugin Name - Fonction de consultation du solde
- Texte
Fonction du plugin Custom qui renvoie un solde entier à partir du SteamID du joueur. Cette LTS ne lit pas les soldes décimaux.
Chemin JSON
Money → (Custom) Plugin Hook => int/double/float Hook(string id) - Fonction de débit
- Texte
Fonction du plugin Custom qui débite le prix pour le SteamID reçu et renvoie si le paiement a réussi. Elle doit aussi accepter un montant nul pour les annonces gratuites.
Chemin JSON
Money → (Custom) Plugin Hook => bool Hook(string id, int val)
Categories 4
- Category Height
- Nombre
Hauteur d’un bouton de catégorie dans le panneau, en pixels.
Chemin JSON
UI → Categories → Category Height - Category Width
- Nombre
Largeur d’un bouton de catégorie dans le panneau, en pixels.
Chemin JSON
UI → Categories → Category Width - Category Font Size
- Nombre entier
Taille du nom des catégories : mort, élimination, connexion et déconnexion.
Chemin JSON
UI → Categories → Category Font Size - Is Vertical
- Activé / désactivé
Dispose les catégories en colonne. Conservez cette option en LTS : le placement horizontal peut dépasser le panneau par défaut.
Chemin JSON
UI → Categories → Is Vertical
Icons 3
- Money Icon Url
- Texte
Adresse directe de l’image indiquant le prix ou le solde.
Chemin JSON
UI → Icons → Money Icon Url - New Icon Url
- Texte
Adresse directe de l’icône affichée pour une annonce nouvelle pour le joueur.
Chemin JSON
UI → Icons → New Icon Url - Vip Icon Url
- Texte
Adresse directe de l’icône signalant les annonces réservées aux VIP.
Chemin JSON
UI → Icons → Vip Icon Url
Messages 7
- Message Item Height
- Nombre
Hauteur de chaque carte d’annonce dans le catalogue, en pixels.
Chemin JSON
UI → Messages → Message Item Height - Max Message Per Line
- Nombre
Nombre de cartes d’annonce affichées sur une même ligne. Augmenter ce nombre réduit leur largeur.
Chemin JSON
UI → Messages → Max Message Per Line - Message Margin Height
- Nombre
Espacement vertical entre les lignes de cartes d’annonce, en pixels.
Chemin JSON
UI → Messages → Message Margin Height - Message Margin Width
- Nombre
Espacement horizontal entre les cartes d’annonce, en pixels.
Chemin JSON
UI → Messages → Message Margin Width - Message Font Size
- Nombre entier
Taille du texte traduit affiché dans les cartes d’annonce.
Chemin JSON
UI → Messages → Message Font Size - Icon Ratio (VIP, New, Money)
- Nombre
Multiplicateur de taille des icônes VIP, nouvelle annonce et prix. Le plugin utilise des tailles de base fixes de 15 et 10 pixels.
Chemin JSON
UI → Messages → Icon Ratio (VIP, New, Money) - Price font size
- Nombre entier
Taille du prix affiché sur les cartes d’annonce payantes.
Chemin JSON
UI → Messages → Price font size
Money Top 2
- Money Icon Ratio
- Nombre
Part de la hauteur du bandeau de solde occupée par son icône.
Chemin JSON
UI → Money Top → Money Icon Ratio - Money Text Size
- Nombre entier
Taille du texte affichant le solde du joueur.
Chemin JSON
UI → Money Top → Money Text Size
Title 2
- Title Font Size
- Nombre entier
Taille du titre du panneau. Vérifiez que les traductions longues restent dans son cadre.
Chemin JSON
UI → Title → Title Font Size - Title Font
- Texte
Nom de la police Rust utilisée pour le titre du panneau, par exemple robotocondensed-bold.ttf.
Chemin JSON
UI → Title → Title Font
Categories Rect 8
- X Size Min
- Nombre
Décalage horizontal du bord gauche, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Categories Rect → X Size Min - Y Size Min
- Nombre
Décalage vertical du bord inférieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Categories Rect → Y Size Min - X Size Max
- Nombre
Décalage horizontal du bord droit, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Categories Rect → X Size Max - Y Size Max
- Nombre
Décalage vertical du bord supérieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Categories Rect → Y Size Max - Position X
- Nombre
Ancrage horizontal dans le parent : 0 à gauche, 0,5 au centre, 1 à droite. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Categories Rect → Position X - Position Y
- Nombre
Ancrage vertical dans le parent : 0 en bas, 0,5 au centre, 1 en haut. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Categories Rect → Position Y - Width
- Nombre
Largeur calculée par le plugin : X Size Max moins X Size Min. Modifiez les bords pour changer la largeur.
Chemin JSON
UI → Rects → Categories Rect → Width - Height
- Nombre
Hauteur calculée par le plugin : Y Size Max moins Y Size Min. Modifiez les bords pour changer la hauteur.
Chemin JSON
UI → Rects → Categories Rect → Height
Close Rect 8
- X Size Min
- Nombre
Décalage horizontal du bord gauche, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Close Rect → X Size Min - Y Size Min
- Nombre
Décalage vertical du bord inférieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Close Rect → Y Size Min - X Size Max
- Nombre
Décalage horizontal du bord droit, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Close Rect → X Size Max - Y Size Max
- Nombre
Décalage vertical du bord supérieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Close Rect → Y Size Max - Position X
- Nombre
Ancrage horizontal dans le parent : 0 à gauche, 0,5 au centre, 1 à droite. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Close Rect → Position X - Position Y
- Nombre
Ancrage vertical dans le parent : 0 en bas, 0,5 au centre, 1 en haut. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Close Rect → Position Y - Width
- Nombre
Largeur calculée par le plugin : X Size Max moins X Size Min. Modifiez les bords pour changer la largeur.
Chemin JSON
UI → Rects → Close Rect → Width - Height
- Nombre
Hauteur calculée par le plugin : Y Size Max moins Y Size Min. Modifiez les bords pour changer la hauteur.
Chemin JSON
UI → Rects → Close Rect → Height
Content Rect 8
- X Size Min
- Nombre
Décalage horizontal du bord gauche, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Content Rect → X Size Min - Y Size Min
- Nombre
Décalage vertical du bord inférieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Content Rect → Y Size Min - X Size Max
- Nombre
Décalage horizontal du bord droit, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Content Rect → X Size Max - Y Size Max
- Nombre
Décalage vertical du bord supérieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Content Rect → Y Size Max - Position X
- Nombre
Ancrage horizontal dans le parent : 0 à gauche, 0,5 au centre, 1 à droite. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Content Rect → Position X - Position Y
- Nombre
Ancrage vertical dans le parent : 0 en bas, 0,5 au centre, 1 en haut. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Content Rect → Position Y - Width
- Nombre
Largeur calculée par le plugin : X Size Max moins X Size Min. Modifiez les bords pour changer la largeur.
Chemin JSON
UI → Rects → Content Rect → Width - Height
- Nombre
Hauteur calculée par le plugin : Y Size Max moins Y Size Min. Modifiez les bords pour changer la hauteur.
Chemin JSON
UI → Rects → Content Rect → Height
Top Rect 8
- X Size Min
- Nombre
Décalage horizontal du bord gauche, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Top Rect → X Size Min - Y Size Min
- Nombre
Décalage vertical du bord inférieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Top Rect → Y Size Min - X Size Max
- Nombre
Décalage horizontal du bord droit, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Top Rect → X Size Max - Y Size Max
- Nombre
Décalage vertical du bord supérieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Top Rect → Y Size Max - Position X
- Nombre
Ancrage horizontal dans le parent : 0 à gauche, 0,5 au centre, 1 à droite. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Top Rect → Position X - Position Y
- Nombre
Ancrage vertical dans le parent : 0 en bas, 0,5 au centre, 1 en haut. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Top Rect → Position Y - Width
- Nombre
Largeur calculée par le plugin : X Size Max moins X Size Min. Modifiez les bords pour changer la largeur.
Chemin JSON
UI → Rects → Top Rect → Width - Height
- Nombre
Hauteur calculée par le plugin : Y Size Max moins Y Size Min. Modifiez les bords pour changer la hauteur.
Chemin JSON
UI → Rects → Top Rect → Height
Window Rect 8
- X Size Min
- Nombre
Décalage horizontal du bord gauche, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Window Rect → X Size Min - Y Size Min
- Nombre
Décalage vertical du bord inférieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Window Rect → Y Size Min - X Size Max
- Nombre
Décalage horizontal du bord droit, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Window Rect → X Size Max - Y Size Max
- Nombre
Décalage vertical du bord supérieur, en pixels depuis le point d’ancrage.
Chemin JSON
UI → Rects → Window Rect → Y Size Max - Position X
- Nombre
Ancrage horizontal dans le parent : 0 à gauche, 0,5 au centre, 1 à droite. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Window Rect → Position X - Position Y
- Nombre
Ancrage vertical dans le parent : 0 en bas, 0,5 au centre, 1 en haut. Les décalages des bords s’y ajoutent.
Chemin JSON
UI → Rects → Window Rect → Position Y - Width
- Nombre
Largeur calculée par le plugin : X Size Max moins X Size Min. Modifiez les bords pour changer la largeur.
Chemin JSON
UI → Rects → Window Rect → Width - Height
- Nombre
Hauteur calculée par le plugin : Y Size Max moins Y Size Min. Modifiez les bords pour changer la hauteur.
Chemin JSON
UI → Rects → Window Rect → Height
Colors 7
- Surface
- Texte
Couleur des surfaces des cartes. Format RGBA Rust de 0 à 1 ; la dernière valeur règle l’opacité.
Chemin JSON
UI → Theme → Colors → Surface - Background
- Texte
Couleur du fond du panneau. Format RGBA Rust de 0 à 1 ; la dernière valeur règle l’opacité.
Chemin JSON
UI → Theme → Colors → Background - TextPrimary
- Texte
Couleur du texte principal. Format RGBA Rust de 0 à 1 ; la dernière valeur règle l’opacité.
Chemin JSON
UI → Theme → Colors → TextPrimary - TextOnSelected
- Texte
Couleur du texte de l’annonce sélectionnée. Format RGBA Rust de 0 à 1 ; la dernière valeur règle l’opacité.
Chemin JSON
UI → Theme → Colors → TextOnSelected - Primary
- Texte
Ancienne couleur conservée dans le fichier ; le rendu LTS 0.1.2 ne l’utilise pas.
Chemin JSON
UI → Theme → Colors → Primary - Selected
- Texte
Couleur du contrôle sélectionné. Format RGBA Rust de 0 à 1 ; la dernière valeur règle l’opacité.
Chemin JSON
UI → Theme → Colors → Selected - CloseButton
- Texte
Couleur du bouton de fermeture. Format RGBA Rust de 0 à 1 ; la dernière valeur règle l’opacité.
Chemin JSON
UI → Theme → Colors → CloseButton
Instructions du plugin
PLAYER EVENTS MESSAGES — STABLE 0.1.2
Ce guide concerne uniquement la version Codefling 0.1.2 et son interface native. PimpMyCUI, les packs 0.2.0, le mode aléatoire, les conditions de cause/arme/distance, pem.grant et pem.receipt ne font pas partie de cette version.
INSTALLATION ET FICHIERS Installer PlayerEventChatMessages.cs dans oxide/plugins. Configuration : oxide/config/PlayerEventChatMessages.json. Langues : oxide/lang/fr/PlayerEventChatMessages.json et, si vous l'écrivez, oxide/lang/en/PlayerEventChatMessages.json. Données joueur : oxide/data/PlayerEventChatMessages/user_<steamid64>.json. Sauvegarder ces fichiers avant remplacement ; ne jamais remplacer les données joueur par un exemple de configuration ou par des données plus anciennes.
Le Default() du code 0.1.2 initialise un catalogue vide. La reconstruction generated-default.json le représente ; ce n'est pas un fichier observé en jeu. Le ZIP fourni contient séparément supplied.json, avec 43 messages configurés, et lang/fr.json, leurs textes français. L'anglais fourni est vide. Utiliser config et langue ensemble, ou remplir explicitement les quatre catégories avant d'ouvrir le panneau : son ancien rendu suppose une catégorie présente. Les fichiers fournis ne sont pas fusionnés automatiquement avec votre config.
PERMISSIONS ET OUVERTURE PlayerEventChatMessages.Default : permission vérifiée par les hooks d'annonces. PlayerEventChatMessages.VIP : accès aux messages réservés VIP. PlayerEventChatMessages.UnlimitedCooldown : contourner les délais. Aucune permission PlayerEventChatMessages.Admin n'est enregistrée en 0.1.2. Exemple console : oxide.grant group default PlayerEventChatMessages.Default. Les alias d'ouverture par défaut sont /pevent et /pevent_show, configurables dans Commands for show UI. Ils ouvrent la catégorie élimination (PlayerKill) ; ils ne proposent pas l'argument de catégorie du candidat 0.2.0. La commande d'ouverture historique ne contrôle pas uniformément la permission Default ; ce guide ne lui attribue pas les protections du candidat.
CHOIX ET ACHATS Les quatre catégories sont PlayerDead, PlayerKill, PlayerConnect, PlayerDisconnect. Le joueur choisit un message fixe par catégorie. Cliquer à nouveau le même choix le désélectionne ; il n'existe pas de réglages annonces ON/OFF et aléatoire séparés. Une annonce sans choix n'est pas émise. Obtention.Price (clé JSON Price (0 => free)) définit le prix. Exclusive and Free For VIP réserve un message aux VIP et l'accorde sans achat. Le prix zéro ne garantit pas une attribution automatique aux joueurs ordinaires : l'initialisation de leurs messages est vide dans cette source historique.
Money choisit Economics (par défaut), ServerRewards ou Custom ; pas de Money.Enabled. Le panneau natif consulte le solde à l'ouverture, même si les prix sont zéro : le fournisseur configuré doit donc être présent et testé. Economics utilise Balance/Withdraw ; ServerRewards utilise CheckPoints/TakePoints. Custom déclare un nom de plugin, un hook solde(string id) et un hook retrait (string id, int val). L'initialisation de ce mode doit être vérifiée sur le serveur ; ce guide ne promet pas que tous les retours numériques sont pris en charge. Le global est configuré à 1800 secondes par joueur, le délai par catégorie à 5. Ces délais historiques ne sont ni les nouveaux défauts 15/30 ni des délais persistés du candidat. Données modifiées sauvegardées au server save / unload.
COMMANDES D'ADMINISTRATION HISTORIQUES /peventmessage_add <message-id> : accorder au joueur administrateur qui la tape. /peventmessage_enable <message-id> : choisir/désélectionner pour ce même joueur. Ces commandes vérifient IsAdmin ; elles n'acceptent pas une cible steamid. Les commandes console peventmessage_showcat/clickmessage/buymessage/clicknew sont des callbacks du panneau, pas une API administrative distante recommandée. Aucun octroi distant API_GrantMessage ni journal de reçus durable en 0.1.2.
TEXTES ET IDENTIFIANTS La clé du catalogue est l'ID de langue : conserver les IDs déjà achetés/sélectionnés. Supplied : 1–12 mort, 13–22 élimination, 23–33 connexion, 34–43 déconnexion. Ajouter un nouvel ID nécessite son entrée de configuration et ses textes de langue. <owner_name> : toutes catégories ; <victim_name>/<kill_type> : élimination ; <death_type> : mort. Le code appelle actuellement mort avec Global et kill avec Distance : ce ne sont pas des circonstances réellement détectées. <killer_name>, <weapon_name>, <weapon> et <distance> ne sont pas substitués ici. L'ancien Lang() utilise string.Format : doubler les accolades littérales {{ et }}. Les textes français fournis et leurs rich text sont conservés, pas réécrits. Une traduction anglaise doit être rédigée/importée explicitement : aucun pack EN n'est livré par la stable. Ne pas utiliser les références UI 0.2.0 comme baseline.
APPARENCE ET CUSTOMWINDOW UI règle le panneau natif : rects, titre, catégories, icônes, messages, thème. Width/Height des rects sont calculés depuis X/Y Size Min/Max dans le code : modifier les dimensions Min/Max, pas seulement les copies Width/Height du JSON. CustomWindow existe dans cette version historique, option désactivée par défaut. Son activation exige le plugin et les WindowName/PageName/TabName configurés ; ne pas activer une intégration absente en supposant un rendu de secours. Le retrait de CustomWindow concerne le candidat 0.2.0, pas le ZIP stable inchangé.
UTILISATION DU HUB Importer votre config/langues, modifier, puis choisir les fichiers à exporter. L'exemple fourni remplace les fichiers annoncés après confirmation du brouillon. Conserver les autres fichiers serveur, notamment les achats/données joueur. Le Hub ne simule pas le rendu natif 0.1.2 : l'aperçu PimpMyCUI concerne 0.2.0. Formulaires consultables sans compte ; sorties JSON/ZIP/JSON avancé soumises à la politique d'achat Codefling du Hub. Aucun checkout ni déploiement serveur ajouté.
Installer les fichiers
Avec un serveur connecté, cliquez sur Envoyer dans le configurateur. Le résultat indique si les fichiers ont été envoyés et si le plugin a été rechargé. Sans RCON, rechargez le plugin depuis votre panneau serveur après l’envoi.
Sans serveur connecté : Conservez une copie des fichiers actuels. Placez chaque fichier exporté dans le dossier indiqué avant l’export, ou reprenez les chemins du ZIP. Ne placez pas les données ou les traductions dans le dossier config.
Suivez les instructions du plugin ci-dessus pour ses dépendances et son rechargement. L’export ne connecte pas le site à votre serveur.