/// 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.3. 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 4
- Délai entre annonces
- Nombre
Temps minimum entre deux annonces d'un même joueur, toutes catégories confondues.
Chemin JSON
(By player) Message Cooldown for any types (seconds)Minimum : 0
- Délai d’une même catégorie
- Nombre
Délai commun utilisé pour les événements sans réglage individuel.
Chemin JSON
(By player) Message Cooldown for each types (seconds)Minimum : 0
- Commandes du panneau
- Liste · obligatoire
Commandes chat qui ouvrent le panneau joueur. Indiquez le nom sans slash ni argument.
Chemin JSON
Commands for show UI - Messages (go to lang directory for values)
- Valeur JSON · obligatoire
Annonces proposées aux joueurs, avec leur événement, leur prix et leur accès VIP. Le texte de chaque annonce se trouve dans les fichiers de langue.
Chemin JSON
Messages (go to lang directory for values)
Cooldown par événement 4
- Connexion
- Nombre
Délai minimum, en secondes, entre deux annonces de connexion pour un même joueur. Ce réglage remplace le délai général pour cet événement ; 0 supprime son attente.
Chemin JSON
(By player) Message Cooldown overrides by event (seconds) → PlayerConnectMinimum : 0
- Déconnexion
- Nombre
Délai minimum, en secondes, entre deux annonces de déconnexion pour un même joueur. Ce réglage remplace le délai général pour cet événement ; 0 supprime son attente.
Chemin JSON
(By player) Message Cooldown overrides by event (seconds) → PlayerDisconnectMinimum : 0
- Élimination
- Nombre
Délai minimum, en secondes, entre deux annonces de élimination pour un même joueur. Ce réglage remplace le délai général pour cet événement ; 0 supprime son attente.
Chemin JSON
(By player) Message Cooldown overrides by event (seconds) → PlayerKillMinimum : 0
- Mort
- Nombre
Délai minimum, en secondes, entre deux annonces de mort pour un même joueur. Ce réglage remplace le délai général pour cet événement ; 0 supprime son attente.
Chemin JSON
(By player) Message Cooldown overrides by event (seconds) → PlayerDeadMinimum : 0
Achats de messages 4
- Monnaie
- Choix · obligatoire
Plugin utilisé pour payer les messages. Les messages gratuits restent disponibles sans plugin de monnaie.
Chemin JSON
Money → Money Plugin Type ('Economics' | 'ServerRewards' | 'Custom')Valeurs possibles : Economics, ServerRewards, Custom
- Plugin monnaie
- Texte
Nom exact du plugin qui gère la monnaie, pour le fournisseur Custom uniquement.
Chemin JSON
Money → (Custom) Plugin Name - Hook de lecture du solde
- Texte
Hook qui reçoit le SteamID et retourne le solde du joueur.
Chemin JSON
Money → (Custom) Plugin Hook => int/double/float Hook(string id) - Hook de débit
- Texte
Hook qui reçoit le SteamID et le prix, débite le joueur et confirme la réussite par true.
Chemin JSON
Money → (Custom) Plugin Hook => bool Hook(string id, int val)
Apparence 1
- Disposition
- Choix · obligatoire
Compact : une liste. Cards : deux colonnes. Terminal : une liste numérotée. Chaque disposition affiche six messages par page.
Chemin JSON
UI → NativeTemplateValeurs possibles : compact, cards, terminal
Couleurs et dimensions 12
- Accent
- Texte · obligatoire
Couleur de la catégorie sélectionnée, du message actif et du bouton d’achat.
Chemin JSON
UI → Native → Accent - Fond du panneau
- Texte · obligatoire
Fond de la fenêtre et des boutons des messages disponibles.
Chemin JSON
UI → Native → Background - Fond des messages
- Texte · obligatoire
Fond du bandeau supérieur, des cartes et des catégories non sélectionnées.
Chemin JSON
UI → Native → Surface - Texte
- Texte · obligatoire
Couleur des annonces et du texte principal des boutons.
Chemin JSON
UI → Native → Text - Texte secondaire
- Texte · obligatoire
Couleur du solde, des prix, de la pagination et des libellés secondaires.
Chemin JSON
UI → Native → Muted - Séparateurs
- Texte · obligatoire
Couleur des séparateurs, des bordures de messages et des boutons indisponibles.
Chemin JSON
UI → Native → Border - Opacité du fond
- Nombre · obligatoire
Rend le fond du panneau transparent (0) ou opaque (1).
Chemin JSON
UI → Native → OpacityMinimum : 0 · Maximum : 1
- Position horizontale
- Nombre · obligatoire
Place le panneau sur l’écran. X : gauche (0) à droite (1). Y : bas (0) à haut (1).
Chemin JSON
UI → Native → CenterXMinimum : 0 · Maximum : 1
- Position verticale
- Nombre · obligatoire
Place le panneau sur l’écran. X : gauche (0) à droite (1). Y : bas (0) à haut (1).
Chemin JSON
UI → Native → CenterYMinimum : 0 · Maximum : 1
- Largeur
- Nombre entier · obligatoire
Largeur du panneau en pixels CUI.
Chemin JSON
UI → Native → WidthMinimum : 640 · Maximum : 1000
- Hauteur
- Nombre entier · obligatoire
Hauteur du panneau. Une police plus grande demande davantage de hauteur pour garder les six messages lisibles.
Chemin JSON
UI → Native → HeightMinimum : 540 · Maximum : 720
- Taille du texte
- Nombre entier · obligatoire
Taille du texte des messages et boutons du panneau.
Chemin JSON
UI → Native → FontSizeMinimum : 12 · Maximum : 18
Instructions du plugin
PLAYER EVENTS MESSAGES — 0.1.3 NATIVE
Bêta 0.1.3. La version LTS publiée sur Codefling reste la 0.1.2. Le téléchargement du plugin nécessite une connexion et un droit vérifié pour la version demandée. Consultez sa fiche pour les accès disponibles. Les exports de configuration restent accessibles sans achat du plugin. PimpMyCUI n'est pas nécessaire.
Cette version conserve le choix manuel des annonces de mort, élimination, connexion et déconnexion. Elle remplace le panneau par trois dispositions configurables : liste, cartes et terminal. Les nouvelles mécaniques et les templates PimpMyCUI de l’ancienne bêta 0.2.0 ne sont pas inclus. Cette ancienne bêta est retirée.
INSTALLATION NEUVE
- Placez oxide/plugins/PlayerEventChatMessages.cs sur votre serveur.
- Laissez le plugin générer sa configuration et ses fichiers de langue. Le configurateur permet ensuite de les modifier.
- Autorisez le groupe de votre choix : oxide.grant group default PlayerEventChatMessages.Default
- Les joueurs ouvrent le panneau avec /pevent ou /pevent_show.
- Choisissez une annonce dans chaque catégorie. Un achat débloque une annonce ; il ne la sélectionne pas automatiquement. Cliquer sur l'annonce sélectionnée la désactive pour cette catégorie.
Le catalogue neuf contient 36 annonces FR/EN : 9 par catégorie, dont 3 gratuites, 3 achetables et 3 VIP. Les annonces gratuites fonctionnent sans plugin monétaire. Economics est sélectionné par défaut ; sans lui, seuls les achats sont indisponibles. Pour utiliser ServerRewards, changez le fournisseur dans la section Money.
MISE À JOUR DEPUIS 0.1.2
- Sauvegardez votre configuration, vos langues et oxide/data/PlayerEventChatMessages.
- Remplacez UNIQUEMENT le fichier .cs. Ne copiez pas les JSON de l'archive par-dessus vos fichiers existants.
- Rechargez le plugin et vérifiez sa console. Une configuration, une langue ou une donnée joueur invalide est préservée ; le plugin ne la remplace pas.
- Vos IDs de messages, acquisitions, sélections et traductions restent conservés. Les nouvelles clés de langue sont ajoutées sans écraser vos textes.
Les 36 annonces de départ ne remplacent pas un catalogue existant. Ajoutez les messages voulus explicitement dans votre catalogue, avec des identifiants uniques et les textes correspondants dans les fichiers de langue UTF-8. Conservez les anciennes entrées et les identifiants encore acquis par des joueurs. Le téléchargement du plugin seul n’inclut pas nécessairement les fichiers annexes de l’archive source.
APPARENCE
Dans UI, NativeTemplate choisit compact, cards ou terminal. UI.Native règle les couleurs RGBA, l'opacité, la position, les dimensions et la taille du texte. Le configurateur PimpMyRust présente ces réglages avec un aperçu. Les anciens réglages UI restent dans les fichiers pour préserver une mise à jour, mais ne pilotent plus le nouveau panneau. Il n'y a pas de rendu ancien de secours. L'intégration CustomWindow a été retirée ; ses anciennes clés ne sont pas utilisées.
TEXTES ET PERMISSIONS
Les textes sont dans oxide/lang/fr/PlayerEventChatMessages.json et dans le fichier équivalent sous en. L'identifiant du message relie le catalogue à son texte. <owner_name> affiche le joueur ; <victim_name> est utilisable pour une élimination. Si vous ajoutez une autre langue et que son fichier est illisible, seuls les joueurs utilisant cette langue ne reçoivent pas l'annonce. Les autres la reçoivent, et le cooldown s'applique dès qu'au moins un envoi a réussi. La console indique la langue et le message concernés. Réparez le fichier : le plugin ne le remplace pas par une traduction par défaut. Les anciens <death_type> et <kill_type> sont conservés avec leur sens historique, sans détection avancée de cause, d'arme ou de distance dans cette version. Cliquez sur le texte d'une annonce pour la lire entièrement avant de l'activer ou de l'acheter. Les textes longs ont leurs propres pages de lecture, distinctes des pages du catalogue. Les extraits peuvent finir par « … » ; le chat reste complet. La lecture utilise la taille de texte du panneau, sans agrandissement par <size>. Après un achat, le panneau affiche le message débloqué avec le bouton Activer. VIP requis, solde insuffisant et achats indisponibles sont distingués. Les icônes utilisent les sprites de Rust, sans hébergeur d'images ni ImageLibrary.
PlayerEventChatMessages.Default : accès au panneau et aux annonces. PlayerEventChatMessages.VIP : accès aux annonces VIP, sans achat. PlayerEventChatMessages.UnlimitedCooldown : ignore les délais entre annonces. Les délais globaux et par catégorie s'appliquent uniquement après une annonce envoyée. Le délai commun par catégorie reste utilisé pour les anciens fichiers. Dans "(By player) Message Cooldown overrides by event (seconds)", vous pouvez régler PlayerConnect, PlayerDisconnect, PlayerKill et PlayerDead séparément. Un objet vide conserve le délai commun ; 0 désactive le délai propre à cet événement. Le délai global continue de s'appliquer à tous les événements. Mettez-le à 0 pour des délais indépendants. Valeurs historiques conservées : global 1800, délai commun par catégorie 5 secondes. Les commandes administrateur historiques /peventmessage_add ID et /peventmessage_enable ID agissent sur l'administrateur qui les lance. Cette version n'ajoute pas de commande d'octroi à un autre joueur hors ligne.
ÉCONOMIE ET SAUVEGARDE
Un achat vérifie le fournisseur, le solde et la confirmation avant le retrait. Seul un retour booléen true confirme le retrait. Avant le retrait, une trace PendingPurchase est sauvegardée dans les données du joueur avec l'identifiant de l'opération et le prix confirmé. Un résultat incertain ou un échec de sauvegarde de l'acquisition bloque les achats même après rechargement. Les messages gratuits et possédés restent utilisables si les données du joueur sont accessibles. L'acquisition et la suppression de cette trace sont sauvegardées ensemble. Le retrait monétaire et l'écriture disque ne sont pas une transaction atomique : un crash entre les deux peut nécessiter une correction manuelle par l'administrateur. Après vérification de l'historique du fournisseur, utilisez depuis la console serveur/RCON ou la console F1 d'un administrateur : peventmessage_resolvepurchase STEAMID OPERATION_ID grant grant enregistre le message en possession du joueur : uniquement si le paiement est confirmé. peventmessage_resolvepurchase STEAMID OPERATION_ID clear clear lève le blocage : uniquement si aucun paiement n'a eu lieu ou si le cas a déjà été réglé. L'identifiant est dans PendingPurchase et le journal console. Ces actions conservent les autres acquisitions et ne débitent ni ne remboursent. Une opération absente, périmée ou en cours est refusée. Réparez le stockage puis rechargez si les écritures du joueur sont bloquées. Sauvegardez les données et ne revenez pas à une ancienne version tant qu'une opération reste à résoudre.
NE PAS MÉLANGER LES VERSIONS
Les configurations et données joueurs de la bêta 0.2.0 ne se chargent pas dans cette version native. Testez les deux versions dans des installations séparées, avec sauvegardes. Cette candidate est compilée contre les références Oxide/Carbon identifiées dans son reçu de livraison. Le périmètre des vérifications sur serveur Rust sans client est décrit dans VALIDATION.en.txt, avec les limites des sessions et hooks de test. La réception réseau et l'interaction d'un vrai client ne sont pas revendiquées. Aucune publication n'a été effectuée.
Conserver les textes et les données
Enregistrez les fichiers de langue en UTF-8 et conservez vos traductions personnalisées. Le fichier installé s’appelle PlayerEventChatMessages.cs. Le panneau de la version 0.1.3 est intégré au plugin.
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.