La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 28/04/2024 08:28:46


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Attention ! Vous êtes en train de lire un message hors de son contexte. Veuillez lire le sujet probleme sur deux teleportations en entier avant de répondre à ce message.
arfost
Acolyte
Inscrit le: 24 Fév 2007
Messages: 20
Répondre en citant
Posté le : 01/08/2007 22:32:39 Sujet du message :

Alors, pour le object_self je sais pas pourquoi j'ai mis ça, une etourderie. Je sais tres bien à quoi il se rapporte et dans quels cas. Le truc est que durant les tests ça a marché, pour ça que ça m'a echappé.

Ensuite oui je sais a quoi sert le spell hooking hein, j'ai etudié la chose avec precision. Je sais que ça a pas de rapport avec les effets mais les sorts. le truc c'est que justement mes effets intervienent apres un jet d'art de la magie raté via un test dans le spell hooking.

En gros je fais en sorte que chaque lancement de sort nessecite un jet d'art de la magie (connaissance des sorts dans la version française du jeu, mais c'est moche) et que si ce jet est raté de plus de 5 le joueur se prenne un des effets que j'ai fais dans le script avec les effets de teleportation.

J'ai donc mon script de spell hooking qui fais le test, et en cas de test raté j'ai le gros script avec tous les effets qui se lance et le joueur qui s'en prend plein la tronche.

Le script de spell hooking est placé nul part et est apellé par le module au lancement d'un sort. Le gros script avec tous les effets est placé nul part et est apellé par le spell hooking en cas d'echec. J'ai enfin le dernier petit script qui est un include permettant de faire des jets de comps et de caracs a ma sauce dans les scripts.

Les effets sont tous ceux dans le gros script ils sont tous parfaitement fonctionnels a part les deux qui teleportent. Je suis desolé j'avais mis des grosses lignes de commentaires pour qu'ils soient tres visibles mais visiblement j'ai du faire une fausse manip, elles ont disparue. Je vous remet le script avec les deux fonctions teleportant bien visible.

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 "X0_I0_SPELLS"

location Decalage(location lLoc, float fRayon = 10.0) //permet un decalage de 10 metre de rayon
{
vector vPos = GetPositionFromLocation(lLoc);

float fR = IntToFloat(Random(100)+1)/100 * fRayon; //Definition des coordonnes polaires du nouveau point
float fTheta = IntToFloat(Random(360));

vPos.x += fR*cos(fTheta); //Calcul des modifications faites aux coordonnes initiales
vPos.y += fR*sin(fTheta);

lLoc = Location(GetAreaFromLocation(lLoc), vPos, 0.0); //Redefinition de la location apres application du decalage

return lLoc;
}
//
//
// PREMIERE FONCTION TELEPORTATION BUGGEE
//
//
void tele_dime (object oMage)
{
SetLocalInt(OBJECT_SELF,"nBugTeleporte",1); //variable de bidouille pour couper les sorts dans le spell hooking et stopper le bug
effect eko = EffectKnockdown();
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_IMP_LIGHTNING_M),oMage);
string sTag_dest = "WpTeleMage0"+IntToString(Random(6)+1);  // TAG DE DESTINATION
AssignCommand(oMage, ClearAllActions(TRUE));
object oDest = GetObjectByTag(sTag_dest); //solution de Flumby mise en oeuvre RECHERCHE DE L'OBJET VIA LE TAG
AssignCommand(oMage,JumpToLocation(GetLocation(oDest))); //solution de Flumby mise en oeuvre TELEPORTATION ELLE MEME
//AssignCommand(oMage,JumpToObject(GetObjectByTag(sTag_dest))); //tous les anciens essais
//AssignCommand(oEntering,JumpToObject(GetObjectByTag(sWPTag)));
//DelayCommand(0.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eko, oMage,1.0)); //Application du ko en commentaire
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "sans que vous ayez le temps de comprendre vous vous teleportez dans un endroit lointaint. Heureusement vos esprit vous reviennent tres rapidement.";
}
//
//
// SECONDE FONCTION TELEPORTATION BUGGE
//
//
void tele_self (object oMage)
{
SetLocalInt(OBJECT_SELF,"nBugTeleporte",1); //variable de bidouille pour couper les sorts dans le spell hooking et stopper le bug
effect eko = EffectKnockdown();
AssignCommand(oMage, ClearAllActions(TRUE));
AssignCommand(oMage,JumpToLocation(Decalage(GetLocation(oMage),6.0)));  TELEPORTATION PLUS OBTENTION DE LA LOCALISATION VIA LA FONCTION DECALAGE (QUI MARCHE) LA TELEPORTATION A LIEU SUR UNE LOCATION ALEATOIRE DANS UN RAYON DE 6 METRE AUTOUR DU MAGE
//DelayCommand(0.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eko, oMage,IntToFloat(d6(1)))); //Application du ko en commentaire
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "sans que vous ayez le temps de comprendre vous vous teleportez une courte distance, sonne sous le choc.";
}

