Aller au contenu

Rechercher dans la communauté

Affichage des résultats pour les étiquettes 'tutoriel'.



Plus d’options de recherche

  • Rechercher par étiquettes

    Saisir les étiquettes en les séparant par une virgule.
  • Rechercher par auteur

Type du contenu


Forums

  • Staff
  • Accueil
    • Annonces
    • Règles du forum
    • Evènements
  • Skript
    • Suggestions
    • Demandes de skripts
    • Aide
    • Tutoriels
    • Skripts
    • Boites à outils
  • Maid Café de Onii-anime
  • Anime ou manga - Debat de Onii-anime
  • Qui es-tu exactement Onii-chan? de Onii-anime
  • Vos recommendations de Onii-anime
  • Meme :D de KiwiGDC-C
  • Memes de Meme center
  • Discussion de Meme center
  • La street de Meme center
  • Skript de Meme center
  • Comment on fait pour dev de GravenCommu
  • Discussion de Séries et films
  • Prévisions/Spoil de Séries et films
  • Au coin du feu de Séries et films
  • Films de Séries et films
  • Général de Undertale
  • memes de Undertale
  • Général de Le club des ours
  • Recommandations de Musik
  • Créations de Musik
  • Découvertes de Musik
  • Demande d'aide de Aide
  • Animes à conseiller de Animes / Mangas
  • Mangas à conseiller de Animes / Mangas
  • Animes en vrac de Animes / Mangas

Catégories

  • Skripts
    • Mini-Jeux
    • Outils d'administration
    • Outils Anti-Grief
    • Gestion de Tchat
    • Outils pour les développeurs
    • Economie
    • Correctifs (anti-cheat, anti-lag, ...)
    • Général (utilitaires)
    • Fun
    • Informationnel (annonces, ...)
    • Mécanisme (système sans fil, ...)
    • Divers (skripts hors-catégorie)
    • Rôle-Play
    • Téléportation (portail, ...)
    • Web (base de données SQL, ...)
    • Gestion de monde (worledit, ...)
    • Génération de structures
    • Skripts Débutants
    • Bazar à Code
  • Add-ons
  • API / IDE
  • Vos memes de Onii-anime
  • Petites Ressources de KiwiGDC-C

Rechercher les résultats dans…

Rechercher les résultats qui…


Date de création

  • Début

    Fin


Dernière mise à jour

  • Début

    Fin


Filtrer par nombre de…

Inscription

  • Début

    Fin


Groupe


