Aller au contenu


Modactorvalue Via Effets Magiques : Méthode Propre

Spell MagicEffect ActorValue ModActorValue

  • Veuillez vous connecter pour répondre
14 réponses à ce sujet

#1 Thanatos00

Thanatos00

Posté 19 avril 2012 - 15:48

Salut la compagnie,


A savoir : les sorts de type capacités non-conditionnés qui affecte des ActorValues (notamment celle du joueur), continuent d'affecter les valeurs après désactivation du mod.


La solution : toujours conditionner tous les effets magiques qui modifient une ActorValue via une capacité (avec une global ajoutée par le mod par exemple). Dès que le mod sera désactivé, la globale n'existant plus, les effets magiques arrêteront d'affecter les ActorValues.
*Un grand merci à Gérauld pour avoir trouvé cette méthode beaucoup plus simple !

A noter que les sorts à durée, ou les maladies constantes ne sont apparemment pas concernés par ce problème : lorsqu'un mod ajoutant ces types de sorts est désactivé, les AV semblent être correctement restaurées.


En espérant que ça contribue au travaux de quelques personnes,
@ bientôt.

Modifié par Thanatos00, 21 avril 2012 - 02:33.

*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#2 Gérauld

Gérauld

Posté 20 avril 2012 - 11:15

Post très intéressant. Pour ma part, dans un mod, j'utilise des capacités (modifiant des actor values) placées par quêtes mais surtout des conditions sur les effets de cette capacité. Les conditions dépendent de variables ajoutées par le mod. Le flag recover est toujours coché sur les effets magiques.
Je vais tester cet après-midi en faisant une désactivation sauvage du mod avec une dizaine d'effets actifs (sans passer par la procédure de désactivation par menus). Histoire de savoir si je dois insister un peu plus sur la procédure de désinstallation du mod.
Dans tous les cas, je pense que je vais continuer à bosser avec des capacités car je pars du principe que le lisez-moi n'est pas là pour rien vu le temps passé à le rédiger (celui du mod dont je parle s'étend sur plusieurs pages...).
Il n'est d'ailleurs jamais trop tard pour ré-activer le mod et le désinstaller proprement.
Je te donnerai le résultat du test (j'ai par moments plus d'une dizaine d'effets du type visibles sur le joueur (alccol, fatigue, encombrement...il ne manque plus que ton mod d'hypothermie)).
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#3 Thanatos00

Thanatos00

Posté 20 avril 2012 - 11:49

Hello,

Je viens de re-tester plein de fois, et ça marche impeccablement, mais oui reconfirme STP, c'est toujours le bienvenu ^^
Ca va dépanner énormément de moddeurs :D
J'ai également posté sur wiki officiel, ici entre autre, et sur le fofo officiel mon post a été repris par kuertee dans son 1er post sur le sujet : Compatibility with other mods - tips

PS : mon mod d'hypothermie devrait normalement être dispo ce week-end sur Wiwiland :)

Modifié par Thanatos00, 20 avril 2012 - 12:23.

*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#4 Gérauld

Gérauld

Posté 20 avril 2012 - 12:44

Je viens de tester et le résultat me surprend après la lecture de ton post : les effets des capacités sont bels et bien annulés lors de la désactivation du mod à la sauvage (les effets étaient actifs au moment de la sauvegarde).
C'étaient des effets de type dual value modifier ayant comme conditions des variables globales du mod appliqués via des referencealias de quêtes créées par le mod. Je touchais au onehandedmod, twohandedmod, Heavyarmormod, lightarmormod, Marksmanmod, bowspeedbonus...et à d'autres.
J'ai désactivé le mod et rechargé la partie.
Les effets n'étaient plus appliqués et les valeurs étaient comme avant l'application de l'effet.
En sauvegardant avec une valeur de onhandedmod baissant les dégât à une main à 2 avec une arme précise (effet via capacité), j'ai rechargé la partie : mon arme faisait bien 10 en dégâts comme avant l'application de la capacité par mon mod. Celle-ci touchait le onehandedmod que tu cites dans ton premier post.
Serais-je l'exception qui confirme la règle ou aurais-je raté quelque chose dans le test (ou aurais-je trouvé une solution sans le savoir)?
J'ai vérifié d'autres valeurs. Même résultat sur ce mod. Maintenant, la question est : pourquoi?
Je pense au fait que mes effets soient conditionnés. La capacité est peut-être encore appliquée mais pas les effets associés.