//
//
// FIN DES TELEPORTATIONS BUGGE, LE RESTE EST FONCTIONEL (CES FONCTIONS SONT APELLE DANS LE SWITCH DE LA FONCTION MAIN DE CE SCRIPT. ELLES SONT APELLE PAR UNE DES DERNIERE CONDITIONS)
//
//

void degats(object oMage)
{
effect eDam;
int nMetaMagic = GetMetaMagicFeat();
switch (nMetaMagic)
{
case METAMAGIC_EMPOWER:
eDam = EffectDamage(d12(15),DAMAGE_TYPE_SLASHING,DAMAGE_POWER_PLUS_TWENTY);
break;
case METAMAGIC_MAXIMIZE:
eDam = EffectDamage(12*10,DAMAGE_TYPE_SLASHING,DAMAGE_POWER_PLUS_TWENTY);
break;
default:
eDam = EffectDamage(d12(10),DAMAGE_TYPE_SLASHING,DAMAGE_POWER_PLUS_TWENTY);
break;
}

effect eVis = EffectVisualEffect(234);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oMage);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oMage);
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "l'energie qui vous echappe se retourne contre vous et vous la sentez parcourir et dechirer votre corps.";
}

void deat_soul(object oMage)
{
effect eVis = EffectVisualEffect(VFX_IMP_DEATH_L);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oMage);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oMage);
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "l'energie qui vous echappe se retourne contre vous, vous sentez votre ame s'etirer et se tordre comme si l'on vous l'arrachait avant de vous effondrer, mort.";

}

void deat_implo(object oMage)
{
object oTarget;
float fDelay;
//effect eDeath = EffectDeath();
//eDeath = SupernaturalEffect(eDeath);
effect eImplode= EffectVisualEffect(VFX_FNF_IMPLOSION);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImplode, GetLocation(oMage));
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oMage),FALSE, OBJECT_TYPE_CREATURE);
while (GetIsObjectValid(oTarget))
{
fDelay = GetRandomDelay(0.4, 1.2);
//Make Constit save
if(!MySavingThrow(SAVING_THROW_FORT, oTarget, 30, SAVING_THROW_TYPE_CHAOS, OBJECT_SELF, fDelay))
{
//Apply death effect and the VFX impact
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDeath(), oTarget));
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oMage));
}
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "l'energie qui vous echappe se retourne contre vous et dechiquete votre corps et tout ceux aleantours.";
}

void knoc_down(object oMage)
{
int nMetaMagic = GetMetaMagicFeat();
float fDuration;
switch (nMetaMagic)
{
case METAMAGIC_EMPOWER:
fDuration = (d6(3) - GetAbilityModifier(ABILITY_CONSTITUTION,oMage))*1.0;
if (fDuration<3.0) fDuration = 3.0;
break;
case METAMAGIC_EXTEND:
fDuration = (d6(2)*2.0 - GetAbilityModifier(ABILITY_CONSTITUTION,oMage));
if (fDuration<6.0) fDuration = 6.0;
break;
case METAMAGIC_MAXIMIZE:
fDuration = (6*2.0 - GetAbilityModifier(ABILITY_CONSTITUTION,oMage));
if (fDuration<3.0) fDuration = 3.0;
break;
default:
fDuration = (d6(2) - GetAbilityModifier(ABILITY_CONSTITUTION,oMage))*1.0;
if (fDuration<3.0) fDuration = 3.0;
break;
}
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "l'energie qui vous echappe parcours votre corps et vous assome pour une courte duree (" +FloatToString(fDuration,2,0)+ " rounds)";
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectStunned(),oMage,fDuration*6.0);
}