7 résultats trouvés

  1. C’est Biosphere2 Difficulté: Partie 1: Facile | Partie 2: Difficile (voir Hardcore pour les maths) Partie 1 - Les bases Biosphere2 c'est quoi ? Biosphere2 est un add-on de Skript permettant d'utiliser des vecteurs, de générer des formes géométriques, bref plein de trucs mathématiques qui, on va pas se le cacher, hyper facilement. Cet add-on peut être puissant dans un cadre bien précis (génération de structures, etc...) Les bases, ça donne quoi ? On va commencer doucement avec les vecteurs. Un vecteur c'est quoi ? Un vecteur est un segment de droite orienté, formant une entité mathématique sur lequel on peut effectuer des opérations. Plus d'info sur la page wikipédia si vous ne savez pas ce qu'est un vecteur . Pour générer un vecteur basique, y'a pas plus simple, il faut juste regarder la syntaxe: set {_line::*} to line with length 10 and density 5 show happy villager at player offset by {_line::*} Cela va vous tracer un segment de particules de villageois contents avec une densité de 5 (donc 5 particules à 1 point du segment) et long de 10 blocs au-dessus de la tête du joueur. L'offset permet de tracer la ligne au-dessus du joueur et ne prend pas les coordonnées relatives. Ce sont des coordonnées absolues. Bon c'est bien mignon les particules mais le mieux ça reste avec des blocs imaginez la construction d'un dôme de verre qui se construit petit à petit ! On va y venir. Le vecteur linéaire peut être utile pour tracer des chemins par exemple. Faisons une ligne de cube en or: command /genLine: trigger: set {_location} to location of player set {_length} to 20 set {_density} to 1 set {_player} to player set {_line::*} to line with length {_length} and density {_density} set {_looped} to 0 loop {_length} times: set {_x} to ({_location} offset by {_line::%{_looped}%})'s x-location set {_y} to ({_location} offset by {_line::%{_looped}%})'s y-location set {_z} to ({_location} offset by {_line::%{_looped}%})'s z-location set {_locationFinale} to location {_x}, {_y}, {_z} in world of {_player} set block at {_locationFinale} to gold block add 1 to {_looped} wait 1 tick Bon, ce n'est pas dur à comprendre. On va commencer à créer des variables temporaires qui vont permettre d'initialiser la ligne. Pour commencer, on définition la location du joueur où la ligne va se générer, ensuite on demande une ligne de 20 blocs de long (en réalité il en retire deux à la fin donc si on définit une longueur de 20, on va avoir une ligne de 18 blocs de long), ensuite la densité (0.1 = très espacée, +20 = très proche) on va prendre une densité de 1, ensuite on définit une variable {_player} pour définir l’exécuteur, on définit la ligne avec les paramètres choisis au-dessus puis pour finir un variable compteur. Retenez bien ce paterne car il va nous servir pour plein d'autres formes. Une fois l'initialisation faites, on va tracer la ligne: - On va d'une part faire une boucle suivant la longueur de la ligne - On défini ensuite les positions X, Y et Z une part une sur la position {_location} défini dans l'initialisation - On défini une variable finale regroupant X, Y, Z et le monde de l’exécuteur - On pose le bloc à la position donnée par la variable finale - On fini par ajouter 1 à la variable de bouclage pour passer au bloc suivant et ainsi de suite jusqu'à ce que la longueur totale soit parcourue et posée. Voilà. Bon le problème c'est que cette syntaxe nous permet de tracer uniquement suivant une suite X+1 de l’exécuteur. On va maintenant faire des vecteurs personnalisés avec les directions que l'on souhaite. C'est presque la même chose mais avec quelques modifications: command /genLine2: trigger: set {_location} to location of player set {_density} to 1 set {_player} to player set {_line::*} to vector line between vector 0, 0, 0 and vector 8, 0, 8 with density {_density} set {_looped} to 1 while {_line::%{_looped}%} is set: set {_x} to ({_location} offset by {_line::%{_looped}%})'s x-location set {_y} to ({_location} offset by {_line::%{_looped}%})'s y-location set {_z} to ({_location} offset by {_line::%{_looped}%})'s z-location set {_locationFinale} to location {_x}, {_y}, {_z} in world of {_player} set block at {_locationFinale} to gold block add 1 to {_looped} wait 1 tick Bon, on peut constater qu'on a presque la même initialisation et la même procédure de pose: On définit une position, une densité, un exécuteur et un compteur. On retire la longueur car ça serait trop chiant à calculer et on remplace la boucle par le while. Techniquement on pourrait utiliser le while partout pour des choses basiques. Dans la définition du vecteur linéaire, on peut constater qu'il y a deux points de vecteurs. Ce sont les coordonnées absolues. Le premier point définit la position de départ du vecteur en position absolue (comme si vous utilisiez les ~ dans un command bloc) et le second point désigne les points d'arrivée. Les deux points vont donc former un vecteur. Je vous laisse faire le test ça fonctionne parfaitement Bon, je vous ai donné les bases à savoir. Vous êtes maintenant en mesure d'utiliser n'importe quelle forme que biosphere2 vous propose. En voici une petite liste avec leur syntaxe: - Ligne: set {_line::*} to line with length {longueur} and density {densité} set {_line::*} to vector line between vector X1, Y1, Z1 and vector X2, Y2, Z2 - Cercle: set {_circle::*} to circle with radius {radius} and density {densité} - Sommets d'un cube: set {_cube::*} to cube with radius {radius} - Arrêtes et sommets d'un cube: set {_cubeoutline::*} to cube outline with radius {radius} and density {densité} - Spirale: set {_helix::*} to helix with radius {radius}, height {hauteur}, step {pas de montée} and density {densité} - Sphère: set {_cubeoutline::*} to sphere with radius {radius} and density {densité} Ces formes vous pouvez les utiliser pour les particules aussi et pas que pour poser des blocs. Cet add-on utilise le système de coordonnées absolues donc vous pouvez faire tout et n'importe quoi. Voila c'est fini pour les bases et pour son utilisation basique On se retrouve pour la seconde partie qui devient un peu plus difficile. Partie 2 - Expert Bon, maintenant je vais vous montrer un cas concret d'utilisation. Ce cas m'a demandé quelques mois de travail mine de rien et je pense que vous pouvez être confronté à ce genre de chose si vous utilisez des formes géométriques de manières poussées. Commençons ! Dans ce cas, on va générer une sphère de deux types de verres différents, qui ne cassent pas les blocs solides mais uniquement les blocs transparents (feuillages, herbes, etc.) ,qui se génère longitude par longitude, qui retire les liquides qui sont à l’intérieur de la sphère, qui se régénère si un bloc de la sphère et cassé, et avec un rayon allant de 5 à 80 (au-delà de 80 le serveur demande beaucoup de ressources de calculs donc on cap la limite à 80 blocs de rayon). Ça fait beaucoup de paramètres mais faisables en quelques lignes et avec une bonne dose de mathématiques. Commençons par l'initialisation (le plus simple): options: densité: 5 #Pour être sur de ne rater aucun bloc ignoreBlocks: air or sapling or plants or water or stationary water or water source or flowing water or falling water or moving water or lava or stationary lava or lava source or flowing lava or falling lava or moving lava or 175:2 fluidSponge: water or stationary water or water source or flowing water or falling water or moving water or lava or stationary lava or lava source or flowing lava or falling lava or moving lava C'est tout ?! Oui. On va maintenant procéder par fonctions. On va faire la plus simple en première. Faire la fonction de génération de la sphère: function DOME_LOAD(l: location, p: player): set {_count} to 0 while {Dome::Enable} is true: set {_number} to 1 loop {Dome::coefCirculation} times: set {_x} to ({_l} offset by {_cubeoutline::%{_number}%})'s x-location set {_y} to ({_l} offset by {_cubeoutline::%{_number}%})'s y-location set {_z} to ({_l} offset by {_cubeoutline::%{_number}%})'s z-location set {_loopedLocation} to location {_x}, {_y}, {_z} in world of {_p} set {_loopedBlock} to block at {_loopedLocation} if {_loopedBlock} is {@ignoreBlocks} or air: set block at {_loopedLocation} to glass add 1 to {_number} chance of 3%: wait 1 tick #Sinon serveur crash message "Génération terminée" to {_p} add 1 to {_count} message "Nombre de génération effectuée: %{_count}%" to {_p} Faisons maintenant la partie la plus compliquée, générons le nombre qui va nous permettre de savoir combien de blocs il va devoir vérifier (c'est la variable {Dôme: :coefCirculation} qu'il va falloir définir). Ce nombre peut être en premier temps déduit à l’arrache c'est-à-dire qu'on y met un grand nombre au pif et on regarde si la sphère va jusqu'au bout de son check. Une fois qu'on a un nombre plutôt correct et facile à arrondir, on l'arrondi. Par exemple pour un radius de 10 avec une densité de 5 c'est 22771588.52 checks pour la sphère. Oui c'est énorme et pour le calculer ce n'est pas simple du tout. Par exemple si on veut une sphère de 10 blocs de radius, on va essayer de faire un loop de 10 fois. On définit {Dôme: : coef Circulation} = 10 et on se rend compte que 10 nous pose 3 blocs. On se creuse la tête encore plus mais ce n'est pas simple. Je vais vous simplifier l'affaire et vous épargner l'étape ultra difficile mais il va falloir savoir la maîtriser. Pour trouver ce nombre, on doit élever le radius au cube qui forme notre premier facteur (donc {radius}^3) puis on y ajoute un nombre déduit par une régression exponentielle. Voici comment on calcule notre régression exponentielle: Tout d'abord on va dresser un tableau: Pour un radius de (x) : 5 | 10 | 20 | 40 | 80 Il nous faut: (y) : 50 | 25 | 12.5 | 6.25 | 3.125 Ça c'est les valeurs dont j'ai trouvé quand j'ai généré une sphère avec ({radius}^3)*(nombre du tableau). Pour l'instant on a seulement 5 points mais comment trouver les autres ? Par la régression exponentielle. La régression va nous permettre de trouver la courbe entre les points à partir de deux points connus. Faisons entre 5 et 10 (car on ne peut pas faire entre 5 et 80 directement, vous allez comprendre pourquoi): On remarque que quand on multiplie x par 2, on divise y par 2 donc notre fonction se présentera sous cette forme là: f(x) = k*exp(a*x). Trouvons k et a. ( exp() = exponentielle ) On a f(5) = 50 et f(10) = 25 On commence par trouver a et prendre le x le plus haut donc f(10) f(10) = 25 <=> k*exp(10*a) = 25 <=> k*exp(10*a)/k*exp(5*a) = exp(10*a)/exp(5*a) = 25/50 (on supprime les k car on les retrouve au numérateur et dénominateur) <=> exp(5*a) = 1/2 <=> a = ln (1/2)/5 ( ln = logarithme népérien ). On a trouvé le a pour 5 =< x < 10. On cherche ensuite k avec le x le plus bas donc f(5) (c'est plus simple): f(5) = 50 <=> k*exp(5*a) = 50 <=> k*(1/2) = 50 <=> k = 100 Voila on a notre k et notre a, on regroupe le tout et on trouve: k*exp(a*x) = 100 * exp( ( (ln (1/2) /5) * x ). Maintenant on réitère l'opération pour 10 =< x < 20 ; 20 =< x < 40 ; 40 =< x < 80. Voici notre fonction: set {_l} to location of player set {Dome::Enable} to false if arg-1 > 4: if arg-1 < 11: set {Dome::Longeur} to ((arg-1^3)*(100*exp(arg-1*(ln(0.5)/5)))) set {Dome::Enable} to true else: if arg-1 > 10: if arg-1 < 21: set {Dome::Longeur} to ((arg-1^3)*(50*exp(arg-1*(ln(0.5)/10)))) set {Dome::Enable} to true else: if arg-1 > 20: if arg-1 < 41: set {Dome::Longeur} to ((arg-1^3)*(25*exp(arg-1*(ln(0.5)/20)))) set {Dome::Enable} to true else: if arg-1 > 40: if arg-1 < 81: set {Dome::Longeur} to ((arg-1^3)*(6.25*exp(arg-1*(ln(0.5)/40)))) set {Dome::Enable} to true Voilà. Cette partie était la plus difficile (et sans doute la plus difficile à comprendre aussi) mais pour faire ça il m'a fallu des mois pour comprendre comment fonctionnait la régression exponentielle. Je vous ai fait un petit cours donc voilà ^^. Mais faut suivre en maths car ce n'est pas simple. On regroupe tout notre code et on en arrive à ça: options: ignoreBlocks: air or sapling or plants or water or stationary water or water source or flowing water or falling water or moving water or lava or stationary lava or lava source or flowing lava or falling lava or moving lava or 175:2 fluidSponge: water or stationary water or water source or flowing water or falling water or moving water or lava or stationary lava or lava source or flowing lava or falling lava or moving lava command /genSphere <integer>: trigger: set {_l} to location of player set {Dome::Enable} to false if arg-1 > 4: if arg-1 < 11: set {Dome::Longeur} to ((arg-1^3)*(100*exp(arg-1*(ln(0.5)/5)))) # On défini notre variable de longueur avec la régression exponentielle set {Dome::Enable} to true # On Enable le while else: if arg-1 > 10: if arg-1 < 21: set {Dome::Longeur} to ((arg-1^3)*(50*exp(arg-1*(ln(0.5)/10)))) set {Dome::Enable} to true else: if arg-1 > 20: if arg-1 < 41: set {Dome::Longeur} to ((arg-1^3)*(25*exp(arg-1*(ln(0.5)/20)))) set {Dome::Enable} to true else: if arg-1 > 40: if arg-1 < 81: set {Dome::Longeur} to ((arg-1^3)*(6.25*exp(arg-1*(ln(0.5)/40)))) set {Dome::Enable} to true set {_sphere::*} to sphere with radius arg-1 and density 5 # On génère les points de la sphère dans une variable set {_count} to 0 while {Dome::Enable} is true: set {_number} to 1 loop {Dome::Longeur} times: set {_x} to ({_l} offset by {_sphere::%{_number}%})'s x-location set {_y} to ({_l} offset by {_sphere::%{_number}%})'s y-location set {_z} to ({_l} offset by {_sphere::%{_number}%})'s z-location set {_loopedLocation} to location {_x}, {_y}, {_z} in world of player set {_loopedBlock} to block at {_loopedLocation} if {_loopedBlock} is {@ignoreBlocks} or air: set block at {_loopedLocation} to stone chance of 3%: # On oublit pas l'anti crash wait 1 ticks add 1 to {_number} loop blocks in radius arg-1 of {_l}: # La fonction qui supprime les liquides if loop-block is water or lava: loop blocks in radius 10 of position of loop-value: if loop-block-2 is {@fluidSponge}: set block at loop-value-2 to air message "Génération terminée" add 1 to {_count} wait 5 ticks message "Nombre de génération effectuée: %{_count}%" command /ws: # Et on fait une commande d'arret de génération. trigger: set {Dome::Enable} to false message "Stop whiling" Et voilà, on a un script de génération de sphères qui ne casse pas les blocs solides mais uniquement les blocs transparents (feuillage, herbes, etc...) ,qui se génère longitude par longitude et blocs par blocs, qui retire les liquides qui sont à l’intérieur de la sphère, qui se régénère si un bloc de la sphère est cassé, et avec un rayon allant de 5 à 80. Bon amusement avec les géométries Vengelis
  2. TUTORIEL 01 : MESSAGES DE JOIN&LEAVE + PREMIER SPAWN → Message de join et leave : Avant toute chose tu dois connaître quelques mots qui te permettront de mieux t'y retrouver au niveau de ton Skript. Il existe tout un vocabulaire propre au développement, comme les événements, variables, fonctions ect... Aujourd'hui nous allons principalement nous intéresser aux événements. Un événement est appelée pour exécuter quelque chose. Lorsqu'un joueur se connecte c'est un événement, il faut donc ajouter un bout de code pour savoir ce qu'il se passe quand le joueur rejoint le serveur ! Commençons : on join: L'événement qu'il faut utiliser quand un joueur se connecte est le suivant : on join Il faut impérativement, mettre les deux points ':' afin d'éviter des erreurs liées à Skript. set join message to "Bienvenue sur le serveur !" La formule exacte pour dire à notre serveur que nous souhaitons enlever par défaut le texte de join en jaune est ci-dessus. "set join message to" Pour ce qui est du message à envoyer, vous devez obligatoirement le mettre entre guillemets pour qu'il soit pris en compte par Skript. Vous pouvez également personnaliser votre message de join avec une simple variable qui doit toujours être entre des pourcentages. (Voir ci-dessous). set join message to "Le joueur %player% entre sur le serveur Machin" Voici donc un code complet pour envoyer un message de join: on join: #On appelle l'événement quand un joueur se connecte set join message to "Le joueur %player% entre sur le serveur Machin" #On envoie un message pour tout le monde, en le personnalisant. Ne jamais oublier qu'un retour à la ligne par le signe des deux points ":" doit obligatoirement être effectué par une Tabulation ! Le # est un signe que Skript ne prend pas en compte, utile pour vos descriptions lors de vos séances de développement. Pour ce qui est du message de leave c'est exactement la même chose: on quit: #événement appelé quand le joueur se déconnecte set quit message to "Le joueur %player% quitte le serveur !" Petit BONUS : Quand le joueur arrive pour la première fois sur le serveur vous pouvez effectuer une multitudes de choses. Petit code : on first join: #Quand le joueur se connecte pour la première fois broadcast "Le joueur %player% entre pour la première fois sur le serveur !" #Message pour tout le monde set action bar of player to "Attention aux règles du serveur !" #Message au dessus de la bar d'xp pour le joueur. Prochain Tutoriel : le spawn.
  3. Bien le bonjour, jeunes gens! Comme certains d'entre vous le savent, les bots Discord étaient faisable autrefois avec Vixio, un bon addon mais qui est maintenant remplie de bugs et abandonné par son développeur. Depuis, DiSky est sorti et offrent plus de fonctionnalités tout en fixant les bugs présents de Vixio. Sommaire • Créez le bot et l'invitez • Le connecter avec Skript • Gérer son status • Faire une commande simple • Faire une commande complexe • Liens utiles 1) Créez le bot et l'invitez sur votre serveur Avant toute chose, vous devez vous rendre sur le Panel de développeur officiel Discord, d'où vous pourrez créer, modifiez puis invitez votre bot. Connectez-vous, puis cliquez sur le bouton NEW APPLICATION en haut à droite: Ensuite, entrez le nom (1) que vous voulez, il ne dépendra de rien pour la suite du tutoriel, puis cliquez sur CREATE (2): Rendez-vous dans la partie BOT à droite, cliquez sur ADD A BOT puis validez avec YES, DO IT! : Vous pouvez ensuite changez le nom ainsi que l'icone de votre bot. Ces deux informations seront affichés sur Discord. Pour nous facilitez la tache dans la prochaine partie, copier le token en cliquant sur COPY ! VOUS DEVEZ ACTIVEZ LES INTENTS! SANS, LE BOT NE SE CONNECTERA PAS: Bien, maintenant que le bot en lui-même est créé et modifié, nous pouvons l'inviter :D Pour cela, rendez-vous sur la partie OAUTH2 puis cochez toutes les cases montrées dans l'image. Copier le lien et invitez votre bot sur votre serveur parmi la liste qui s'affiche: 2) Le connecter avec Skript Enfin, nous pouvons attaquer le concret; la partie du développement en Skript! Vous n'avez qu'une seule ligne de code pour charger le bot. Utilisez: # N'importe quel event, bien que je conseil le 'one load' ou 'on skript load' on load: # Remplacez le token par le votre. Le nom importe peu, c'est juste pour reconnaitre le bot dans le reste du code. login to "TOKEN" with name "NAME" Si jamais le bot n'est pas en ligne, vérifier si vous avez bien activé les intents comme indiqués précédemment! Plus rapide que la précédente partie n'est-ce pas ? 3) Changer son status Nous allons changez le online status du bot, puis le faire jouer quelque chose. Le code est ici encore très simple à manier, mais voici un petit exemple: # N'importe quel event, bien que je conseil le 'one load' ou 'on skript load' on load: # Remplacez le token par le votre. Le nom importe peu, c'est juste pour reconnaitre le bot dans le reste du code. login to "TOKEN" with name "NAME" # On change son status, en utilisant le même nom utilisé précédemment. # Valeurs possibles: online, offline, idle, do not disturb set online status of bot "NAME" to do not disturb # Sur discord, il sera afficher comme "En train de jouer ..." # Valeurs possibles: playing, watching, competing, streaming, listening mark bot "NAME" as playing "Evoland 2, meilleur jeux ever <3" 4) Faire une commande basique (sans arguments) On avance, notre bot est déjà beau visuellement, mais bon il sert à rien actuellement. Nous allons faire une petite commande basique, qui renvoie, dans un embed, le ping actuel du bot: # On définit une nouvelle commande nommée "ping", sans aucun argument: discord command ping: # /!\ On marque une tabulation, c'est comme une section / event / condition ! # On change aussi son préfix. Il peut en avoir plusieurs, il faut les séparer avec , prefixes: ! trigger: # Là on va créer un nouvel embed, make embed: # Et changez quelques de ses paramètres ... # Ici, on set simplement le ping avant, pour éviter de doubler les " après dans l'author. set {_ping} to ping of bot "NAME" set author of embed to "Pong ... %{_ping}%MS" set author icon of embed to avatar of event-user set color of embed to lime # Puis on renvoie l'embed précédemment créé: reply with last embed Résultat: 5) Faire une commande complexe (avec arguments) Nous allons cette fois si utiliser une condition, ainsi que deux arguments dans notre commande. Elle nous servira pour tester si un membre spécifique à un rôle spécifique ou non, en renvoyant un message de validation. # Le nom des commandes n'est pas case sensitive, donc 'hasRole' = 'hasrole' # Les arguments Discord marchent exactement comme les arguments Skript: # - Utilisez '<type>' pour un argument obligatoire # - Utilisez '[<type>]' pour un argument optionnel discord command hasRole [<member>] [<role>]: trigger: # Une simple condition que propose DiSky, dispo sur la documentation: # [Contenu masqué] if arg-1 has role arg-2: # Ici, le membre spécifié à bien le role, donc on vas renvoiyer oui reply with "**:white_check_mark: %discord name of arg-1% à bien le role %discord name of arg-2%!**" else: # Ici non, donc: reply with "**:x: %discord name of arg-1% n'a pas le role %discord name of arg-2%!**" 6) Liens utiles Téléchargement Documentation Discord Source Code Rapport d'Issue Et voilà ! Vous savez maintenant comment utilisez DiSky et faire des commandes avec quelques arguments! N'hésitez pas à faire des retours, sachant que c'est mon premier tutoriel il n'a rien de parfait Merci encore de votre lecture et bonne journée / soirée !
  4. 2. Documentations 1. Introduction Nous allons commencer à parler de comment lire une documentation et comment s'en servir. Nous allons de même aborder comment les lire, les utiliser, comment elles sont construites... Après avoir lu ce sujet, vous devriez être capable d'utiliser la documentation pour faire les scripts de vos rêves ! 2. Les différentes syntaxes En effet, pour structurer et classer les différentes syntaxes, Skript utilise une classification de 6 catégories : - les événements : obligatoires pour faire fonctionner le reste de votre code, appelés lors d'une action spécifique ; - les conditions : utiles pour vérifier, comparer quelque chose, nous y reviendrons plus en détails plus tard ; - les effets : effectuent une action directement en jeu ; - les expressions : retournent quelque chose d'un type spécifique ; - les types : les différentes "sortes" de données gérées par Skript (joueur, temps ...) ; - les fonctions : servent à des utilisations spécifiques, nous y reviendrons plus en détails plus tard. Liens utiles : Documentation de Skript (made by Olyno) - Documentation de Skript-MC - Documentation de SkriptLang (officielle) - Documentation de SkriptHub 3. Comment sont construites les documentations ? Ça tombe bien que vous posiez cette question, nous allions justement aborder ce sujet. Vous vous baladez sur la documentation de Skript-MC (lien disponible ci-dessus et ici) et vous tombez sur cet événement : Les documentations sont souvent constituées de plusieurs informations : - un nom : indique comment la syntaxe est appelée ; - une compatibilité : version depuis laquelle la syntaxe est disponible ; - une description : informations complémentaires sur la syntaxe ; - un exemple : utile si vous ne savez pas comment l'utiliser ; - un pattern : ce qui va nous intéresser, comment utiliser la syntaxe. 4. Lire des patterns [on] bed leav(e|ing) [on] [player] leav(e|ing) [a] bed Ici, les termes entre crochets sont optionnels, et peuvent ne pas figurer dans votre script. En revanche, les termes en clair, qui ne sont pas entourés de crochets ou parenthèses doivent être écrits. Pour ce qui est des parenthèses, plusieurs termes seront séparés par une barre verticale. Vous devrez choisir une des propositions. Toutes ces syntaxes sont donc exactement les mêmes mais seront écrites différemment : bed leave bed leaving on bed leave on bed leaving leave bed leave a bed leaving bed leaving a bed player leave bed player leave a bed player leaving bed player leaving a bed on leave bed on leave a bed on leaving bed on leaving a bed on player leave bed on player leave a bed on player leaving bed on player leaving a bed # Retrouvez toutes les combinaisons possibles sur [Contenu masqué] ! J'espère que ce deuxième sujet vous servira, même s'il est encore très basique pour le moment. N'hésitez surtout pas à faire part de vos idées ou de ce que vous souhaiteriez voir au prochain dans les commentaires. Les commentaires peuvent aussi servir si vous ne comprenez pas quelque chose. Merci d'avoir lu !
  5. 1. Le fonctionnement 1. Introduction Dans ce sujet, nous allons aborder les premières choses qu'il faut savoir avant de commencer à développer avec Skript accompagné de quelques conseils. 2. Prérequis Premièrement, Skript est un plugin qui s'exécutera sur votre serveur Minecraft. Pour cela, il faut avoir un serveur ; nous vous conseillons fortement de choisir PaperSpigot (basé sur Spigot), offrant beaucoup plus de possibilités par la suite ; il est de même plus performant et stable que son frère Spigot. Les principales fonctionnalités de Skript sont disponibles dans les versions récentes, qui ne sont pas compatibles avec toutes les versions Minecraft. C'est pourquoi nous vous conseillons de même d'opter pour une version de Minecraft récente comme la 1.15.2 afin de bénéficier des nouvelles mises à jour de Skript. Dans les prochains sujets, nous choisirons PaperSpigot 1.15.2 avec une version de Skript stable (2.4.1), il est probable que certaines fonctionnalités ne fonctionnent pas si votre serveur est basé sur une version ancienne. Par la suite, vous devrez télécharger un éditeur de texte supportant la coloration syntaxique de Skript. Même si l'éditeur de texte de votre système d'exploitation peut être utilisé, nous vous conseillons de préférer un éditeur de texte comme Visual Studio Code, Sublime Text ou bien NotePad++, à vous de choisir selon vos préférences. Les colorations syntaxiques sont à télécharger en tant que plugin - add-on. Parfait ! Vous êtes enfin prêt à poursuivre ce tutoriel si vous avez un serveur Minecraft et un bon éditeur de texte ! Une seule compétence est recommandée pour utiliser Skript : la maîtrise de l'anglais. Vous n'êtes pas un pro en anglais ? Pas de soucis, vous pourrez quand même apprendre (en même temps que l'anglais !). En effet, les syntaxes de Skript sont en anglais ! Liens utiles : Téléchargement de la dernière version stable de Skript - Téléchargement de Paper 3. Mais dis-moi Jamy, comment ça marche au final ? Tu l'as dis Fred ! C'est en réalité assez simple : lorsque vous aurez téléchargé la dernière version de Skript et que vous l'aurez installé dans le dossier de vos plugins, Skript va créer un dossier appelé Skript contenant la configuration ainsi qu'un dossier appelé scripts. Ce dernier va vous servir à y déposer vos programmes que vous allez apprendre à créer au prochain sujet. Lors du chargement de Skript, celui-ci va lire vos programmes, les interpréter afin de les exécuter en jeu. Pour créer vos programmes, vous aurez besoin de la documentation de Skript afin de découvrir les effets, événements, conditions, expressions ... de Skript (nous y reviendrons au prochain sujet). Notez qu'afin de simplifier la compréhension, le terme programme a été utilisé. En réalité, nous les appellerons désormais les scripts. Ils doivent être enregistrés dans le dossier scripts sous forme d'un fichier texte au format .sk. Lien utile : Documentation de Skript J'espère que ce premier sujet vous servira, même s'il est très basique pour le moment. Nous commencerons à aborder le vif du sujet dès le prochain sujet. N'hésitez surtout pas à faire part de vos idées ou de ce que vous souhaiteriez voir au prochain dans les commentaires. Les commentaires peuvent aussi servir si vous ne comprenez pas quelque chose. Merci d'avoir lu !
  6. Bonjour, bonsoir. Aujourd'hui, je vais vous apprendre comment réaliser un Scoreboard sans clignotements. (C'est possible ? Mais nan !) Tout d'abord, il y a des pré requis ! Une version de Skript à jour (Evidemment) et l'add-on skRayFall. J'ai déjà vu beaucoup de personnes faisant des scoreboards qui clignotait au bout d'un certain temps... Ils faisaient ça every 10 seconds: loop all players: set score "&f" in sidebar of player to -1 set score "&egrade" in sidebar of player to -2 Etc... Moi également, j'ai pendant longtemps fais ce genre de scoreboard. Mais, ce n'était pas assez perfectionné, j'ai cherché sur Internet et j'ai trouvé. On va utiliser "set id based score" pour éviter le clignotement. Nous allons partir du principe que c'est un Serveur disposant d'un seul mode de jeu. On va afficher le scoreboard dès que le joueur. Vous pouvez également faire exécuter une commande à un joueur, si vous ne souhaitez pas que le Scoreboard s'affiche dès la connexion. on join: #Quand un joueur rejoint wipe player sidebar #On set une sidebar pour afficher un scoreboard set name of sidebar of player to "&eTest &f| &7%player%" #On met un nom à notre joli Scoreboard set score "&f" in sidebar of player to -1 set score "&eGrade" in sidebar of player to -2 # On en vient à ce que j'ai dis auparavant. set id based score " &f» &b%{points.%player%}% P" in sidebar of player to -3 with id "Points" Après, vous pourrez continuer votre scoreboard à l'infini, pour que le scoreboard soit plus agréable à regarder et soit moins vide. Mais attendez, ce n'est pas fini ! C'est bien beau d'afficher un scoreboard... Mais il ne va jamais changer si vous ne faites pas le nécessaire Il faut donc actualiser les lignes de notre beau scoreboard Nous allons créer une commande utile, même si elle est facultative. command /points [<text>] [<player>] [<number>]: trigger: if arg-1 is "see": mesage "&eVos points &7: &b%{points.%player%}%" if arg-1 is give: if arg-2 is a player: if arg-3 is set: add arg-3 to {points.%arg-2%} edit score id "Points" to " &f» &b%{points.%player%}% P" and -6 A quoi sert la dernière ligne ? Elle sert justement à actualiser la ligne du Scoreboard. Grâce à cela, rien ne clignotera ! La variable va juste se mettre à jour, et changera seule. Fini les clignottements, et bonjour la rapidité ! Contrairement aux Skripts "every 10 seconds:", cette fois-ci ce sera sans le moindre clignotement, et bien-sûr de manière instantané ! Avec un peu de recherche, la solution était simple, au final. Ai-je dis que c'était facultatif ? Ah oui ... Je vais vous monter une autre méthode pour actualiser la ligne du scoreboard sans pour autant créer de commande on kill of a player: attacker is a player victim is a player add 1 to {points.%attacker%} send "&eBravo, en tuant &b%victim%&e, vous avez gagné 1 point !" to attacker #On ajoute un point à la personne qui a fait un kill, on est sympa non ? edit score id "Points" to " &f» &b%{points.%attacker%}% P" and -6 #On actualise à nouveau notre ligne de Scoreboard ! Simple, non ? =) send "&b%attacker% &evous a tué... Prennez votre revanche !" to victim force respawn victim heal victim teleport victim to {Variable} #Vous pouvez faire autrechose, après J'espère ne pas avoir été compliqué à comprendre, que j'ai pu être clair Le scoreboard bug beaucoup moins, également Car le Serveur n'est pas obligé de loop tout les joueurs pour afficher un scoreboard simultanément... Là, le Scoreboard s'affiche dès qu'on se connecte, au joueur uniquement, et pas à tout le monde. J'espère tout bonnement que ce petit tutoriel vous a plût ! Je me suis inspiré d'une vidéo YouTube que j'ai regardé il y a déjà 1 mois [Contenu masqué] Avant, ça marchait la vidéo :c Sinon, si vous avez des critiques à faire, je répond présent Si vous avez des des questions, je répond également présent Je vous souhaite une excellente journée / nuit ! Mettez un like (Ca fait plaisir)
  7. Bonjour, Bonsoir Aujourd'hui je fait mon premier tutoriel sur les base de skript ! Sommaire : Skript #1 - Les base Pré-requis : Skript ! Un serveur Et minecraft Tutoriel : Ont vas commencé tout de suite avec les commands donc sur skript vous pouvez faire dès commands assez simplement: commands /test: Voici une commands qui ne fait rien et qui et même une erreur car il lui faut un déclencheur (trigger) commands /test: trigger: N'oublié pas la tab (très important) c'est ce qui permet de savoir et organisé son skript Du coup cette commands ne sert juste à rien met on peut très facilement lui donner un tache (un text, une autre commands, ect...) ont lui fera écrire un texte à la personne qui aura fait la commands commands /test: trigger: send "Ici vous mettez ce que vous voudrez" du coup cette commands envoie au jouer Ici vous mettez ce que vous voudrez (mais vous pouvez changer ^^) ! Ont arrive donc à la fin de ce tuto pour la prochaine vois nous verrons les variable Merci ! Bonne journée/soirée
×
×
  • 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.