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é.
✨ Fonctionnalités
🎨 Interface Moderne
- Design épuré avec thème sombre et accents bleus
- Interface responsive avec SafeZone
- 4 onglets: Joueurs / Actions / Objets / Serveur
- Navigation intuitive avec mise en surbrillance
- Layout optimisé: Liste joueurs compacte, grande carte, zone actions avec dropdown
🔍 Recherche
- Barre de recherche par nom de joueur
- Tri alphabétique automatique
- Code couleur par faction (Bleu=Cop, Vert=Civ, Orange=EMS)
🗺️ Mini-Map Interactive
- Affichage temps réel de la position du joueur sélectionné
- Centrage automatique sur le joueur
- Marqueur rouge avec nom
- Mise à jour toutes les 2 secondes
- Grande taille pour meilleure visibilité
📊 Informations Joueur
- Nom et Steam ID
- Faction avec code couleur
- Véhicule actuel
- Position GPS (coordonnées)
- Distance par rapport à l'admin
- Argent (Cash et Banque) - Récupération depuis la BDD via requête SQL
⚙️ Système de Permissions
- Configuration centralisée dans
config/Config_Admin.hpp - 5 niveaux admin (Support → Owner)
- Menu déroulant dynamique avec bouton EXÉCUTER
- Couleurs par niveau de permission
- Boutons affichés uniquement selon le niveau admin
🎯 Gestionnaire d'Objets
- Détection d'items au sol (WeaponHolder) dans un rayon personnalisable (1-50m)
- Affichage du contenu détaillé (armes, chargeurs, items, sacs)
- Flèche 3D rouge pointant vers l'item sélectionné
- Suppression individuelle d'items (les autres restent au sol)
- Suppression automatique du conteneur s'il devient vide
🔧 Logging
- Toutes les actions admin sont loguées en base de données
- Interface de visualisation des logs supprimée (logging backend préservé)
- Traçabilité complète des actions administratives
📁 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
✅ 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 Y → Admin 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
"players"→ Onglet Joueurs"actions"→ Onglet Actions"objects"→ Onglet Objets"server"→ Onglet Serveur
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é
- ✅ Altis Life 5.0 (AsYetUntitled)
- ✅ Frameworks Altis Life compatibles
- ✅ Arma 3 (dernière version)
- ⚠️ Requiert adaptation mineure pour frameworks custom
🛠️ 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
- Interface moderne avec dropdown
- Configuration centralisée (Config_Admin.hpp)
- Server Message broadcast
- Repair/Delete Object
- Informations financières via SQL
- Logging actions admin en BDD
- Layout optimisé (liste compacte, grande carte)
- Textes agrandis pour meilleure lisibilité
- Mode spectateur compatible TFAR (détection automatique)
- Gestionnaire d'objets avec suppression individuelle d'items
- Corrections bugs (TP Here, Freeze, God Mode)
📄 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