Skip to content
Emile NKZ edited this page Apr 13, 2025 · 21 revisions

Getting Started

AAMenu

Commencer par importer ${\color{LimeGreen}\normalsize{\textsf{AAMenu.Menu}}}$, vous en aurez besoin pour ajouter vos TabLines.
Ensuite, je vous recommande de créer une fonction dans laquelle vous y référencer toute vos insertions dans le menu de manière à ne pas surcharger votre fonction ${\color{NavyBlue}\normalsize{\textsf{OnPluginInit()}}}$;

using _menu = AAMenu.Menu;
using ModKit.Helper;
using ModKit.Interfaces;

public class MyPlugin : ModKit.ModKit
{
     public MyPlugin(IGameAPI api) : base(api)
     {
         PluginInformations = new PluginInformations(AssemblyHelper.GetName(), "1.0.0", "Aarnow");
     }

    public override void OnPluginInit()
    {
        base.OnPluginInit();
        InsertMenu();
    }

    public void InsertMenu()
    {
    }
}

Ajouter une compétence métier

Ajoute une nouvelle TabLine pour les entreprises dont les activités sont autorisées. ${\color{NavyBlue}\normalsize{\textsf{AddBizTabLine(PluginInformations pluginInformations, List<Activity.Type> activitiesAllowed, CustomActivity customActivity, string name, Action action)}}}$

  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin
  • ${\color{Goldenrod}\normalsize{\textsf{activitiesAllowed}}}$ : Liste des activités autorisées
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom de l'action
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionné
public void InsertMenu()
{
    // Pour les compétences propres à un ou plusieurs métiers
    _menu.AddBizTabLine(PluginInformations, new List<Activity.Type> { Activity.Type.Chef },null, "Nom de la compétence", (ui) =>
    {
        Player player = PanelHelper.ReturnPlayerFromPanel(ui);
        //votre code
    });
    
    // Pour les compétences communes à tous les métiers
    _menu.AddBizTabLine(PluginInformations, new List<Activity.Type> { Activity.Type.None},null, "Nom de la compétence", (ui) =>
    {
        Player player = PanelHelper.ReturnPlayerFromPanel(ui);
        //votre code
    });
        
    //Pour les compétences dédiés aux métiers customs:
    _menu.AddBizTabLine(PluginInformations, null, _customActivity, "Nom de la compétence", (ui) =>
    {
        Player player = PanelHelper.ReturnPlayerFromPanel(ui);
        //votre code
    });
}

Ajouter une interaction

Ajoute une nouvelle TabLine pour intéragir avec les joueurs ou l'environnement.
${\color{NavyBlue}\normalsize{\textsf{AddInteractionTabLine(PluginInformations, string, action)}}}$

  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom de l'action
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionné
public void InsertMenu()
{
    _menu.AddInteractionTabLine(PluginInformations, "Nom de l'interaction", (ui) =>
    {
        Player player = PanelHelper.ReturnPlayerFromPanel(ui);
        //votre code
    });
}

Ajouter un document

Ajoute une nouvelle TabLine pour consulter un document.
${\color{NavyBlue}\normalsize{\textsf{AddInteractionTabLine(PluginInformations, string, action)}}}$

  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom du document
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionné
public void InsertMenu()
{
    _menu.AddDocumentTabLine(PluginInformations, "Nom du document", (ui) =>
    {
        Player player = PanelHelper.ReturnPlayerFromPanel(ui);
        //votre code
    });
}

Ajouter une proximité

Ajoute une nouvelle TabLine pour interagir avec un objet à proximité ${\color{NavyBlue}\normalsize{\textsf{AddProximityTabLine(pluginInformations, objectId, name, action)}}}$

  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin
  • ${\color{Goldenrod}\normalsize{\textsf{objectId}}}$ : ID de l'objet
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom de l'action
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionné
_menu.AddProximityTabLine(PluginInformations, 1651, "PANNEAU", (ui) =>
{
    Player player = PanelHelper.ReturnPlayerFromPanel(ui);
    //votre code
});

//Si vous voulez indexer votre tabline en haut de la liste et limiter les interactions à certains terrains
// 0 = en haut
// 1 = terrain de la Mairie pour Amboise par exemple
_menu.AddProximityTabLine(PluginInformations, 1651, "PANNEAU", (ui) =>
{
    Player player = PanelHelper.ReturnPlayerFromPanel(ui);
    //votre code
}, 0, 1);

Ajouter une proximité aux sociétés

Ajoute une nouvelle TabLine pour interagir avec un objet lié à une activité professionnelle, avec des conditions basées sur les activités autorisées et les zones spécifiques.

