[SPELL] NwNRo_otiluke Sphere

Répondre
Partager Rechercher
Code PHP:

//#include "ro_generic"
//#include "ro_ro_rules"
//#include "ro_randmatk"
void main()
{
SpeakString("Otiluke's Sphere !");
WriteTimestampedLogEntry("Otiluke's Sphere !");

object oPC OBJECT_SELF;
object oTarget GetAttemptedSpellTarget();
float fDuration RoundsToSeconds(GetCasterLevel(oPC));
effect eVFX EffectVisualEffect(VFX_DUR_SPELLTURNING);
eVFX EffectLinkEffects(EffectVisualEffect(VFX_DUR_PARALYZE_HOLD ),eVFX);
eVFX EffectLinkEffects(EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE),eVFX);
effect eVFX1 EffectVisualEffect(4);

//if ((GetPlotFlag(oTarget)!= TRUE)&& (GetIsNvnRoDM(oTarget)==FALSE))
if ((GetPlotFlag(oTarget)!= TRUE)&& (GetIsDM(oTarget)==FALSE))
    {
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX1,oTarget,fDuration);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX1,oTarget,fDuration);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX1,oTarget,fDuration);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX1,oTarget,fDuration);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX1,oTarget,fDuration);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oTarget,fDuration);
    
AssignCommand(oTarget,ClearAllActions());
    
AssignCommand(oTarget,ClearAllActions(TRUE)); // Parfois, le ClearAll ne fonctionne pas tout seul... :/
    
DelayCommand(1.0,SetCommandable(FALSE,oTarget));
    
DelayCommand(fDuration+1.0,SetCommandable(TRUE,oTarget));
    
DelayCommand(1.0,SetPlotFlag(oTarget,TRUE));
    
DelayCommand(fDuration+1.0,SetPlotFlag(oTarget,FALSE));
    }

A noter que ce sort date un peu, quand même, et qu'il doit pouvoir etre optimisable avec les EffectPetrify de la 1.32
(tiens, oui, au fait...)
Et hop : je met l'effet CutSceneParalyze pour m'assurer que tout est bien stoppé pour la créature visée

Code PHP:

//#include "ro_generic"
//#include "ro_ro_rules"
//#include "ro_randmatk"
void main()
{
SpeakString("Otiluke's Sphere !");
WriteTimestampedLogEntry("Otiluke's Sphere !");

object oPC OBJECT_SELF;
object oTarget GetAttemptedSpellTarget();
float fDuration RoundsToSeconds(GetCasterLevel(oPC));
effect eVFX EffectVisualEffect(VFX_DUR_SPELLTURNING);
eVFX EffectLinkEffects(EffectVisualEffect(VFX_DUR_PARALYZE_HOLD ),eVFX);
eVFX EffectLinkEffects(EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE),eVFX);
effect eVFX1 EffectVisualEffect(4);
effect eStop EffectCutsceneParalyze();
eVFX1 EffectLinkEffects(eVFX1,eStop);

//if ((GetPlotFlag(oTarget)!= TRUE)&& (GetIsNvnRoDM(oTarget)==FALSE))
if ((GetPlotFlag(oTarget)!= TRUE)&& (GetIsDM(oTarget)==FALSE))
    {
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX1,oTarget,fDuration);
    
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVFX,oTarget,fDuration);
    
DelayCommand(0.5,SetPlotFlag(oTarget,TRUE));
    
DelayCommand(fDuration+1.0,SetPlotFlag(oTarget,FALSE));
    }

Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés