Skip to main content

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

  • 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

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

  • "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