void confused(object oMage)
{
int nMetaMagic = GetMetaMagicFeat();
float fDuration;
switch (nMetaMagic)
{
case METAMAGIC_EMPOWER:
fDuration = (d6(3) - GetAbilityModifier(ABILITY_CONSTITUTION,oMage))*1.0;
if (fDuration<3.0) fDuration = 3.0;
break;
case METAMAGIC_EXTEND:
fDuration = (d6(2)*2.0 - GetAbilityModifier(ABILITY_CONSTITUTION,oMage));
if (fDuration<6.0) fDuration = 6.0;
break;
case METAMAGIC_MAXIMIZE:
fDuration = (6*2.0 - GetAbilityModifier(ABILITY_CONSTITUTION,oMage));
if (fDuration<3.0) fDuration = 3.0;
break;
default:
fDuration = (d6(2) - GetAbilityModifier(ABILITY_CONSTITUTION,oMage))*1.0;
if (fDuration<3.0) fDuration = 3.0;
break;
}
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "l'energie qui vous echappe parcours votre corps et vous rend confus pour une courte duree (" +FloatToString(fDuration,2,0)+ " rounds)";
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectConfused(),oMage,fDuration*6.0);
}

void aveugle(object oMage)
{
int nVfxGenreRace;
if (GetGender(oMage) == GENDER_FEMALE)
{
switch (GetRacialType(oMage))
{
case RACIAL_TYPE_HUMAN:
nVfxGenreRace = VFX_EYES_RED_FLAME_HUMAN_FEMALE;
break;
case RACIAL_TYPE_ELF:
nVfxGenreRace = VFX_EYES_RED_FLAME_ELF_FEMALE;
break;
case RACIAL_TYPE_HALFORC:
nVfxGenreRace = VFX_EYES_RED_FLAME_HALFORC_FEMALE;
break;
case RACIAL_TYPE_HALFELF:
nVfxGenreRace = VFX_EYES_RED_FLAME_HALFELF_FEMALE;
break;
case RACIAL_TYPE_HALFLING:
nVfxGenreRace = VFX_EYES_RED_FLAME_HALFLING_FEMALE;
break;
case RACIAL_TYPE_DWARF:
nVfxGenreRace = VFX_EYES_RED_FLAME_DWARF_FEMALE;
break;
case RACIAL_TYPE_GNOME:
nVfxGenreRace = VFX_EYES_RED_FLAME_GNOME_FEMALE;
break;
default:
SendMessageToPC(OBJECT_SELF,"Une exception dans la determination de votre race eu lieu. Merci de prevenir le MD Arfost le plus vite possible.");
break;
}
}
else
{
switch (GetRacialType(oMage))
{
case RACIAL_TYPE_HUMAN:
nVfxGenreRace = VFX_EYES_RED_FLAME_HUMAN_MALE;
break;
case RACIAL_TYPE_ELF:
nVfxGenreRace = VFX_EYES_RED_FLAME_ELF_MALE;
break;
case RACIAL_TYPE_HALFORC:
nVfxGenreRace = VFX_EYES_RED_FLAME_HALFORC_MALE;
break;
case RACIAL_TYPE_HALFELF:
nVfxGenreRace = VFX_EYES_RED_FLAME_HALFELF_MALE;
break;
case RACIAL_TYPE_HALFLING:
nVfxGenreRace = VFX_EYES_RED_FLAME_HALFLING_MALE;
break;
case RACIAL_TYPE_DWARF:
nVfxGenreRace = VFX_EYES_RED_FLAME_DWARF_MALE;
break;
case RACIAL_TYPE_GNOME:
nVfxGenreRace = VFX_EYES_RED_FLAME_GNOME_MALE;
break;
default:
SendMessageToPC(OBJECT_SELF,"Une exception dans la determination de votre race eu lieu. Merci de prevenir le MD Arfost le plus vite possible. C'est vrai quoi, ne pas avoir de race c'est le bordel.");
break;
}
}
effect eYeux = SupernaturalEffect(EffectVisualEffect(nVfxGenreRace));
effect eBlindness = SupernaturalEffect(EffectBlindness());
eBlindness = EffectLinkEffects(eYeux,eBlindness);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eBlindness,oMage);
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "vous sentez vos yeux vous bruler soudainement, puis tout deviens sombre autours de vous.";
}
void invocation (object oMage)
{

effect eVis;
string sBlueprint;
location lLoc;
lLoc = GetLocation(oMage);
int iNbSpawn = d2(1);
int i;
for (i = 1; i <= iNbSpawn; i++)
{
switch (d10(1))
{
case 1:
sBlueprint = "NW_S_SUCCUBUS";
eVis = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL,FALSE);
break;
case 2:
sBlueprint = "NW_S_VROCK";
eVis = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL,FALSE);
break;
case 3:
sBlueprint = "NW_S_CTRUMPET";
eVis = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL,FALSE);
break;
case 4:
sBlueprint = "NW_S_SLAADDETH";
eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3,FALSE);
break;
case 5:
sBlueprint = "NW_S_BALOR";
eVis = EffectVisualEffect(VFX_FNF_SUMMON_GATE,FALSE);
break;
case 6:
sBlueprint = "NW_S_SUCCUBUS";
eVis = EffectVisualEffect(VFX_FNF_SUMMON_GATE,FALSE);
break;
default:
//
break;
}

