Intégration Client
🖥️ Guide d'Intégration Client - Admin Menu v2.1
Auteur: ProtoMehka Version: 2.1 Date: 10 Janvier 2025 Framework: Altis Life 5.0+
📋 Table des Matières
- Prérequis
- Fichiers à Copier
- Modifications des Fichiers de Configuration
- Vérification de l'Installation
- Troubleshooting
✅ Prérequis
Avant de commencer, assurez-vous d'avoir :
- Framework Altis Life 5.0 ou supérieur
- Accès aux fichiers de la mission (
admin_menu.Altis/) - Éditeur de texte (Notepad++, VSCode, etc.)
- Backup complet de votre mission
📦 Fichiers à Copier
Étape 1 : Nouveaux Fichiers
Copiez les fichiers suivants dans votre mission admin_menu.Altis/ :
Configuration (1 fichier)
admin_menu.Altis/config/
└── Config_Admin.hpp ✨ NOUVEAU
Interface (3 fichiers)
admin_menu.Altis/dialog/
├── admin_menu.hpp ⚠️ REMPLACER
├── server_message.hpp ⚠️ REMPLACER
└── object_manager.hpp ✨ NOUVEAU (v2.1)
Fonctions Admin Core (12 fichiers)
admin_menu.Altis/core/admin/
├── fn_adminMenu.sqf ⚠️ REMPLACER
├── fn_adminMenuTabChange.sqf ⚠️ REMPLACER
├── fn_adminRefreshList.sqf ⚠️ REMPLACER
├── fn_adminSearchPlayer.sqf ⚠️ REMPLACER
├── fn_adminPlayerSelected.sqf ⚠️ REMPLACER
├── fn_adminQueryFinances.sqf ⚠️ REMPLACER
├── fn_adminReceiveFinances.sqf ⚠️ REMPLACER
├── fn_adminRepairObject.sqf ⚠️ REMPLACER
├── fn_adminDeleteObject.sqf ⚠️ REMPLACER
├── fn_adminServerMsg.sqf ⚠️ REMPLACER
├── fn_adminSendServerMsg.sqf ⚠️ REMPLACER
└── fn_adminBroadcastMsg.sqf ⚠️ REMPLACER
Fonctions Admin - Corrections v2.1 (5 fichiers)
admin_menu.Altis/core/admin/
├── fn_adminSpectate.sqf ⚠️ REMPLACER (TFAR compatible)
├── fn_adminTpHere.sqf ⚠️ REMPLACER (IDC corrigé)
├── fn_adminFreeze.sqf ⚠️ REMPLACER (IDC corrigé)
└── fn_adminGodMode.sqf ⚠️ REMPLACER (closeDialog supprimé)
Object Manager - NOUVEAU v2.1 (4 fichiers)
admin_menu.Altis/core/admin/
├── fn_adminObjectManager.sqf ✨ NOUVEAU
├── fn_adminObjectRefresh.sqf ✨ NOUVEAU
├── fn_adminObjectSelect.sqf ✨ NOUVEAU
└── fn_adminObjectDelete.sqf ✨ NOUVEAU
Autres Fonctions Admin (3 fichiers)
admin_menu.Altis/core/admin/
├── fn_adminCompensate.sqf ⚠️ REMPLACER (logging ajouté)
├── fn_adminDebugCon.sqf ⚠️ REMPLACER (logging ajouté)
└── fn_adminMarkers.sqf ⚠️ REMPLACER (logging ajouté)
Fonction Teleport (1 fichier)
admin_menu.Altis/core/functions/
└── fn_teleport.sqf ⚠️ REMPLACER (logging ajouté)
🔧 Modifications des Fichiers de Configuration
Étape 2 : Config_Master.hpp
Localiser la section des includes (généralement au début du fichier, après class Life_Settings).
Ajouter cette ligne :
#include "Config_Admin.hpp"
Exemple de placement :
class Life_Settings {
/* ... autres paramètres ... */
};
#include "Config_Admin.hpp" // ← AJOUTER ICI
#include "Config_Master.hpp"
#include "Config_Clothing.hpp"
// ... autres includes ...
Étape 3 : Functions.hpp
Localiser la classe Admin (environ ligne 70-90).
Remplacer ou compléter avec les nouvelles fonctions :
class Admin {
file = "core\admin";
// Fonctions existantes (conserver si elles existent)
class adminCompensate {};
class adminDebugCon {};
class adminFreeze {};
class admingetID {};
class adminGodMode {};
class adminid {};
class admininfo {};
class adminMarkers {};
class adminQuery {};
class adminSpectate {};
class adminTeleport {};
class adminTpHere {};
// ✨ NOUVELLES FONCTIONS - Admin Menu v2.1
class adminMenu {};
class adminMenuTabChange {};
class adminRefreshList {};
class adminSearchPlayer {};
class adminPlayerSelected {};
class adminQueryFinances {};
class adminReceiveFinances {};
class adminRepairObject {};
class adminDeleteObject {};
class adminServerMsg {};
class adminSendServerMsg {};
class adminBroadcastMsg {};
// ✨ Object Manager v2.1
class adminObjectManager {};
class adminObjectRefresh {};
class adminObjectSelect {};
class adminObjectDelete {};
};
Étape 4 : MasterHandler.hpp
Localiser les includes de dialogs admin.
Modifier pour inclure les nouveaux dialogs :
// Admin Menu v2.1
#include "admin_menu.hpp"
#include "server_message.hpp"
#include "object_manager.hpp"
⚠️ Important : Supprimez l'ancien include si présent :
// #include "admin_menu_new.hpp" ← SUPPRIMER si présent
Étape 5 : CfgRemoteExec.hpp
Ajouter les permissions pour les nouvelles fonctions client :
// Admin Menu v2.1 - Client Functions
F(life_fnc_adminQueryFinances,CLIENT)
F(life_fnc_adminReceiveFinances,CLIENT)
F(life_fnc_adminBroadcastMsg,CLIENT)
Ajouter les permissions pour les fonctions serveur :
// Admin Menu v2.1 - Server Functions
F(TON_fnc_getPlayerFinances,SERVER)
F(TON_fnc_logAdminAction,SERVER)
Exemple complet d'une section :
class CfgRemoteExec {
class Functions {
mode = 1;
jip = 0;
// ... autres fonctions ...
// Admin Menu v2.0 - Client
F(life_fnc_adminQueryFinances,CLIENT)
F(life_fnc_adminReceiveFinances,CLIENT)
F(life_fnc_adminBroadcastMsg,CLIENT)
// Admin Menu v2.0 - Server
F(TON_fnc_getPlayerFinances,SERVER)
F(TON_fnc_logAdminAction,SERVER)
};
};
Étape 6 : player_inv.hpp
Localiser le bouton "Admin Menu" (généralement IDC 2021).
Modifier l'action onButtonClick :
class ButtonAdminMenu: Life_RscButtonMenu {
idc = 2021;
text = "$STR_PM_AdminMenu";
colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", 0.5};
onButtonClick = "closeDialog 0; createDialog ""life_admin_menu"";"; // ← MODIFIER ICI
x = 0.0204 * safezoneW + safezoneX;
y = 0.82 * safezoneH + safezoneY;
w = 0.0392 * safezoneW;
h = 0.033 * safezoneH;
};
⚠️ Important : L'ancien nom était potentiellement life_admin_menu_new, vérifiez et changez en life_admin_menu.
Étape 7 : common.hpp (Optionnel)
Ce fichier a reçu des modifications mineures (+1 ligne). Si vous avez des customisations importantes dans votre common.hpp, vérifiez les différences.
Conseil : Si vous n'avez pas modifié ce fichier, remplacez-le par la nouvelle version.
✅ Vérification de l'Installation
Test 1 : Compilation
- Packez votre mission (PBO)
- Vérifiez qu'il n'y a aucune erreur de compilation
- Recherchez dans les logs :
Config_Admin.hppdoit être chargé- Aucune erreur
<NULL-config>
Test 2 : Logs de Démarrage
Lancez la mission et vérifiez le fichier RPT :
[ADMIN MENU] Config_Admin.hpp chargé
[ADMIN MENU] 12 commandes disponibles
[ADMIN REFRESH] Liste des joueurs chargée
Test 3 : Menu Fonctionnel
- Connectez-vous avec un compte admin (
life_adminlevel >= 1) - Appuyez sur
Y→ Admin Menu - Vérifiez :
- Le menu s'ouvre correctement
- Les 4 onglets sont visibles (Joueurs/Actions/Objets/Serveur)
- La liste des joueurs s'affiche
- La recherche fonctionne
- Le dropdown affiche les commandes
- La mini-map s'affiche quand un joueur est sélectionné
Test 4 : Commandes
Testez une commande simple comme Markers ou God Mode :
- Sélectionnez la commande dans le dropdown
- Cliquez sur EXÉCUTER
- Vérifiez que la commande s'exécute
- Vérifiez dans la BDD que l'action est loguée (table
admin_logs)
🐛 Troubleshooting
Problème : Le menu ne s'ouvre pas
Solution :
- Vérifiez
life_adminlevel >= 1avechint str life_adminlevel; - Vérifiez que
MasterHandler.hppinclut bienadmin_menu.hpp - Vérifiez les logs RPT pour erreurs de compilation
Problème : Liste de joueurs vide
Solution :
- Vérifiez les logs :
[ADMIN REFRESH]doit apparaître - Testez
hint str (count playableUnits);pour voir si la fonction fonctionne - Ouvrez/fermez le menu plusieurs fois (délai de chargement)
Problème : Aucune commande affichée
Solution :
- Vérifiez que
Config_Admin.hppest bien inclus dansConfig_Master.hpp - Vérifiez les logs :
[ADMIN MENU] X commandes disponibles - Vérifiez votre niveau admin (certaines commandes nécessitent niveau 3+)
Problème : Erreur <NULL-config>
Solution :
- Assurez-vous que
Config_Admin.hppest bien dansadmin_menu.Altis/config/ - Vérifiez l'include dans
Config_Master.hpp(ligne exacte, chemin) - Recompilez la mission
Problème : Dropdown ne s'affiche pas
Solution :
- Vérifiez que
fn_adminMenuTabChange.sqfest bien copié - Vérifiez que la fonction est déclarée dans
Functions.hpp - Testez en changeant d'onglet plusieurs fois
Problème : Finances ne s'affichent pas
Solution :
- Vérifiez que la partie serveur est installée (voir INTEGRATION_SERVER.md)
- Vérifiez
CfgRemoteExec.hpppourTON_fnc_getPlayerFinances - Vérifiez les logs serveur pour erreurs SQL
📚 Documentation Complémentaire
| Document | Description |
|---|---|
| README.md | Documentation générale du projet |
| CONFIG_ADMIN_GUIDE.md | Guide de configuration détaillé |
| INTEGRATION_SERVER.md | Installation côté serveur |
| INTEGRATION_DB.md | Configuration base de données |
| CHANGELOG.md | Journal des modifications |
✅ Checklist Finale
Avant de mettre en production :
- Tous les fichiers sont copiés
-
Config_Master.hppmodifié -
Functions.hppmodifié -
MasterHandler.hppmodifié -
CfgRemoteExec.hppmodifié -
player_inv.hppmodifié - Mission recompilée sans erreur
- Logs RPT vérifiés
- Menu testé en jeu
- Commandes testées
- Logging vérifié en BDD
- Backup effectué
Installation côté serveur : Voir INTEGRATION_SERVER.md Configuration BDD : Voir INTEGRATION_DB.md
🆕 Nouveautés v2.1
Corrections de Bugs
- ✅ TP Here : IDC corrigé (2902 → 29020)
- ✅ Freeze Player : IDC corrigé (2902 → 29020)
- ✅ God Mode : Ne ferme plus le menu
- ✅ Server Message : Fonction et remoteExec corrigés
- ✅ Spectate : Touche F fonctionnelle, caméra repositionnée, compatible TFAR
Nouvelle Fonctionnalité
- ✨ Object Manager : Gestionnaire d'items au sol
- Détection items dans rayon personnalisable (1-50m)
- Affichage contenu WeaponHolder détaillé
- Flèche 3D rouge sur item sélectionné
- Suppression individuelle d'items
- Les autres items restent au sol
Version 2.1 - 10 Janvier 2025