Comme certains le savent ici je travaille sur un mod visant à introduire comme PNJ invocables Kaos et Alkage et c'est justement sur ce dernier que j'ai rencontré un problème.Dès le début je voulait quelque chose de spectaculaire pour Alkage...mais je doit dire que mes modestes connaissances en modding m'on rapidement freiner sur mes ambitions, néanmoins je voulait comme même du festival pyrotechnique pour lui, ce qui fait que je me suis échiner à créer un Alkage tout feu tout flammes qui en impose, à ceci j'y suis sans doute arriver, mais c'est dans la conceptions des effets que je désirait pour Alkage que le problème est survenu.
Je voulait que la Mort puisse avoir à son arrivée dans le jeu grâce à l'invocation et à son départ que ce soit par sa "mort " ( Lorsque Alkage décide de se retirer volontairement car il en a marre de donner un coup de main... ) ou par la fin du timer que subis l'invocation, le même effet que les Atronachs de feu lorsque qu'elle sont tuées.En gros une grosse explosion de feu qui ravage une zone définie.L'effet qui permet cette explosion pour les Atronachs j'ai du passer des heures à le rechercher jusqu'à ce que enfin je tombe dessus : "FlammeAtronachEffects"
Code : Tout sélectionner
Scriptname FlameAtronachEffectScript extends ActiveMagicEffect
{This is a temp script to get the art working right for the flame atronach.}
;===============================================
import utility
import form
;===============================================
Actor selfRef
VisualEffect Property AtronachFlameTrail Auto
Armor Property AtronachFlameDeadSkin Auto
EffectShader Property AtronachFlameDeathFXS Auto
EffectShader Property AtronachUnsummonDeathFXS Auto
explosion property AtronachFlameDeathExplosion auto
int atronachHealth
EVENT OnEffectStart(Actor Target, Actor Caster)
selfRef = caster
AtronachFlameTrail.Play(selfRef, -1)
ENDEVENT
Event OnEffectFinish(Actor akTarget, Actor akCaster)
AtronachFlameTrail.Stop(selfRef)
ENDEVENT
EVENT onDying(actor myKiller)
atronachHealth = selfRef.GetAV("Health") as int
if atronachHealth > 0
; debug.trace("flame health > 0")
AtronachFlameTrail.Stop(selfRef)
AtronachUnsummonDeathFXS.Play(selfRef)
elseIf atronachHealth <= 0
wait(3.0)
; debug.trace("flame health <= 0")
AtronachFlameDeathFXS.Play(selfRef)
wait(0.5)
selfRef.placeAtMe(AtronachFlameDeathExplosion)
wait(0.1)
AtronachFlameTrail.Stop(selfRef)
selfRef.EquipItem(AtronachFlameDeadSkin)
wait(1)
AtronachFlameDeathFXS.Stop(selfRef)
endif
ENDEVENT
J'ai donc essayer de placer ce script sur Alkage ce qui n'a pas fonctionner, de plus ce script ne permettait pas une explosion à l’apparition de l’invocation...j'ai donc essayer de le modifier mais rien n'y fit et je n'ai donc pas réussis sur ce plan la.
Mais je n'ai pas renoncé et je me suis rappeler les familiers de feu invocables qui étaient des bombes vivantes, j'ai donc chercher le script permettant le compte à rebours de l'explosion.Après de multiples péripéties et grâce à l'aide précieuse de Tenzaku j'ai donc enfin réussit à appliquer ce script :
Code : Tout sélectionner
Scriptname spellSummonDraugrBomb extends ACTOR
EXPLOSION PROPERTY fireballExplosion AUTO
EffectShader Property AtronachUnsummonDeathFXS Auto
BOOL doOnce=TRUE
EVENT onLoad()
utility.wait(179.5)
IF(doOnce && SELF.is3DLoaded())
SELF.placeAtMe(fireballExplosion)
doOnce = FALSE
utility.wait(0.1)
disable()
utility.wait(0.5)
delete()
ENDIF
ENDEVENT
EVENT onHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
IF(doOnce)
SELF.placeAtMe(fireballExplosion)
doOnce = FALSE
utility.wait(0.1)
disable()
utility.wait(0.5)
delete()
ENDIF
ENDEVENT
EVENT onDying(actor myKiller)
AtronachUnsummonDeathFXS.Play(self)
ENDEVENT
Mais malgré son bon fonctionnement il causait des bugs d'IA sur Alkage qui n'était pas souhaitables, de plus l’invocation subissait un timer qui ne marchait que sur un seul point, en effet le script originel des familiers de feu prévoyait un timer de cinq secondes au bout duquel le familier explosait, j'ai donc modifier cette durée dans la script, avec l'aide de Tenz, pour qu'elle soit du temps de l'invocation.Mais le problème était bien la ! l'explosion n'avait lieu qu'à la fin d'un timer de trois minutes ! cela voulait donc dire que si Alkage était "tué" l'explosion n'aurait donc pas lieu, et de plus le problème de déclencher une explosion au début de l'invocation restait...car ce script quand il provoque l'explosion du PNJ le tue aussi et le fait donc disparaître ce qui amenait une impossibilité logique à son utilisation pour l’explosion du début...
Voila donc ou j'en suis, j'ai décidé d'abandonner le script avec le timer car il ne répondait finalement pas à mes attentes et qu'il causait des bugs.J'aurait donc besoin de l'aide d'un scripteur pour m'aider à concevoir un Script qui provoquerait cette explosion de feu ( celle des Atronachs) à l’arrivé du PNJ en jeu suite à son invocation et à sa sortie du jeu que ce soit par la fin du timer du sort ou par la "mort" du PNJ...
Merci d'avance pour une potentiel aide