lLoc = Decalage(lLoc,8.0);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVis,lLoc);
CreateObject(OBJECT_TYPE_CREATURE,sBlueprint,lLoc,TRUE);
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "une legere faille s'ouvre sous vos yeux. Vous arrivez a la controler mais le temps que vous le fassiez quelques creatures en sont sortie.";
}
}

void effe_lampion (object oMage)
{
effect eVis = EffectVisualEffect(VFX_DUR_GHOSTLY_VISAGE);
eVis = SupernaturalEffect(eVis);
int nDuration = GetCasterLevel(oMage);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eVis,oMage,TurnsToSeconds(nDuration));
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "la magie que vous tentiez de maitriser se concentre en vous et vous illumine d'une lueur etrange.";
}

void tele_self (object oMage)
{
SetLocalInt(OBJECT_SELF,"nBugTeleporte",1); //variable de bidouille pour couper les sorts dans le spell hooking et stopper le bug
effect eko = EffectKnockdown();
AssignCommand(oMage, ClearAllActions(TRUE));
AssignCommand(oMage,JumpToLocation(Decalage(GetLocation(oMage),6.0)));
//DelayCommand(0.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eko, oMage,IntToFloat(d6(1)))); //Application du ko en commentaire
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "sans que vous ayez le temps de comprendre vous vous teleportez une courte distance, sonne sous le choc.";
}

void lampion_disparition (object oMage)
{
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
effect eVis2 = EffectVisualEffect(VFX_FNF_PWKILL);
effect eInvi = EffectVisualEffect(VFX_DUR_CUTSCENE_INVISIBILITY);
effect eInvi2 = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
eInvi2 = EffectLinkEffects(eInvi,eInvi2);
ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oMage);
DelayCommand(2.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis2,oMage));
float fDelay;
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, GetLocation(oMage),FALSE, OBJECT_TYPE_CREATURE);
while (GetIsObjectValid(oTarget))
{
fDelay = GetRandomDelay(0.4, 1.2);
if(!MySavingThrow(SAVING_THROW_REFLEX, oTarget, 30, SAVING_THROW_TYPE_CHAOS, OBJECT_SELF, fDelay))
{
//Apply death effect and the VFX impact
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectKnockdown(), oTarget, IntToFloat(d6(1))));
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetLocation(oMage));
}
DelayCommand(4.5,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvi2,oMage,100.0+d100(1)));
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "... pouf";
}

void haunted (object oMage)
{
location lLoc = GetLocation(oMage);
string sFinTag = GetStringLeft(GetName(oMage),5);
int nNbGhost = d4(1);
int i;
for (i = 1; i <nNbGhost; i++)
{
CreateObject(OBJECT_TYPE_CREATURE,"ameenpeine",Decalage(lLoc,10.0),FALSE,"ghost_"+sFinTag);
}
AdjustFactionReputation(GetObjectByTag("ghost_"+sFinTag),oMage,-50);
SetLocalString(oMage,"sTagGhost","ghost_"+sFinTag);
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "des creatures ethere viennent vous hanter.";
}

void coupure_magie (object oMage)
{
SetLocalInt(oMage,"nCoupMagi",1);
sMessageEffetMagiqueIncontrole = sMessageEffetMagiqueIncontrole + "l'etrange impression d'un manque vous envahis.";
}

string sMessageEffetMagiqueIncontrole;

