Projet

🎮 Admin Menu v2.1 - Altis Life

Auteur: ProtoMehka Version: 2.1 Date: 2025-10-10 Framework: Altis Life 5.0+


📖 Description

Interface admin moderne et épurée pour serveurs Altis Life, avec système d'onglets, mini-map interactive, recherche de joueurs et permissions configurables via fichier de configuration centralisé.

Version Framework Status


✨ Fonctionnalités

🎨 Interface Moderne

🔍 Recherche

🗺️ Mini-Map Interactive

📊 Informations Joueur

⚙️ Système de Permissions

🎯 Gestionnaire d'Objets

🔧 Logging


📁 Structure

admin_menu.Altis/
├── config/
│   └── Config_Admin.hpp               # ⚙️ Configuration centralisée
├── dialog/
│   ├── admin_menu.hpp                 # 🎨 Interface principale
│   ├── server_message.hpp             # 💬 Dialog message serveur
│   └── object_manager.hpp             # 🎯 Dialog gestionnaire d'objets
└── core/admin/
    ├── fn_adminMenu.sqf               # 🎮 Contrôleur principal
    ├── fn_adminMenuTabChange.sqf      # 📑 Gestion onglets + dropdown
    ├── fn_adminRefreshList.sqf        # 📋 Liste joueurs
    ├── fn_adminSearchPlayer.sqf       # 🔍 Recherche
    ├── fn_adminPlayerSelected.sqf     # ℹ️ Infos + mini-map
    ├── fn_adminQueryFinances.sqf      # 💰 Requête infos financières
    ├── fn_adminReceiveFinances.sqf    # 💰 Réception infos financières
    ├── fn_adminRepairObject.sqf       # 🔧 Réparer objet
    ├── fn_adminDeleteObject.sqf       # 🗑️ Supprimer objet
    ├── fn_adminServerMsg.sqf          # 📢 Ouvrir dialog message serveur
    ├── fn_adminSendServerMsg.sqf      # 📢 Envoyer message serveur
    ├── fn_adminBroadcastMsg.sqf       # 📢 Broadcast message
    ├── fn_adminSpectate.sqf           # 👁️ Mode spectateur (TFAR compatible)
    ├── fn_adminTpHere.sqf             # 📍 Téléporter joueur vers admin
    ├── fn_adminFreeze.sqf             # ❄️ Geler joueur
    ├── fn_adminGodMode.sqf            # 🛡️ Mode invincibilité
    ├── fn_adminObjectManager.sqf      # 🎯 Ouvrir gestionnaire objets
    ├── fn_adminObjectRefresh.sqf      # 🔄 Scanner objets autour
    ├── fn_adminObjectSelect.sqf       # 🎯 Sélectionner objet (flèche 3D)
    └── fn_adminObjectDelete.sqf       # 🗑️ Supprimer item individuel

life_server/Functions/Admin/
├── fn_getPlayerFinances.sqf           # 💰 Requête SQL finances
└── fn_logAdminAction.sqf              # 📝 Logging actions admin en BDD

🚀 Installation Rapide

1️⃣ Copier les fichiers

Client (admin_menu.Altis):

✅ config/Config_Admin.hpp
✅ dialog/admin_menu.hpp
✅ dialog/server_message.hpp
✅ dialog/object_manager.hpp
✅ core/admin/fn_admin*.sqf (28 fichiers)

Serveur (life_server):

✅ Functions/Admin/fn_getPlayerFinances.sqf
✅ Functions/Admin/fn_logAdminAction.sqf

2️⃣ Modifier Config_Master.hpp

Ajouter tout en haut de la section des includes (après class Life_Settings):

#include "Config_Admin.hpp"

3️⃣ Modifier Functions.hpp (Client)

class Admin {
    file = "core\admin";
    // ... fonctions existantes conservées ...

