La Bibliothèque de Neverwinter Nights
Aide et informations diverses sur Neverwinter Nights ainsi que D&D3.
La date/heure actuelle est 22/09/2024 12:28:27


  Page 1 sur 1 ¤

Voir le sujet précédent ¤ Voir le sujet suivant 
Auteur Message
Hell Ork
Acolyte
Inscrit le: 02 Sep 2004
Messages: 20
Localisation: Lost In Hell
Répondre en citant
Posté le : 04/09/2004 21:47:42 Sujet du message : Quêtes qui évolue avec des objets

Kikou les gens d'ici ( serait je un neeb ? a vi possible .. )
J'essaye de faire quelque chose de l'editeur ( c pas un module, meme si ca lui en donne le nom enfin bon .. ). Donc je fait des tests dans plusieurs zones pour voir les possibilités. Et je cherche des scripts qui marchent ..
J'ai vu dans la section OnItemAcquire qu'y dit que ca execute un script du nom du tag de l'objet si je sait plus quoi est sur TRUE .. mais il dit pas ou le mettre .. Fin en gros, je cherche un truc pour que des que le joueur prend un objet, son journal soit mis a jour.

J'ai vu AddJournalQuestEntry mais j'ai pas bien compris je crois, il marche pas si je fait la demande de recuperation du tag, sa comparaison puis l'ajout de la quête, j'ai une erreur de compilation. Serait ce du au fait que je l'ai placé en plein milieu du script original, juste aprés le code plot wizard ?
J'ai aussi vu ca : PWSetMinLocalIntAndJournalForItemAcquired.. c kawaaaa ? fin a kwa ca sert plutôt ..

Enfin, si quelqu'un dans le coin a trouvé un p'tit script qui marche, je veut bien .. ( je me debrouille en anglais mais c'est pas ca du tout .. j'ai renoncé a nwn vault )
Mici de me dire si y'en a des tout fait ou si y'a des explications comprehensible par un barbare demi-orque Smile
_________________
Lord Nova, Black Angel Lost In Hell
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 04/09/2004 22:25:45 Sujet du message :

J'ai pas tout compris ce que tu veux mais si je résume : tu veux que lorsque le joueur prend un objet particulier, le journal est mis à jour, c'est ça ?

Si oui, le principe est simple, dans le OnAquire du module (tu peux créer ton propre script, pas la peine d'utiliser celui de la campagne NWN), tu dois récupérer le tag de l'objet aquis :

NWScript :
object oItem = GetObjectAquire();
string tTag = GetTag(oItem);
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.


Ensuite tu testes ton tag d'objet pour savoir si c'est celui qui t'interesse :

NWScript :
if (tTag == "Tag_de_l_objet")
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.


Si le test est ok, il faut mettre à jour le journal :

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.


Je ne connais plus les paramètres comme ça mais il y a à mettre le tag de la quête et le numéro de l'entrée. (il faut bien évidemment créer la quête dans le journel de quête avant).

Voilà si tu veux plus d'explications sur un exemple concrèt, dit exactement ce que tu veux et on te fera un script.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Hell Ork
Acolyte
Inscrit le: 02 Sep 2004
Messages: 20
Localisation: Lost In Hell
Répondre en citant
Posté le : 05/09/2004 18:37:20 Sujet du message :

C exactement ca que je veut... Mais ce qui est ecrit dans l'ancien script, j'en fait kwa ??
Je l'enlève direct ou je le remet après ? .. Je vais essayer ce soir de le faire en écrasant l'ancien, si j'y arrive pas ( je crois que j'ai pas compris pour addquest.. quand j'avait essayé y me mettait je sait plus trop quelle erreur de compilation et j'ai vu qu'il mettaient un void avant dans l'exemple, ca sert a quoi le void en fait ? )

Mici bien kan mm Very Happy
_________________
Lord Nova, Black Angel Lost In Hell
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 05/09/2004 22:00:39 Sujet du message :