${\color{NavyBlue}\normalsize{\textsf{AddProximityBizTabLine(pluginInformations, activitiesAllowed, customActivity, objectId, name, action, index, areasId)}}}$

  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin.
  • ${\color{Goldenrod}\normalsize{\textsf{activitiesAllowed}}}$ : Liste des types d'activités autorisées pour cette action.
  • ${\color{Goldenrod}\normalsize{\textsf{customActivity}}}$ : Activité personnalisée qui peut déclencher cette action.
  • ${\color{Goldenrod}\normalsize{\textsf{objectId}}}$ : ID de l'objet lié à l'action.
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom de l'action (s'il n'est pas fourni, le nom de l'objet sera utilisé).
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionnée.
  • ${\color{Goldenrod}\normalsize{\textsf{index}}}$ : Position de l'élément dans la liste des actions (0 pour le haut de la liste).
  • ${\color{Goldenrod}\normalsize{\textsf{areasId}}}$ : (Optionnel) Liste des IDs de zones spécifiques où cette action est disponible.
// Ajout simple d'une ligne d'onglet avec des conditions d'activité
_menu.AddProximityBizTabLine(PluginInformations, new List<Activity.Type> { Activity.Type.None }, null, 1651, "INTERAGIR", (ui) =>
{
    Player player = PanelHelper.ReturnPlayerFromPanel(ui);
    // votre code pour l'action
}, 0);

// Ajout avec restrictions d'activités et de zones spécifiques
_menu.AddProximityBizTabLine(PluginInformations, new List<Activity.Type> { Activity.Type.Business }, myCustomActivity, 1651, "INTERAGIR", (ui) =>
{
    Player player = PanelHelper.ReturnPlayerFromPanel(ui);
    // votre code pour l'action
}, 0, new List<int> { 1, 2, 3 });

Ajouter une action pour les admins

Ajoute une nouvelle TabLine pour les admins selon leurs niveau. ${\color{NavyBlue}\normalsize{\textsf{AddAdminTabLine(PluginInformations, int, string, Action)}}}$

  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin
  • ${\color{Goldenrod}\normalsize{\textsf{minAdminLevel}}}$ : Niveau d'administrateur minimum requis
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom de l'action
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionné
public void InsertMenu()
{
    _menu.AddAdminTabLine(PluginInformations, 5, "Nom de l'action", (ui) =>
    {
        Player player = PanelHelper.ReturnPlayerFromPanel(ui);
        //votre code
    });
}

Ajouter un plugin dans l'espace administratif

Ajoute une nouvelle TabLine pour interagir avec un plugin ou son fichier config, avec une restriction sur le niveau minimum d'administration requis.

  • ${\color{NavyBlue}\normalsize{\textsf{AddAdminPluginTabLine(pluginInformations, minAdminLevel, name, action, index)}}}$
  • ${\color{Goldenrod}\normalsize{\textsf{pluginInformations}}}$ : Informations sur le plugin.
  • ${\color{Goldenrod}\normalsize{\textsf{minAdminLevel}}}$ : Niveau minimum d'administration requis pour exécuter cette action.
  • ${\color{Goldenrod}\normalsize{\textsf{name}}}$ : Nom de l'action (qui sera affiché dans l'onglet).
  • ${\color{Goldenrod}\normalsize{\textsf{action}}}$ : Action à exécuter lorsque la ligne de l'onglet est sélectionnée.
  • ${\color{Goldenrod}\normalsize{\textsf{index}}}$ : Position de l'élément dans la liste des actions (0 pour le haut de la liste).
// Ajout simple d'une ligne d'onglet avec une restriction de niveau d'administration
_menu.AddAdminPluginTabLine(PluginInformations, 1, "ACTION ADMIN", (ui) =>
{
    Player player = PanelHelper.ReturnPlayerFromPanel(ui);
    // votre code pour l'action
}, 0);

// Ajout avec un niveau minimum d'administration élevé
_menu.AddAdminPluginTabLine(PluginInformations, 3, "ACTION SUPER ADMIN", (ui) =>
{
    Player player = PanelHelper.ReturnPlayerFromPanel(ui);
    // votre code pour l'action
}, 1);

Retourner vers l'un des panels d'AAMENU

Pour revenir depuis votre plugin vers l'un des panels de AAMENU, vous devez déclencher la méthode du panel souhaité depuis un bouton lambda.

//exemple pour revenir au panel d'interaction
panel.AddButton("Retour", ui => AAMenu.AAMenu.menu.InteractionPanel(player));

📒 Wiki

🧱 AAMenu

🔗 ORM

⚡️ EventHelper

🚚 JobHelper

🌀 PointHelper

🎭 SkinHelper

📂 PanelHelper

✒️ TextFormattingHelper

💜 DiscordHelper

🌱 NetworkAreaHelper

🧰 CraftHelper

🚕 VehicleHelper

📡 ProximityHelper

⚙️ OverrideHelper

🧾 JsonHelper

📦 Utilitaires

Clone this wiki locally