    // Admin Menu v2.1
    class adminMenu {};
    class adminMenuTabChange {};
    class adminRefreshList {};
    class adminSearchPlayer {};
    class adminPlayerSelected {};
    class adminRepairObject {};
    class adminDeleteObject {};
    class adminQueryFinances {};
    class adminReceiveFinances {};
    class adminServerMsg {};
    class adminSendServerMsg {};
    class adminBroadcastMsg {};
    class adminSpectate {};
    class adminTpHere {};
    class adminFreeze {};
    class adminGodMode {};
    class adminObjectManager {};
    class adminObjectRefresh {};
    class adminObjectSelect {};
    class adminObjectDelete {};
};

4️⃣ Modifier MasterHandler.hpp

#include "admin_menu.hpp"
#include "server_message.hpp"
#include "object_manager.hpp"

5️⃣ Modifier config.cpp (Serveur)

class Admin {
    file = "\life_server\Functions\Admin";
    class getPlayerFinances {};
    class logAdminAction {};
};

6️⃣ Modifier CfgRemoteExec.hpp (Client)

Client functions:

F(life_fnc_adminQueryFinances,CLIENT)
F(life_fnc_adminReceiveFinances,CLIENT)
F(life_fnc_adminBroadcastMsg,CLIENT)

Server functions:

F(TON_fnc_getPlayerFinances,SERVER)
F(TON_fnc_logAdminAction,SERVER)

7️⃣ Modifier player_inv.hpp (Client)

Bouton IDC 2021:

onButtonClick = "closeDialog 0; createDialog ""life_admin_menu"";";

8️⃣ Base de données

Voir INTEGRATION_DB.md pour la création de la table admin_logs.

✅ C'est prêt !

Appuyez sur YAdmin Menu


📚 Documentation

Document Description
INTEGRATION_CLIENT.md 🖥️ Installation client (mission)
INTEGRATION_SERVER.md 🖥️ Installation serveur
INTEGRATION_DB.md 🗄️ Configuration base de données
CONFIG_ADMIN_GUIDE.md 📖 Guide complet de configuration
CHANGELOG.md 📝 Journal des modifications

⚙️ Configuration

Ajouter une Commande

Éditer config/Config_Admin.hpp:

class Commands {
    list[] = {
        {"Ma Commande", "life_fnc_maFonction", 3, "players"}
        // Nom | Fonction | Niveau min (1-5) | Onglet
    };
};

Onglets Disponibles

Dropdown / Boutons

Modifier dans Config_Admin.hpp:

class DropdownSettings {
    maxButtonsBeforeDropdown = 0;  // 0 = Toujours dropdown, 999 = Toujours boutons
};

🎯 Niveaux Admin

Niveau Nom Couleur Permissions
1 Support 🟢 Vert Infos joueurs
2 Modérateur 🔵 Bleu clair + Compensate
3 Admin 🔵 Bleu + Spectate, Teleport, Repair Object, Object Manager
4 Super Admin 🟠 Orange + TpHere, GodMode, Freeze, Delete Object, Server Message
5 Owner 🔴 Rouge Accès total (Debug Console)

🔧 Compatibilité


🛠️ Troubleshooting

Le menu ne s'ouvre pas

✅ Vérifier life_adminlevel >= 1 ✅ Vérifier includes dans MasterHandler.hpp et Config_Master.hpp

Liste de joueurs vide

✅ Vérifier logs [ADMIN REFRESH] dans le RPT ✅ Tester hint str (count playableUnits);

Aucune commande affichée

✅ Vérifier que Config_Admin.hpp est bien inclus dans Config_Master.hpp ✅ Vérifier les logs [ADMIN MENU] pour voir si les commandes sont chargées

Plus de détails: CONFIG_ADMIN_GUIDE.md


📊 Fonctionnalités Implémentées


📄 Licence

Libre d'utilisation et de modification. Crédit apprécié mais non obligatoire.


🙏 Crédits

Auteur: ProtoMehka Framework: Altis Life 5.0 (AsYetUntitled) Date: Octobre 2024 - Janvier 2025


Version 2.1 - Octobre 2025


Revision #3
Created 7 October 2025 13:21:05 by ProtoMehka
Updated 10 October 2025 14:15:54 by ProtoMehka