Pour lier les anneaux, à la connexion je ferais un SetLocalObject sur chacun des anneaux afin de pouvoir directement atteindre l'autre porteur à partir d'un anneau.
Par contre pour détecter l'application d'un nouvel effet...
A priori les effets automatiques viennent via les sorts, les pièges, les souffles de dragon, les uppercuts des moines, les attaques handicapantes des roublards et deux trois trucs que j'ai surement oubliés. Les effets appliqués par des scripts maison ne posent pas de problème vu qu'il suffit de modifier le script pour l'appliquer aussi au porteau de l'autre anneau.
Si c'est par sort ça doit pouvoir se faire avec le spellhook, tu mets un bloc qui ne s'exécute que si la cible du sort porte tel ou tel anneau.
Comme le spellhook s'exécute avant le reste du sort par contre l'effet éventuel ne sera pas encore appliqué sur la cible, je suggère donc un DelayCommand d'une seconde qui vérifiera si un nouvel effet a été collé (ou enlevé, par une dissipation ou une restauration par exemple) sur la cible. Le problème c'est que c'est pas parce qu'on lance un sort d'effet sur quelqu'un que ça va nécessairement lui appliquer un nouvel effet : si c'est un sort offensif, ça ne le fait que s'il rate son jet, si c'est un sort amical ça ne le fait que si il ne bénéficiait pas de l'effet avant.
En revanche dans le spellhook on n'a pas accès à la durée de l'effet, donc je vois pas comment appliquer au porteur de l'autre anneau, un effet de même durée. A moins de calculer dans le spellhook la durée de l'effet du sort, qui est grosso modo soit 1 tour/niv, soit 1 round/niv, soit 1 heure/niv, modulo l'utilisation du don extension de durée. Dans tous les cas ça me paraît plus simple qu'un OnHeartBeat qui devrait vérifier l'ensemble des effets dont un PJ bénéficie, et les comparer au OnHeartBeat précédent.
|