JPEvent

JPEvent

Annuler, mettre en pause et reprendre des évènements.
Version : 2.0
Prix : $25
Etat : Épuisé

Liste des modifications

v2.0

  • Now compatible with ShiVa 2.0.
  • Plugin API compiled for Mac and Linux in addition to Windows : it will provide API completion in the Script module in ShiVa Editor for each of these operating systems.
  • Now uses a user token instead of an email to activate

v1.7

  • Fixed a bug causing user.setScene to always return nil
  • Fixed a bug with the onWillBeDestroyed event for a user AIModel

v1.6

  • Fixed a bug with events param #11 (was #10).
  • Now compatible with up to 32 parameters (was 16).

v1.5

  • Fixed a bug with event sent to distant users (that are not compatible with string patterns)

v1.4

  • Optimized for ShiVa 1.9.2

v1.3

  • Fixed a bug with application.setCurrentUserScene (was always returning nil)

v1.2

New functions:

  • application.postEventToAllUsers ( nDelay, sAIModelPattern, sHandler, vParam0, vParam1, ... )
  • application.sendEventImmediateToAllUsers ( sAIModelPattern, sHandler, vParam0, vParam1, ... )
  • application.sendEventToAllUsers ( sAIModelPattern, sHandler, vParam0, vParam1, ... )

v1.1

  • Fixed an internal issue
  • The plugin was not able to load in some cases

API

--JPEvent JPEvent.activate ( sUserToken, sActivationKey ) --NEW EVENT --"onWillBeDestroyed" trigered when an AIModel will be destroyed. --For users, it occurs in the following cases : -- - When the AIModel is removed from the user. (user.removeAIModel) -- - When the user is destroyed. (application.destroyUser) --For objects, it occurs in the following cases : -- - When the AIModel is removed from the object. (object.removeAIModel) -- - When the object is explicitly destroyed, or if its parent is destroyed.(scene.destroyRuntimeObject, object.destroy, ) -- - When the scene of the object is closed. (user.setScene, application.setCurrentUserScene) --For both users and objects: -- - When the application stops or is restarted (onApplicationWillQuit) --IMPROVED API FUNCTIONS: possibility to set a pattern for the AIModel parameter. If the AIModel is nil, the event will be sent to any AIModel of the specified target object.sendEventImmediate ( hObject, sAIModelPattern, sHandler, vParam0, vParam1, ... ) object.sendEvent ( hObject, sAIModelPattern, sHandler, vParam0, vParam1, ... ) object.postEvent ( hObject, nDelay, sAIModelPattern, sHandler, vParam0, vParam1, ... ) user.sendEventImmediate ( hUser, sAIModelPattern, sHandler, vParam0, vParam1, ... ) user.sendEvent ( hUser, sAIModelPattern, sHandler, vParam0, vParam1, ... ) user.postEvent ( hUser, nDelay, sAIModelPattern, sHandler, vParam0, vParam1, ... ) --NEW API FUNCTIONS: Note that you can use these function using both api.function ( ) or JPEvent.api_function ( ). Only the second case will have code completion. --application application.cancelEvents ( sAIModelPattern, sHandlerPattern ) application.cancelObjectEvents ( sAIModelPattern, sHandlerPattern ) application.cancelUserEvents ( sAIModelPattern, sHandlerPattern ) application.delayEvents ( nDelay, sAIModelPattern, sHandlerPattern ) application.delayObjectEvents ( nDelay, sAIModelPattern, sHandlerPattern ) application.delayUserEvents ( nDelay, sAIModelPattern, sHandlerPattern ) application.pauseEvents ( sAIModelPattern, sHandlerPattern ) application.pauseObjectEvents ( sAIModelPattern, sHandlerPattern ) application.pauseUserEvents ( sAIModelPattern, sHandlerPattern ) application.postEventToCurrentUser ( nDelay, sAIModelPattern, sHandler, vParam0, vParam1, ... ) application.resumeEvents ( sAIModelPattern, sHandlerPattern ) application.resumeObjectEvents ( sAIModelPattern, sHandlerPattern ) application.resumeUserEvents ( sAIModelPattern, sHandlerPattern ) application.postEventToCurrentUser ( nDelay, sAIModelPattern, sHandler, vParam0, vParam1, ... ) application.sendEventImmediateToCurrentUser ( sAIModelPattern, sHandler, vParam0, vParam1, ... ) application.sendEventToCurrentUser ( sAIModelPattern, sHandler, vParam0, vParam1, ... ) application.postEventToAllUsers ( nDelay, sAIModelPattern, sHandler, vParam0, vParam1, ... ) application.sendEventImmediateToAllUsers ( sAIModelPattern, sHandler, vParam0, vParam1, ... ) application.sendEventToAllUsers ( sAIModelPattern, sHandler, vParam0, vParam1, ... ) --object object.cancelEvents ( hObject, sAIModelPattern, sHandlerPattern ) object.delayEvents ( hObject, nDelay, sAIModelPattern, sHandlerPattern ) object.pauseEvents ( hObject, sAIModelPattern, sHandlerPattern ) object.resumeEvents ( hObject, sAIModelPattern, sHandlerPattern ) --scene scene.cancelEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.cancelObjectEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.cancelUserEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.delayEvents ( hScene, nDelay, sAIModelPattern, sHandlerPattern ) scene.delayObjectEvents ( hScene, nDelay, sAIModelPattern, sHandlerPattern ) scene.delayUserEvents ( hScene, nDelay, sAIModelPattern, sHandlerPattern ) scene.pauseEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.pauseObjectEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.pauseUserEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.resumeEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.resumeObjectEvents ( hScene, sAIModelPattern, sHandlerPattern ) scene.resumeUserEvents ( hScene, sAIModelPattern, sHandlerPattern ) --user user.cancelEvents ( hUser, sAIModelPattern, sHandlerPattern ) user.delayEvents ( hUser, nDelay, sAIModelPattern, sHandlerPattern ) user.pauseEvents ( hUser, sAIModelPattern, sHandlerPattern ) user.resumeEvents ( hUser, sAIModelPattern, sHandlerPattern )

