Aller au contenu
← Toute la documentation

/// 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

  1. Vérifiez la version installée

    Ce guide décrit Player Events Messages 0.1.3. Le configurateur doit utiliser cette même version.

  2. 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.

  3. 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 JSONCommands 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 JSONMessages (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) → PlayerConnect

Minimum : 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) → PlayerDisconnect

Minimum : 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) → PlayerKill

Minimum : 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) → PlayerDead

Minimum : 0

Achats de messages 4
Monnaie
Choix · obligatoire

Plugin utilisé pour payer les messages. Les messages gratuits restent disponibles sans plugin de monnaie.

Chemin JSONMoney → 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 JSONMoney → (Custom) Plugin Name
Hook de lecture du solde
Texte

Hook qui reçoit le SteamID et retourne le solde du joueur.

Chemin JSONMoney → (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 JSONMoney → (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 JSONUI → NativeTemplate

Valeurs 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 JSONUI → Native → Accent
Fond du panneau
Texte · obligatoire

Fond de la fenêtre et des boutons des messages disponibles.

Chemin JSONUI → Native → Background
Fond des messages
Texte · obligatoire

Fond du bandeau supérieur, des cartes et des catégories non sélectionnées.

Chemin JSONUI → Native → Surface
Texte
Texte · obligatoire

Couleur des annonces et du texte principal des boutons.

Chemin JSONUI → Native → Text
Texte secondaire
Texte · obligatoire

Couleur du solde, des prix, de la pagination et des libellés secondaires.

Chemin JSONUI → Native → Muted
Séparateurs
Texte · obligatoire

Couleur des séparateurs, des bordures de messages et des boutons indisponibles.

Chemin JSONUI → Native → Border
Opacité du fond
Nombre · obligatoire

Rend le fond du panneau transparent (0) ou opaque (1).

Chemin JSONUI → Native → Opacity

Minimum : 0 · Maximum : 1

Position horizontale
Nombre · obligatoire

Place le panneau sur l’écran. X : gauche (0) à droite (1). Y : bas (0) à haut (1).

Chemin JSONUI → Native → CenterX

Minimum : 0 · Maximum : 1

Position verticale
Nombre · obligatoire

Place le panneau sur l’écran. X : gauche (0) à droite (1). Y : bas (0) à haut (1).

Chemin JSONUI → Native → CenterY

Minimum : 0 · Maximum : 1

Largeur
Nombre entier · obligatoire

Largeur du panneau en pixels CUI.

Chemin JSONUI → Native → Width

Minimum : 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 JSONUI → Native → Height

Minimum : 540 · Maximum : 720

Taille du texte
Nombre entier · obligatoire

Taille du texte des messages et boutons du panneau.

Chemin JSONUI → Native → FontSize

Minimum : 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

  1. Placez oxide/plugins/PlayerEventChatMessages.cs sur votre serveur.
  2. Laissez le plugin générer sa configuration et ses fichiers de langue. Le configurateur permet ensuite de les modifier.
  3. Autorisez le groupe de votre choix : oxide.grant group default PlayerEventChatMessages.Default
  4. Les joueurs ouvrent le panneau avec /pevent ou /pevent_show.
  5. 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

  1. Sauvegardez votre configuration, vos langues et oxide/data/PlayerEventChatMessages.
  2. Remplacez UNIQUEMENT le fichier .cs. Ne copiez pas les JSON de l'archive par-dessus vos fichiers existants.
  3. 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.
  4. 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.

Guide de configuration et d’envoi →