Voir le messageThanatos00, le 20 avril 2012 - 11:49, dit :

PS : mon mod d'hypothermie devrait normalement être dispo ce week-end sur Wiwiland :)
:grin:

2ème test : sauvegarde avec un onehandedmod à -75 causé par un effet d'une capacité. Désactivation du mod, chargement partie : onehandedmod =0. CQFD.

Modifié par Gérauld, 20 avril 2012 - 12:39.

L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#5 Thanatos00

Thanatos00

Posté 20 avril 2012 - 12:44

Tu as peut-être trouvé une autre solution toute bête !
Simplement conditionner les effets de capacités (surtout par une global ajoutée par le mod effectivement) ? Ce serait une soluce encore plus simple ^^

Il faudrait peut-être tester sans les conditionner ! Mes capacités n'étaient effectivement pas conditionnées il me semble (enfin de l'extrérieur via script) !

Modifié par Thanatos00, 20 avril 2012 - 12:47.

*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#6 Gérauld

Gérauld

Posté 20 avril 2012 - 12:48

Je vais en rajouter une non conditionnée pour tester, sur la même capacité que celle que j'ai déjà testée. Je te donne le résultat dans quelques minutes.
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#7 Thanatos00

Thanatos00

Posté 20 avril 2012 - 12:49

Merci beaucoup ! Si ça vient bien du conditionnement ce serait excellent :D
*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#8 Gérauld

Gérauld

Posté 20 avril 2012 - 12:59

Les modifications apportées par l'effet magique sans conditions sont toujours là après désactivation du mod.  Celles des effets magiques avec conditions ne sont plus appliquées.
La solution la plus simple est donc d'ajouter au moins une condition aux effets magiques du mod sur une variable globale apportée par le mod.
La variable disparait, l'effet n'est plus applique (même si la capacité est gardée en mémoire par la sauvegarde), les modifications apportées sont annulées. :good:

Mon test comprenait deux effets sur le onehandedmod : un à -75 avec conditions et un à -100 sans conditions.
Je sauvegarde avec -175 en onehandedmod. Je désactive le mod et je charge la partie : onehandedmod = -100.
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#9 Thanatos00

Thanatos00

Posté 20 avril 2012 - 13:00

Raaah génial ! Chapeau bas Gérauld ! :yahoo:

Je vais ré-éditer le 1er post ! Merci.

Edit : comment tu vois que ta capacité est toujours dans la sauvegarde ? Car je viens d'essayer de charger une sauvegarde (en ayant désactivé le mod avant) dans laquelle j'avais des capacités appliquées au joueurs, et le log ne me parle que des scripts manquants, mais ne me parle pas des capacités.

Modifié par Thanatos00, 20 avril 2012 - 14:38.

*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#10 Gérauld

Gérauld

Posté 20 avril 2012 - 13:11

En fait, pour la désinstallation propre, je ne fais pas de dispel.
Il me semblait suffisant de stopper les quêtes qui placent les capacités via des référencealias (désactivation des fonctions via un menu ingame). La capacité me semblait disparaitre à ce moment précis.
Quel est ton avis sur la question?
Ce qui aurait été bien, c'est d'avoir le format exact d'une sauvegarde afin de mieux maîtriser ce vilain processus qui stocke jusqu'aux properties des scripts chargés...
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#11 Thanatos00

Thanatos00

Posté 20 avril 2012 - 14:20

Yep c'est pas simple de s'y retrouver.

Alors ce que j'ai eu l'impression de comprendre, en observant les logs : c'est qu'il n'y a que les scipts qui laissent une trace dans la sauvegarde si on se débrouille bien (et ça on ne peut rien y faire, enfin je n'ai pas de solution) en cas de désactivation d'un mod. Par contre ils essaient simplement de se charger au chargement, puis n'interviennent plus (si ils ne sont plus dans le répertoire "Data").

Mais j'ai l'impression que tout le monde tâtonne un peu sur le sujet, donc je ne me base que sur mes observations.



Pour les properties
Spoiler


Pour ce qui est de la nécessité d'inclure un processus de désinstallation
Spoiler


Pour ce qui concerne les updates de mod :
Spoiler

*Ce dernier post mériterait peut-être d'être dans la section script. Ca fait longtemps que j'ai envie d'ouvrir une discussion sur l'optimisation des scripts. Je le ferai peut-être dans pas longtemps.

Modifié par Thanatos00, 21 avril 2012 - 03:47.

*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#12 Gérauld

Gérauld

Posté 20 avril 2012 - 15:49

Voilà pourquoi je ne suis plus embêté : tous mes scripts passent par des quêtes (sauf pour le mod des moulins alors que j'aurai pû) et des referencealias depuis que tu m'as filé l'astuce.
J'ai effectivement connu le problème des properties avec mes mods plus anciens sans trouver de moyen simple de contourner ça à part une nouvelle partie. Ton truc m'aurait été utile à ce moment.
Concernant le registerforsleep, je n'ai pas vu de soucis. N'utilisant que des registerforsinglupdate (imposé par la nécessité de faire varier les périodicité pour des raisons de coexistence de scripts, je ne savais pas que c'était sauvegardé), pas de soucis non plus.

J'ai également testé un script tirant parti du multithreading de papyrus. A savoir l'ordonnancement des instances d'un même script sur le même objet et le déclenchement d'une routine spécifique à la première et dernière instance. Le tout est réalisé à l'aide d'un système de compteurs.
D'après ce que j'ai vu, toutes les instances sont sauvegardées, ce qui est bon à savoir.

Pour les mises à jour, je fais désactiver et réactiver les fonctionnalités par le joueur (arrêt/marche des quêtes en fait). Il est vrai que l'on peut ajouter une quête qui le fasse automatiquement...ou utiliser un event oninit() dans un script (celui du menu de configuration par exemple) et stocker la version du mod dans une variable globale après mise à jour ou installation. Si la variable dans la sauvegarde n'est pas celle du mod, un reset sera effectué. Ce qui permet d'avoir la procédure effectuée pour chaque sauvegard chargée et de manière transparente.
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#13 Thanatos00

Thanatos00

Posté 20 avril 2012 - 16:09

Yep, je procède à peu près de cette façon pour l'update : une globale qui stock la version, et un script de quête qui vérifie la version et qui agit automatiquement en conséquence.

PS : ta trouvaille à propos des capacités conditionnées est super pratique ! Infiniment plus simple que ma 1ère solution. Je viens de conditionner chaque effet qui touche aux ActorValues en ajoutant simplement une condition qui vérifie si la version du mod est > 0. Ca marche du tonnerre ! Merci encore pour ton intervention :)
Belle émulation ^^
J'ai également édité mes interventions sur le wiki, et le fofo officiel en te créditant bien sûr :huhu:

Modifié par Thanatos00, 20 avril 2012 - 16:30.

*Topic officiel du Club de Sucre-Lune (v1.20)
*Solution du club

#14 Gérauld

Gérauld

Posté 20 avril 2012 - 18:05

C'est en partageant nos trucs que nous progressons. Il me semble que c'est toi qui m'a filé l'astuce pour attacher les scripts de manière dynamique d'ailleurs. ;)
L'ours blanc est l'un des plus grands carnivores de Nirn. Les poils du pelage sont translucides et creux. C'est la réfraction de la lumière visible sur la surface interne des poils creux et incolores qui les fait paraître blancs. Cette particularité lui permet de se camoufler dans son environnement de neige et de glace, afin de mieux surprendre ses proies. Ce plantigrade vit exclusivement en Bordeciel et sur l'île de Solstheim.

#15 HawkFest

HawkFest

Posté 19 janvier 2013 - 22:59

Hoa super fil, merci camarades!





Aussi étiqueté avec Spell, MagicEffect, ActorValue, ModActorValue

0 utilisateur(s) li(sen)t ce sujet

0 membre(s), 0 invité(s), 0 utilisateur(s) anonyme(s)