Skip to main content

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

  1. Prérequis
  2. Fichiers à Copier
  3. Modifications des Fichiers de Configuration
  4. Vérification de l'Installation
  5. 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

Fichier: admin_menu.Altis/config/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

Fichier: admin_menu.Altis/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

Fichier: admin_menu.Altis/dialog/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

Fichier: admin_menu.Altis/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

Fichier: admin_menu.Altis/dialog/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)

Fichier: admin_menu.Altis/dialog/common.hpp

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

  1. Packez votre mission (PBO)
  2. Vérifiez qu'il n'y a aucune erreur de compilation
  3. Recherchez dans les logs :
    • Config_Admin.hpp doit ê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

  1. Connectez-vous avec un compte admin (life_adminlevel >= 1)
  2. Appuyez sur YAdmin Menu
  3. 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 :

  1. Sélectionnez la commande dans le dropdown
  2. Cliquez sur EXÉCUTER
  3. Vérifiez que la commande s'exécute
  4. Vérifiez dans la BDD que l'action est loguée (table admin_logs)

🐛 Troubleshooting

Problème : Le menu ne s'ouvre pas

Solution :

  1. Vérifiez life_adminlevel >= 1 avec hint str life_adminlevel;
  2. Vérifiez que MasterHandler.hpp inclut bien admin_menu.hpp
  3. Vérifiez les logs RPT pour erreurs de compilation

Problème : Liste de joueurs vide

Solution :

  1. Vérifiez les logs : [ADMIN REFRESH] doit apparaître
  2. Testez hint str (count playableUnits); pour voir si la fonction fonctionne
  3. Ouvrez/fermez le menu plusieurs fois (délai de chargement)

Problème : Aucune commande affichée

Solution :

  1. Vérifiez que Config_Admin.hpp est bien inclus dans Config_Master.hpp
  2. Vérifiez les logs : [ADMIN MENU] X commandes disponibles
  3. Vérifiez votre niveau admin (certaines commandes nécessitent niveau 3+)

Problème : Erreur <NULL-config>

Solution :

  1. Assurez-vous que Config_Admin.hpp est bien dans admin_menu.Altis/config/
  2. Vérifiez l'include dans Config_Master.hpp (ligne exacte, chemin)
  3. Recompilez la mission

Problème : Dropdown ne s'affiche pas

Solution :

  1. Vérifiez que fn_adminMenuTabChange.sqf est bien copié
  2. Vérifiez que la fonction est déclarée dans Functions.hpp
  3. Testez en changeant d'onglet plusieurs fois

Problème : Finances ne s'affichent pas

Solution :

  1. Vérifiez que la partie serveur est installée (voir INTEGRATION_SERVER.md)
  2. Vérifiez CfgRemoteExec.hpp pour TON_fnc_getPlayerFinances
  3. 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.hpp modifié
  • Functions.hpp modifié
  • MasterHandler.hpp modifié
  • CfgRemoteExec.hpp modifié
  • player_inv.hpp modifié
  • 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