void main()
{

int nEffet = GetLocalInt(OBJECT_SELF,"nEffet");
sMessageEffetMagiqueIncontrole = "Pendant l'incantation vous perdez le controle de votre magie et ";
if (nEffet == 0) nEffet = d12(1) + d10(1);

switch (nEffet)
{
case 0:
// statements ...
// condition would also evaluate as true if x == 0, which should not happen . . .
// but . . . lets put this in here just as a safety device Smile
break;
case 1:
// statements ...
// condition would also evaluate as true if x == 0, which should not happen . . .
// but . . . lets put this in here just as a safety device Smile
break;
case 2:
degats(OBJECT_SELF);
break;
case 3:
degats(OBJECT_SELF);
break;
case 4:
deat_soul(OBJECT_SELF);
break;
case 5:
deat_implo(OBJECT_SELF);
break;
case 6:
knoc_down(OBJECT_SELF);
break;
case 7:
knoc_down(OBJECT_SELF);
break;
case 8:
knoc_down(OBJECT_SELF);
break;
case 9:
knoc_down(OBJECT_SELF);
break;
case 10:
confused(OBJECT_SELF);
break;
case 11:
confused(OBJECT_SELF);
break;
case 12:
confused(OBJECT_SELF);
break;
case 13:
confused(OBJECT_SELF);
break;
case 14:
aveugle(OBJECT_SELF);
break;
case 15:
aveugle(OBJECT_SELF);
break;
case 16:
invocation(OBJECT_SELF);
break;
case 17:
invocation(OBJECT_SELF);
break;
case 18:
effe_lampion(OBJECT_SELF);
break;
case 19:
effe_lampion(OBJECT_SELF);
break;
case 20:
effe_lampion(OBJECT_SELF);
break;
case 21:
effe_lampion(OBJECT_SELF);
break;
case 22:
tele_dime(OBJECT_SELF);
break;
case 23:
lampion_disparition(OBJECT_SELF);
break;
case 24:
lampion_disparition(OBJECT_SELF);
break;
case 25:
haunted(OBJECT_SELF);
break;
case 26:
haunted(OBJECT_SELF);
break;
case 27:
tele_self(OBJECT_SELF);
break;
case 28:
//DelayCommand(1.8,tele_self(OBJECT_SELF));
tele_self(OBJECT_SELF)
break;
case 29:
//DelayCommand(1.8,tele_dime(OBJECT_SELF));
tele_dime(OBJECT_SELF)
break;
case 30:
coupure_magie(OBJECT_SELF);
break;
default:

break;
}
SendMessageToPC(OBJECT_SELF,sMessageEffetMagiqueIncontrole);
}
Le code a colorer syntaxiquement est trop long (plus de 10240 caractères) et risque de ne pas s'afficher du tout. Vous pouvez le voir en version colorée ici.


Voila ça devrait etre plus clair cette fois. Le probleme est donc maintenant (car avec les effets ko en delay la teleportation marche) qu'il relance le sort apres chaque teleportation. En gros il commence a lancer son sort, le spellhooking le coupe et lance l'effet teleportation (n'importe lequel des deux, puisque je peux bloquer mes scripts pour les tests sur un effet en particulier) une fois la teleportation faite il relance le sort, et ainsi de suite... Pour l'instant je coupe le deuxieme lancement dans le spellhooking via la variable "nBugTeleportation" ainsi le script fonctionne, mais ça fait moche car on voit deux fois l'animation de sort coupée, et on à deux fois le message "machin lance tel sort" en plus le deuxieme passage sur le spellhooking et la variable bouffent de la ressource pour pas grand chose.

Donc la question c'est : Y'a-t-il un moyen autre qu'un delay de 2 secondes sur l'apelle de l'effet de teleportation (qui est vraiment laid car le mage reste la sans bouger 2 secondes avant de se tp) ou la bidouille que j'ai faite pour empecher le mage de relancer son sort
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé
 
Montrer les messages depuis :
Page 1 sur 1 ¤


Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Sauter vers:
FAQ | Rechercher | Liste des Membres | Groupes d'utilisateurs | S'enregistrer | Profil | Se connecter pour vérifier ses messages privés | Connexion
Powered by phpBB 2.* [m] © 2001, 2002 phpBB Group
Theme rewritten in beautiful XHTML code by Baldurien.
Thème "La Bibliothèque de Neverwinter" crée par Kruger
Traduction par : phpBB-fr.com
Page generated in 28.946ms