-
Compteur de contenus
98 -
Inscription
-
Dernière visite
-
Jours gagnés
5
Type de contenu
Profils
Forums
Téléchargements
Messages posté(e)s par DKSM
-
-
après le cancel event, ajoute un if player can build at event-block:
-
En effet, à cause d'une limitation dans le fichier de config de skript, voici un autre code qui esquive le problème
on right click with magma cream: if name of player's tool is "&bBatisseuse": cancel event set {_loc} to event-block's location loop 256 times: if block above {_loc} is air: set block above {_loc} to stone add 1 to {_loc}'s y-coord
-
Hi
command /batisseuse: trigger: give 1 of magma cream named "&bBatisseuse" to player on right click with magma cream: if name of player's tool is "&bBatisseuse": cancel event loop blocks above event-block: set block above loop-block to stone
-
Pas à ma connaissance en tout cas
-
Tu veux un WordReact en faite ?
J'ai partagé il y a pas mal de temps un skript de WordReact > https://skript-mc.fr/forum/files/file/327-wordreact/
J'ai fais une petite update aujourd'hui pour le rendre plus propre. -
SkinRestorer
dans Résolus
J'ai fait ça, je ne m'occupe pas de la commande skinrestorer par contre, c'est la dernière ligne en bas qu'il faudra modifier
J'ai ajouté un délai de 15 secondes pour choisir
on right click on entity: if name of event-entity is "NomDuNpc": if {skin::%player%::status} is not set: send "&eVeuillez indiquer dans le chat le nom du skin que vous souhaitez avoir:" to player set {skin::%player%::status} to true set {skin::%player%::time} to 15 while {skin::%player%::time} is set: remove 1 from {skin::%player%::time} if {skin::%player%::time} = 0: clear {skin::%player%::*} wait 1 second else: send "&cVous avez déjà une demande de skin en cours." to player on chat: if {skin::%player%::status} = true: cancel event clear {skin::%player%::*} send "&eVous avez changé votre skin en &b%message%&e." to player # ICI LA COMMANDE SKINRESTORER pour changer le skin en %message%
-
Nop, c'est un simple set block, c'est du pur skript
Aucune idée de pourquoi les fleurs n'ont pas envie dans ton cas 😕(à moins qu'il n'y ait pas de dirt ou grass autour de toi ^^')
-
Voici une nouvelle version avec l'exemple >> https://scr.dksm.fr/dksm_11_38_15-11-2023.mp4
on disconnect: if {netherStarSpeed::%player%} is set: set player's walk speed to 0.2 clear {netherStarSpeed::%player%} on right click with nether star: if name of player's tool is "speed": add dandelion and poppy to {_flowers::*} # Liste des fleurs set {_areaSize} to 20 # Rayon de la zone set {_effectDuration} to 8*10 # Durée 8 secondes (garder le *10 pour convertir en ticks) set {_areaEffet} to player's location set {netherStarSpeed::%player%} to true loop all blocks in radius {_areaSize} around player: if loop-value is not air: if loop-value is dirt or grass block: # Blocs ou les fleurs peuvent apparaitres if block above loop-block is air: chance of 60%: set block above loop-block to random element of {_flowers::*} add location above loop-block to {_flowersLocation::*} # SUPPRESSION AUTOMATIQUE DES FLEURS while {_effectDuration} > 0: if distance between player and {_areaEffet} < {_areaSize}: set player's walk speed to 0.8 else: set player's walk speed to 0.2 remove 1 from {_effectDuration} wait 2 tick set player's walk speed to 0.2 clear {netherStarSpeed::%player%} loop {_flowersLocation::*}: # SUPPRESSION AUTOMATIQUE DES FLEURS set block at loop-value to air # SUPPRESSION AUTOMATIQUE DES FLEURS
Pour la partie fleurs qui ne fonctionnent pas, je n'utilise pas la version 1.8 qui peut potentiellement poser un problème, j'ai gardé que dandelion et poppy dans celui là au cas ou ce sera à toi de corriger la partie fleurs
Sinon voila, au lieu d'appliquer un effet speed, je change carrément la vitesse de marche du joueur tant qu'il est dans la zone et ajoute une petite sécurité si il déconnecte avec l'effet speed -
Ah ok oops j'avais mal compris
Mon code n'est pas correct, j'en ferais un autre demain et j'imagine que les fleurs au final, c'est pour indiquer au joueur ou est la zone ou il continu à recevoir l'effet speed -
Navigation
dans Résolus
Salut,
Tu aura besoin de l'addons Skript-GUI si tu as pas: https://github.com/APickledWalrus/skript-gui/releases/tag/1.3
Voici une base pour faire la suite :
command /navigation: trigger: create a gui with virtual chest with 6 rows named "Le nom du menu": make gui slot 0 to diamond pickaxe named "Minage": make player execute command "/minage" close player's inventory make gui slot 1 .....: blabla blabla make gui slot 2 .....: blabla blabla etc.... open last created gui to player
C'est assez répétitif, tu devrais t'en sortir. -
Et pour avoir envie de t'aider, il faut avoir envie de te lire...
Bref, soit pas étonné si ca reste sans réponse. -
Ta demande fait mal au yeux ^^'
Met ton code dans des balises code..
Pour ton message principal essai de respirer, ca va bien se passer tu sais... Tu es autorisé à mettre des . et , ainsi que sauter des lignes. -
Je suis pas sur de comprendre..
Actuellement on analyse 9 blocs sous le joueur vu que c'est du 3x3
Si il y a un seul bloc d'éponge dans les 9 blocs, on kill le joueur
Tu veux que si dans ce groupe de 9 blocs, il y a UN bloc qui n'est pas une éponge, on kill pas ? -
Je n'ai pas testé le comportement avec 0.5, à tester
J'avais fini par me faire une fonction qui récupères le nom de la région exacte pour éviter le contains et faire un is pour être plus précis et sinon pour être sur et si possible utiliser autre chose que la région (World, Position A et B, etc...) -
Le code final devrait que tu devrais obtenir doit ressembler à ça (pas testé)
on join: while player is online: if "%region at player%" contains "test": set {_locA} and {_locB} to block at player's location remove 1 from {_locA}'s y-coord and {_locB}'s y-coord add 1 to {_locA}'s x-coord and {_locA}'s z-coord remove 1 from {_locB}'s x-coord and {_locB}'s z-coord loop all blocks within {_locA} and {_locB}: if loop-block is sponge: kill player wait 10 ticks
-
1
-
-
Car tu copies colle sans comprendre le fonctionnement ^^'
J'ai bien précisé avant "Voici un code de test à ne pas utiliser dans l'état"
Tu as du copier cette partie de code ci-dessous qu'il ne faut pas utiliser car c'etait juste pour un test donc c'est normal que tu ais une erreur.
every 5 ticks: loop all players:
-
Ca permet juste de visualiser ca, au final on en a pas besoin ^^ (les particules)
-
Si tu as pas remplacé le wait x ticks/seconds par quelques choses de logique genre wait 5 ticks, c'est normal xD
Le but étant de t'aiguiller, pas de te pondre le truc parfait ^^
Voici un code de test à ne pas utiliser dans l'état mais à intégrer dans mon code précédent pour analyser une zone de 3x3 sous le joueur
Voici ce que ca donne comme detection: https://scr.dksm.fr/dksm_15_46_09-11-2023.mp4
Il ne restera plus qu'a dire à la place des particules, SI le bloc est une éponge, kill le joueur et stop la boucleevery 5 ticks: loop all players: set {_locA} and {_locB} to block at loop-player's location remove 1 from {_locA}'s y-coord and {_locB}'s y-coord add 1 to {_locA}'s x-coord and {_locA}'s z-coord remove 1 from {_locB}'s x-coord and {_locB}'s z-coord loop all blocks within {_locA} and {_locB}: play firework's spark at loop-block
-
1
-
-
Typiquement le genre de skript ou je recommanderais l'utilisation d'un plugins, c'est assez casse tête pour faire quelque chose de propre et sécurisé.
Tu peux en revanche faire un skript qui ajoute/enlève la permission d'utiliser le plugins en question ce qui fera finalement ce que tu souhaites 😃 -
J'ai fait un petit code de démonstration et un exemple du résultat https://scr.dksm.fr/dksm_14_49_09-11-2023.mp4
on right click with nether star: if name of player's tool is "speed": add dandelion, poppy, blue orchid and red tulip to {_flowers::*} # liste des fleurs loop all players in radius 10 around player: apply speed 2 to loop-player for 5 seconds # durée et puissance de l'effet loop all blocks in radius 10 around player: if loop-value is not air: if loop-value is dirt or grass block: # bloc ou la fleur peut apparaitre if block above loop-block is air: chance of 3%: set block above loop-block to random element of {_flowers::*} # A PARTIR d'ICI, C'EST SI ON VEUT SUPPRIMER LES FLEURS AUTOMATIQUEMENTS APRES UN CERTAIN TEMPS add location above loop-block to {_flowersLocation::*} wait 5 seconds # temps avant de supprimer les fleurs loop {_flowersLocation::*}: set block at loop-value to air wait 1 tick
-
Une boucle qui vérifie constamment le bloc sous le joueur ne serait pas beaucoup plus lourd que le on walk mais plus fiable probablement
on join: while player is online: if "%region at player%" contains "test": if block below player is sponge: kill player stop wait x ticks/seconds # vitesse de vérification
Je connais pas le serveur et comment il fonctionne, mais on pourrait utiliser un on world change, on region enter... comme event pour démarrer la boucle pour éviter qu'elle ne tourne constamment.
Bref, c'est une base à améliorer
-
J'ai une question un peu bête, si le joueur clique droit avec la nether star, ca crée une zone et si celui-ci se trouve dedans, il obtiens vitesse ???
Euh mais comment pourrait-il être ailleurs ? lol
Tu voulais peut-être dire que ca donne vitesse à celui qui a cliqué droit ainsi que tous les joueurs qui sont dans la zone de 20 blocs ? -
Skript de logs
dans Résolus
Bon, je t'ai fait une base en utilisant l'addons très populaire Skript-yaml qui est le plus adapté pour pas trop se prendre la tête.
Donc il te faudra pour commencer l'addons Skript-yaml >> https://github.com/Sashie/skript-yaml
Voici le code fonctionnel qui pourra te servir de base avec les explications :
on join: load yaml "plugins/Skript/scripts/logs/%player%.yml" as "%player%" on quit: save yaml "%player%" on load: load yaml "plugins/Skript/scripts/logs/publicChat.yml" as "publicChat" on unload: save yaml "publicChat" on chat: set {_time} to now formatted as "dd/M/yy HH:MM" add "[%{_time}%][Chat] %player% > %message%" to yaml list "logs" of "%player%" add "[%{_time}%][Chat] %player% > %message%" to yaml list "logs" of "publicChat" on damage: if attacker is a player: set {_time} to now formatted as "dd/M/yy HH:MM" add "[%{_time}%][Attack] %attacker% > %victim% | %tool of attacker%/%damage% dégâts" to yaml list "logs" of "%attacker%" command /logs [<player>]: trigger: save yaml "%arg-1%" and "publicChat" set {_logSize} to 10 if arg-1 is not set: send "%nl%&eLogs du chat public:" set {_chat::*} to yaml list "logs" from "publicChat" loop {_chat::*}: if loop-index parsed as integer > size of {_chat::*} - {_logSize}: send loop-value else: send "%nl%&eLogs du joueur &b%arg-1%:" set {_chat::*} to yaml list "logs" from "%arg-1%" loop {_chat::*}: if loop-index parsed as integer > size of {_chat::*} - {_logSize}: send loop-value
Voici la façon dont sa fonctionne:
- Un joueur se connecte: On charge un fichier yml en mémoire à son nom, si le fichier/dossier n'existe pas, il sera automatiquement créé.
- Si il se déconnecte: On sauvegarde le fichier en dur
- Quand le skript se charge: On charge un fichier yml qui s'appel publicChat
- Quand le skcript se décharge: On sauvegarde le fichier
- Quand un message est tapé dans le chat: On ajoute le message dans le yml du joueur et aussi celui du chatPublic
- Lorsque un joueur fait des dommages: On ajoute dans le yml du joueur le joueur, la victime, l'arme et les dégats...
Ensuite pour la commande logs:Si on indique pas le nom d'un joueur, ca va envoyer les logs du globalChat sinon, on envoi les logs du joueur.
Il y a une variable {_logSize} configuré à 10 qui permet d'afficher les 10 dernières lignes du fichier logs, tu peux le changer comme bon te semble.
Maintenant à savoir que ceci est une base pour faire quelque chose de plus poussé comme:- Ajouté ton truc de "un joueur dans les 15 blocs qui fait quelque chose"
- Supprimer les historiques trop vieux ou qui commence à être très gros ?
- etcc etcc
Et voilà en gros ce que ca donne > https://scr.dksm.fr/dksm_13_41_09-11-2023.mp4
Bonne journée -
Skript de logs
dans Résolus
C'est vrai qu'on ne peut pas récupérer le contenu du log directement sans addons.. Donc tu peux faire soit :
- Un addons pour lire le fichier .log
- Utiliser les variables listes de Skript de base mais faut pas en abuser en terme d'historique
- Skript-Yaml qui lui sera un choix entre deux car il fera des fichiers plus optimisés que les variables liste de Skript et tu pourra aussi faire la commande
- Une base de donnée, mais ce sera un peu plus technique à setup et bien sur, il te faut une base de donnée + un addons pour intéragir avec
Skript de crochet
dans Résolus
Posté(e) · Modifié par DKSM
Salut, j'ai fais ce que tu demandes avec une petite optimisation légère