Skip to main content

Projet

Projet de Refonte du Menu Admin - 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)

Fonction Fichier Niveau Admin Requis Type Logging Actuel
Get ID fn_adminGetID.sqf 1+ Client→Server Retiré (infos affichées auto)
Query Player fn_adminQuery.sqf 1+ Client→Client Retiré (infos affichées auto)
Compensate fn_adminCompensate.sqf 2+ Client only ❌ Non
Spectate fn_adminSpectate.sqf 3+ Client only ❌ Non
Teleport fn_adminTeleport.sqf 3+ Client only ❌ Non
TP Here fn_adminTpHere.sqf 4+ Client→Client ❌ Non
God Mode fn_adminGodMode.sqf 4+ Client only ❌ Non
Freeze fn_adminFreeze.sqf 4+ Client→Client ❌ Non
Markers fn_adminMarkers.sqf 4+ Client only Corrigé (spawn wrapper)
Debug fn_adminDebugCon.sqf 5+ Client only ❌ Non

Nouvelles Fonctionnalités Ajoutées v2.0

Fonction Fichier Niveau Admin Requis Type Status
Repair Object fn_adminRepairObject.sqf 3+ Client only ✅ Ajouté
Delete Object fn_adminDeleteObject.sqf 4+ Client only ✅ Ajouté
Query Finances fn_adminQueryFinances.sqf 1+ Client→Client ✅ Ajouté
Receive Finances fn_adminReceiveFinances.sqf 1+ 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 à jour: 2025-10-04 Développeur: ProtoMehka Framework: Altis Life 5.0 (AsYetUntitled) Statut: Phase 3 (Interface) ✅ Complétée | Phase 2 (Logging) ⏳ À faire


🎉 NOUVEAUTÉS - Interface Admin v2.0

✨ Fonctionnalités Implémentées

Interface Moderne:

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

Système d'Onglets:

  • 4 onglets: Joueurs / Actions / Véhicules / Serveur
  • Navigation intuitive avec mise en surbrillance
  • Boutons dynamiques selon l'onglet actif
  • Permissions filtrées par admin_level automatiquement

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
  • 4 filtres rapides: TOUS / COP / CIV / EMS
  • Bouton de recherche avec icône 🔍
  • Filtrage instantané

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 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)
  • Zoom et déplacement
  • Marqueur s'efface après 30 secondes

Gestion des Permissions:

  • Configuration centralisée dans Config_Admin.hpp
  • Facile à modifier sans toucher au code
  • Couleurs par niveau admin:
    • 🟢 Vert = Support (niveau 1)
    • 🔵 Bleu clair = Modérateur (niveau 2)
    • 🔵 Bleu = Admin (niveau 3)
    • 🟠 Orange = Super Admin (niveau 4)
    • 🔴 Rouge = Owner (niveau 5)

📁 Fichiers Créés

Configuration:

  • config/Config_Admin.hpp - Configuration des permissions et commandes

Interface:

  • dialog/admin_menu_new.hpp - Nouveau dialog moderne (IDD 29000)

Fonctions:

  • core/admin/fn_adminMenuNew.sqf - Contrôleur principal
  • core/admin/fn_adminMenuTabChange.sqf - Gestion des onglets
  • core/admin/fn_adminRefreshList.sqf - Rafraîchissement liste joueurs
  • core/admin/fn_adminSearchPlayer.sqf - Recherche de joueurs
  • core/admin/fn_adminFilterPlayers.sqf - Filtres par faction
  • core/admin/fn_adminPlayerSelected.sqf - Sélection joueur + mini-map

Fichiers Modifiés:

  • Functions.hpp - Déclaration des nouvelles fonctions
  • dialog/MasterHandler.hpp - Inclusion du nouveau dialog
  • dialog/player_inv.hpp - Bouton admin menu mis à jour
  • core/pmenu/fn_p_openMenu.sqf - Commentaires ajoutés

🚀 Comment Utiliser

  1. Ouvrir le menu admin: Appuyez sur Y (inventaire) → Bouton "Admin Menu"
  2. Naviguer: Cliquez sur les onglets (JOUEURS / ACTIONS / VEHICULES / SERVEUR)
  3. Rechercher un joueur: Tapez son nom dans la barre de recherche → Cliquez 🔍
  4. Filtrer par faction: Cliquez sur TOUS / COP / CIV / EMS
  5. Voir infos joueur: Cliquez sur un joueur dans la liste
  6. Voir position: La mini-map se centre automatiquement sur le joueur sélectionné
  7. Exécuter une action: Cliquez sur un bouton d'action disponible

⚙️ Configuration des Permissions

Éditez config/Config_Admin.hpp pour:

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

Exemple:

{"Heal Player", "life_fnc_adminHeal", 3, "players"}
// Nom affiché | Fonction à appeler | Niveau min | Onglet

📊 Résumé des Modifications v2.0 (Octobre 2024)

✅ Terminé - Phase 1: Interface Modernisée

Fichiers Créés (12):

Client (admin_menu.Altis):

  1. dialog/admin_menu_new.hpp - Interface moderne avec 4 onglets
  2. core/admin/fn_adminMenuNew.sqf - Contrôleur principal
  3. core/admin/fn_adminMenuTabChange.sqf - Gestion onglets avec boutons dynamiques
  4. core/admin/fn_adminRefreshList.sqf - Liste joueurs avec recherche
  5. core/admin/fn_adminSearchPlayer.sqf - Recherche de joueur
  6. core/admin/fn_adminPlayerSelected.sqf - Infos + mini-map + requête finances
  7. core/admin/fn_adminRepairObject.sqf - Réparer objet visé (cursorObject)
  8. core/admin/fn_adminDeleteObject.sqf - Supprimer objet visé (cursorObject)
  9. core/admin/fn_adminQueryFinances.sqf - Requête infos financières (client→client)
  10. core/admin/fn_adminReceiveFinances.sqf - Réception infos financières
  11. core/admin/fn_adminServerMsg.sqf - Envoyer message serveur (niveau 4+)
  12. core/admin/fn_adminBroadcastMsg.sqf - Afficher message broadcast à tous
  13. 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ées
  • Fonction générique de logging
  • Logging automatique de toutes les actions admin
  • Interface de consultation des logs in-game

📅 Prévu - Phase 3: Nouvelles Commandes

Fonctionnalités à développer:

  • Kick/Ban joueurs
  • Heal/Revive joueurs
  • Gestion véhicules avancée (spawn, refuel, flip)
  • Messages serveur ✅ Implémenté
  • Contrôle météo/heure
  • Admin chat
  • View Logs (placeholder) ✅ Base créée

🎯 Prochaines Étapes Recommandées

  1. Tests Approfondis - Valider toutes les fonctionnalités sur serveur de test
  2. Logging System - Implémenter le système de logs en base de données
  3. Nouvelles Commandes - Ajouter kick, ban, heal, revive
  4. Documentation - Créer guide utilisateur pour admins
  5. Optimisation - Vérifier performances avec 50+ joueurs

Dernière mise à jour: Octobre 2024 Auteur: ProtoMehka Version: 2.0