Jump to content

FBot

Bot
  • Content Count

    3,101
  • Joined

  • Last visited

  • Days Won

    4
  • Points

    2,171 [ Donate ]

FBot last won the day on June 25

FBot had the most liked content!

Community Reputation

2,361 Légende

About FBot

  • Rank
    FBot
  • Birthday 12/05/2009

Etat Civil

  • Nationality
    Français
  • Sexe
    Extraterrestre

Profil

Recent Profile Visitors

724 profile views
  1. -> root/playersettingmodule.py Parcontre avant toute chose, il faut aussi la partie source client..
  2. Bonjour à tous, Avant de commencer, je tiens à dire que ce sujet ne parlera pas de ma chaîne mais bien de celle d'un collègue de travail que j'ai pu rencontré au cours de mon séjour chez une grande filiale Américaine : tousse: Pour raconter un peu l'histoire (asseyez vous les petits), on s'est rencontré par pur hasard pendant le travail, on a ma foi beaucoup discuté de jeux vidéos et puis il m'a dit "BAH MOI JE STREAME TU VOIS ET SI TU VEUX APRÈS JE TE DONNE MON DISCORD " ah ui ui, beh il m'a donné un bout de papier en début de matinée pour que je l'ajoute et puis on a continué de discuter. Il faut bien s'occuper pendant le boulot ~~ Qui est Bideo et que fait-il ? Je ne le connais pas plus que cela, mais c'est un grand barbu âgé d'un siècle et demi (Vous pouvez l'appeler Gandalf) , du coup ! Comme vous l'avez pu le constater c'est principalement un streamer Twitch même s'il est présent sur la plupart des plateformes dont Youtube ! Il va reprendre du service et donc il faut lui faire un petit coup de publicité afin qu'il s'envole tel Peter Pan le ferait en sniffant de la poudre de Clochette.. Alors, alors, comme je ne le suis pas depuis ses débuts, je ne fais que reprendre ses derniers dires que j'ai pu entendre, il stream du Rétrogaming (donc les nostalgiques c'est par là !) , du Minecraft (Donc les Minecraftiens c'est par là) mais fait aussi des jeux fun ou encore de la réparation de consoles, manettes, cartouches bref tout ce qui touche aux jeux vidéos ! Des liens de dispos ? T'inquiètes ça, je donne ! Twitch : >> CLIQUEZ ICI << Youtube (chaîne principale) : BideoGemu Youtube (Chaîne réparation) : BideoRépar Discord : Cliquez ici ! Allez checker quelques vidéos Youtube et n'hésitez pas à vous abonner sur ces plateformes ! Xayah,
  3. En étant fondateur d'un serveur fiveM - Uprising Roleplay Chapeau, beau tutoriel, merci à toi!
  4. ses possiblement juste l'encodage de ton notepad++ Et oui parfois quand tu fait du copier coller, faut bien faire attention!
  5. C'était une blague t'inquiète, bah de ce que je viens de voir, non il y a plus que ça a traduire... Après c'est du détail, par exemple les questions OX on doit tout le temps les refaire, donc que celles déjà présentes soient en allemand, en anglais ou en français... voilà
  6. Merci. Mais c'est quand même con de m'avoir spam mp pour que je t'aide à traduire le truc pour que tu finisses avec un local allemand, des sources anglaises et une sortie française... mdrrrr
  7. Salut, tu possède présentement quel files? normalement sur les files de base 2012*2016, tu n'a pas de modification [C++] à faire tu doit juste changer dans tout tes fichiers config: MAX_LEVEL: Ici ton level
  8. Niveau requis : Intermédiaire Temps estimé : Entre 30 à 35 minutes Bonjour. Après une longue inactivité sur le forum, il est temps pour moi de reprendre du service. Je vais m'efforcer lors de ce tutoriel de vous apprendre tout ce qu'il y a à savoir sur les classes en Python. Je ne rentrerait pas dans le python trop avancé afin que tous les niveaux intermédiaires en Python puissent suivre ce tutoriel. Ce tutoriel s'adresse à toutes les personnes qui voudraient apprendre le Python, ou aux personnes qui travaillent sur Metin2 par exemple : Metin2 emploie beaucoup de classe; il est donc essentiel de connaitre leur fonctionnement afin de pouvoir créer du contenu à sa guise. J'essayerai au maximum de vous apprendre directement un code qui respecte les conventions, j'espère ne pas faire d'erreur... A vrai dire, il y en a énormément, et personne n'est à l'abris de ne pas tous les respecter. Pré-requis: Comme précisé ci-haut, je ne vais pas faire de Python trop avancé ici, cependant je considère que les personnes suivant ce petit guide ont un niveau intermédiaire c'est à dire qu'elles ont des connaissances en : Fonctions; Attributs; Portée de variable. Le reste peut vous être utile, mais je vais essayer de vous l'apprendre également. I - Introduction aux classes : Rangez votre éditeur de code, pour le moment nous allons discuter ! Effectivement, cela ne servirait à rien de commencer à programmer sans vous expliquer concrètement à quoi servent les classes et quelles sont leurs principales caractéristiques. Avant de commencer, je tiens à préciser que ceux qui pensent être à l'abris de lire tout le tutoriel car ils ont déjà des connaissances dans d'autres langages : mauvaise idée. Chaque langage de programmation à sa propre méthode, sa propre philosophie pour les objects. Les classes ne sont pas que des boites dans les quelles vous pouvez mettre des fonctions où des variables, les classes sont la base de la Programmation Orientée Objet (POO). En réalité en Python, vous utilisez des objects depuis longtemps. Pour citer Mathieu Nebra : "En python, tout est objet". Une liste par exemple, est un objet, et non réellement une variable. Créer une classe permet de créer de nouveaux objets et de nouvelles instances avec ses propres attributs. Ne paniquez pas, nous allons définir ces termes au fil du guide. Par défaut les objets sont publics (sauf mention contraire : private), et toutes les fonctionnalités des classes sont virtuelles. II - La portée des variables : Nous attaquons ici un paragraphe que je vais vite résumer, mais ne le négligez surtout pas, c'est un des points les plus importants de ce guide. Les portées sont définies de manières statiques, mais sont utilisées de manières dynamiques. En réalité nous pouvons découper les portées Python en 4 espaces (dites de nommage) qui définissent à eux quatre la plage de nommage. Pour simplifier la compréhension de ces espaces je vous conseille d'utiliser une métaphore : les poupées russes. Imaginez qu'une poupée ne peut voir que ce qu'elle contient : Si on imbrique une poupée dans une plus grande (respectivement la poupée A et B), la poupée B pourra voir A et tout ce qu'elle peut voir. Cependant A ne verra pas ce que contient B. Voici une liste de ces 4 espaces : Une portée dite centrale : elle contient les noms locaux. C'est à dire qu'ils ne sont accessibles nul part d'autre. Une portée dite des fonctions englobante : c'est un espace entre le global et le local. Pour la définir au maximum nous allons dire qu'elle contient des éléments non-locaux, et exclusivement des éléments non-globaux. Une portée dite intermédiaire : c'est l'avant-dernière portée, elle contient les noms globaux du module. Une portée englobante : La vraie et l'unique, elle contient tout simplement tout. Elle est l'espace de nommage contenant toutes les primitives. La façon dont vous allez définir vos variables va déterminer dans quel espace de la plage de nommage elle va être renseignée. En Python, si aucune instruction global n'est précisée, les affectations de noms vont dans la portée la plus proche. Ceci a une implication sur leur contenu et leur suppression, nous le verrons sûrement plus tard lors de ce guide. Pour rendre une variable privée, vous devez faire précéder son nom de deux underscore comme ceci : __var. III - Définir notre première classe : Enfin ! Munissez vous de votre meilleur éditeur de code et de votre courage, nous allons enfin commencer à coder ! J'espère ne pas vous avoir perdu avant, car la difficulté va aller crescendo jusqu'à la fin de ce guide. Vous pouvez définir une fonction absolument où vous voulez, cependant pour des soucis de clarté et de difficulté, je vais définir une classe directement dans le fichier. Vous commencez à connaitre python, comme pour les fonctions, il existe un mot clé pour définir une classe, et il n'est rien d'autre que class. Voici sans plus attendre la définition de notre première fonction : Ici, nous venons de définir une classe nommée FirstClass. Notez que pour les classes, nous n'utilisons pas d'underscore, et leur nom commence par une majuscule, ce qui permet de les différencier des fonctions par exemple. IV - Remplissons notre classe avec des variables : Dans notre classe, nous allons pouvoir mettre principalement deux éléments : Les variables Principales D'instances Les méthodes Pour vous illustrez ceci, nous allons faire les choses dans le mauvais sens, nous allons commencer par les méthodes. Vous le savez peut être : en Python, une méthode est extrêmement spéciale, la méthode d'initialisation. Elle se nomme toujours __init__. Les classes ne font pas exception à cette règle, la méthode d'initialisation de notre classe va être exécutée au moment où nous instancierons la classe. Ne vous inquiétez pas, nous allons illustrer ça très vite. Notez que la méthode d'initialisation est aussi appelée le constructeur, il m'arrive d'utiliser les deux termes, ne soyez pas surpris. Vous pouvez remarquer qu'un mot est arrivé comme par magie, sans que j'en parle : self ! Tout d'abord le mot self n'est pas une réelle obligation, vous pourriez mettre "fe" à la place. Cependant, self est une convention forte. C'est à dire que même les codes review ne comprennent que self. Ensuite, self est l'instance en elle même. Nous pouvons accéder à ses méthodes par self.method. Pour commencer avec les variables, nous allons en définir une qui sera la même pour toutes les instances car celle-ci ne sera pas définie par la biais du mot clé self : Ici, notre variable language sera accessible partout, sans même instancier la classe. C'est à dire que n'importe où (où cette classe sera accessible), vous pourrez faire FirstClass.language qui vous retournera la chaîne de caractères "Python". Maintenant, passons au plus intéressant avec les variables : les variables d'instances. Pour cela, nous allons rajouter un paramètre à notre constructeur, par exemple : name qui contiendra le nom de la personne qui instancie la classe. Modifions notre code comme ceci : Ici, nous allons faire un point pour vous expliquer comment tout cela fonction. Si vous demandez à Python de print : FirstClasse.language celui-ci vous renverra bien Python. Cependant pour connaitre name, nous devons déjà la préciser, et pour cela, nous devons instancier la classe. Il serait peut-être temps de vous apprendre à le faire ! Pour instancier une classe en python, vous allez stocker l'instance, l'objet renvoyer comme une variable, comme ceci : var = FirstClass("Takuma"). (Renvoie dans la console : Takuma) V - Remplissons notre classe avec des méthodes : Pour cette partie, je vous propre de repartir d'une nouvelle classe. Nous allons essayer de faire une class "identity" qui permettra de générer une mini carte d'identité contenant : Le nom : Ajouté dans le constructeur en paramètre Son âge : Ajouté par une méthode Son pays : ajouté par une fonction également Voici la structure de notre fonction avec exclusivement ce que nous avons vu pour le moment : Bien, nous allons maintenant ajouter une méthode permettant d'ajouter l'âge de la personne. Pour cela, nous allons créer une méthode la même manière que les fonctions que vous créiez en dehors des classes. Celle-ci tout comme le constructeur prendra en premier paramètre notre instance self et en deuxième paramètre l'âge de la personne. Nous lui demanderons ensuite d'affecter cette valeur à notre variable d'instance "old", comme ceci : Faisons de même pour le pays : Bien, pour finir cette partie, je vous propose d'ajouter une méthode permettant d'afficher le tout : Je vous laissez donc un petit rendu, sachant que vous pouvez instancier plusieurs fois la classe dans plusieurs objets différent. Ici la variable identifier n'est pas utilisée. Output : Identity : Name : Takuma Old: : 18 Country: France VI - Vers la programmation avancée : J'achèverai ce tutoriel sur ce dernier chapitre qui vous permet d'explorer les possibilités qui s'offrent à vous avec les classes. Cette partie va s'adresser aux plus avancés de vous, je vais parler d'héritage de metaclasse, effectivement le nom ne donne pas vraiment envie... Ce principe est dur à aborder, mais simple et très puissant que on sait s'en servir, courage soldat ! 1 - Héritage : Le principe de l'héritage est d'utiliser des classes "entre" elles afin que certaines héritent, obtiennent les variables et les méthodes d'une autre. Je vais vous donner un exemple pour que vous compreniez mieux. Imaginons l'ensemble des êtres humains. Vous pouvez très bien créer une classe permettant d'instancier comme nous l'avons fait juste avant chaque personne. Cependant, imaginons que nous voulions mettre dans cette classe le travail de ce personnage, et les caractéristiques propres à ce travail. Il faudrait faire une classe entière par travail ? Arf, vous aussi vous sentez la répétition ? Eh bien c'est maintenant que l'héritage rentre en jeu ! Nous allons regrouper toutes les caractéristiques communes à toutes les personnes dans une classe d'abord, bien prenons quelques exemples comme la classe que nous avons définie juste avant : Nom, âge, pays. Pour simplifier la tâche, nous allons juste mettre une fonction init de dans : Maintenant, nous allons créer une autre classe, par exemple : Banker qui va hérité des variables (méthodes également, mais il n'y en a pas dans Person pour que ce soit plus lisible). Banker contiendra par exemple le salaire de la personne, et son rang dans l'entreprise. Quand nous allons créer la classe, nous devrons ajouter en paramètre à la classe, la classe Person,, comme ceci : Vous remarquerez que dans le constructeur de Banker, j'ai ajouté les paramètres de la class Person, c'est normal, nous allons instancier notre classe Person dans le constructeur de Banker. Pour cela nous avons deux choix : Faire directement référence à Person avec Personne.__init__(); Faire référence à la classe mère avec super.__init__(); Utilisons super() pour l'exemple. Attention, si vous décidez d'utiliser le nom de la classe directement, vous devrez passer le self en argument également, comme ceci : On s'arrêtera ici, car ce n'est qu'une découverte, vous pouvez maintenant appeler les éléments définis dans Person par Banker, par exemple : Renverra bien "Takuma" dans la console. Voilà, on va s'arrêter là, je pense que vous avez un peu de lecture, merci pour ceux qui auront lu jusqu'au bout. N'hésitez pas à me dire si quelque chose n'est pas clair pour vous, j'ai sorti ça d'une traite par manque de temps, je vais peut être remplacer les screens par des blocs codes par la suite, je sais pas ce qui rend le mieux, je vais voir. Cordialement, Takuma.
  9. Heyio Pour désactiver une classe direction le worldserver.conf Tu as normalement ligne 752 et tu as : CharacterCreating.Disabled.ClassMask = 0
  10. Alors si tu souhaite installer un serveur sous Debian il te suffis simplement de suivre ce lien https://trinitycore.atlassian.net/wiki/spaces/tc/pages/2130068/Requirements
  11. Heyio, Alors je présume que tu es sous Linux, pour pour te connecter en root via mysql. Il faut t'assurer d'être en root sous Linux, donc soit : sudo su mysql -u root -p ou alors tu fais : sudo mysql -u root -p
  12. Ton problème est dû à ton Cmake qui n'est pas complet La commande complète est : cmake ../ -DCMAKE_INSTALL_PREFIX=TONCHEMIN_DE_DOSSIER -DTOOLS=1 A la suite de quoi tu fais : make -j $(nproc) install Et voilà
  13. Si tu parles de la boutique liés au jeux, ça va être côté CORE et DB. Donc va falloir mettre les mains dans le CPP et la faire fonctionner ^^ Malheureusement il n'existe pas de tutoriel pour ceci Et d'ailleurs, la prochaîne fois, pour les demandes d'aides va dans le support c'est mieux
  14. HTML - Présentation et Structures Introduction 1 - Qu'est ce que le World Wide Web ? Le World Wide Web (Web) est un réseau de ressources et d'informations. Le Web repose sur trois mécanismes pour rendre disponible ces données le plus largement possible. Un système de nommage uniforme pour leur localisation sur le Web (par exemple les URL) Des protocoles, pour accéder à des ressources nommées dont on possède l'adresse (par exemple HTTP) L'hypertexte, pour faciliter la navigation entre ces ressources (par exemple HTML) 2 - Qu'est ce que le HTML ? Publier de l'information en vue d'une distribution mondiale nécessite l'usage d'un langage universellement compréhensible, d'une sorte de « langue maternelle » acceptée par tous les ordinateurs. Le langage de publication utilisé sur le World Wide Web est le langage de bali-sage hypertexte HTML (Hyper Text Markup Language). HTML donne aux auteurs les moyens de : Publier des documents en ligne possédant des titres, du texte, des tables, des listes, des photos, etc. Ramener des informations en ligne via des liens hypertextes avec un clic Concevoir des formulaires pour conduire des transactions avec des services distants, dans le but de rechercher des informations, de faire des réservations, de prendre des commandes, etc Inclure des feuilles de calculs, des séquences vidéos ou sonores et d'autres applica-tions, directement dans les documents C'est un langage de balise, qui a comme objectif de représenter de l’information. Ces balises sont interprétables par les différents navigateurs (Internet Explorer/Edge, Firefox, Safari, Opera etc.) et permettent l’affichage de l’information désirée. Historique du HTML : 1993 : HTML (1.0) 1995 : HTML 2.0 1997 : HTML 3.2 et 4.0 2000 : XHTML 2009 : HTML 5 3 - HTML5 Le HTML 5, publié en 2009, est la version actuelle du HTML. Les règles de base du HTML 5 : Fermer toutes les balises Les balises et les attributs sont toujours en minuscules Les valeurs des attributs sont entre guillemets Tous les attributs ont des valeurs explicites Les balises indiquent la structure du document et non pas sa présentation. Les balises et les attributs de présentation sont remplacés par l'application de styles CSS Comme à chaque évolution du langage HTML, le HTML 5 apporte des nouveautés et supprime certaines balises. Cette page liste l'ensemble des balises HTML 5 en précisant les nouvelles et celles devenues obsolètes. Architecture HTML 1 - HTML : Un langage de balises sémantique Le langage HTML est formé de balises (tag en anglais) assemblées afin de déterminer le plan (découpage) d'une page, le document.est formé de balises (tag en anglais) assemblées afin de déterminer le plan (découpage) d'une page, le document. Une balise possède un nom qui permet de décrire son contenu : on appelle cela un langage sémantique. Par exemple si on utilise la balise <article>, cela indique (suppose) que le texte qu'elle contient est un article. Le nom des balises est inséré entres les signes < et >, lesquels sont appelés chevrons : Exemples : <p>, <div>, <article>, <meta>... Certaines balises doivent être ouvertes puis fermées avec le même tag (précédée d'un / pour la fermeture). Exemples : <p>texte</p> <header>autres balises</header>. Dans d'autres cas, les balises sont dites autofermantes, c'est-à-dire fermées par un simple chevron fermant sans répeter le nom de la balise. Exemples : <br> <hr> <img> En HTML, la casse (lettres minuscules ou majuscules), n'a aucune importance. La bonne pratique est toutefois d'écrire les balises en minuscule. Une balise possède des attributs, ce sont des paramètres supplémentaires à appliquer spécifiquement à la balise. Un attribut a un nom, auquel on affecte une valeur (une chaîne entre guillemets) via l’opérateur = : <p id="intro"> : balise paragraphe avec un seul attribut, l'attribut id (identifiant unique) <p id="intro" class="rouge"> : balise paragraphe plusieurs attributs, id et class. Selon la balise, il y a des attributs obligatoires ou facultatifs. Certains attributs peuvent rece-voir une valeur librement définie par le développeur (comme les attributs id et class ci-dessus), d'autres doivent avoir une valeur proposée par les spécifications du HTML (W3C). 2 - Le nombre d'attributs peut donc être variable Certaines balises peuvent être imbriquées, cela forme un ensemble hiérarchique appelé balisage, on a donc des balises enfant d'autres balises. La hiérarchie peut s’établir sur plusieurs niveaux. Les balises imbriquées peuvent être multiples et différentes. Exemples : une liste d'options : les balises <li> (= list item) héritent de la balise <ul> (= unordered list) : <ul> <li>1er élément</li> <li>2ème élément</li> <li>3ème élément</li> </ul> Structure d'un document HTML Un document HTML 5 se compose de plusieurs parties dont l'ordre est à respecter. Une ligne de déclaration de type contenant les informations de la version HTML de la page : en HTML 5, cette déclaration doit être <!DOCTYPE html> Attention : la casse de cette balise est à respecter. Un élément <html> qui comprend : Une section en-tête déclarative (enclose par la balise <head>) Un corps, qui emporte le contenu effectif du document. Le corps est généralement enclos par l'élément <body> Chaque balise <head> ou <body> peut elle-même contenir des balises incluses. Voici un exemple de document HTML 5 simple : <!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Ma première page en HTML 5</title> </head> <body> <h1>Le HTML 5</h1> <p>Le langage HTML, c'est fantastique.</p> </body> </html> Attention : en HTML 5, toutes les balises ainsi que leurs attributs doivent être en minuscule (sauf DOCTYPE). Dans la balise <html>, ne pas omettre l'attribut lang qui permet d'indiquer la langue dans laquelle la page web est rédigée aux robots de référencement ou aux logiciels de synthèse vocale. Entête du document <head> </head> Le bloc <head></head> contient des informations sur le document courant, tels que son titre, des mots-clés que les moteurs de recherche peuvent exploiter et qui permettront d'indexer (référencer) votre site, et d'autres données qui ne sont pas considérées comme faisant partie du contenu du document : ce sont des métadonnées qui, pour leur grande majorité, seront contenues dans des balises <meta>. Les balises de la partie <head> ne sont pas affichées par le navigateur à l'internaute, à l'exception de la balise <title> qui apparaît dans les onglets du navigateur et dans les moteurs de recherche et de la meta « description » reprise elle aussi par les moteurs de recherche (ci-dessous, copie d'écran de la page de résultats de Google) : Cependant, le contenu de la partie <head> est visible dans le code source (Ctrl+U dans un navigateur). Il ne doit donc pas contenir d’informations sensibles pouvant compromettre la sécurité de votre site. Les balises <meta> 1 - Principe Les balises <meta> permettent de fournir ce que l'on appelle des metadonnées d'une page web, c'est-à-dire des indications supplémentaires différentes du contenu de la page. 2 - Evolution des balises <meta> Certaines balises <meta> sont obligatoires, d'autres sont facultatives et certaines (par exemple keywords, refresh) ont désormais une utilité controversée ou obsolète. 3 - Obligatoire : la balise <meta charset> La balise <meta charset> permet de spécifier aux navigateurs l'encodage de la page web. La valeur standard est l'utf-8 : <meta charset="utf-8"> Spécifier en UTF-8 évite de se retrouver avec des problèmes de caractères spéciaux ou d'accents mal affichés du genre après avoir été lancé. Cette balise doit donc se trouver avant tout texte affiché à l'internaute, soit en pratique avant la balise <title> (et donc immédiatement après la balise d’ouverture <head>). 4 - La balise <link> L'élément HTML <link> définit la relation entre le document courant et une ressource externe (CSS, icône). Cet élément peut être utilisé pour définir un lien vers une feuille de style ou un cadre de navigation (accéder à la même page dans une langue différente par exemple). Cette balise est principalement utilisée pour lier les feuilles de styles CSS (que nous aborderons à la séquence suivante) à la page web : <link href="style.css" rel="stylesheet"> Contrairement aux balises vues jusqu'ici, il est possible d'avoir plusieurs <link> car il en faut une par ressource appelée. 4 - Le corps du document <body> </body> Le contenu réel de la page (textes, images, tableaux etc.) affiché à l'internaute se trouve dans le bloc <body></body> : c'est le corps du document. Exemples : <body> <h1>Mon contenu</h1> <p>Le HTML 5 c’est fantastique.</p> </body> La partie <body> accueille à la fois : les éléments (balises) qui structurent la page (colonnes, blocs, paragraphes, menus, entête, pied de page etc.) les éléments relevant davantage du formatage (mise en exergue, gras, italique, citations, médias etc.). Ces différentes balises seront vues au prochain chapitre. Commentaires Vous pouvez commenter votre code source, l'internaute ne verra pas ce commentaire. Exemples : <!-- Ceci est un commentaire --> Les commentaires seront visibles dans le code source HTML de votre page (afficher la page dans un navigateur puis touches Ctrl + U). Par conséquent, éviter trop d’indications pouvant compromettre la sécurité. Les commentaires seront affichés dans le code source de la page. Par conséquent, évitez trop d'indications pouvant compromettre la sécurité. Pour voir le code source d'une page, afficher la page dans un navigateur web puis touches Ctrl + U ou, si vous connaissez déjà, inspectez-le via les outils de développement des navigateurs. Sources : W3Schools, "Pour les nuls", Formation personnel, OpenClassRooms, MDN
  15. Bonjour, Je vous partage des dagues dont j'ai essayé de refaire les brillances. L'archive contient : La texture l'icon Le modèle Aperçu : Lien de téléchargement : FE / Cliquez ici Source : J4m Xayah,
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.