Salut ;o)
Effectivememt, tu peux faire tourner sans cesse un timer qui teste ta condition régulièrement, mais c'est moche.
Après, tout dépend de ta condition, et si c'est une variable, de sa définition. Les variables qui passent par un get/set sont parfaites pour ça, puisque lorsqu'on y fait référence, on passe par le code du get, et que chaque fois qu'on leur alloue une valeur, on passe par le code du set.
Mais tu peux t'abonner à des evenements spécifiques :
Déclare la méthode
- Code:
-
public static void Initialize()
puis des abonnements a des handlers, exemples:
- Code:
-
EventSink.Login += new LoginEventHandler( OnLogin );
EventSink.Logout += new LogoutEventHandler( OnLogout );
EventSink.Connected += new ConnectedEventHandler( EventSink_Connected );
EventSink.Disconnected += new DisconnectedEventHandler( EventSink_Disconnected );
Avec ceci, lorsque l'EventSink.Login sera déclenché, il appelera la méthode OnLogin de la classe qui a défini cet abonnement.
Tu trouvera des EventSink dans EventSink.cs, d'ailleurs les voici :
- Code:
-
public delegate void CharacterCreatedEventHandler( CharacterCreatedEventArgs e );
public delegate void OpenDoorMacroEventHandler( OpenDoorMacroEventArgs e );
public delegate void SpeechEventHandler( SpeechEventArgs e );
public delegate void LoginEventHandler( LoginEventArgs e );
public delegate void ServerListEventHandler( ServerListEventArgs e );
public delegate void MovementEventHandler( MovementEventArgs e );
public delegate void HungerChangedEventHandler( HungerChangedEventArgs e );
public delegate void CrashedEventHandler( CrashedEventArgs e );
public delegate void ShutdownEventHandler( ShutdownEventArgs e );
public delegate void HelpRequestEventHandler( HelpRequestEventArgs e );
public delegate void DisarmRequestEventHandler( DisarmRequestEventArgs e );
public delegate void StunRequestEventHandler( StunRequestEventArgs e );
public delegate void OpenSpellbookRequestEventHandler( OpenSpellbookRequestEventArgs e );
public delegate void CastSpellRequestEventHandler( CastSpellRequestEventArgs e );
public delegate void AnimateRequestEventHandler( AnimateRequestEventArgs e );
public delegate void LogoutEventHandler( LogoutEventArgs e );
public delegate void SocketConnectEventHandler( SocketConnectEventArgs e );
public delegate void ConnectedEventHandler( ConnectedEventArgs e );
public delegate void DisconnectedEventHandler( DisconnectedEventArgs e );
public delegate void RenameRequestEventHandler( RenameRequestEventArgs e );
public delegate void PlayerDeathEventHandler( PlayerDeathEventArgs e );
public delegate void VirtueGumpRequestEventHandler( VirtueGumpRequestEventArgs e );
public delegate void VirtueItemRequestEventHandler( VirtueItemRequestEventArgs e );
public delegate void VirtueMacroRequestEventHandler( VirtueMacroRequestEventArgs e );
public delegate void ChatRequestEventHandler( ChatRequestEventArgs e );
public delegate void AccountLoginEventHandler( AccountLoginEventArgs e );
public delegate void PaperdollRequestEventHandler( PaperdollRequestEventArgs e );
public delegate void ProfileRequestEventHandler( ProfileRequestEventArgs e );
public delegate void ChangeProfileRequestEventHandler( ChangeProfileRequestEventArgs e );
public delegate void AggressiveActionEventHandler( AggressiveActionEventArgs e );
public delegate void GameLoginEventHandler( GameLoginEventArgs e );
public delegate void DeleteRequestEventHandler( DeleteRequestEventArgs e );
public delegate void WorldLoadEventHandler();
public delegate void WorldSaveEventHandler( WorldSaveEventArgs e );
public delegate void SetAbilityEventHandler( SetAbilityEventArgs e );
public delegate void FastWalkEventHandler( FastWalkEventArgs e );
public delegate void ServerStartedEventHandler();
public delegate BaseGuild CreateGuildHandler( CreateGuildEventArgs e );
public delegate void GuildGumpRequestHandler( GuildGumpRequestArgs e );
public delegate void QuestGumpRequestHandler( QuestGumpRequestArgs e );
Avec ça, tu as déjà de quoi faire.