Description

Qui n'a jamais eu besoin d'annuler un évènement qui a été envoyé?

JPEvent est un outil très pratique, il vous permet de contrôler les évènements que vous avez envoyés. Vous pourrez annuler des évènements, les mettre en pause ou les reprendre, ou encore d'ajouter un délai additionel.

Vous allez pouvoir affectuer des actions sur plusieurs évènements à la fois, grâce au support des patterns.

JPEvent fourni des fonctions variées, pour cibler uniquement les évènements des objets, ceux des users, les évènements envoyés dans une scène ou dans toute l'application. Ci-dessous quelques exemples de fonctions :

--All of these functions can be used with patterns! user.cancelEvents ( hUser ) scene.pauseObjectEvents ( hScene, "MonsterType.*", ".*" ) object.resumeEvents ( hObject, ".*", "onAttack" ) application.delayEvents ( 3 )

Toutes les fonctions disponibles peut être trouvées dans la page d'API de JPEvent.

JPEvent fourni également une nouvelle fonctionalité lors de l'envoi d'évènements, la possibilité d'utiliser des patterns à la place du nom de l'AIModel. Avec ce genre de fonctionalité, vous allez pouvoir envoyer un évènement à plusieurs AIModels en même temps. Ca fonctionne aussi bien avec les objets que les users, avec postEvent, sendEvent ou sendEventImmediate. Egalement, 3 nouvelles fonctions sont disponibles, pour pouvoir envoyer des évènements à l'utilisateur courant sans avoir à utiliser son handle :

application.postEventToCurrentUser ( nDelay, sAIModelPattern, sHandler, vParam0, ... ) application.sendEventImmediateToCurrentUser ( sAIModelPattern, sHandler, vParam0, ... ) application.sendEventToCurrentUser ( sAIModelPattern, sHandler, vParam0, ... )

Enfin, il offre une fonctionalité très intéressante : il déclenche un évènement "onWillBeDestroyed" pour tout AIModel qui va être détruit. C'est vraiment super puisque ça va vous permettre par exemple de désallouer des ressources qui ont été créées lors de la durée de vie de l'AIModel. Ca fonctionne pour tous les AIModels, aussi bien user que objet, et ça se produit dans les cas suivants :

  • Si vous appelez manuellement removeAIModel
  • Quand une scène est fermée
  • Quand un user ou un objet est détruit
  • Quand l'application est quittée ou est redémarrée