Aller au contenu

SlySharp

Membre
  • Compteur de contenus

    186
  • Inscription

  • Dernière visite

  • Jours gagnés

    2
  • Crédits

    0 [Faire un don]

SlySharp a gagné pour la dernière fois le 11 novembre 2015

SlySharp a eu le contenu le plus aimé !

Réputation sur la communauté

24 Neutre

À propos de SlySharp

  • Rang
    Membre

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

  1. SlySharp

    Mob spawn MMORPG like

    Une solution possible est de faire ce système via un excellent plugin : "MyhticMobs". Tous ce que tu décris est facilement faisable grâce au plugin. Sinon, au niveau Skript, tu peux passer par des fonctions qui vont gérer chacun de tes mobs. Je m'explique: Lors du spawn de ton mob, la fonction se lance, et vérifie (tous les x ticks) si le mobs est encore en vie. Si il l'est, rien ne se passe, sinon, ça lance la procédure de respawn. >>> En revanche, je ne suis pas sûr que si le chunk n'est pas chargé, ou qu'aucun joueur n'est co/à proximité, le respawn se fasse ! (Bloqué par le jeu) Un autre solution est alors de check pour chaque joueur si les mobs autour de lui sont présents ou non. S'ils ne le sont pas, tu les fais spawn, etc.. Si tu as besoin d'autres explication, n'hésite pas !
  2. Et bah ! 6 ans à faire du java pour pondre un skript aussi mal optimisé ! ça semble peu crédible !
  3. En cas général cette formulation est moins coûteuse à lire pour Skript.. Dans ce cas je suis d’accord c’est inutile, mais comme il s’agit d’une action unique c’est pas vraiment grave. Tu ne stoques pas des informations, le but de la lecture de tes codes est d’effectuer uniquement ce qu’elle doit faire. Au final, si tu veux un code plus propre et pro c’est la méthode à suivre (dans un cours d’info dans d’autres langage, c’est la même méthode quand elle est possible)
  4. Mes skript font autant de lignes car c’est un skript basique, mais sur un lourd skript c’est pas la quantité de lignes que tu effectues qui est important mais puissance demandé pour lire tes skripts. Si tu ne fais pas une lecture qui s’arrête au bon moment cela consomme beaucoup, donc ne sont pas optimisé du tout. Et l’optimisation sert pour tout serveur. Voilà si tu veux en savoir plus, dis le, mais sincèrement c’est pas une bonne habitude de rester dans un schèma if/else quand c’est pas utile. PS: Les stops à la fin de l’event permettent de stopper totalement l’event et dans certains cas ils évitent des boucles infinies sont si ils sont utiles. PPS: Cette méthode est beaucoup plus structurée car si tu as beaucoup de conditions, la lecture se fait en ligne droite et pas en diagonale.
  5. Bah en fait ton skript comme ça demande moins de ressources donc il est plus optimisé, c’est surtout un lourd avantage quand t’as des gros skripts! Ah oui mais je l’ai écris sur téléphone donc j’ai pas les autres guillemets
  6. Bien le bonjour à tous ! Introduction : Ce cours ne va pas vous apporter d’enormes nouveautés sur Skript, mais si vous voulez vraiment vous lancer dans l’élaboration de Skripts complexes, ces mécanismes est vraiment important! Le mécanisme d’indentation en soit est le fait de décaler le texte vers la droite (tab ou 4 espaces). Ce cours est là pour vous apprendre comment limiter au maximum ce mécanisme afin de simplifier et surtout d’optimiser vos Skript ! I - Exemple : Bien, commençons par un exemple de ce qu’il faut éviter ! on join: if player is op: if player’s world is « world »: message «Bienvenue monsieur l’op! » else: message «Étrange, vous n’etes pas dans le bon monde ! » else: message «Vous n’etes pas op!» Bon, vous êtes capables de le voir : ce code marche, mais il est extrêmement lourd ! Pourquoi? Ce code se décale jusqu’à 3 tab inutilement et pour quelque chose d’encore très simple ! • Comment remédier à ce soucis ? II - Utiliser le «stop» : Vous avez sûrement tous entendu parlé du «stop». Il permet d'arrêter la lecture de la suite du Skript (dans un event ou commande). En règle générale, vous pouvez en abuser si vous n’utilisez pas d’effets sur le temps (wait). Mais le point important est qu’il permet à votre Skript de s’arreter et de ne pas regarder les autres conditions/actions inutilement ! >> Conséquence : Le Skript est plus optimisé car il s’arrête quand il a fini de faire ses actions ! De plus, utiliser le stop permet d’éviter les «else:» et donc d’avoir un skript plus compact ! Pour reprendre notre exemple initial, effectuons un premier changement avec le stop: on join: if player is op: if player’s world is « world »: message «Bienvenue monsieur l’op! » stop message «Étrange, vous n'êtes pas dans le bon monde ! » stop message «Vous n’etes pas op!» stop Le code apparaît déjà un peu plus simple. Mais comment marche t-il ? Il faut juste réfléchir à propos du «If». Dans notre cas nous somme juste dans une situation où si le joueur est op on fait quelque chose, sinon autre chose. Dans cette situation le else ne sert à rien car si la lecture du code passe dans le if, elle sera stoppée par le «stop» et donc ne passera pas dans l’autre partie du code. Mais surtout si la lecture ne passe pas dans le if, elle passera dans le else dans tous les cas, ce qui le rend inutile ! Voici la première partie de la solution de notre code. III - La condition inverse : Là quoi ? Bon d’accord, ce terme je viens de l’inventer mais il décrit bien le mécanisme suivant. En fait, il suffit d’écrire l’inverde de la condition que l’on souhaite, afin d'arrêter la lecture du code. Je sais que comme ça, cela peut paraître étrange, alors regardons un exemple ! on join: if player is not op: message «Vous n’etes pas op!» stop if player’s world is « world »: message «Bienvenue monsieur l’op!» stop message «Étrange, vous n’etes pas dans le bon monde ! » stop Le mécanisme de condition inverse est là dans la première condition. En fait, on regarde si le joueur n’est PAS op au lieu de regarder si il est op, comme ça on peut arrêter le code et ne pas faire les autres comparaisons inutilement. On aurait put également le faire dans la seconde partie mais c’est globalement équivalent avec un mécanisme classique dans ce cas. Conclusion : Ces deux mécanismes (combinés) sont là pour simplifier et optimiser les codes au maximum, ainsi en les combinant quand cela est possible, vos skripts seront beaucoup plus efficaces si ils sont complexes. Pour avoir des exemples concrets d’utilisation de ces mécanismes: - Conditions avant de lancer une commande - En fait presque à chaque fois qu’il y a des conditions ! PS: Lorsqu’il n’y a pas de else, ni autre conditions pensez à la condition sans «if» ni «:» ! Voila ce post est enfin terminé! Si vous avez des remarques, n’hésitez pas, et si le concept vous plait faites le savoir ! Merci à vous !
  7. SlySharp

    Besoin de Skript pour MC 1.8

    Normalement tu devras trouver ça là dedans : [Contenu masqué]
  8. Non car le parsed as location marche pas avec un text (variable) stokée en yml Et le parsed as item fonctionne, je le sais, le problème c'est les nbt x) !
  9. Non mais je connais le parsed, mais avant de passer par un parsed il faudrait pouvoir stoker l'info x) ! Et pour location tu peux pas convertir un text en location avec parsed, donc pas possible
  10. Non mais pour les stocker je sais faire comme ça, mais tu stokes en YML en convertissant tout ça en texte : du coup on peut plus récupérer ça comme une location ou comme un inventaire :/
  11. Skript : Dev 25, Version du jeu : 1.12 Salut salut, je vous présente mon problème. En fait j'aimerai pouvoir stoker un inventaire (armure incluse) dans un fichier.yml ainsi qu'une location pour pouvoir la reprendre plus tard. Le problème est que avec une variable, on peut ajouter chaque slot dans une variable liste ({::*}) mais là avec ce système, tous les nbt sont supprimés : et je ne peux pas faire sans :S ! En ce qui concerne la location, j'arrive à la stoker en version 'text' avec 'x:..y:..z:..' mais impossible de la refaire passer en location ! C'est la même chose, dans une variable il n'y a pas de soucis, mais en yml ça ne marche pas ! Avant de passer des heures à la recherche de pistes je voulais savoir si vous avez déjà rencontré ce soucis, et comment y remédier ? Merci !
  12. Mais naaaan slysharp
  13. En effet j'avais même pas capté
  14. SlySharp

    Premier jour d'un mois

    Ok bah la fonction partie entière que je te disais en gros c'est flormor, si tu veux utiliser l'algo que t'as envoyé en premier, tu peux essayer avec Ah ok, c'est la première fois que je vois une fonction avec return, je me disais aussi que ça devait bien exister !
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.