Aller au contenu

Voserv

Membre
  • Compteur de contenus

    148
  • Inscription

  • Dernière visite

  • Jours gagnés

    11
  • Crédits

    60 [Faire un don]

Tout ce qui a été posté par Voserv

  1. Voserv

    ClaySoldiers [1.17.1]

    Version 1.0.0

    10 downloads

    Une adaptation en Skript du mod connu ! C'est quoi Clay Soldiers ? Cette idée de Skript est issue du mod du même nom, qui vous permet d'invoquer des serviteurs de couleur différente pour s'affronter entre eux. Comment ça marche ? Utilisez la commande principale: /claysoldiers help. Obtenez des oeufs de soldats avec /claysoldiers eggs. La permission claysoldiers.admin est nécessaire pour utiliser cette commande. La permission claysoldiers.spawn est requise pour utiliser les oeufs. Des bonus en plus ? Vous pouvez équiper des objets à vos soldats en cliquant droit sur eux en tenant l'objet désiré. Grâce à /claysoldiers items vous pouvez obtenir des bonus à appliquer sur vos soldats. La permission claysoldiers.equip est requise pour effectuer ces actions. Amusez-vous bien ! DISCLAIMER: Ce Skript comme tous les autres que je conçois sont surtout à but éducatif. Vous pouvez les modifier, en faire ce que vous voulez. Des commentaires sont écrits pour que l'ensemble du code soit clair à analyser. Enjoy coding Skript !
  2. Bonjour, Voici un petit tutoriel pour créer des menus améliorés avec Skript. Qu'est-ce qu'un menu amélioré ? vous allez le voir ci-dessous mais d'abord nous allons voir ensemble la construction basique d'un menu. Ce tutoriel n'est compréhensible que pour ceux qui connaissent la base de création d'un gui. La construction basique et que la majorité connaissent est d'utiliser le format slot. Nous allons garder cette technique, voici donc un menu basique. command /menu: trigger: open chest with 3 rows named "Test" wait 1 tick format slot 0 of player with stone named "stone" with lore "test" to be unstealable Ceci est la construction basique quand vous voulez créer un objet dans un inventaire qu'on ne puisse pas utiliser. Mais imaginons que vous voulez faire que ce même objet exécute une commande, la majorité utilisera [make player execute command "/blabla"] comme ci dessous: command /menu: trigger: open chest with 3 rows named "Test" wait 1 tick format slot 0 of player with stone named "stone" with lore "test" to run [make player execute command "/blabla"] Ainsi, lorsque le joueur cliquera sur l'objet, il verra la commande /blabla exécutée. Mais ce système possède un défaut. Imaginons que vous vouliez faire des menus où le joueur est obligé de passer par le menu, mais que si cela s'exécute via une commande, le joueur, s'il trouve la commande pourra exécuter l'action sans aller via votre menu. Vous allez me dire qu'il est possible de mettre une condition dans la commande pour détecter l'inventaire etc. mais c'est fastidieux pour ce que c'est non ? Il existe donc une solution simple, et qui permet aussi de nouvelles fonctionnalités. Vous allez devoir utiliser tout d'abord l'addon nommé SkMorkaz. Cet addon vous donne accès à un nouvel évènement: on mor inventory click: Cet évènement vous permet de détecter lorsqu'un joueur clique sur un objet dans un inventaire. Cet évènement sera très utile pour éviter que le joueur n'exécute une action hors du menu désiré. Imaginons que vous voulons faire que lorsque un joueur clique sur un objet nommé "stone", cela lui retourne un message "ça marche !", nous allons donc faire ceci: on mor inventory click: if name of event-item is "stone": send "ça marche !" Ainsi, lorsque le joueur cliquera sur un objet nommé "stone", cela va lui renvoyer un message. Pour détecter le menu où se trouve le joueur, il suffit d'ajouter cette ligne: if inventory name of current inventory of player is "nom de l'inventaire": Et grâce à cela, vous pouvez éviter que des joueurs exécutent des actions hors des menus. De plus, le fait de pouvoir détecter les clics sur les items permet bien d'autres choses ! Mais cet évènement n'est pas seulement pratique, il permet aussi d'ajouter une nouvelle fonctionnalité qui est impossible avec le "to run" avec le "format slot". Vous pouvez ajouter la fonctionnalité de détecter les clics droits, clics gauches etc. pour permettre à un objet d'avoir plusieurs fonctions selon le clic. Vous allez avoir besoin de l'addon Skellet. Cette condition est assez compliquée dans le sens où il y a un bon nombre de variantes en fonction de vos addons. Voici l'exemple extrait de Skunity: on inventory click: broadcast "Type: &4%clicked type%" if clicked type is MIDDLE: #Only works if Umbaska and Bensku's edit aren't installed. #do stuff on inventory click: broadcast "Type: &4%clicked type%" if clicked type is middle mouse button: #Using Bensku's edit #do stuff on inventory click: broadcast "Type: &4%clicked type%" if "%clicked type%" is "MIDDLE": #If you have Umbaska installed #do stuff on inventory click: broadcast "Type: &4%clicked type%" if "%clicked type%" is "middle mouse button": #If you have Bensku's edit and Umbaska installed (How tho?) #do stuff Et voici ci-dessous tous les différents types de clics disponibles, leur écriture change en fonction des addons que vous utilisez, vous avez la liste extraite de Skunity ci-dessous: [spoiler=TYPES DE CLICS]CONTROL_DROP Holding Ctrl while pressing the "Drop" key (defaults to Q). CREATIVE Any action done with the Creative inventory open. DOUBLE_CLICK Pressing the left mouse button twice in quick succession. DROP The "Drop" key (defaults to Q). LEFT The left (or primary) mouse button. MIDDLE The middle mouse button, or a "scrollwheel click". NUMBER_KEY One of the number keys 1-9, correspond to slots on the hotbar. RIGHT The right mouse button. SHIFT_LEFT Holding shift while pressing the left mouse button. SHIFT_RIGHT Holding shift while pressing the right mouse button. UNKNOWN A type of inventory manipulation not yet recognized by Bukkit. WINDOW_BORDER_LEFT Clicking the left mouse button on the grey area around the inventory. WINDOW_BORDER_RIGHT Clicking the right mouse button on the grey area around the inventory. If you're using Bensku's edit these will be your click types: left mouse button, left mouse button with shift, right mouse button, right mouse button with shift, window border using right mouse button, window border using left mouse button, middle mouse button, number key, double click using mouse, drop key, drop key with control, creative action, unknown Ainsi, en fonction de l'addon utilisé, il vous suffira d'intégrer une condition pour détecter le clic. Imaginons que j'utilise le premier exemple, donc si Bensku et Umbaska ne sont pas installés, il me suffira d'ajouter la condition ci-dessous et de mettre comme clic LEFT par exemple, pour savoir si le joueur fait un clic gauche: if clicked type is LEFT: send "ça marche ": Ce tutoriel est maintenant terminé et j'espère qu'il vous sera utile à créer des menus performants et avec plus de fonctionnalités ! :)
  3. Tout ce que tu as à faire, c'est créer une condition pour déterminer le nom du PNJ et empêcher le fait qu'il reçoive des dommages, ou tu utilises tout simplement Citizens. Pour la condition, il suffit de faire ceci: On damage: if name of victim is "&aBoutique": cancel event
  4. Voserv

    Apparition de block

    Oui je me suis trompé ici: delete {blockadded::%location of event-block%}, il faut mettre delete {blockadded::*} mais si ça ne marche toujours pas, c'est bizarre car moi j'ai toujours utilisé ce système.
  5. Voserv

    Apparition de block

    D'accord donc, Il faut que tu enregistres le type du bloc et sa position dans des variables, je vais te la solution: [Contenu masqué] En gros, quand un bloc est cassé, il sera enregistré dans une variable qui contient les types de blocs et une autre qui contient les coordonnées de ceux-ci. Ensuite, il va mettre une variable qui correspond aux coordonnées du block en "true" pour dire que le bloc a bien été enregistré. A la fin, il n'y a plus qu'a loop comme je l'ai fait, pour remettre le bloc à sa position initiale. J'ai utilisé ce système pour mes gadgets et des jeux, donc normalement il devrait fonctionner !
  6. Voserv

    Apparition de block

    Ton skript c'est pour un jeu ?, car le système sera totalement différent selon comment tu l'utilises. Ton block doit réapparaître à la fin d'un jeu, ou il reviens après x secondes/minutes ?
  7. Voserv

    Fonctions

    Mets la dernière version, c'est peut-être ça le soucis.
  8. Voserv

    Detection de lore

    J'ai testé et ça marche ! :) on leftclick holding a blaze rod: line 1 of the lore of player's tool contains "&6&lblabla" send "ca marche"
  9. Voserv

    Fonctions

    Bonjour, Tout d'abord, lorsque tu insères ta fonction dans ta commande, c'est normal que cela ne marche pas. Premièrement tu dois recopier la fonction lettre par lettre, même avec les majuscules. De plus "color(arg 1 , player)" tu mets deux arguments alors que dans ta fonction tu as mit "function Color(p: player):", tu dois donc mettre "function Color(c: color, p: player):" Et lorsque tu invoque la fonction "armure(player)", tu oublies de mettre une couleur comme argument, fais comme ça: "armure(yellow, player)". Des fonctions c'est comme des commandes, si dans ta fonction tu demandes 2 arguments, quand tu invoque ta fonction, tu dois en mettre 2 aussi :) Normalement ca devrait marcher: [Contenu masqué]
  10. Voserv

    Detection de lore

    Voici la solution, je pense: on left click with blaze rod: set {_lore} to lore of event-item if {_lore} contain "&6&lblabla": send "Ca marche !"
  11. Voserv

    Ca ne marche pas :'(

    Bonjour, Il faut que tu mettes "teleport player-arg to {pvp}"
  12. Voserv

    Damage

    Oui, c'est possible: on damage of player: if damage cause is lava: set damage to 1
  13. Voserv

    TreeCapitator

    Voserv submitted a new resource: [plain]TreeCapitator[/plain] - [plain]Permet de casser des arbres directement ![/plain] Read more about this resource...
  14. Voserv

    Foreuse

    Voserv submitted a new resource: [plain]Foreuse[/plain] - [plain]Une foreuse qui mine pour vous et récolte pour vous[/plain] Read more about this resource...
  15. Voserv submitted a new resource: [plain][Fonction]CountdownBar[/plain] - [plain]Permet de créer des countdown avec les barres d'XP[/plain] Read more about this resource...
  16. Voserv

    Votifier Rewards

    Voserv submitted a new resource: [plain]Votifier Rewards[/plain] - [plain]Donnez des lots aux joueurs ayant votés[/plain] Read more about this resource...
  17. Voserv

    Virus

    Voserv submitted a new resource: [plain]Virus[/plain] - [plain]Créez une véritable infection avec les zombies alphas ![/plain] Read more about this resource...
  18. Voserv

    MobMask

    Voserv submitted a new resource: [plain]MobMask[/plain] - [plain]Ne vous faites pas repérer avec des masques ![/plain] Read more about this resource...
  19. Quand la documentation sera disponible ? :)
  20. Voserv

    Les Bases de donnée

    Cela le fait automatiquement dès que tu fait par exemple une cmd qui fait "add 1 to {db.test}"
  21. Voserv

    Les Bases de donnée

    Bonjour, J'ai peut-être fait une erreur par rapport à BungeeCord, car à mon avis il est nécéssaire (logiquement...). Et derien cela me fait plaisir de faire des tutoriels complets.
  22. Voserv

    Les Bases de donnée

    Derien NelGossem_. Sinon 5 secondes, non cela ne fera pas laguer si tu a une machine assez bonne. 5 secondes c'est pas quelque chose qui peux faire laguer à mort.
  23. Voserv

    Les Bases de donnée

    Non ce n'est pas possible à ma connaissance de refresh une variable spécifique. Après tu peux toujours mettre un temps plus petit, par exemple 5 secondes.
  24. Pas mal, après si tu veux faire un villageois qui fait des échanges, un addon de Skript permet de faire des échanges custom avec les villageoins. Je t'invite à aller voir sur skunity.com.
  25. Bonjour Après de TRÈS NOMBREUSES demandes, je fais enfin un petit tutoriel très complet pour vous apprendre à mettre en place une base de donnée et comment ça marche. I/C'est quoi une Base de Donnée ? (BDD): Une BDD c'est là où vous pouvez commniquer des variables d'un serveur à un autre. Par exemple, vous pouvez transférer des variables d'un serveur à un autre, ce qui fera que vos serveurs seront reliés. En quoi c'est utile ?, imaginons vous faites un Minigames eh bien vous pouvez faire qu'on achète des kits au hub et qu'ils se débloquent sur les autres serveurs. Après les possibilités sont infinies c'est juste un exemple ! II/Requis pour une BDD: Pour avoir une BDD, il vous faudra déja: Une machine dédiée BungeeCord Skript (évidemment) Une base de donnée (MySQL par exemple) SQLibrary (Un plugin nécéssaire) Les deux premiers points sont évident mais je les précise quand même. Si vous avez déja vos serveurs prêt avec BungeeCord tant mieux, sinon je vous invite à mettre en place votre BungeeCord avant de continuer ce tutoriel. Si vous avez tout ce qu'il faut, nous pouvons passer à l'étape 3. III/Mettre en place une BDD: D'abord il vous faudra installer le plugin SQLibrary disponible ici: dev.bukkit.org/bukkit-plugins/sqlibrary/ Il faut que ce plugin soit installé sur tous les serveurs que vous voulez relier à votre base de donnée. Après avoir installé ce plugin, rendez vous dans le dossier de votre plugin Skript (dans plugins). Vous verrez un fichier nommé config.sk, nous allons le regarder de plus près. Vous devrez vous rendre plus bas, vous verrez une section nommée "database": databases: # Databases to store variables in. These can either be used as a simple one-server-storage # where variables are written constantly but only read at server start, # or as a connection between multiple servers by monitoring the database(s) for changes. # # You can define as many databases as you want, just make sure to choose a distinct name for each one, and don't forget to set all options correctly. # # To be able to use a database you'll need to download the plugin 'SQLibrary' from [Contenu masqué] # and install it in your server's plugin directory like other plugins. # # Please note that '/skript reload' will not reload this section, i.e. you'll have to restart Skript for changes to take effect. # Each database definition must be in a separate section. You can choose any name for the sections, as long as it's not already used. database 1: # an example database to describe all possible options. type: MySQL # The type of this database. Allowed values are 'CSV', 'SQLite', 'MySQL' and 'disabled'. # CSV uses a text file to store the variables, while SQLite and MySQL use databases, and 'disabled' makes Skript ignore the database as if it wasn't defined at all. pattern: db.* # Defines which variables to save in this database. # This pattern uses Regex syntax, e.g. use 'db_.*' (without the quotes) to store all variables prefixed with 'db_' in this database, # or use '.*' (the default value) to store all variables here (recommended for the last database in this list, as otherwise some variables might not be saved). # Please note that variables are only stored in one database, and databases are checked from top to bottom, # e.g. if a variable matches the topmost database's pattern it will be saved there and nowhere else. # BTW: Patterns are checked in a separate thread, i.e. your server likely won't run slower when using complicated patterns. monitor changes: true monitor interval: 20 seconds # If 'monitor changes' is set to true, variables will repeatedly be checked for updates in the database (in intervals set in 'monitor interval'). # ! Please note that you should set 'pattern', 'monitor changes' and 'monitor interval' to the same values on all servers that access the same database! # == MySQL configuration == host: localhost # Where the database server is located at, e.g. 'example.com', 'localhost', or '192.168.1.100' port: 3306 # 3306 is MySQL's default port, i.e. you likely won't need to change this value user: 10 password: test123 database: 10 # The database to use. Skript will automatically create a table 'variables21' in this database if it doesn't exist # (If the table exists but is defined differently that how Skript expects it to be you'll get errors and no variables will be saved and/or loaded) Et là vous voyez en dessous de database la section database 1. C'est là que nous allons configurer. Je vais déja vous expliquer chaque configuration: Type: C'est la première ligne. Là vous devrez mettre le type de votre base de donnée, par exemple type: MySQL Pattern: Là vous devrez mettre un préfix. Dans notre exemple c'est db.*. En gros, toutes les variables commençant par db. seront sauvgardées, par exemple: {db.%player%.money} sera sauvgardé car la variable commence par db. Par contre si ma variable est écrite comme cela: {money.%player%} elle ne sera pas sauvgardée. Vous pouvez dans "pattern" changer en ce que vous voulez, par exemple pattern: test.*. TRES IMPORTANT: Il est très important que "*" soit indiqué comme dans db.* sinon cela ne marchera pas. Montiro Changes: Mettez de préférence en "true". Cela va servir à activer que les serveurs s'actualisent. Monitor Interval: Là, vous devez mettre un délai (pas trop court pour ne pas faire laguer). Par exemple 20 seconds. Là si je met 20 secondes, la base de donnée va actualiser les serveurs toutes les 20 secondes. Ensuite vous devrez configurer votre MySQL juste en dessous: # == MySQL configuration == host: localhost # Where the database server is located at, e.g. 'example.com', 'localhost', or '192.168.1.100' port: 3306 # 3306 is MySQL's default port, i.e. you likely won't need to change this value user: 7 password: test123 database: 7 # The database to use. Skript will automatically create a table 'variables21' in this database if it doesn't exist # (If the table exists but is defined differently that how Skript expects it to be you'll get errors and no variables will be saved and/or loaded) Je vais alors vous présenter chaque point: host: Vous devrez mettre l'ip de votre serveur par exemple 5.120.230.11. Notez que si vous êtes sur Multicraft, vous devez laisser localhost. port: Vous devrez indiquer le port. Mais si vous êtes sur MySQL, inutile de changer le port. user: Vous devez rentrer l'identifiant de votre base de donnée. password: Là aussi, vous rentrez le mot de passe de votre base de donnée MySQL database: Connectez-vous sur votre base de donnée (sous PhpMyAdmin), et normalement à votre gauche vous verrez des "tables", et bien rentrez le nom (le chiffre). La plupart du temps (je ne suis pas sûr si c'est pour tout le monde), le nom de la table est le même que l'utilisateur. Par exemple, dans mon exemple, user et database sont "7". Après avoir tout configuré, faites un reload. Je vous invite aussi à regarder votre console en même temps qui vous indiquera si il y a des problèmes de connection. Si vous n'avez aucun message d'erreure dans la console, cela veut dire que tout fonctionne. Pour vérifier, rendez vous dans votre BDD, et normalement si tout fonctionne comme prévu, vous verrez à votre gauche une table nommée "variable21". Ensuite vous copiez/collez votre config.sk sur tous les serveurs pour que cela fonctionne, reloadez et ce sera fini ! Pour que vos variables soient sauvgardées dans votre base de donnée il vous suffira juste de les nommer comme votre pattern:. Par exemple si dans pattern, vous avez laissé db.*, alors toutes les variables commençant par db., comme {db.test} seront sauvgardées ! Cordialement, MCVoserv
×
×
  • 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.