Wafoux 37 Posté : 3 juillet 2018 Version de MC utilisée: 1.12.2 Version de Skript: dev36 Version de TuSKe: la dernière mise à jour Hello ! J'ai actuellement un problème d'optimisation de script, et j'aurais besoin d'aide. Le truc, c'est que je voudrais afficher des têtes de joueurs dans un GUI, mais en masse (du genre toutes les têtes des joueurs connectés). Le soucis, c'est que quand je charge le GUI et bien ça mets au moins 10 secondes à charger... Voici le script actuel: (on notera que la liste {_joueurs::*} contient tous les joueurs connectés, du genre environ 30 personnes.) Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Du coup j'aimerais savoir si c'est possible d'optimiser ce script pour que ce soit plus fluide ? Une syntaxe particulière à utiliser peut-être ? Merci d'avance ! Partager ce message Lien à poster Partager sur d’autres sites
uiytt 285 Répondu : 3 juillet 2018 il y a 12 minutes, Wafoux a dit : Version de MC utilisée: 1.12.2 Version de Skript: dev36 Version de TuSKe: la dernière mise à jour Hello ! J'ai actuellement un problème d'optimisation de script, et j'aurais besoin d'aide. Le truc, c'est que je voudrais afficher des têtes de joueurs dans un GUI, mais en masse (du genre toutes les têtes des joueurs connectés). Le soucis, c'est que quand je charge le GUI et bien ça mets au moins 10 secondes à charger... Voici le script actuel: (on notera que la liste {_joueurs::*} contient tous les joueurs connectés, du genre environ 30 personnes.) Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Du coup j'aimerais savoir si c'est possible d'optimiser ce script pour que ce soit plus fluide ? Une syntaxe particulière à utiliser peut-être ? Merci d'avance ! Quel genre de serveur as tu ? avec un serveur 1G local j'ai pas de problème avec ces syntaxes.... Après j'ai un bon processeur.... Bref si ton serveur est à ce point mauvais, je te conseil d'augmenter ta ram ou aller sur un serveur hébergé, car normalement ces syntaxes ne prennent quasiment rien niveau ressource... Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 3 juillet 2018 Je tourne aussi en local, avec ceci: java -Xms512M -Xmx1G -XX:+UseConcMarkSweepGC -jar spigot-1.12.2.jar (donc 1G aussi je suppose ?) Et mon processeur c'est un i5 avec 8 GO de RAM. Toi ça bug pas du tout ? Car mon hypothèse c'était que ça chargeait déjà une première fois les joueurs, puisque quand je refais la commande ça marche plus rapidement... Mais ça reste embêtant Et sinon tu penses que sur un serveur hébergé ça bugera moins ? Partager ce message Lien à poster Partager sur d’autres sites
Delling 7 Répondu : 3 juillet 2018 Voici mon skript de liste Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Partager ce message Lien à poster Partager sur d’autres sites
FyRoOxX 23 Répondu : 3 juillet 2018 Il y a 2 heures, Wafoux a dit : Version de MC utilisée: 1.12.2 Version de Skript: dev36 Version de TuSKe: la dernière mise à jour Hello ! J'ai actuellement un problème d'optimisation de script, et j'aurais besoin d'aide. Le truc, c'est que je voudrais afficher des têtes de joueurs dans un GUI, mais en masse (du genre toutes les têtes des joueurs connectés). Le soucis, c'est que quand je charge le GUI et bien ça mets au moins 10 secondes à charger... Voici le script actuel: (on notera que la liste {_joueurs::*} contient tous les joueurs connectés, du genre environ 30 personnes.) Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Du coup j'aimerais savoir si c'est possible d'optimiser ce script pour que ce soit plus fluide ? Une syntaxe particulière à utiliser peut-être ? Merci d'avance ! Le bug, c'est un freeze de l'écran ? Dans ce cas c'est juste l'affichage des textures des têtes le problème, en revanche si c'est le faites que les tête apparaisse une pas une, la je sais pas ... Cordialement Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 3 juillet 2018 Non c'est pas un freeze, mais en gros quand j'effectue la commande ça charge... et ça s'effectue. A savoir que ce GUI se charge depuis un autre GUI, le tout avec des fonctions. (Donc en gros depuis le GUI principal je clique sur un objet qui met lance la fonction de la liste des joueurs.) Partager ce message Lien à poster Partager sur d’autres sites
noftaly 497 Répondu : 3 juillet 2018 Non ton problème viens que tu as mis 512 MO dans ton serveur. Remplace par 2048G pour les 2. Tu auras moins de pb Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 3 juillet 2018 Ok, je vais essayer ça Merci pour toutes vos réponses en tous cas ! Partager ce message Lien à poster Partager sur d’autres sites
noftaly 497 Répondu : 3 juillet 2018 Ou au pire tu peux avoir un petit effet sympa, en chargeant le GUI mais sans l'afficher, du coup tu mets un message dans le chat comme quoi ca se charge (avec pourquoi pas aussi un petit spinner en titre) puis ensuite tu l'affiches. C'est possible avec TuSKe. Si c'a t'intéresse dis le moi je te donnerai les syntaxes 1 Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 3 juillet 2018 Ah oui carrément ! Car là, je viens de réessayer, et même avec 2G ça prend toujours autant de temps J'en serais fort intéressé de cette syntaxe Partager ce message Lien à poster Partager sur d’autres sites
noftaly 497 Répondu : 3 juillet 2018 Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. donc tu mets ca (en remplaçant les items par tes lignes, mais fait bien attention a mettre "make next gui") et ensuite tu fait: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. a toi de faire les messages et tout entre les deux (ces syntaxes sont tirées du tuto de Syst3ms : https://v1.skript-mc.fr/threads/les-gui-avec-tuske-avec-la-v2.11800/) 1 Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 4 juillet 2018 Désolé j'ai toujours pas pu prendre le temps d'essayer ce que tu m'as dis @noftaly Je te retiens au courant dès que j'effectue le script. Partager ce message Lien à poster Partager sur d’autres sites
noftaly 497 Répondu : 4 juillet 2018 Pas de problèmes Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 9 juillet 2018 (modifié) Salut ! (Une semaine après...) J'ai pu faire le code que tu m'as proposé, ça marche bien. (Enfin, je crois j'ai du modifier y'avait des erreurs il me semble... Mais bref, dans l'idée c'est ça.) Du coup, pour conclure: Étant donné que je n'ai uniquement que 2 GUIs qui demande du temps à charger (beaucoup de slots pris... notamment pour charger la tête de tout le monde), j'ai pu trouver 2 solutions grâce à vous: Modifier ces 2 GUIs afin d'utiliser la syntaxe "avancée" de TuSKe (Voir guide de Syst3ms), comme ça je pourrais charger directement les GUIs qui demandent du temps dès que le joueur arrive sur le serveur (donc on join...), et je pourrais leur mettre 2 IDs différents afin de les appeler facilement. Modifier la syntaxe pour afficher la tête des joueurs, en effet il semblerait que ("%loop-value%" parsed as offline player)'s skull prenne du temps à charger. Merci à tous pour vos réponses, cela m'a permit d'arriver à 2 solutions viables ! C'est résolu EDIT: Quelqu'un pour m'expliquer comment passer mon sujet en résolu ? Avec la nouvelle version du forum je sais pas comment faire Modifié 9 juillet 2018 par Wafoux Je ne sais pas comment modifier le titre pour passer en résolu ! 1 Partager ce message Lien à poster Partager sur d’autres sites
Wafoux 37 Répondu : 23 juillet 2018 (modifié) Étant donné que ce sujet n'a toujours pas été mis en "Résolu", j'en profite pour vous donner les temps réalisé avec la syntaxe "simple" de TuSKe pour les GUIs. (Pareil, aller voir le tutoriel de Syst3ms pour voir ce que j'appelle un gui simple.) Pour un échantillon de 11 joueurs, et un serveur qui tourne sur mon Macbook Pro avec 2 GO alloué, j'ai fais ceci: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. On obtient comme premier temps de chargement: (qui correspond au temps que Skript met à parse toutes les variables textes en variables offline player.) Temps 1 : 3,35 secondes. Et le second temps de chargement: (qui correspond au temps que Skript mets à mettre tous les joueurs dans le GUI.) Temps 2 : 8,66 secondes. (Soit 5,31 secondes depuis le début du loop pour mettre les têtes dans le GUI.) À savoir: quand j'effectue la commande une seconde fois, les temps de chargement sont de: Temps 1 : 0,02 secondes. Temps 2 : 0,03 secondes. Donc on a bien la confirmation des solutions apportées: si on charge les GUIs dès l'arrivée du joueur (sans qu'il fasse la commande), alors les guis seront chargés directement et il n'aura pas d'attente. (À part 0,03 secondes mdr.) ATTENTION ! Il faut passer obligatoirement par la syntaxe avancée de TuSKe pour faire ceci. Enfin, quelques trucs à savoir quant à la syntaxe utilisée: Elle prend du temps à charger pour la 1ère fois, mais après ça va quand on refait la commande/fonction. Elle prendra toujours très peu de temps à charger, même après que le joueur se soit déconnecté/reconnecté. (Si déjà chargé une fois.) Elle prendra toujours très peu de temps à charger, même si on effectue un reload du script. (Et même un /sk reload all) (Si déjà chargé une fois.) (Je ne suis pas sûr de ça) : Cela implique certainement que le GUI est enregistré quelque part dans le serveur... mais aussi les joueurs parsed as offline player. (Parce qu'il faut savoir que parse les joueurs en offline player, ça prend pas loin de la moitié du temps d'execution !) Le seul moyen que le chargement redevienne long, c'est d'éteindre/redémarrer votre serveur. Si quelqu'un a des explications quant aux chargement trèèès long puis pas long du tout, je suis preneur (Donc du coup ne mettez pas encore ce sujet en résolu svp x) Modifié 23 juillet 2018 par Wafoux Partager ce message Lien à poster Partager sur d’autres sites