-
Compteur de contenus
741 -
Inscription
-
Dernière visite
-
Jours gagnés
32
Type de contenu
Profils
Forums
Téléchargements
Tout ce qui a été posté par Olyno
-
Ne prend jamais de pack d'addon, c'est complètement stupide. Télécharge ce dont tu as besoin directement sur les forums.
-
https://skripthub.net/tutorials/2
-
Utilise dans ces cas là "on right click with item" où tu remplaces "item" par le nom de l'item en question ;)
-
oui tu peux avec les packets il me semble, sinon non.
-
Tu peux trouver tout les addons sur skunity ainsi que leur documentation
-
@Shelk @kumakuma215 Edité, merci de me l'avoir signalé ;)
-
Skript de kit avec gui , cooldown et presentation du kit
Olyno a répondu à un(e) sujet de TheBeatchDay_ dans Inactifs
149.99 € nouveau prix ! Réduction à temps limiter ! Finis le 25/03/2018 ! Attention, le timer est lancé ! C'est maintenant ou jamais ! -
Tu fais : replace all "ton texte ou ton symbol" with "" in {_tavariable}
-
Parce que ici tu apprends à créer des syntax, mais ce que j'ai dis est cohérent, tu peux utiliser du java dans le code
-
et Disponible depuis un petit moment dans la partie intermédiaire. En ce qui concerne les whiles, si on dit qu'ils peuvent contenir des conditions, je pense qu'il ne faut pas être bête pour utiliser les conditions disponible que nous offre les addons ou encore skript lui même. En ce qui concerne "loop all players" par exemple, "all players" reste une expression. Etant donné que j'avais précisé "tout ce qui est multiple", ca me paraissait logique d'inclure les expressions de ce style, je l'ai quand même repréciser. Le tutoriel est sur les loops, et non les expressions et l'utilisation des expressions, c'est donc normal que je n'ai pas inclut ça dans le tutoriel. Merci tout de même pour ta/tes remarque(s) ;)
-
J'ai utilisé sous forme de variable pour que ce soit simple à comprendre et à décomposer, mais oui sinon tu peux aussi faire de cette manière ;)
-
Bonjour, dans ce tutoriel, je vais vous expliquer les loops de manières très poussés en skript. Ce tutoriel s'adresse à tout les développeurs de scripts, que ce soit débutant ou niveau très poussé. Ce tutoriel sera divisé en 3 parties pour que vous puissiez voir la/les parties à votre niveau. Sommaire : [spoiler=Niveau débutant] I/ Niveau débutant : Une loop peut être traduit par "boucle" en français. Il s'agit de répéter une action un certain nombre de fois, allant de 1 à un nombre infinis de fois. En skript, il n'existe pas de boucle "for" comme dans la plupart des langages mais uniquement 2 loops : "loop" et "while" La boucle "while" va faire une boucle infinis, juqu'à ce qu'une condition la brise. La boucle "loop" va cibler un nombre de fois définis et ne va se répéter que ce nombre de fois. Une loop est donc une boucle qui va se répéter un certain nombre de fois. Voici donc un bref résumé de ce qu'il se passe dans une boucle: [spoiler=Avec loop] loop 5 times: #étape 1 : création de la boucle add 1 to {_a} #On ajouter 1 à cette variable # broadcast "%{_a}%" #On broadcast un message avec le nombre contenant {_a} # Code #retour à l'étape 1 # [spoiler=Avec while] set {_a} to 5 while {_a} > 0: #étape 1 : création de la boucle remove 1 from {_a} #On ajouter 1 à cette variable # broadcast "%{_a}%" #On broadcast un message avec le nombre contenant {_a} # Code #retour à l'étape 1 # Ainsi, nous pouvons mettre une loop dans un code tel que: [spoiler=Avec loop] #mon code loop 5 times: broadcast "hey" broadcast "fin de la loop" [spoiler=Avec while] #mon code set {_a} to 5 while {_a} > 0: broadcast "hey" remove 1 from {_a} broadcast "fin de la loop" Ce sera très important pour la suite, vous en avez ma parole ;) [spoiler=Tips]Le while peut etre une boucle inintéréssante à première vue, mais est très importante lorsque nous savons l'utiliser. [spoiler=Niveau intermédiaire] II/ Niveau intermédiaire : Pour le niveau intermédiaire, il y a quelques astuces que vous devez connaitre. Vous devez dans un premier temps savoir que chaque loop renvoit une valeur, et que cette valeur augmente à chaque tour. Par exemple, si vous faites: command /test: trigger: loop 5 times: broadcast "%loop-value%" Vous pourrez remarquer qu'il va vous dire "1", "2", "3", "4" et "5". [spoiler=Pourquoi ?]Car chaque boucle avec "loop" démarre de 1 pour finir à son point culminant, comme dans l'exemple où le point culminant est "5" Sachez aussi que les variables listes peuvent être bouclés, tel que : command /test: trigger: set {_mavar::*} to "je", "renvoi", "une" and "phrase!" loop {_mavar::*}: broadcast "%loop-value%" Vous remarquerez ici qu'il va vous broadcast dans l'ordre "je renvoi une phrase!" en revenant toujours à la ligne. [spoiler=Pourquoi ?]Car il va reprendre le même système que la boucle avec "loop" précédente. Chaque boucle commence par la valeur 1, et chaque variable liste commence par l'index 1. Lorsque vous ajouter une valeurs, celle-ci y sera ajouté à la suite, tel une musique ajoutée à une file d'attente. Si votre valeur est la 5ème valeur ajoutée, elle sera donc en 5ème position. [spoiler=Tips]"loop-value" ne fonctionne pas pour les boucles "while" Une chose importante est à prévoir. Si vous utilisez une boucle dans une boucle, il ne faudra pas utiliser "loop-value" mais "loop-value-1" pour cibler une valeur de la boucle 1 par exemple ou "loop-value-2" pour la seconde. Tel que: [spoiler=Avec loop] command /test: trigger: set {_hey::*} to "je", "vais", "être", "broadcast", "5" and "fois" loop 5 times: loop {_hey::*}: broadcast "%loop-value-1% : %loop-value-2%" [spoiler=Tips]Vous pouvez bouclé tout ce qui est multiple, tel que l'inventaire d'un joueur, le nombre de blocs autour d'une position... Cela inclut aussi les expressions tel que all players, intergers from 1 to 5... Une autre fonctionnalité est le "exit loop", qui équivaut à un "stop loop" qui va arreter la boucle en cours. Exemple: loop 99 times: if loop-value = 2: broadcast "oh, la valeur est égale à 2" exit loop broadcast "Cette boucle ne fera pas 99 fois" [spoiler=Tips]Les "while" peuvent contenir des conditions tel que: while player is op: [spoiler=Niveau poussé] II/ Niveau poussé : Pour le niveau poussé, nous allons parler avec un vocabulaire que j'ai inventé mais qui reste cohérent. Désormais, considérer les loop en tant que "block". Vous pouvez optimiser votre code avec les loops, vous évitant de créer 1000 et 1 fonction. Voici un exemple de code que vous pouvez optimiser: Avant: command /test: trigger: broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast " " broadcast "Le chat a été vidé par %player%" Après: [spoiler=Avec loop] command /test: trigger: loop 13 times: broadcast " " broadcast "Le chat a été vidé par %player%" [spoiler=Avec while] command /test: trigger: set {_a} to 13 while {_a} > 0: broadcast " " remove 1 from {_a} broadcast "Le chat a été vidé par %player%" Ca supprime un grand nombre de ligne n'est-ce pas ? Merci d'avoir lu ce tutoriel. Pensez à jeter un oeil sur les exemples ci-dessous si vous voulez avoir des exemples concret d'utilisation des boucles ;) [spoiler=Exemples] [spoiler=Compte à rebour] [spoiler=Exemples] [spoiler=Avec loop] loop 5 times: wait 1 second [spoiler=Avec while] set {_a} to 5 while {_a} > 0: wait 1 second remove 1 from {_a} Ici, tant que la variable sera supérieur à 0, cette partie se répétera. Pour éviter un nombre de fois infinis de répétition, nous enlevons 1 à chaque fois de notre variable {_a}. [spoiler=Templates] [spoiler=Avec loop] #Exemple 1: options: temps : 5 parsed_as : second function Timer(): loop {@temps} times: wait 1 {@parsed_as} #Exemple 2: function Timer(temps: integer, parsedas: text = "seconds"): loop {_temps} times: wait 1 {_parsedas} [spoiler=Avec while] #Exemple 1 options: temps : 5 parsed_as : second function Timer(): set {_a} to {@temps} while {_a} > 0: wait 1 {@parsed_as} remove 1 from {_a} #Exemple 2 function Timer(temps: integer, parsed_as: text = "seconds"): while {_temps} > 0: wait 1 {_parsedas} remove 1 from {_temps}
-
Bonjour, dans ce tutoriel, je vais vous expliquer comment créer ses propres syntax skript tel que des effets, des conditions, des expressions, des types et des événements (pas encore disponible pour les types et éventements). Bien, commençons par savoir par quoi commencer : Qu'est-ce skript-mirror ? Pour résumer, skript-mirror est un addon vous permettant d'utiliser du java dans skript. Dans un premier temps, vous devrez télécharger l'addon skript-mirror qui est disponible sur le forum de skunity : https://forums.skunity.com/resources/skript-mirror.254/ Il vous suffit de le mettre dans votre dossier "plugins" et de relancer votre serveur. A la base, SkQuery permettait de faire ça à partir de fichiers skq mais ce système n'était plus à jour. Skript-mirror à donc remis à jour ce système mais de façon bien meilleur. Créer ses propres syntax: /!\ Attention /!\ Une partie de ce tutoriel ne sera que de la traduction du tutoriel de base pour créer ses propres syntax. /!\ Attention /!\ Tout les "return" dans les codes/exemples sont qu'à partir de la version 0.9+ de skript-mirror. Pensez donc à bien avoir la bonne version de celui-ci. Sinon, remplacer "return" par "continue". Vous pouvez créer des effets et des expressions personnalisés pour créer des blocs de code réutilisables. La syntaxe personnalisée peut être utilisée dans tous les scripts, mais elle ne peut être utilisée qu'après avoir été analysée, alors prenez soin de vous assurer que les scripts contenant des déclarations syntaxiques personnalisées sont chargés en premier. La syntaxe personnalisée présente quelques avantages par rapport aux fonctions Skript: * Ils ressemblent plus à d'autres effets Skript et expressions * Ils se comportent bien avec les retards et l'effet de changement tel que les wait.... Création d'effets personnalisés Les effets personnalisés peuvent être créés à l'aide de la syntaxe suivante: effect <syntax>: # code Par exemple: effect greet the world: broadcast "Hello, world!" Cela crée un effet personnalisé pour dire "Hello world!" La syntaxe peut utiliser tous les éléments de pattern que Skript utilise, même les expressions imbriquées: effect greet [the] world %number% times: loop expression-1 times: broadcast "Hello, world" Les expressions peuvent être consultées avec la syntaxe suivante: [the] expr[ession][s](-| )%*number% Pluraliser l'expression vous permet d'accepter plusieurs valeurs. Remarque, le code suivant utilise expressions-1 PAS expression-1. effect greet %strings%: loop expressions-1: broadcast "Hello, %loop-expression%" Si l'effet n'est pas terminé immédiatement (par exemple, il y a une attente ou un effet asynchrone), vous devez déclarer que l'effet a un délai avant que le délai ne soit exécuté. Vous devez également continuer (PAS arrêter) après que l'effet soit terminé pour indiquer que le code d'appel peut continuer. effect greet [the] world slowly: delay the current effect broadcast "Hello" wait 10 seconds broadcast "World" continue Pour les effets personnalisés, avoir un continue n'est nécessaire que pour les effets retardés. Création d'expressions personnalisées : Les expressions personnalisées sont créées de manière similaire. Les expressions doivent toujours se poursuivre, avec une valeur de retour optionnelle. get expression <syntax>: # code return <valeur retournée> C'est une expression qui retourne toujours 6.28: get expression tau: return 6.28 Si une expression a toujours la possibilité de renvoyer plusieurs valeurs, elle doit être définie comme telle: get plural expression %number% random numbers: loop expression-1 times: add 4 to {_output::*} return {_output::*} Dans certains cas, vous aurez une expression qui renvoie plusieurs valeurs si plusieurs valeurs lui sont données et seulement une seule valeur si une seule valeur lui est donné. Vous pouvez préfixer ce paramètre par un $ pour indiquer que son montant détermine si l'expression peut renvoyer plusieurs valeurs. get expression just %$strings%: return expressions-1 # Autorise à écrire des deux façon set {single} to just "une valeur simple" set {multiple::*} to just "plusieurs", "valeurs", "différentes" Il y a aussi un raccourci pour écrire les expressions de propriété sous forme de [the] <quoi> of %$type%" et %$type%'[s] <quoi> . L'expression passée à %type% est toujours stockée dans l'expression-1 et toutes les expressions de <quoi> sont stockées dans les expressions suivantes. # [the] charisma of %player% # %player%'[s] charisma get player property charisma: return {charisma::%expression-1%} Création de conditions personnalisés: Les conditions personnalisées sont créées de même manière que les effets. Les conditions doivent toujours se poursuive. condition player has variable %string% set: if {players::%expression-1%} is set: return true else: return false Utilisation concrète : Pour utiliser ces effets, conditions et expressions personnalisés, vous devez les mettre dans un second fichier nommé "!!!lenomquevoussouhaitez". Les 3 points d'exclamations permettent au fichier d'être chargé en premier. Les effets que vous utilisez directement dans un script doivent être en dehors de votre fichier contenant les syntax personnalisés. (Jusqu'à la version prochainement) Merci de m'avoir lu et j'espère avoir pu vous apprendre quelque chose. Scripts possédants ce système: - GameAPI : https://skript-mc.fr/forum/resources/gameapi.1294/ Pensez à me signaler les scripts possédant ce type de système pour que je puisse les ajouter à la liste ? /!\ Le tutoriel ci-dessus n'est valable que pour la version 0.9.0 de skript-mirror maximum /!\ Pour skript-mirror + 0.9.0, il y a quelques changements. Par exemple, pour récupéré la donnée d'un effet, il vous faudra utiliser "trigger", comme dans l'exemple suivant: effect mon magnifique effet: trigger: send "Wow ca fonctionne !" to console Pour les expressions, il vous faudra préciser le changer (add, remove, set...) dont get pour récupéré la valeur: expression ceci est un test: get: return "magnifique!" set: set {mavar} to change value #Ca donne: set ceci est un test to "coucou" . "change value" représente la valeur "coucou" . Ca peut très bien être un chiffre ou autre valeur... Si vous voulez changer la valeur d'une expression, tel que "set ceci est un test to "oh, ca a changé", il vous faudra utiliser cette méthode: expression ceci est un test: set: set {test} to change value Enfin, le "return" ne doit etre utiliser uniquement pour les expressions. En ce qui concerne les conditions, il faut "continue" lorsque c'est vrai et ne rien faire lorsque c'est faux. Il faut utiliser "continue" dans les effets en cas de timer, tel que "wait 3 seconds" par exemple. Pour les conditions, il faudra utiliser "check", comme: condition ceci est une condition: check: if (1+2) = 3: continue Rappel: La documentation officiel se trouve ici: https://skript-mirror.gitbook.io/docs/advanced/custom-syntax
-
This resource has been removed and is no longer available for download.
-
Je répète, cela ne vient pas de la version de skript, mais soit de ses addons ou de son skript. J'ai la même version que lui et je n'ai aucun problème. De plus tu l'envois vers un lien complètement abandonné de skript, alors stop dire n'importe quoi s'il te plait. Du coup @Ukuelig , quel est la liste de tes addons s'il te plait ?
-
Bonjour, Le soucis ne vient pas de skript lui même car je ne possède pas ce soucis avec la même version que tu as. Quels sont tes addons s'il te plait ?
-
This resource has been removed and is no longer available for download.
-
Le "on drop" est censé empecher ton item de bouger, que tu sois op ou non
-
on drop: if player is not op: if name of tool of player is "&eBoutique &8(&6Faction&8)": cancel event
-
Par rapport à quoi ? L'inventaire du joueur ? on drop: if name of tool of player is "&eBoutique &8(&6Faction&8)": cancel event
-
Bonjour à toi, Déjà tu ne cliques pas "sur" l'item mais avec l'item. Donc remplace "on right click on gold nugget" par "on right click with gold nugget" et tu verras que ca fonctionneras ;)
-
Bonjour ! Dans ce tutoriel, je vais vous apprendre toutes les astuces que je connais pour pouvoir corriger son code seul sans avoir besoin de personne. Commençons: Sommaire: I/ Vérifier les outils qu'on possède. II/ Connaitre ses outils. III/ Localiser les erreurs. IV/ Vérifier les syntax. V/ Changer de version. VI/ Demander de l'aide de façon claire et précise. I/ Vérifier les outils qu'on possède : Beaucoup d'entre vous doivent avoir une panoplie de plugins et d'addons qui, pour la plupart, ne vous servent à rien. Alors pourquoi les gardez vous ? Ca n'a aucun sens. Pour choisir vos addons, je vous invite à lire le poste que j'ai fait : https://skript-mc.fr/forum/threads/découverte-des-différents-addons.14019/ Il vous expliquera en détails l'utilité de chacun des addons et pourquoi vous devriez les choisir. Aussi, pensez à mettre à jour vos outils (addons) dans une version plus récente, cela pourrait enlever vos erreurs. Si vous possédez l'addon "Umbaska", je vous invite à aller voir mon tutoriel à ce sujet : https://skript-mc.fr/forum/threads/comment-supprimer-umbaska-de-son-serveur-entièrement.14981/ II/ Connaitre ses outils : Avoir des outils, c'est bien, mais les connaitre, c'est mieux ! Vous devez connaitre la version de ces outils, ainsi que leurs syntax, et oui. Pour les syntax, skunity regroupe la plupart d'entre eux https://docs.skunity.com Vous devez aussi bien savoir ces choses: - Qu'est-ce qu'un effet ? - Qu'est-ce qu'une expression ? - Qu'est-ce qu'une condition ? - Qu'est-ce qu'un événement ? - Comment les utilises-t-on ? - Qu'est-ce que notre expression nous retourne ? III/ Localiser ses erreurs : Pour localiser ses erreurs, regardez d'abord dans votre console. Vérifiez votre code et corrigez le. Si l'erreur persiste, un moyen simple permet de localiser le problème précisément. Pour cela, mettez à la suite de chaque condition un "broadcast "X"" avec un numéro suivant le "X" pour bien vous repéré. Si vous ne recevez pas le "X" après une condition, cela veut dire que le problème se trouve ici. C'est une solution bête mais qui fonctionne. Sinon, autre solution : utiliser le broadcast. Vérifier le contenu de ce que vous utilisez par cette méthode. IV/ Vérifier les syntax : Les syntax sont très importantes dans skript. Une erreur toute bête peut vous généré une erreur. Cela m'ai déjà arriver et à vous aussi sûrement. Pour cela, lisez attentivement votre code en ayant la vrai syntax sous les yeux. Rappeler vous que les pourcentage sont pour citer une chaine de caractère. V/ Changer de version : Si votre problème persiste, vous n'avez plus qu'à changer les versions de skript et de votre serveur. Le minimum à avoir est un serveur 1.9 (même 1.10 maintenant) et non 1.8 et encore moins 1.7.10. Si vous avez un serveur 1.7.10, dites vous que c'est mort, vous ne pourrez jamais travailler avec skript dans les bonnes conditions. En ce qui concerne la version 1.8, vous n'avez aucune excuse. Le fait de dire "parce qu'il y a plus de joueur" ou "Le pvp c'est mieux en 1.8" est un énorme mensonge. Pour le pvp, des plugins patch ce problème. Pour le nombre de joueur, je vous laisse regarder par vous même: Le site qui le prouve: https://bstats.org/global/bukkit Bref, changez votre version. VI/ Demander de l'aide de façon claire et précise : Ce n'est pas très compliquer, mais mieux vaut écrire peut de chose et être précis que d'écrire un long pavé pour rien. Pour ce faire, commencer par une marque de politesse comme un "bonjour" ou un "hey" par exemple. Ensuite, précisez ce qu'il vous arrive, comme par exemple "mon message ne s'envoit pas". Continuer par une question du style "sauriez vous pourquoi ca ne fonctionne pas s'il vous plait". Enfin, précisez les données, c'est à dire la partie qui ne fonctionne pas (PAS TOUT LE CODE) ainsi que l'addon, la version de l'addon, skript, la version de skript et la version de votre serveur. Maintenant, attendez une réponse. Ne soyez pas impatient et attendez un peu. Pensez à mettre votre code sous balise !! Meilleure est votre présentation, meilleure sera l'aide apporté à votre problème !! Exemple: Bonjour, J'ai un soucis avec mon message "test" qui ne s'envoi pas. Sauriez vous pourquoi s'il vous plait ? Code: command /test: trigger: send "test" to loop-player Erreur: "There is no loop that match" Skript: dev33 Aucun addon Serveur version: 1.12 En espérant que ce tutoriel vous aidera ;)
-
Le soucis vient de ta commande directement : https://skript-mc.fr/doc/skript/Commandes
-
Essaye en mettant un espace dans le nom de l'item, même si celui est vide. Par exemple: format gui slot {_pane} of {_p} with 1 light blue stained glass named " " to nothing
-
Nous aurions besoin de ton code en entier s'il te plait