Skip to main content

Projet

Projet🎮 de Refonte duAdmin Menu Adminv2.1 - Arma 3 Altis Life

Auteur: ProtoMehka Version: 2.0

📋 Vue d'ensemble

Modernisation complète du menu admin accessible depuis le menu inventaire (Y), avec ajout de fonctionnalités avancées et système de logging en base de données.


🏗️ Structure Actuelle

Fichiers Principaux

  • Interface: admin_menu.Altis/dialog/admin_menu.hpp (IDD 2900)
  • Contrôleur: admin_menu.Altis/core/admin/fn_adminMenu.sqf
  • Ouverture: admin_menu.Altis/core/pmenu/fn_p_openMenu.sqf
  • Inventaire: admin_menu.Altis/dialog/player_inv.hpp
  • Configuration: admin_menu.Altis/Functions.hpp (déclarations fonctions)
  • Remote Exec: admin_menu.Altis/CfgRemoteExec.hpp (whitelist sécurité)

Fonctionnalités Existantes (Framework 5.0 de base)

FonctionFichierNiveau Admin RequisTypeLogging Actuel
Get IDfn_adminGetID.sqf1+Client→ServerRetiré (infos affichées auto)
Query Playerfn_adminQuery.sqf1+Client→ClientRetiré (infos affichées auto)
Compensatefn_adminCompensate.sqf2+Client only❌ Non
Spectatefn_adminSpectate.sqf3+Client only❌ Non
Teleportfn_adminTeleport.sqf3+Client only❌ Non
TP Herefn_adminTpHere.sqf4+Client→Client❌ Non
God Modefn_adminGodMode.sqf4+Client only❌ Non
Freezefn_adminFreeze.sqf4+Client→Client❌ Non
Markersfn_adminMarkers.sqf4+Client only1 Corrigé (spawn wrapper)
Debugfn_adminDebugCon.sqf5+Client only❌ Non

Nouvelles Fonctionnalités Ajoutées v2.0

FonctionFichierNiveau Admin RequisTypeStatus
Repair Objectfn_adminRepairObject.sqf3+Client only✅ Ajouté
Delete Objectfn_adminDeleteObject.sqf4+Client only✅ Ajouté
Query Financesfn_adminQueryFinances.sqf1+Client→Client✅ Ajouté
Receive Financesfn_adminReceiveFinances.sqf1+Client only✅ Ajouté

Niveaux d'Administration

0 = Joueur normal
1 = Support (GetID + Query uniquement)
2 = Modérateur (+ Compensate)
3 = Admin (+ Spectate + Teleport)
4 = Super Admin (+ TpHere, GodMode, Freeze, Markers)
5 = Owner (+ Debug, accès total)

Note: Les niveaux dans le code diffèrent légèrement de la documentation initiale.


🎨 Modifications Planifiées

1. Interface Modernisée ✅ TERMINÉ

  •  Design moderne avec dégradés et transparence
  •  Organisation en onglets (Joueurs / Actions / Objets / Serveur)
  •  Zone de recherche de joueurs avec bouton "RECHERCHER"
  •  Affichage amélioré des informations joueur (Steam ID, faction, véhicule, position, distance, cash, banque)
  •  Mini-map interactive avec mise à jour en temps réel
  •  Marqueurs sur la map pour le joueur sélectionné
  •  Responsive design avec SafeZone
  •  Système de requête financière via remoteExec
  •  Suppression des boutons "Get ID" et "Query Player" (infos déjà affichées automatiquement)

2. Nouvelles Fonctionnalités

Gestion Joueurs

  •  Kick Player - Expulser un joueur
  •  Ban Player - Bannir un joueur (temporaire/permanent)
  •  Heal Player - Soigner un joueur
  •  Revive Player - Réanimer un joueur
  •  Strip Weapons - Retirer les armes
  •  Give Money - Donner de l'argent
  •  Set Admin Level - Modifier le niveau admin
  •  Teleport To Player - Se téléporter vers un joueur
  •  Spectate Camera - Amélioration de la caméra spectateur