Le script que tu mets dans le OnAquireItem du module est là pour faire des traitements particuliers quand un joueur prend un objet particulier, donc si tu ne fais aucun traitement particulier, il ne faut rien mettre dans cet évenement. Ca ne sert donc à rien de récupérer celui de la campagne officielle car il traite les objets aquis dans le jeu (objet que tu ne retrouveras pas dans ton module), tu peux donc mettre ton script à la place.

Pour le void ça veut dire que la fonction renvoie "rien", elle fait une action mais ne renvoie pas de variable quelconque... C'est un peu tard pour faire un cours de script...

Comme exemple, je te mets le script que j'ai mis dans l'évenement On de mon module,

NWScript :
void main()
{
    object oItem = GetModuleItemAcquired();
    object oPJ = GetModuleItemAcquiredBy();
    string TagItem = GetTag(oItem);

    // si l'acquereur est un PJ
    if (GetIsPC(oPJ))
    {
        // Si c'est le parchemin code
        if (TagItem == "tParcheminCode")
            {
            // Si le PJ a le carnet de code
            if (HasItem(oPJ, "tCarnetdecode"))
                {
                // detruit le parchemin code
                DestroyObject(oItem);
                // test d'intelligence reussi
                if (AutoDC(DC_MEDIUM, SKILL_LORE, oPJ))
                    {
                    CreateItemOnObject("parchemin002", oPJ, 1);
                    // mot de passe ok
                    SetLocalString(GetModule(),"vMotPasseBron", "harpe doree");
                    // XP
                    GiveXPToCreature(oPJ, 200);
                    // Mise a jour journal
                    AddJournalQuestEntry("tQueteBron", 42, oPJ);
                    }
                // test d'intelligence rate
                else
                    {
                    CreateItemOnObject("parchemin003", oPJ, 1);
                    }
                }
            }
        // Si c'est le carnet de code
        if (TagItem == "tCarnetdecode")
            {
            // Si le PJ a le carnet de code
            if (HasItem(oPJ, "tParcheminCode"))
                {
                // detruit le parchemin code
                DestroyObject(GetObjectByTag("tParcheminCode"));
                // test d'intelligence reussi
                if (AutoDC(DC_MEDIUM, SKILL_LORE, oPJ))
                    {
                    CreateItemOnObject("parchemin002", oPJ, 1);
                    // mot de passe ok
                    SetLocalString(GetModule(),"vMotPasseBron", "harpe doree");
                    // XP
                    GiveXPToCreature(oPJ, 200);
                    // Mise a jour journal
                    AddJournalQuestEntry("tQueteBron", 42, oPJ);
                    }
                // test d'intelligence rate
                else
                    {
                    CreateItemOnObject("parchemin003", oPJ, 1);
                    }
                }
            }
    }
}
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.


Voilà, c'est moi qui l'ai écrit de toute pièce....
Par contre j'ai constaté un truc, si on utilise l'assistant d'intrigue, il met des trucs en plus dedans.. C'est ton cas ?
Si c'est toujours pas clair, dit-le je regarderai de plus près ton problème et mets également le script qui est dans le OnAquireItem (s'il est pas trop long, comme ça je t'indiquerai où placer la partie de script qui t'interesse.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Hell Ork
Acolyte
Inscrit le: 02 Sep 2004
Messages: 20
Localisation: Lost In Hell
Répondre en citant
Posté le : 06/09/2004 23:06:39 Sujet du message :

