lylver
Héros
Inscrit le: 08 Avr 2005
Messages: 274
|
Posté le : 25/04/2006 12:11:42 Sujet du message :
Vous avez des dragons refaits dans le module du TN Bouchon 2 disponible là
IGNVault
CEP 1.52 requis
Tous ne sont pas top : prends ceux qui ont des noms
Araqsalil, Tenekraah, Incende, Vyrrakis etc...
Attention j'ai refait les souffles et l'aura de peur : cf scripts ci-dessous
Certains blancs et rouges on le vol également, je suis en train d'en refaire une panoplie
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { int nAge = GetHitDice( OBJECT_SELF); int nDamage, nDC, nDamStrike; float fDelay; object oTarget; effect eVis, eBreath; if ( nAge <= 6) { nDamage = d6( 2); nDC = 13; } else if ( nAge >= 7 && nAge <= 9) { nDamage = d6( 4); nDC = 14; } else if ( nAge >= 10 && nAge <= 12) { nDamage = d6( 6); nDC = 17; } else if ( nAge >= 13 && nAge <= 15) { nDamage = d6( 8); nDC = 18; } else if ( nAge >= 16 && nAge <= 18) { nDamage = d6( 10); nDC = 22; } else if ( nAge >= 19 && nAge <= 21) { nDamage = d6( 12); nDC = 23; } else if ( nAge >= 22 && nAge <= 24) { nDamage = d6( 12); nDC = 26; } else if ( nAge >= 25 && nAge <= 27) { nDamage = d6( 16); nDC = 27; } else if ( nAge >= 28 && nAge <= 30) { nDamage = d6( 18); nDC = 30; } else if ( nAge >= 31 && nAge <= 33) { nDamage = d6( 20); nDC = 31; } else if ( nAge >= 34 && nAge <= 37) { nDamage = d6( 24); nDC = 34; } else if ( nAge > 37) { nDamage = d6((( nAge- 3)* 2)/ 3); nDC = 36; } PlayDragonBattleCry(); oTarget = GetFirstObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); while( GetIsObjectValid( oTarget)) { if( oTarget != OBJECT_SELF && ! GetIsReactionTypeFriendly( oTarget)) { nDamStrike = nDamage; SignalEvent( oTarget, EventSpellCastAt( OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_ACID)); fDelay = GetDistanceBetween( OBJECT_SELF, oTarget)/ 20; if( MySavingThrow( SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_ACID)) { nDamStrike = nDamStrike/ 2; if( GetHasFeat( FEAT_EVASION, oTarget) || GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = 0; } } else if( GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = nDamStrike/ 2; } if ( nDamStrike > 0) { eBreath = EffectDamage( nDamStrike, DAMAGE_TYPE_ACID); eVis = EffectVisualEffect( VFX_IMP_ACID_S); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eBreath, oTarget)); } } oTarget = GetNextObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { int nAge = GetHitDice( OBJECT_SELF); int nDamage, nDC, nDamStrike; float fDelay; object oTarget; effect eVis, eBreath; if ( nAge <= 6) { nDamage = d8( 2); nDC = 12; } else if ( nAge >= 7 && nAge <= 9) { nDamage = d8( 4); nDC = 14; } else if ( nAge >= 10 && nAge <= 12) { nDamage = d8( 6); nDC = 16; } else if ( nAge >= 13 && nAge <= 15) { nDamage = d8( 8); nDC = 18; } else if ( nAge >= 16 && nAge <= 18) { nDamage = d8( 10); nDC = 20; } else if ( nAge >= 19 && nAge <= 21) { nDamage = d8( 12); nDC = 23; } else if ( nAge >= 22 && nAge <= 24) { nDamage = d8( 14); nDC = 25; } else if ( nAge >= 25 && nAge <= 27) { nDamage = d8( 16); nDC = 27; } else if ( nAge >= 28 && nAge <= 30) { nDamage = d8( 18); nDC = 29; } else if ( nAge >= 31 && nAge <= 33) { nDamage = d8( 20); nDC = 31; } else if ( nAge >= 34 && nAge <= 37) { nDamage = d8( 22); nDC = 33; } else if ( nAge > 37) { nDamage = d8((( nAge- 3)* 2)/ 3); nDC = 36; } PlayDragonBattleCry(); oTarget = GetFirstObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); while( GetIsObjectValid( oTarget)) { if( oTarget != OBJECT_SELF && ! GetIsReactionTypeFriendly( oTarget)) { fDelay = GetDistanceBetween( OBJECT_SELF, oTarget)/ 20; nDamStrike = nDamage; SignalEvent( oTarget, EventSpellCastAt( OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_COLD)); if( MySavingThrow( SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_COLD, OBJECT_SELF, fDelay)) { nDamStrike = nDamStrike/ 2; if( GetHasFeat( FEAT_EVASION, oTarget) || GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = 0; } } else if( GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = nDamStrike/ 2; } if ( nDamStrike > 0) { eBreath = EffectDamage( nDamStrike, DAMAGE_TYPE_COLD); eVis = EffectVisualEffect( VFX_IMP_FROST_S); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eBreath, oTarget)); } } oTarget = GetNextObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"#include "x0_i0_spells"void main() { object oDragon = OBJECT_SELF ; int nHD = GetHitDice( oDragon); int nDC = 6 + nHD/ 2 + GetAbilityModifier( ABILITY_CHARISMA, oDragon); int nDuration ; float fDelay; object oTarget; effect eBreath = EffectFrightened(); effect eFear = EffectVisualEffect( VFX_DUR_MIND_AFFECTING_FEAR); effect eVis = EffectVisualEffect( VFX_IMP_FEAR_S); effect eDur = EffectVisualEffect( VFX_DUR_CESSATE_NEGATIVE); effect eLink = EffectLinkEffects( eBreath, eDur); eLink = EffectLinkEffects( eLink, eFear); PlayDragonBattleCry(); oTarget = GetFirstObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); while( GetIsObjectValid( oTarget)) { if( oTarget != OBJECT_SELF && spellsIsTarget( oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) { nDuration = GetScaledDuration( 1+ nHD/ 12, oTarget); SignalEvent( oTarget, EventSpellCastAt( OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_FEAR)); fDelay = GetDistanceBetween( oTarget, OBJECT_SELF)/ 20; if(! MySavingThrow( SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR, OBJECT_SELF, fDelay)) { DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds( nDuration))); } } oTarget = GetNextObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { int nAge = GetHitDice( OBJECT_SELF); int nDamage, nDC, nDamStrike; float fDelay; object oTarget; effect eVis, eBreath; if ( nAge <= 6) { nDamage = d12( 2); nDC = 15; } else if ( nAge >= 7 && nAge <= 9) { nDamage = d12( 4); nDC = 18; } else if ( nAge >= 10 && nAge <= 12) { nDamage = d12( 6); nDC = 19; } else if ( nAge >= 13 && nAge <= 15) { nDamage = d12( 8); nDC = 22; } else if ( nAge >= 16 && nAge <= 18) { nDamage = d12( 10); nDC = 24; } else if ( nAge >= 19 && nAge <= 22) { nDamage = d12( 12); nDC = 25; } else if ( nAge >= 23 && nAge <= 24) { nDamage = d12( 14); nDC = 28; } else if ( nAge >= 25 && nAge <= 27) { nDamage = d12( 16); nDC = 30; } else if ( nAge >= 28 && nAge <= 30) { nDamage = d12( 18); nDC = 33; } else if ( nAge >= 31 && nAge <= 33) { nDamage = d12( 20); nDC = 35; } else if ( nAge >= 34 && nAge <= 37) { nDamage = d12( 22); nDC = 38; } else if ( nAge > 37) { nDamage = d12((( nAge- 3)* 2)/ 3); nDC = 40; } PlayDragonBattleCry(); oTarget = GetFirstObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); while( GetIsObjectValid( oTarget)) { if( oTarget != OBJECT_SELF && ! GetIsReactionTypeFriendly( oTarget)) { nDamStrike = nDamage; SignalEvent( oTarget, EventSpellCastAt( OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_FIRE)); if( MySavingThrow( SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_FIRE)) { nDamStrike = nDamStrike/ 2; if( GetHasFeat( FEAT_EVASION, oTarget) || GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = 0; } } else if( GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = nDamStrike/ 2; } if ( nDamStrike > 0) { eBreath = EffectDamage( nDamStrike, DAMAGE_TYPE_FIRE); eVis = EffectVisualEffect( VFX_IMP_FLAME_M); fDelay = GetDistanceBetween( OBJECT_SELF, oTarget)/ 20; DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eBreath, oTarget)); } } oTarget = GetNextObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation(), TRUE); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { int nAge = GetHitDice( OBJECT_SELF); int nDamage, nDC, nDamStrike; float fDelay; object oTarget; effect eVis, eBreath; if ( nAge <= 6) { nDamage = d6( 2); nDC = 13; } else if ( nAge >= 7 && nAge <= 9) { nDamage = d6( 4); nDC = 16; } else if ( nAge >= 10 && nAge <= 12) { nDamage = d6( 6); nDC = 17; } else if ( nAge >= 13 && nAge <= 15) { nDamage = d6( 8); nDC = 20; } else if ( nAge >= 16 && nAge <= 18) { nDamage = d6( 10); nDC = 22; } else if ( nAge >= 19 && nAge <= 21) { nDamage = d6( 12); nDC = 25; } else if ( nAge >= 22 && nAge <= 24) { nDamage = d6( 14); nDC = 26; } else if ( nAge >= 25 && nAge <= 27) { nDamage = d6( 16); nDC = 29; } else if ( nAge >= 28 && nAge <= 30) { nDamage = d6( 18); nDC = 30; } else if ( nAge >= 31 && nAge <= 33) { nDamage = d6( 20); nDC = 33; } else if ( nAge >= 34 && nAge <= 37) { nDamage = d6( 22); nDC = 35; } else if ( nAge > 37) { nDamage = d6((( nAge- 3)* 2)/ 3); nDC = 37; } PlayDragonBattleCry(); oTarget = GetFirstObjectInShape( SHAPE_SPHERE, 8.0, GetSpellTargetLocation(), TRUE); while( GetIsObjectValid( oTarget)) { if( oTarget != OBJECT_SELF && ! GetIsReactionTypeFriendly( oTarget)) { nDamStrike = nDamage; SignalEvent( oTarget, EventSpellCastAt( OBJECT_SELF, SPELLABILITY_DRAGON_BREATH_GAS)); fDelay = GetDistanceBetween( OBJECT_SELF, oTarget)/ 20; if( MySavingThrow( SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_ACID)) { nDamStrike = nDamStrike/ 2; if( GetHasFeat( FEAT_EVASION, oTarget) || GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = nDamStrike/ 2; } } else if( GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = nDamStrike/ 2; } if ( nDamStrike > 0) { eBreath = EffectDamage( nDamStrike, DAMAGE_TYPE_ACID); eVis = EffectVisualEffect( VFX_IMP_POISON_L); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget)); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eBreath, oTarget)); } } oTarget = GetNextObjectInShape( SHAPE_SPHERE, 8.0, GetSpellTargetLocation(), TRUE); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { int nAge = GetHitDice( OBJECT_SELF); int nDamage; int nDC; if ( nAge <= 6) { nDamage = d10( 2); nDC = 14; } else if ( nAge >= 7 && nAge <= 9) { nDamage = d10( 4); nDC = 16; } else if ( nAge >= 10 && nAge <= 12) { nDamage = d10( 6); nDC = 18; } else if ( nAge >= 13 && nAge <= 15) { nDamage = d10( 8); nDC = 20; } else if ( nAge >= 16 && nAge <= 18) { nDamage = d10( 10); nDC = 23; } else if ( nAge >= 19 && nAge <= 21) { nDamage = d10( 12); nDC = 25; } else if ( nAge >= 22 && nAge <= 24) { nDamage = d10( 14); nDC = 27; } else if ( nAge >= 25 && nAge <= 27) { nDamage = d10( 16); nDC = 29; } else if ( nAge >= 28 && nAge <= 30) { nDamage = d10( 18); nDC = 31; } else if ( nAge >= 31 && nAge <= 33) { nDamage = d10( 20); nDC = 33; } else if ( nAge >= 34 && nAge <= 37) { nDamage = d10( 22); nDC = 36; } else if ( nAge > 37) { nDamage = d10((( nAge- 3)* 2)/ 3); nDC = 37; } PlayDragonBattleCry(); effect eVis = EffectVisualEffect( VFX_IMP_LIGHTNING_S); effect eDamage; object oTarget; int nDamStrike = nDamage; float fDelay; int nCnt; oTarget = GetFirstObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation()); while ( GetIsObjectValid( oTarget) && nCnt < nAge) { if( oTarget != OBJECT_SELF && ! GetIsReactionTypeFriendly( oTarget)) { SignalEvent( oTarget, EventSpellCastAt( OBJECT_SELF, SPELLABILITY_CONE_LIGHTNING)); fDelay = GetDistanceBetween( OBJECT_SELF, oTarget)/ 20; if( MySavingThrow( SAVING_THROW_REFLEX, oTarget, nDC, SAVING_THROW_TYPE_ELECTRICITY, OBJECT_SELF, fDelay)) { nDamStrike = nDamStrike/ 2; if( GetHasFeat( FEAT_EVASION, oTarget) || GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = 0; } } else if( GetHasFeat( FEAT_IMPROVED_EVASION, oTarget)) { nDamStrike = nDamStrike/ 2; } if( nDamStrike > 0) { eDamage = EffectDamage( nDamStrike, DAMAGE_TYPE_ELECTRICAL); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eDamage, oTarget)); DelayCommand( fDelay, ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget)); } } oTarget = GetNextObjectInShape( SHAPE_SPELLCONE, 14.0, GetSpellTargetLocation()); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { effect eVis = EffectVisualEffect( VFX_IMP_FEAR_S); effect eDur = EffectVisualEffect( VFX_DUR_MIND_AFFECTING_FEAR); effect eDur2 = EffectVisualEffect( VFX_DUR_CESSATE_NEGATIVE); effect eFear = EffectFrightened(); effect eLink = EffectLinkEffects( eFear, eDur); eLink = EffectLinkEffects( eLink, eDur2); object oDragon = GetAreaOfEffectCreator() ; int nHD = GetHitDice( oDragon); int nDC = 2 + nHD/ 2 + GetAbilityModifier( ABILITY_CHARISMA, oDragon); int nDuration ; object oTarget = GetEnteringObject(); if( GetIsEnemy( oTarget, oDragon) ){ nDuration = GetScaledDuration( 1+ nHD/ 12, oTarget); SignalEvent( oTarget, EventSpellCastAt( GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR)); if( (! MySavingThrow( SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR)) && (! GetHasSpellEffect( SPELLABILITY_AURA_FEAR, oTarget)) ){ ApplyEffectToObject( DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds( nDuration)); ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget); } } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
Ce message est un spoiler, et risque de vous informer de choses que vous auriez dû apprendre par vous même (fin d'un jeu, film, etc). À vos risques et périls (ludiques), vous pouvez le voir en cliquant sur cet avertissement.Spoiler :NWScript :#include "NW_I0_SPELLS"void main() { effect eVis = EffectVisualEffect( VFX_IMP_FEAR_S); effect eDur = EffectVisualEffect( VFX_DUR_MIND_AFFECTING_FEAR); effect eDur2 = EffectVisualEffect( VFX_DUR_CESSATE_NEGATIVE); effect eFear = EffectFrightened(); effect eLink = EffectLinkEffects( eFear, eDur); eLink = EffectLinkEffects( eLink, eDur2); object oDragon = GetAreaOfEffectCreator() ; int nHD = GetHitDice( oDragon); int nDC = 2 + nHD/ 2 + GetAbilityModifier( ABILITY_CHARISMA, oDragon); int nDuration ; object oTarget = GetFirstInPersistentObject(); while( GetIsObjectValid( oTarget) ){ if( GetIsEnemy( oTarget, oDragon ) ){ nDuration = GetScaledDuration( 1+ nHD/ 12, oTarget); SignalEvent( oTarget, EventSpellCastAt( GetAreaOfEffectCreator(), SPELLABILITY_AURA_FEAR)); if( (! MySavingThrow( SAVING_THROW_WILL, oTarget, nDC, SAVING_THROW_TYPE_FEAR)) && (! GetHasSpellEffect( SPELLABILITY_AURA_FEAR, oTarget)) ){ ApplyEffectToObject( DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds( nDuration)); ApplyEffectToObject( DURATION_TYPE_INSTANT, eVis, oTarget); } } oTarget = GetNextInPersistentObject(); } } Note : le code affiché ci-dessus n'est pas rendu tel qu'il devrait l'être réellement, en particulier des sauts de lignes sont automatiquement insérés pour éviter de casser la mise en page. En le copiant/collant, vous résoudrez ce problème.
|