Gestion Objets/Véhicules

  •  Repair Object - Réparer objet ciblé (cursorObject)
  •  Delete Object - Supprimer objet ciblé (cursorObject)
  •  Refuel Vehicle - Ravitailler véhicule
  •  Flip Vehicle - Retourner véhicule
  •  List Player Vehicles - Voir véhicules d'un joueur
  •  Spawn Vehicle - Faire apparaître un véhicule

Serveur

  •  Server Messages - Messages serveur personnalisés
  •  Restart Warnings - Avertissements de restart
  •  Admin Chat - Chat entre admins
  •  View Admin Logs - Consulter les logs in-game
  •  Server Statistics - Stats serveur en temps réel

Utilitaires

  •  Weather Control - Contrôle météo
  •  Time Control - Contrôle heure
  •  Cleanup Dead - Nettoyer les corps/véhicules
  •  Toggle Invisibility - Invisibilité admin
  •  No Recoil - Désactiver le recul

3. Système de Logging

Base de Données

Table admin_logs avec:

  • ID de log (auto-increment)
  • Timestamp
  • Admin (Steam ID + nom)
  • Action effectuée
  • Cible (joueur/véhicule)
  • Détails (JSON pour données supplémentaires)
  • IP admin
  • Serveur

Actions Loggées

  • Toutes les actions admin (kick, ban, tp, godmode, etc.)
  • Modifications de base de données
  • Compensations données
  • Changements de niveau admin
  • Messages serveur envoyés

🗄️ Base de Données

Nouvelle Table: admin_logs

CREATE TABLE IF NOT EXISTS `admin_logs` (
    `id`          INT NOT NULL AUTO_INCREMENT,
    `timestamp`   TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `admin_pid`   VARCHAR(17) NOT NULL,
    `admin_name`  VARCHAR(32) NOT NULL,
    `action`      VARCHAR(64) NOT NULL,
    `target_pid`  VARCHAR(17) DEFAULT NULL,
    `target_name` VARCHAR(32) DEFAULT NULL,
    `details`     TEXT,
    `admin_ip`    VARCHAR(45) DEFAULT NULL,
    `server_id`   VARCHAR(32) DEFAULT NULL,

    PRIMARY KEY (`id`),
    INDEX `index_admin` (`admin_pid`),
    INDEX `index_action` (`action`),
    INDEX `index_timestamp` (`timestamp`),
    CONSTRAINT `FK_admin_logs_admin` FOREIGN KEY (`admin_pid`)
      REFERENCES `players` (`pid`)
      ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Table Bans (optionnel)

CREATE TABLE IF NOT EXISTS `admin_bans` (
    `id`          INT NOT NULL AUTO_INCREMENT,
    `pid`         VARCHAR(17) NOT NULL,
    `player_name` VARCHAR(32) NOT NULL,
    `banned_by`   VARCHAR(17) NOT NULL,
    `reason`      TEXT NOT NULL,
    `ban_time`    TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
    `expire_time` TIMESTAMP NULL DEFAULT NULL,
    `active`      TINYINT NOT NULL DEFAULT 1,

    PRIMARY KEY (`id`),
    INDEX `index_pid` (`pid`),
    INDEX `index_active` (`active`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

📝 Nouveaux Fichiers Créés v2.0

Core Functions ✅ CRÉÉS

  • admin_menu/core/admin/fn_adminMenuNew.sqf - Contrôleur principal
  • admin_menu/core/admin/fn_adminMenuTabChange.sqf - Gestion des onglets
  • admin_menu/core/admin/fn_adminRefreshList.sqf - Rafraîchir liste joueurs
  • admin_menu/core/admin/fn_adminSearchPlayer.sqf - Recherche de joueur
  • admin_menu/core/admin/fn_adminPlayerSelected.sqf - Sélection joueur + infos
  • admin_menu/core/admin/fn_adminRepairObject.sqf - Réparer objet ciblé
  • admin_menu/core/admin/fn_adminDeleteObject.sqf - Supprimer objet ciblé
  • admin_menu/core/admin/fn_adminQueryFinances.sqf - Requête infos financières
  • admin_menu/core/admin/fn_adminReceiveFinances.sqf - Réception infos financières

Dialogs ✅ CRÉÉ

  • admin_menu/dialog/admin_menu_new.hpp - Interface moderne avec onglets

Fichiers à Créer (Phases Futures)

  •  admin_menu/core/admin/fn_adminKick.sqf
  •  admin_menu/core/admin/fn_adminBan.sqf
  •  admin_menu/core/admin/fn_adminHeal.sqf
  •  admin_menu/core/admin/fn_adminRevive.sqf
  •  admin_menu/core/admin/fn_adminLog.sqf (fonction générique de logging)
  •  admin_menu/core/admin/fn_adminViewLogs.sqf
  •  admin_menu/dialog/admin_ban.hpp
  •  admin_menu/dialog/admin_logs_viewer.hpp

Server Functions

  • life_server/Functions/Admin/fn_logAdminAction.sqf
  • life_server/Functions/Admin/fn_kickPlayer.sqf
  • life_server/Functions/Admin/fn_banPlayer.sqf
  • life_server/Functions/Admin/fn_getAdminLogs.sqf

🔧 Fichiers à Modifier

Configuration

  • admin_menu/Functions.hpp - Déclarer nouvelles fonctions
  • admin_menu/CfgRemoteExec.hpp - Autoriser nouvelles remote executions
  • admin_menu/description.ext - Inclure nouveaux dialogs
  • life_server/functions.sqf - Déclarer fonctions serveur

Existants

  • admin_menu/dialog/admin_menu.hpp - Remplacer par nouvelle interface
  • admin_menu/core/admin/fn_adminMenu.sqf - Adapter au nouveau système
  • admin_menu/core/pmenu/fn_p_openMenu.sqf - Maintenir compatibilité

🚀 Commandes Utiles

Base de Données

-- Créer la table de logs
SOURCE admin_logs_table.sql;

-- Voir les dernières actions admin
SELECT * FROM admin_logs ORDER BY timestamp DESC LIMIT 50;

-- Actions d'un admin spécifique
SELECT * FROM admin_logs WHERE admin_pid = '76561198XXXXXXXX' ORDER BY timestamp DESC;

-- Actions par type
SELECT action, COUNT(*) as count FROM admin_logs GROUP BY action ORDER BY count DESC;

-- Rechercher dans les logs
SELECT * FROM admin_logs WHERE details LIKE '%recherche%';

SQF Testing

// Tester le niveau admin
hint format["Admin Level: %1", life_adminlevel];

// Forcer ouverture menu admin
createDialog "life_admin_menu_new";

// Logger une action (test)
["test_action", player, "Test de logging"] call life_fnc_adminLog;

// Voir variables globales admin
hint str [life_god, life_markers, life_adminlevel];

Compilation

# Créer le PBO
armake build admin_menu admin_menu.pbo

# Extraire le PBO
armake unpack admin_menu.pbo admin_menu_extracted/

🔍 Analyse de l'Existant (Complétée)

Architecture Actuelle

Structure Client (admin_menu.Altis/):

core/admin/               # 10 fonctions admin
├── fn_adminCompensate.sqf
├── fn_adminDebugCon.sqf
├── fn_adminFreeze.sqf
├── fn_adminGetID.sqf
├── fn_adminGodMode.sqf
├── fn_adminID.sqf
├── fn_adminInfo.sqf
├── fn_adminMarkers.sqf
├── fn_adminMenu.sqf      # Contrôleur principal
├── fn_adminQuery.sqf
├── fn_adminSpectate.sqf
├── fn_adminTeleport.sqf
└── fn_adminTpHere.sqf

dialog/
└── admin_menu.hpp        # Interface IDD 2900

Structure Serveur (life_server/):

Functions/
├── Actions/
├── Gangs/
├── Housing/
├── Jail/
├── MySQL/               # Fonctions DB importantes
├── PlayTime/
├── Systems/
└── WantedSystem/

functions.sqf            # Définitions fonctions publiques

⚠️ PROBLÈME MAJEUR IDENTIFIÉ: Aucun système de logging actuellement en place!

Points Critiques

  1. Aucun Logging: Toutes les commandes admin sont NON LOGGÉES

    • fn_adminCompensate.sqf: Donne de l'argent sans trace
    • fn_adminFreeze.sqf: Freeze joueur sans log
    • fn_adminGodMode.sqf: Active godmode localement uniquement
    • fn_adminTeleport.sqf: Téléportation non tracée
  2. Architecture Client-Side: La majorité des fonctions sont côté client uniquement

    • Pas de validation serveur
    • Risque de manipulation
    • Pas de centralisation des logs
  3. Communication Client↔Server:

    • Utilise remoteExecCall pour les fonctions critiques
    • Sécurisé via CfgRemoteExec.hpp (whitelist)
    • Fonctions serveur limitées (TON_fnc_getID, TON_fnc_player_query)
  4. Base de Données:

    • Table admin_logs créée dans altislife.sql ✅
    • MAIS: Aucune fonction serveur pour y écrire ❌
    • Aucune fonction côté client pour déclencher le logging ❌

📊 Progression

Phase 1: Analyse & Infrastructure ✅

  •  Analyse structure existante
  •  Identification de toutes les commandes admin (10 fonctions)
  •  Audit système de logging (résultat: aucun logging)
  •  Documentation architecture actuelle
  •  Création fonction de logging générique serveur
  •  Création fonction wrapper logging client
  •  Configuration CfgRemoteExec pour nouvelles fonctions

Phase 2: Implémentation Logging Prioritaire 🔥

  •  Fonction serveur: TON_fnc_logAdminAction (life_server)
  •  Fonction client: life_fnc_adminLog (wrapper)
  •  Modifier toutes les 10 fonctions existantes pour logger
  •  Tester logging en DB pour chaque commande

Phase 3: Interface Modernisée ✅

  •  Design nouveau dialog admin_menu_new.hpp
  •  Création fn_adminMenuNew.sqf (contrôleur principal)
  •  Système d'onglets (Joueurs / Actions / Véhicules / Serveur)
  •  Recherche joueurs avec filtres (Cop/Civ/EMS/All)
  •  Affichage position joueur sur mini-map en temps réel
  •  Configuration centralisée des permissions (Config_Admin.hpp)
  •  Interface responsive avec SafeZone
  •  Design moderne avec couleurs par faction
  •  Boutons dynamiques selon admin_level

Phase 4: Nouvelles Fonctionnalités ⏳

  •  Gestion joueurs (kick, ban, heal, revive, etc.)
  •  Gestion véhicules (repair, delete, spawn)
  •  Contrôles serveur (messages, restart warnings)
  •  Utilitaires admin (invisibility, weather, time)

Phase 5: Visualisation Logs ⏳

  •  Interface visualisation logs in-game
  •  Filtres par admin/action/date
  •  Export logs
  •  Dashboard stats

Phase 6: Tests & Déploiement ⏳

  •  Tests unitaires
  •  Tests en condition réelle
  •  Documentation utilisateur
  •  Formation admins

⚠️ Notes Importantes

Sécurité

  • ✅ Toujours vérifier life_adminlevel avant exécution
  • ✅ Utiliser CfgRemoteExec pour whitelist les fonctions
  • ✅ Logger TOUTES les actions admin sensibles
  • ✅ Valider inputs utilisateur (SQL injection, etc.)
  • ✅ Chiffrer les IDs dans les logs si nécessaire

Performance

  • ⚡ Limiter fréquence refresh liste joueurs
  • ⚡ Pagination pour les logs (max 100 par page)
  • ⚡ Cache pour requêtes fréquentes
  • ⚡ Async pour requêtes DB lourdes

Compatibilité

  • 🔄 Maintenir compatibilité ascendante
  • 🔄 Tester avec versions Arma 3 différentes
  • 🔄 Vérifier compatibilité extDB3
  • 🔄 Documenter breaking changes

📚 Ressources

Documentation

Outils

  • Arma 3 Tools (Publisher, Font Config, etc.)
  • GUI Editor in-game
  • extDB3 Latest version
  • MySQL Workbench

🔄 Changelog

Version 1.0.0 - En développement

  • ✨ Nouvelle interface moderne
  • ✨ 15+ nouvelles fonctionnalités admin
  • ✨ Système de logging complet en BDD
  • ✨ Viewer de logs in-game
  • ✨ Organisation en onglets
  • 🐛 Corrections bugs existants

📋 Résumé Exécutif

État Actuel

  • ✅ Framework Altis Life 5.0 (AsYetUntitled) installé
  • ✅ 10 fonctions admin de base fonctionnelles
  • ✅ Table admin_logs créée en base de données
  • NOUVELLE INTERFACE ADMIN v2.0 créée - Moderne, onglets, mini-map, recherche
  • ✅ Système de configuration des permissions centralisé
  • Logging non implémenté - prochaine étape prioritaire

Priorités

  1. 🔥 URGENT: Implémenter le système de logging pour surveiller les modos
  2. ✅ TERMINÉ: Interface modernisée avec onglets, recherche, mini-map ✨
  3. ✨ EN COURS: Ajouter nouvelles fonctionnalités (kick, ban, heal, etc.)

Prochaines Étapes Recommandées

  1. Créer fonction serveur de logging (TON_fnc_logAdminAction)
  2. Créer wrapper client (life_fnc_adminLog)
  3. Modifier les 10 fonctions existantes pour appeler le logger
  4. Tester le système de logging
  5. Designer nouvelle interface moderne

Dernière mise à jourDate: 2025-10-04 Développeur: ProtoMehka10 Framework: Altis Life 5.0 (AsYetUntitled) Statut: Phase 3 (Interface) ✅ Complétée | Phase 2 (Logging) ⏳ À faire0+


🎉📖 NOUVEAUTÉSDescription

-

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 Admin v2.0

✨ Fonctionnalités ImplémentéesModerne

Interface Moderne:

  • Design épuré avec thème sombre et accents bleus
  • Interface responsive avec SafeZone
  • Bouton4 de fermeture (X) rouge intuitif
  • Couleurs par faction (Bleu=Cop, Vert=Civ, Orange=EMS)

Système d'Ongletsonglets:

  • 4 onglets: Joueurs / Actions / VéhiculesObjets / Serveur
  • Navigation intuitive avec mise en surbrillance
  • BoutonsLayout dynamiquesoptimisé: selonListe l'ongletjoueurs actif
  • compacte,
  • Permissionsgrande filtréescarte, parzone admin_levelactions automatiquementavec dropdown

Liste

🔍 des Joueurs:

  • Affichage en temps réel de tous les joueurs connectés
  • Tri alphabétique automatique
  • Code couleur par faction
  • Compteur de joueurs

Recherche et Filtres:

  • Barre de recherche par nom de joueur
  • 4Tri filtresalphabétique rapides: TOUS / COP / CIV / EMSautomatique
  • BoutonCode decouleur recherchepar avecfaction icône(Bleu=Cop, 🔍
  • Vert=Civ,
  • Filtrage instantanéOrange=EMS)

Informations

🗺️ Joueur:

  • Nom et Steam ID
  • Faction avec code couleur
  • Véhicule actuel ou "À pied"
  • Position GPS (coordonnées)
  • Distance par rapport à l'admin
  • Infos financières (en cours de développement)

Mini-Map Interactive:

  • Affichage temps réel de la position du joueur sélectionné
  • Centrage automatique sur le joueur
  • Marqueur rouge avec nom du joueur
  • Mise à jour en temps réel (toutes les 2 secondes)secondes
  • ZoomGrande ettaille déplacement
  • pour
  • Marqueurmeilleure s'efface après 30 secondesvisibilité

Gestion

📊 desInformations Permissions:

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
  • Facile5 àniveaux modifieradmin sans(Support toucher auOwner)
  • code
  • Menu déroulant dynamique avec bouton EXÉCUTER
  • Couleurs par niveau admin:de
    • 🟢 Vert = Support (niveau 1)permission
    • 🔵Boutons Bleuaffichés clairuniquement =selon Modérateurle (niveau 2)
    • 🔵 Bleu = Admin (niveau 3)
    • 🟠 Orange = Super Admin (niveau 4)
    • 🔴 Rouge = Owner (niveau 5)
    admin

📁🎯 FichiersGestionnaire Créésd'Objets

Configuration:

  • config/Config_Admin.hppDétection -d'items Configurationau dessol permissions(WeaponHolder) etdans commandesun 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

Interface:

🔧 Logging

  • dialog/admin_menu_new.hppToutes -les Nouveauactions dialogadmin modernesont loguées en base de données
  • Interface de visualisation des logs supprimée (IDDlogging 29000)backend préservé)
  • Traçabilité complète des actions administratives

Fonctions:


    📁
  • 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_adminMenuNew.
        ├── fn_adminMenu.sqf               -# 🎮 Contrôleur principal
        
  • core/admin/├── fn_adminMenuTabChange.sqf -# 📑 Gestion desonglets onglets
  • +
  • core/admin/dropdown ├── fn_adminRefreshList.sqf -# Rafraîchissement📋 listeListe joueurs
  • core/admin/├── fn_adminSearchPlayer.sqf -# 🔍 Recherche de├── joueurs
  • core/admin/fn_adminFilterPlayers.sqf - Filtres par faction
  • core/admin/fn_adminPlayerSelected.sqf -# Sélectionℹ️ joueurInfos + 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

FichiersClient Modifiés(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)

    Déclaration
    class desAdmin nouvelles{
        file = "core\admin";
        // ... fonctions 
  • dialog/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️⃣ InclusionModifier duconfig.cpp nouveau(Serveur)

    dialog
    class 
  • Admin { file = "\life_server\Functions\Admin"; class getPlayerFinances {}; class logAdminAction {}; };
  • 6️⃣ Modifier CfgRemoteExec.hpp (Client)

    Client functions:

    dialog/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 adminIDC menu2021:

    mis
    onButtonClick à= jour"closeDialog 
  • core/pmenu/fn_p_openMenu.sqf0; createDialog ""life_admin_menu"";";  - Commentaires ajoutés

🚀8️⃣ CommentBase Utiliserde données

    Voir

  1. OuvrirINTEGRATION_DB.md lepour menula admin:création de la table admin_logs.

    ✅ C'est prêt !

    Appuyez sur Y (inventaire) Bouton "Admin Menu"

  2. Menu


  3. 📚 Documentation

    Cliquez/ACTIONS/VEHICULES
  4. unCliquez🔍
  5. parTOUS/COP
    DocumentDescription
    NaviguerINTEGRATION_CLIENT.md: 🖥️ surInstallation les ongletsclient (JOUEURSmission)
    INTEGRATION_SERVER.md 🖥️ /Installation SERVEUR)serveur
    RechercherINTEGRATION_DB.md 🗄️ joueur:Configuration Tapez son nom dans la barrebase de recherchedonnées
    CONFIG_ADMIN_GUIDE.md 📖 Guide complet de configuration
    FiltrerCHANGELOG.md 📝 faction:Journal Cliquezdes surmodifications
    /
    CIV / EMS
  6. Voir infos joueur: Cliquez sur un joueur dans la liste
  7. Voir position: La mini-map se centre automatiquement sur le joueur sélectionné
  8. Exécuter une action: Cliquez sur un bouton d'action disponible

⚙️ Configuration

des

Ajouter Permissionsune Commande

ÉditezÉditer config/Config_Admin.hpp pour:

  • Ajouter/retirer des commandes
  • Modifier les niveaux requis
  • Réorganiser les onglets
  • Personnaliser les couleurs

Exemple::

class Commands {
    list[] = {
        {"HealMa Player"Commande", "life_fnc_adminHeal"life_fnc_maFonction", 3, "players"}
        // Nom affiché | Fonction à appeler | 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
};

📊🎯 RésuméNiveaux desAdmin

Modificationsv2.
NiveauNomCouleurPermissions
1Support🟢 VertInfos joueurs
2Modérateur🔵 Bleu clair+ Compensate
3Admin🔵 Bleu+ Spectate, Teleport, Repair Object, Object Manager
4Super Admin🟠 Orange+ TpHere, GodMode, Freeze, Delete Object, Server Message
5Owner🔴 RougeAccès total (Debug Console)

🔧 Compatibilité

  • ✅ Altis Life 5.0 (OctobreAsYetUntitled)
  • 2024)
  • ✅ Frameworks Altis Life compatibles
  • ✅ Arma 3 (dernière version)
  • ⚠️ Requiert adaptation mineure pour frameworks custom

🛠️ Troubleshooting

Le Terminémenu -ne Phases'ouvre 1: Interface Moderniséepas

Fichiers CréésVé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 (12):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

ClientPlus (admin_menu.Altis)de détails: CONFIG_ADMIN_GUIDE.md


    📊 Fonctionnalités Implémentées

    • dialog/admin_menu_new.hpp - Interface moderne avec 4 onglets
    • core/admin/fn_adminMenuNew.sqf - Contrôleur principal
    • core/admin/fn_adminMenuTabChange.sqf - Gestion onglets avec boutons dynamiques
    • core/admin/fn_adminRefreshList.sqf - Liste joueurs avec recherche
    • core/admin/fn_adminSearchPlayer.sqf - Recherche de joueur
    • core/admin/fn_adminPlayerSelected.sqf - Infos + mini-map + requête finances
    • core/admin/fn_adminRepairObject.sqf - Réparer objet visé (cursorObject)
    • core/admin/fn_adminDeleteObject.sqf - Supprimer objet visé (cursorObject)
    • core/admin/fn_adminQueryFinances.sqf - Requête infos financières (client→client)
    • core/admin/fn_adminReceiveFinances.sqf - Réception infos financières
    • core/admin/fn_adminServerMsg.sqf - Envoyer message serveur (niveau 4+)
    • core/admin/fn_adminBroadcastMsg.sqf - Afficher message broadcast à tous
    • core/admin/fn_adminViewLogs.sqf - Voir logs admin (placeholder)

Serveur (life_server): 14. Functions/Admin/fn_getPlayerFinances.sqf - Requête SQL SELECT cash, bankacc FROM players WHERE pid='...'

Fichiers Modifiés (6):

Client:

  1. Functions.hpp - Ajout de 11 déclarations de fonctions
  2. CfgRemoteExec.hpp - Autorisation remoteExec (3 client, 1 serveur)
  3. dialog/admin_menu_new.hpp - Onglet "VEHICULES" → "OBJETS", ajustement hauteur liste joueurs
  4. core/admin/fn_adminMarkers.sqf - Correction erreur "Suspending not allowed" (spawn wrapper)
  5. core/admin/fn_adminCompensate.sqf - Correction erreur "Suspending not allowed" (spawn wrapper)

Serveur: 6. life_server/config.cpp - Ajout classe Admin avec fn_getPlayerFinances

Fonctionnalités:

  • ✅ Interface à 4 onglets: Joueurs / Actions / Objets / Serveur
  • ✅ Recherche de joueurs en temps réel avec bouton "RECHERCHER"
  • ✅ Mini-map interactive avec marqueur rouge et mise à jour auto (2s)
  • ✅ Affichage infos joueur: Nom, Steam ID, Faction, Véhicule, Position, Distance
  • Système de requête financière - Cash et Banque récupérés via remoteExec client→client
  • ✅ Boutons dynamiques selon niveau admin (couleurs par niveau)
  • ✅ Suppression des boutons redondants "Get ID" et "Query Player"
  • ✅ Actions sur objets: Repair Object (niveau 3) et Delete Object (niveau 4)
  • Server Message (niveau 4) - Envoyer messages broadcast à tous les joueurs
  • View Logs (niveau 3) - Placeholder pour consultation logs admin (BDD à implémenter)
  • ✅ Correction bugs: superposition boutons, affichage recherche, hauteur liste, markers

Corrections de Bugs:

  1. ✅ Bouton recherche invisible → Changé emoji en texte "RECHERCHER" + largeur 0.07
  2. ✅ Boutons superposés au changement d'onglet → ctrlDelete au lieu de ctrlShow false
  3. ✅ Infos financières ne s'affichaient jamais → Requête SQL serveur avec DB_fnc_asyncCall
  4. ✅ Liste joueurs trop haute → Position Y: 0.27→0.28, Hauteur: 0.5→0.48
  5. ✅ Erreur "Suspending not allowed" dans fn_adminMarkers → Wrapper spawn

Architecture Technique:

Infos Financières (Client → Client):

  • Admin → Joueur cible: fn_adminPlayerSelected envoie requête via life_fnc_adminQueryFinances
  • Joueur cible: Lit ses variables locales CASH et BANK (macro script_macros.hpp)
  • Joueur cible → Admin: Renvoie via life_fnc_adminReceiveFinances
  • Admin: Affiche avec formatage life_fnc_numberText

Server Message (Admin → Tous):

  • Admin: Ouvre dialog BIS_fnc_guiMessage pour saisir le message
  • Admin → Tous: Broadcast via life_fnc_adminBroadcastMsg (remoteExec RCLIENT)
  • Tous les clients: Affichage titleText + systemChat + son notification

🔄 En Cours - Phase 2: Système de Logging

Statut: Prévu mais non démarré

  •  Table admin_logs en base de donnéesdropdown
  • FonctionConfiguration génériquecentralisée de(Config_Admin.hpp)
  • logging
  •  Server Message broadcast
  •  Repair/Delete Object
  •  Informations financières via SQL
  • Logging automatique de toutes les actions admin en BDD
  • InterfaceLayout deoptimisé consultation(liste descompacte, logsgrande in-game

📅 Prévu - Phase 3: Nouvelles Commandes

Fonctionnalités à développer:

  •  Kick/Ban joueurscarte)
  • Heal/ReviveTextes joueursagrandis pour meilleure lisibilité
  • GestionMode véhiculesspectateur avancéecompatible TFAR (spawn,détection refuel, flip)automatique)
  • MessagesGestionnaire serveurd'objets avec Implémentésuppression individuelle d'items
  • ContrôleCorrections météo/heure
  •  Admin chat
  •  View Logsbugs (placeholder)TP Here, BaseFreeze, crééeGod Mode)

🎯📄 Prochaines Étapes RecommandéesLicence

    Libre

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


    🙏 Crédits

    TestsAuteur: ApprofondisProtoMehka Framework: Altis Life 5.0 (AsYetUntitled) Date: Octobre 2024 - ValiderJanvier toutes2025


    📞 Support

    • 📖 Guide de configuration
    • 🗄️ Configuration BDD
    • 🔍 Vérifier les fonctionnalitésfichiers sur serveur de test
    • Logging System - Implémenter le système de logs en base de données
    • Nouvelles Commandes - Ajouter kick, ban, heal, revive
    • Documentation - Créer guide utilisateurRPT pour admins
    • Optimisation - Vérifier performanceserreurs avec 50+filtres joueurs[ADMIN MENU] et [ADMIN REFRESH]

DernièreVersion mise à jour:2.1 Octobre- 2024Janvier Auteur: ProtoMehka Version: 2.02025