pour le void ce que j'avait pas compris c'etait comment on l'utilise en fait parce que dans les explications de l'editeur pour la moitié des exemples y met void devant alors que en realité tu le met pas, et comme tout ce que je faisait ne marchait pas, je me disait que c'était ptet ca .. ( si j'ai compris : si tu met void avec un intitulé de fonction par exemple void Teleport(), la tu met la definition de ta fonction entre les parenthèses avec toutes les variables & tt ca aprés dans void main(), tu met Teleport avec entre les parenthèses tes variables dans l'ordre que t'a mis avant .. si tu comprend ske j'veut dire, dit moi si c bien ca, sinon ba c tt..)
Pour l'assistant intrigue je l'utilise pour avoir les objets, les persos et un squelette pour les dialogues, sinon tu me dit de rien mettre dans OnAquireItem, mais c l'editeur qui l'a mis tout seul, avec l'assistant intrigue je pense ( PWSetMinLocalIntAndJournalForItemAcquired je sait pa d'ou ca vient, c pas de moi et c'était dans une section Plot Wizard je sé pu koi) et c'etait très court donc ptet pas officiel
En attendant, mon script ne marche pas encore, je sait pas où est le problème, y fo que je revoie les tag et aussi a chaque fois pour trouver le pj je met GetPCSpeaker alors y faut que je remplace
Wala tt .. je vais voir demain si ca marche, la ce soir j'ai reglé les convesations pour que les quetes defilent bien ... c long .. donc la je vais essayer de voir les objets & tt ce qui est placable... ( pour le script j'ai viré l'ancien)
J'ai aussi essayé de faire une echelle qui parle avec Dialogue, j'ai crée le dialogue ( c juste pour faire une echelle qui donne vers une autre zone) mais j'ai voulu mettre dans le OnUsed au depart et ca voulait pas. Normalement pour pouvoir lui parler ou l'utilise y faut que sa faction soit non-hostile avec le pj je pense, nan ?

NWScript :

//fichier 1
void main()
{
Teleport(oTag);
}
// fichier 2
void Teleport(
    object oToJumpTo = GetObjectByTag("oTag");
    object oPJ = GetFirstPC();
    AssignCommand( oPJ, JumpToObject(oToJumpTo));
);
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.

Le voila ... dit moi cske t'en pense ..( je rempace mon oTag par le tag de la ou je me teleporte ( genre oPortail avec je ne sait que nombre), je rajoute un include du fichier 2 dans le 1 et ca devrait marcher )
PS : Si t'a lu tout ca, t'est vachement courageux... Bravo ..
_________________
Lord Nova, Black Angel Lost In Hell
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 07/09/2004 08:18:02 Sujet du message :

Comme tu utilise la fonction Teleport dans ton main,
il faut la définir avant.

donc met void Teleport avant ton void main.
Ensuite, c'est pas entre parenthese, mais entre 2 accolades : {}

Et attention, un tag est de type string, ce n'est pas un object.

Et enfin, le joueur oPC est définit selon l'endroit où tu met ton script.
  • GetPCSpeaker() si c'est un dialogue,
  • GetLastUsedBy() si c'est le OnUse d'un objet,
  • GetEnteringObject() pour le OnEnter
  • GetExitingObject() pour le OnExit
  • GetLastKiller() le OnDead d'une creature
  • GetLastAttacker() le OnDammage
  • GetLastPerceived() le OnPerception
  • GetItemActivator() le OnActivateItem du module
  • GetModuleItemAcquiredBy() le OnAcquireItem
  • GetItemPossessor() le OnAcquireItem aussi (il me semble, pas sûr Embarassed )
  • GetLastPlayerDied() le OnPlayerDeath
  • GetLastPlayerDying() le OnPlayerDiying
  • GetLastRespawnButtonPresser() le OnRespawn


GetFirstPC, lui, est assez délicat:
c'est le premier joueur trouvé.
Donc en effet, dans le cadre d'un module solo,
il est tentant de l'utiliser à chaque fois,
il marchera toujours!
Cependant, question ressource c'est pas top,
et si c'est du multi, c'est encore pire,
il renvoit le premier PJ qu'il trouve, au hasard...

En réalité, GetFirstPC est le plus souvent utilisé
dans le cadre d'une boucle while ou for,
associé à GetLastPC, afin d'effectuer une action
sur tous les joueurs du module.
(sauvegarder leur positions par exemple)

-----------------
Tu obtiens donc :

NWScript :

void Teleport
{
string sTag = "Tag du truc ou tu veux aller";
object oToJumpTo = GetObjectByTag("sTag");
object oPJ = GetLastUsedBy(); //on est dans le OnUsed
AssignCommand( oPJ, JumpToObject(oToJumpTo));
}

