Repository navigation
EventHelper
EventHelper permet d'accéder plus facilement à certains événements qui ne sont pas nécessairement disponible depuis la classe "Plugin".
Nous allons commencer par créer une classe dans un nouveau fichier.
Cette classe va hériter de
C'est dans ce fichier que nous allons inscrire nos événements.
using Life;
namespace MyPlugin
{
public class MyEvents : ModKit.Helper.Events
{
public MyEvents(IGameAPI api) : base(api)
{
}
}
}Pour que les événements de notre classe
N'oublions pas de lui donner une valeur en l'instanciant dans notre constructeur.
namespace Myplugin
{
public class Myplugin: ModKit.ModKit
{
private readonly MyEvents _events;
public Myplugin(IGameAPI api) : base(api)
{
PluginInformations = new PluginInformations(AssemblyHelper.GetName(), "1.0.0", "Aarnow");
_events = new MyEvents(api);
}
public override void OnPluginInit()
{
base.OnPluginInit();
_events.Init(Nova.server);
ModKit.Internal.Logger.LogSuccess($"{PluginInformations.SourceName} v{PluginInformations.Version}", "initialisé");
}
}
}Imaginons que vous voulez envoyer un message en console toute les minutes.
Il suffit d'override l'événement
public class MyEvents : ModKit.Helper.Events
{
public MyEvents(IGameAPI api) : base(api)
{
}
public override void OnMinutePassed()
{
Console.WriteLine("Une minte vient de s'écouler");
}
}Cette liste peut évoluer dans le temps.
Pour chaque événement, vous avez un petit exemple de manière à l'illustrer.
public class Events : ModKit.Helper.Events
{
public Events(IGameAPI api) : base(api)
{
}
public override void OnPlayerConsumeAlcohol(Player player, int itemId, float alcoholValue)
{
Console.WriteLine($"{player.GetFullName()} vient de boire {alcoholValue} degré d'alcool.");
}
public override void OnPlayerSpawnCharacter(Player player)
{
Console.WriteLine($"Un joueur vient de se connecter: {player.character.Firstname} {player.character.Lastname}");
}
public override void OnPlayerConnect(Player player)
{
Console.WriteLine($"Un joueur s'apprête à venir en ville: {player.conn.connectionId}");
}
public override void OnPlayerDisconnect(NetworkConnection conn)
{
Console.WriteLine($"Un joueur vient de se déconnecter: {conn.connectionId}");
}
public override void OnPlayerInput(Player player, KeyCode key, bool onUI)
{
Console.WriteLine($"{player.GetFullName()} vient d'appuyer sur la touche {key}");
}
public override void OnHourPassed()
{
Console.WriteLine($"1 heure vient de passer");
}
public override void OnMinutePassed()
{
Console.WriteLine($"1 minute vient de passer");
}
public override void OnPlayerMoney(Player player, double amount, string reason)
{
Console.WriteLine($"l'argent du joueur {player.GetFullName()} vient d'être modifié de {amount}€ pour la raison: {reason}");
}
public override void OnPlayerReceiveItem(Player player, int itemId, int slotId, int number)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de reçevoir {number} fois l'item ID {itemId} à l'emplacement {slotId} de son inventaire");
}
public override void OnPlayerDropItem(Player player, int itemId, int slotId, int number)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de déposer {number} fois l'item ID {itemId} au sol.");
}
public override void OnPlayerUseCommand(Player player, SChatCommand command)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient d'executer la commande: {command.fullCommandName}");
}
public override void OnPlayerBuyTerrain(Player player, int terrainId, double price)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient d'acheter le terrain n°{terrainId} pour {price}€");
}
public override void OnPlayerSellDrugs(Player player, int number, int price)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de vendre {number} cannabis pour {price}€");
}
public override void OnPlayerConsumeDrug(Player player)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de consommer du cannabis");
}
public override void OnPlayerDeath(Player player)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de tomber dans le coma");
}
public override void OnPlayerKillPlayer(Player killer, Player killed)
{
Console.WriteLine($"le joueur {killer.GetFullName()} vient de tuer {killed.GetFullName()}");
}
public override void OnPlayerDamagePlayer(Player fromPlayer, Player toPlayer, int damage)
{
Console.WriteLine($"le joueur {fromPlayer.GetFullName()} vient de frapper {toPlayer.GetFullName()} à hauteur de {damage} dégâts");
}
public override void OnPlayerChangeVehiclePlate(Player player, LifeVehicle vehicle, string oldPlate, string newPlate)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de modifier la plaque du véhicule n°{vehicle.vehicleId} immatriculé {oldPlate} en {newPlate}");
}
public override void OnPlayerChangeVehicleColor(Player player, LifeVehicle vehicle, string oldColor, string newColor)
{
Console.WriteLine($"le joueur {player.GetFullName()} vient de modifier la couleur du véhicule n°{vehicle.vehicleId} anciennement {oldColor} en {newColor}");
}
}- Getting Started
- Ajouter une compétence métier
- Ajouter une interaction
- Ajouter une proximité
- Ajouter une proximité d'activité
- Ajouter une action admin
- Ajouter un plugin
- Retourner vers AAMenu
- Introduction
- Ajouter une activité personnalisé
- Associer une société à une activité personnalisées
- Connaitre l'activité d'un joueur
- Introduction
- PatternData
- Classe de base
- Fonctions à compléter ou créer
- Enregistrer votre type de point en base de donées
- Intégrer votre type de point à AAMenu
- Introduction
- Peupler la base de donées
- Créer un vêtement personnalisés
- Equiper un vêtement
- Afficher les vêtements selon leurs type
- Attribuer/Retirer un vêtement à un joueur
- Recipe & Ingredient
- Récupérer les recettes
- Récupérer les recettes selon la catégorie
- Ajouter une recette
- Comment l'utiliser
