-
Compteur de contenus
321 -
Inscription
-
Dernière visite
-
Jours gagnés
17
Type de contenu
Profils
Forums
Téléchargements
Tout ce qui a été posté par Anarchick
-
Tester et ça marche : on load: add 1 diamond, 5 tnt, 10 apple, 1 iron sword and 64 wood to {random.item.list::*} on mine of gold ore or emerald ore or diamond ore or coal ore or iron ore or stone: chance of 100%: set {_randomitem} to random element out of {random.item.list::*} set event-block to chest wait 1 tick add {_randomitem} to inventory of block at event-block Je t'ai gardé la variable liste mais en vrai tu n'en a pas besoin : random element out of 1, 2 and 3
-
Cette effet s'appel en français : "Une transition en fondu" et en anglais un "fade in" ou "fade out" Pour supprimer cette effet il suffit de mettre la valeur "0" au fade in et "0" au fade out, Pour trouver la liste des commandes vanilla relative aux /title il y a ce site : http://minecraft.tools/fr/title.php?title=Minecraft Tools&subtitle Conseil : utilise une fonction du genre : function Title(players: players, title: string, subtitle: string, in: number, time: number, out: number): Voici ce que j'utilise personnellement : function Title(p: players, title: string, subtitle: string, in: integer, time: integer, out: integer): set {_in} to "%{_in}% ticks" parsed as timespan set {_time} to "%{_time}% ticks" parsed as timespan set {_out} to "%{_out}% ticks" parsed as timespan loop {_p::*}: send loop-value title "%{_title}%" with subtitle "%{_subtitle}%" for {_time} with {_in} fade in and {_out} fade out
-
Tu peux aussi utiliser TusKe 1.8.1 en attendant (même si ils comporte d'autres bug du genre le /skript reload all fera planter les GUI tuske mais le /skript reload NomDuSkript ne causera pas de bug)
-
Holà, ceci ne peut pas être résolu (avec Skript Njol). J'ai déjà ouvert un tread a propos de ce bug https://github.com/Tuke-Nuke/TuSKe/issues/35 [url=https://github.com/Tuke-Nuke/TuSKe/issues/35][/url] Solution : Utiliser skript Bensku ou attendre la maj Tuske1.8.3
-
Holà, edit ton post car la première phrase ne veut rien dire ;) Je n'ai jamais utilisé GroupManagerX et CrazyCrate mais voici mon hypothèse : 1 - Tu enregistre dans une variable le grade du joueur quand il click sur le coffre. 2 - Tu enregistre le nouveau grade reçu dans une seconde variable. 3 - Tu compare la première et la deuxième variable. 4 - Si c'est une rétrogradation tu redonne le premier grade au mec. Et j'ai une idée pour toi : Au lieu de gagner un grade au pif, tu gagne le grade supérieur à celui actuel (ex: /Promote), ça créer une sorte de système d’expérience qui est plus sympa en terme de game design. (et surtout moins inégalitaire basé sur le hasard). Ainsi les joueurs haut gradé sont ceux qui ont passé du temps sur ton serv et qui ont ainsi pu débloquer plusieurs coffres, leur grade devient leur récompense pour avoir passé du temps sur le serv. Pourquoi un mec qui vient juste d'arriver aurait la chance d'avoir le grade le plus haut alors qu'un mec qui est là depuis 1 an n'a pas de chance et se coltine un grade pourri o.O ?
-
Un espace dans un nombre à 4 chiffres dans un scoreboard
Anarchick a répondu à un(e) question de MisterAkimbo dans Inactifs
Dans ce cas ce sera la même chose sauf que la fonction de tout à l'heure on va la modifier un peu: function IntSpace(int: integer, symbol: text) :: text: regex replace "(?<=\d)(?=(\d{3})+(?!\d))" with "%{_symbol}%" in {_int} return "%{_int}%" OU function IntSpace(int: integer, symbol: text) :: text: set {_r} to "%{_int}%" set {_t} to "" loop round up length of {_r} / 3 times: set {_l} to the last 3 characters of {_r} set {_r} to the first length of {_r} - 3 characters of {_r} if loop-number = 1: set {_t} to "%{_l}%%{_t}%" else: set {_t} to "%{_l}%%{_symbol}%%{_t}%"} return "%{_t}%" et donc pour l'utiliser ce sera comme ceci: IntSpace({_TaVariablenombre}, ",") # Si tu veux le symbole virgule ET IntSpace({_TaVariablenombre}, " ") # Si tu veux le symbole espace, # Tu peux utiliser le symbole que tu souhaite, même "fzggzkgzhrg" marchera !! Exemple de tout à l'heure: set {_gloire} to IntSpace({gloires : %uuid of loop-player%}, " ") -
il faut aussi rajouter : on join: delete {afk.%player%} car il faut penser à l'hypothèse que le serveur crash d'un coup sans avoir effectué l'event on quit, ce qui implique que lors de la reco du joueur il serait encore considéré comme afk ;) EDIT: Noftaly le site web de ton serveur est inaccessible, je voulais voir ce que tu avait fait dessus :(
-
Un espace dans un nombre à 4 chiffres dans un scoreboard
Anarchick a répondu à un(e) question de MisterAkimbo dans Inactifs
ça doit marcher, c'est quand même un concours validé et fais par des gars balèze en Skript ... Au pire si tu as du mal avec le regex tu peux prendre le troisième code qui est plus long mais plus simple à comprendre (Il fait la même chose que le Regex) Le plus simple et d'utiliser une fonction car tu pourra en avoir besoin dans plusieurs Skript peut être: function IntSpace(int: integer) :: text: regex replace "(?<=\d)(?=(\d{3})+(?!\d))" with " " in {_int} return "%{_int}%" OU function IntSpace(int: integer) :: text: set {_r} to "%{_int}%" set {_t} to "" loop round up length of {_r} / 3 times: set {_l} to the last 3 characters of {_r} set {_r} to the first length of {_r} - 3 characters of {_r} if loop-number = 1: set {_t} to "%{_l}%%{_t}%" else: set {_t} to "%{_l}% %{_t}%"} return "%{_t}%" et par exemple pour l'utilisation dans ton premier code : set {_gloire} to IntSpace({gloires : %uuid of loop-player%}) set score "&6Gloires&f: %{_gloire}%" in sidebar of loop-player to 5 set {_faveurs} to IntSpace({faveurs : %uuid of loop-player%}) set score "&aFaveurs&f: %{faveurs : %uuid of loop-player%}%" in sidebar of loop-player to 4 -
https://docs.skunity.com/syntax/search/unix Wikipedia : L'heure Posix (aussi appelée POSIX timestamp) est une mesure du temps utilisée principalement dans les systèmes qui respectent la norme POSIX1, d'où son nom. Il s'agit du nombre de secondes écoulées depuis le 1er janvier 1970 00:00:00 UTC jusqu'à l'événement à dater, hors secondes intercalaires (voir ci-dessous). C'est la représentation POSIX du temps. L'heure UNIX est rencontrée sur les systèmes de type UNIX1 qui respectent en général cette norme POSIX. Une date Unix est un nombre qui ne cesse d'augmenter chaque seconde, il permet de convertir une date du type "10/02/2018 12:27" en "1518262061" Il est aussi possible de faire l'étape inverse, c'est à dire convertir un format unix en date. Beaucoup de logiciel et OS utilise le système Unix. Si tu as l'addon RandomSk (déconseiller), tu peux remplacer le "now" par "unix time", si tu n'as que SkUtilities, l'équivalent est "date now as unix" Et pour le système d'addition tu as seulement besoin de savoir combien il y a de secondes dans 1min ou 1h ou 1j, ...
-
Tu peux utiliser un système d'addition en passant par le format de date Unix
-
Bonjour j'ai un animal de compagnie qui est malade qu'est ce que je dois faire ? Il faut détailler un peu plus mon cher monsieur si vous voulez de l'aide !! Dans ton cas il faut que tu nous donne le code utiliser dans ton skript si il s'agit d'une erreur de codage. Si ton skript permet une commande du genre "/afk false" tu devrai faire en sorte de l’exécuter lors du on quit et on join ;)
-
Comment enlever un bloc tous les 'X' temps.
Anarchick a répondu à un(e) question de TheGameurthug dans Résolus
De manière général il n'est pas possible d'utiliser un "wait" AVANT un "cancel event" ... logique car l'action s'est déjà produite -
Utilise un fichier YAML plutôt que TXT (addons nécessaires) Pour les personnes qui se sont déjà connecté à ton serveur il faut que tu aille dans le dossier "playerdata" qui se trouve dans le dossier de ta map principal, ainsi tu aura la liste des UUID ayant rejoins ton serveur. J'espère que ton serveur n'autorise pas les crack autrement tu vas avoir du mal pour la suite: grâce à ce lien : https://mcuuid.net/?q=dc56799d-cb21-4cd9-aff9-ff58a51e91e5 Tu peux retrouver le pseudo de quelqu'un à partir de son UUID (Je t'aurais bien dis d'utiliser l'API mojang direct mais elle semble buggé aujourd'hui) En faite dans ton fichier YAML il est même préférable d'enregistrer les uuid et les pseudo correspondant. (ce que je n'ai pas inclus dans le code qui suit) Voici le code que j'utilise, je ne connais pas ton niveau en Skript, si tu est débutant ça risque de te piquer les yeux : options: YMLpath: plugins/PlayerStats function singleYML(path: string, name: string) :: text: if yml path "%{_path}%" in file "{@YMLpath}/%{_name}%.yml" exists: set {_value} to single value "%{_path}%" get of "{@YMLpath}/%{_name}%.yml" if {_value} is set: return {_value} else: return "" function nodesYML(path: string, name: string) :: texts: if yml path "%{_path}%" in file "{@YMLpath}/%{_name}%.yml" exists: set {_value::*} to yml nodes "%{_path}%" from file "{@YMLpath}/%{_name}%.yml" if {_value::*} is set: return {_value::*} else: return {_value::*} function nodeskeyYML(path: string, name: string) :: texts: if yml path "%{_path}%" in file "{@YMLpath}/%{_name}%.yml" exists: set {_value::*} to yml nodes with keys "%{_path}%" from file "{@YMLpath}/%{_name}%.yml" if {_value::*} is set: return {_value::*} else: return "" function listYML(path: string, name: string) :: texts: if yml path "%{_path}%" in file "{@YMLpath}/%{_name}%.yml" exists: set {_value::*} to value list "%{_path}%" get of "{@YMLpath}/%{_name}%.yml" if {_value::*} is set: return {_value::*} else: return "" command /yml <text> <offline player> [<text>] [<string>]: trigger: sender is op or console "%arg-2%" is not "<none>" if file "{@YMLpath}/%arg-2%.yml" does not exist: send "<pink>ERREUR FICHIER n'existe pas : %arg-1% %arg-2% %arg-3% %arg-4%" to all ops log "ERREUR FICHIER inexistant : /yml %arg-1% %arg-2% %arg-3% %arg-4%" to "erreur.log" stop if arg-1 is "set": set "%arg-3%" to "%arg-4%" in yml "{@YMLpath}/%arg-2%.yml" stop set {_value} to single value "%arg-3%" get of "{@YMLpath}/%arg-2%.yml" parsed as number set {_arg4} to "%arg-4%" parsed as number if arg-1 is "add": add {_arg4} to {_value} if arg-1 is "remove": remove {_arg4} from {_value} set "%arg-3%" to "%{_value}%" in yml "{@YMLpath}/%arg-2%.yml" command /ymllist <text> <offline player> [<text>] [<string>]: trigger: sender is op or console "%arg-2%" is not "<none>" if file "{@YMLpath}/%arg-2%.yml" does not exist: send "<pink>ERREUR FICHIER n'existe pas : %arg-1% %arg-2% %arg-3% %arg-4%" to all ops log "ERREUR FICHIER inexistant : /ymllist %arg-1% %arg-2% %arg-3% %arg-4%" to "erreur.log" stop if arg-1 is "add": add "%arg-4%" to yml list "%arg-3%" from file "{@YMLpath}/%arg-2%.yml" if arg-1 is "remove": remove "%arg-4%" from yml list "%arg-3%" from file "{@YMLpath}/%arg-2%.yml" on join: if file "{@YMLpath}/%player%.yml" does not exist: create file "{@YMLpath}/%player%.yml" execute console command "/yml add %player% %name of player% %player's UUID%" execute console command "/yml add %player% ip %player's ip%" set {_value::*} to listYML("list.liste", "SERVEUR") if {_value::*} does not contain "%player%": execute console command "/ymllist add SERVEUR list.players %player%" execute console command "/yml add SERVEUR list.joueursTOTAL 1"
-
Un espace dans un nombre à 4 chiffres dans un scoreboard
Anarchick a répondu à un(e) question de MisterAkimbo dans Inactifs
Sur le forum Skunity il y a eu un concours pour le meilleur code afin de transformé ceci : 245863 -> 245,863 ou 17354682 -> 17,354,682 avec le code le plus court possible : Voici les gagnants avec le code le plus court (donc la réponse à ta question) : https://forums.skunity.com/threads/1-winners-of-skript-challenge-number-format.439/ Et voici le thème de ce concours: https://forums.skunity.com/threads/1-skript-challenge-number-format.247/ Enfin si tu souhaite voir les 2 autres concours: https://forums.skunity.com/forums/skript-challenge/ PS: Tu as juste à remplacer le symbole "," par un espace pour faire ce que tu souhaite, Il est possible que ton addons pour le scoreboard refuse d'accepter les espaces, pour résoudre cela il faut manipuler les packets à l'aide de MundoSK ou bien tester un autre addon de scoreboard ... mais bon je suppose que ton addon supporte les espaces. -
Enlever la perte du stuff sur un joueur
Anarchick a répondu à un(e) question de tovaron dans Inactifs
C'est justement ce que je t'ai dis, si le mec meurt et qu'il n'a pas le grade adéquate le keepinventory lui fera conserver sont inventaire certe ... MAIS ton code skript lui demandera de supprimer son inventaire ou bien de le déposer au lieu où il est mort ! Et dans le cas ou le mec possède le grade correspondant, ... bah y a pas besoin de code puisqu'il aura conservé son inventaire comme tu le voulait ;) C'est la même logique que résonner par négation lorsque tu utilise un if/else ou contain/does not contain Après tu as bien sûr la possibilité de sauvegarder l'inventaire du joueur dans une variable puis lui regive lorsqu'il respawn mais je trouve ça plus pénible à coder que m'a première proposition (Il faut toujours prendre en compte l'aspect optimisation et réduire au maximum la consommation CPU/RAM) -
V1 et V2 c'était pour "Variable", Il n'y a pas d'erreur de syntax dans ton code, le problème doit donc venir de tes variables qui sont mal utilisé. Donc il nous faut soit le code COMPLET, soit tu arrive à déduire où est le problème à l'aide du broadcast. en faite il faut que tu imagine qu'elle est le texte qui doit être affiché en cas de fonctionnement correct de ton skript afin de comparer avec ce qui fait que actuellement ton skript ne fonctionne pas EXEMPLE : command /test1: trigger: set {_player.monaie} to 42 loop 5 times: wait 1 second set {_v.%loop-number%} to "%loop-number%" add 100 to {_v.%loop-number%} add %{_v.%loop-number%}% to {_player.monaie} Avec cette exemple on souhaite que le joueur reçoive 101€ puis une seconde plus tard 102€, puis une seconde plus tard... jusqu'à 105€ Or ce code ne marche pas ! pourquoi ? Parce que {_v.%loop-number%} est interprété comme un texte et donc il n'est pas possible de lui additionner une valeur numérique, comment le vérifier ? avec un broadcast par exemple : command /test1: trigger: set {_player.monaie} to 42 loop 5 times: wait 1 second set {_v.%loop-number%} to "%loop-number%" broadcast "étape 1: %{_v.%loop-number%}%" add 100 to {_v.%loop-number%} broadcast "étape 2: %{_v.%loop-number%}%" add %{_v.%loop-number%}% to {_player.monaie} broadcast "étape 3: %{_player.monaie}%" tu te rendra compte que l'étape 2 n'a pas ajouté 100€ comme on lui avait demandé de le faire, une des solution pour résoudre ce genre de problème pourait être d'utiliser cette effet : set {_v.%loop-number%} to "%loop-number%" parsed as number Qui va dire à skript que la variable doit être lu comme un nombre et non comme un texte PS: merci de ne pas chipoter sur l'exemple que j'ai donné il s'agit d'un EXEMPLE
-
Pense à utiliser le broadcast pour déterminer le problème: command /printmoneyadd: permission: * trigger: loop {printer::*}: broadcast "<yellow>value: %loop-value% V1: %{printerEncre.%loop-value%}% V2: %{printerMoney.%loop-value%}%" # Il faut aussi s'assurer que les variable ci-dessous sont bien interprété comme des nombre et non pas comme un texte broadcast "<cyan>%{printerEncre.%loop-value%} +100% %{printerMoney.%loop-value%} +100%" if {printerEncre.%loop-value%} >= 1: add 10 to {printerMoney.%loop-value%}
-
Enlever la perte du stuff sur un joueur
Anarchick a répondu à un(e) question de tovaron dans Inactifs
Active la gamerule keepinventory dans le monde, quand un joueur meurt vérifie quel est son grade, si le grade ne correspond pas tu supprime son inventaire(ou le drop au sol ...) -
Command > item > item execute command
Anarchick a répondu à un(e) question de Salameche #Rim'K dans Résolus
je fais ça vite fais je n'ai pas testé command /k <text>: trigger: if file "plugins\Skript\scripts/%arg-1%.sk" exists: give emerald named "sk reload %arg-1%" with lore "%arg-1%" to player on rightclick with emerald: name of tool contain "sk reload ": make player execute command "/sk reload %lore of player's tool%" -
Quand ce genre de problème arrive utilise l'effet stop de bas en haut pour déduire quel ligne de code ne marche pas c'est pas très compliqué et ça ne prend en général pas plus de 5 minutes à trouvé la ligne qui ne fonctionne pas. Exécute plusieurs fois l’opération jusqu'à ce que l'erreur n'apparait plus dans la console. La ligne qui ne fonctionne pas seront donc celle en dessous du code "stop"
-
Bon en même temps ... Regarde cette partie là (Il s'agit de ton code): set {_t} to {temps.kits.vip+.%arg 2%} add {temps-kits.vip+} to {_t} set {_time} to difference between now and {_t} round {_time} set {_time} to {_time} parsed as an integer set {_time} to "%{_time}%" parsed as text replace all "seconds" with "seconde(s)" in {_time} surtout à ce moment là : set {_time} to difference between now and {_t} la variable {_time} est interprété comme un %timespan% et nonon pas comme un %number% ce qui explique pourquoi tu ne peux pas utiliser l'expression "round %number%" Il faut que tu transforme ce timespan en nombre avec l'unité que tu désire = le tick ou la seconde ... Je ne crois pas que celà soit aussi possible : add {temps-kits.vip+} to {_t} Si il s’agit d'un timespan ... enfin je n'ai jamais essayé d’additionner des timespan Il ne me semble pas qu'il existe d'effet capable de faire ça directement donc il faut le coder. Mais la bonne nouvelle c'est que tu était sur la bonne voie ! set {_time} to difference between now and {_t} replace all " seconds" with "" in {_time} #Ne pas oublier l'espace !! et faire attention qu'il n'y ait pas des minutes ou heures ... set {_time} to "%{_time}%" parsed as an number set {_time} to "%round {_time}% seconde(s)" Il y a aussi un addon qui permet de récuperer que les valeur numérique d'un nombre mais on va dire que tu l'a pas pour faire simple Astuce au cas où tu as des problèmes autre-part dans ton code : Régulièrement utilise ceci broadcast "<nom du skrit> <numéro de la ligne> - %{_variable}%" Ce genre de code te permettra d'identifier 80% des problèmes de tes skripts !!! sans rire Noftaly et Syst3ms si c'est faux dite le moi ^^
-
Car tu supprime la variable trop tôt !! on place: if event-entity is a player: add location of event-block to {block.%player%::*} else: cancel event #Au cas où il s'agit d'un enderman on quit: wait 2 ticks loop {block.%player%::*}: set block at loop-value to air delete {block.%player%::*} Il est possible que le loop-value ne soit pas interprété comme une location, mais normalement ça doit marcher Il faut aussi veiller à ce que le joueur évite de placer un trop grand nombre de bloc lorsqu'il est connecte autrement il risque d'avoir un lag sur l'ensemble du serv lorsque tous les blocs vont être reset en même temps
-
En relisant entièrement j'ai vu 2 problèmes : Dans ton code tu as utilisé ceci : [...] set {_time} to difference between now and {_t} round {_time} set {_time} to {_time} parsed as an integer [...] ce qui est faut. En fait "Round %number%" est une expression et non un effet ce qui fait qu'il s'utilise comme LeCraftDeOuf l'a dis MAIS avec un espace: set {_time} to round {_time} OU BIEN send "%round up {_time}%" OU ENCORE send "%round down ( {_time}*3)%"
-
3 possibilités round {_time} round up {_time} round down {_time}
-
Empêcher aux joueurs de voir les plugins
Anarchick a répondu à un(e) question de MisterAkimbo dans Inactifs
Skript 2.2-fixes-v9b Fonctionne parfaitement avec MundoSk 1.7.5-BETA.8.7 si ça peut aider ...