void main()
{
Teleport();
}
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.


Tu avais mit oPJ en attribut pour appliquer la fonction,
mais pas dans sa définition, c pas bon...
Voici un exemple avec oPJ et sTag comme attributs :
NWScript :
// fichier 2

void Teleport(object oPJ, string sTag)
//on met oPJ et sTag en attribut
{
object oToJumpTo = GetObjectByTag("sTag");
AssignCommand( oPJ, JumpToObject(oToJumpTo));
}

void main()
{
object oPJ = GetLastUsedBy(); //on est dans le OnUsed
string sTag = "Tag du truc ou tu veux aller";
Teleport(oPJ, sTag);
}
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.


Bon, là c'était pour t'expliquer,
mais le plus simple aurait quand même été
de ne pas passer par cette fonction Teleport
qui, au fond, ne sert pas à grand chose :
NWScript :
void main()
{
object oPJ = GetLastUsedBy(); //on est dans le OnUsed
string sTag = "Tag du truc ou tu veux aller";
object oToJumpTo = GetObjectByTag("sTag");
AssignCommand( oPJ, JumpToObject(oToJumpTo));
}
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.


Voilà, j'espère t'avoir un peu éclairé dans le voie nébuleuse du scripting Wink
Cool
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Laxam
Légende vivante
Inscrit le: 12 Avr 2004
Messages: 425
Localisation: Lyon
Répondre en citant
Posté le : 07/09/2004 18:46:32 Sujet du message :

Voilà, kiki a tout expliqué... Tu devrais avoir compris le principe maintenant (tu n'étais pas loin avec tes "explications" et avec les commentaires de kiki...). Si tu as encore des soucis, n'hésite pas.

Pour ton OnAquireItem, les lignes que tu me décrits sont effectivement ajoutées par l'assistant d'intrigue, il est donc nécessaire de les laisser si tu veux continuer à l'utiliser (perso j'ai fait toutes mes quêtes tout seul c'est bien plus simple). Ta partie personnalisée devra donc être mise après (ou avant d'ailleurs ça n'a pas grande importance, il faut juste pas les mélanger Laughing.
_________________
Mon site NWN nouvelle version et mon module Boisperdu en ligne ! Et maintenant un FORUM
La première version française de la doc du NPC Activities (version 2.0)
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Hell Ork
Acolyte
Inscrit le: 02 Sep 2004
Messages: 20
Localisation: Lost In Hell
Répondre en citant
Posté le : 07/09/2004 19:15:09 Sujet du message :

Oki, mici les gens
Juste un ti truk : si je met le void Teleport dans un fichier, si je met dans mon fichier de script la ou ca doit aller a la fin, celui avec void main, un include avec pour cible le premier fichier ( celui ou y'a teleport ), ca marchera ?
Paske comme je suis un peu feignant sur les bords ( et y'en a beaucoup des bords ), je veut le réutiliser plusieurs fois donc je fait tout avec include sur ce fichier ou j'ai juste le ti bout avec Teleport.. fin si un de vous 2 comprend ce que je veut dire ..

Mici kan mm pr m'avoir répondu (& avoir lu paske mes idée sont ... un peu en bazar et mes textes, la plupart des gens s'arrache les cheveux en les lisant.. a moins que .. si t'est chauve .. )
_________________
Lord Nova, Black Angel Lost In Hell
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 07/09/2004 19:48:57 Sujet du message :

Nan, être feignant est une chose, mais de là à faire plus compliqué pour ça...
T'as juste à faire un copier coller puis changer le tag de destination,
c'est quand même pas la mort! mdr! Laughing

Bon, bien sûr, c'est tout à fait possible, mais ça n'a pas grand intéret,
tu aura toujours un script par destination,
et une ligne d'include à remettre à chaque fois,
alors quitte afaire un copier coller de l'include,
autant faire un copier coller du script entier,
ça ira aussi vite! Very Happy

Cool
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
Hell Ork
Acolyte
Inscrit le: 02 Sep 2004
Messages: 20
Localisation: Lost In Hell
Répondre en citant
Posté le : 07/09/2004 21:53:32 Sujet du message :

rohlalalala ... t'a rien compris .. paske le truk c ke si ca marche pour ce script, ca riske de marcher pour d'autres, donc comme celui la est simple, pas besoin de reflechir trop.. donc moins d'effort ...
La feignantise, en dehors de ma classe bien sûr, c de reflechir a comment faire le moins d'effort possible tout en faisant compliqué ( oui, je sui en scientifique )

Une pitite frase ke j'adore : "Pourquoi faire simple quand on peut faire compliqué"

Enfin si t'a rien compris, cherche pas, moi non plus
Mici kan mm

PS : kiky.le.magnifique .. je vais testationner ton module, kom ca je pourrait y mettre une note, ca a l'air de te traumatiser k'y en ait pas ..
_________________
Lord Nova, Black Angel Lost In Hell
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Adresse AIM MSN Messenger Ignorer l'utilisateur
 
kiky.le.magnifique
Homme très gay
Inscrit le: 19 Sep 2003
Messages: 907
Localisation: Camping de la nation martienne...
Répondre en citant
Posté le : 08/09/2004 11:15:20 Sujet du message :


Hell Ork a écrit :
Enfin si t'a rien compris, cherche pas, moi non plus
Oui, j'ai du mal à comprendre là... Surprised
M'enfin si tu dit que c pas grave! Laughing Razz


Hell Ork a écrit :
je vais testationner ton module, kom ca je pourrait y mettre une note, ca a l'air de te traumatiser k'y en ait pas ..
C'est la vie qui me traumatise,
depuis qu'un enfoiré de docteur m'a taper sur les fesses à la naissance,
jusqu'au texte sms'style du genre : "lut all, need scripters pr mod de ouf, thx."
dont il faut traduire chaque mot,
pour éventuellement trouver un début de commencement de sens,
en passant par le concours de dessinateur de la mairie de paris,
qui demande une planche à dessin des années 60 à 70€... Laughing
_________________
http://perso.wanadoo.fr/kikitor | Deviant Art | www.VistaEntraide.com | CCLLSELFV! | D-lire_K | Viendez rêver au Pays des fées... | Ne taquinez pas l'admin!
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur Ignorer l'utilisateur
 
lendraste
Grand Maître Chanteur du Conseil
Inscrit le: 20 Fév 2003
Messages: 1403
Localisation: Quelque part ailleurs
Répondre en citant
Posté le : 08/09/2004 11:53:01 Sujet du message :


Hell Ork a écrit :
rohlalalala ... t'a rien compris .. paske le truk c ke si ca marche pour ce script, ca riske de marcher pour d'autres, donc comme celui la est simple, pas besoin de reflechir trop.. donc moins d'effort ...
La feignantise, en dehors de ma classe bien sûr, c de reflechir a comment faire le moins d'effort possible tout en faisant compliqué ( oui, je sui en scientifique )

Une pitite frase ke j'adore : "Pourquoi faire simple quand on peut faire compliqué"

Enfin si t'a rien compris, cherche pas, moi non plus
Mici kan mm

PS : kiky.le.magnifique .. je vais testationner ton module, kom ca je pourrait y mettre une note, ca a l'air de te traumatiser k'y en ait pas ..
Hell Ork, tu es prié de lire tes messages privés (surtout s'ils viennent d'un modérateur), ne serait-ce que pour savoir que ton style semi-SMS n'est qu'à peine toléré et qu'après avoir vu un sujet relativement bien écrit de toi, il est permi de penser que tu es capable de faire un effort sur la qualité du langage. Merci de faire disparaître la profusion de "k" et de racourcis phonétiques de tes futurs messages. Considère ceci comme un second avertissement (le premier a été fait par message privé).
_________________
Lendraste de Loreval
Qui cherche la Vérité cherche celui qui la détient, car elle n'existe pas à l'état naturel.
La cité des mensonges - 1
 
Revenir en haut Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger Numéro ICQ Ignorer l'utilisateur
 
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 63.004ms