Aller au contenu

JDM

Membre
  • Compteur de contenus

    46
  • Inscription

  • Dernière visite

  • Jours gagnés

    2

Tout ce qui a été posté par JDM

  1. JDM

    Déconnexion, affichage invoulu

    Perso aucune idée, dans le code, y a rien qui dépend du déco reco ... Si tu réduis le temps d'actualisation "every 1 second" par "every 2 second" (histoire que le serveur assimile le fait que tu sois connecté, peut-être ?), ça change quelque chose ?
  2. JDM

    Détection de bloc dans une région WG

    En utilisant PirateSK : set {_rg} to wg region at player's location #' set {_p1} to point 1 of wg region {_rg} in "world" set {_p2} to point 2 of wg region {_rg} in "world" set {_x1} to x-location of {_p1} set {_x2} to x-location of {_p2} set {_x} to {_x2} - {_x1} set {_y1} to y-location of {_p1} set {_y2} to y-location of {_p2} set {_y} to {_y2} - {_y1} set {_z1} to z-location of {_p1} set {_z2} to z-location of {_p2} set {_z} to {_z2} - {_z1} loop {_x} times: loop {_y} times: loop {_z} times: set {_loc} to location ({_x}+loop-number-1, {_y}+loop-number-2, {_z}+loop-number-3) in "world" if {_listeblocs::%type of block at {_loc}%} is not set: set {_listeblocs::%type of block at {_loc}%} to 0 add 1 to {_listeblocs::%type of block at {_loc}%} En théorie, ça te retourne une liste de tous les blocs dans la région, dans ce format : (donc ça veut dire qu'il y a 24 cobblestone, 132 planches dans la région)
  3. Personnellement je suis Skripteur sur un serveur et j'ai jamais eu de soucis sur la taille des score d'un sidebar ... Par exemple, en tapant ça dans mon chat : !set score "1234567890ABCDEFGHIJklmnopqrstUVWXYZ" in sidebar of player to 0 Le score correspondant s'affiche bien, sans être tronqué, dans ma sidebar. J'ai remarqué des différences syntaxiques sur le skript présenté et ma syntaxe, et j'arrive pas à trouver votre syntaxe sur SkQuery. Je vous passe donc un bout de mon code pour voir à quoi ça ressemble : on join: set name of sidebar of player to "&d* &c&lINFOS &d*" execute console command "/sc-actu nbr-co" on quit: wait 1 second execute console command "/sc-actu nbr-co" command /sc-actu <text>: executable by: console trigger: if arg 1 is "nbr-co": set {_nbronline} to 0 loop all players: add 1 to {_nbronline} loop all players: delete score "&6En ligne : &e%{nbrco.scoreboard}%" in sidebar of loop-player set score "&6En ligne : &e%{_nbronline}%" in sidebar of loop-player to 1 set {nbrco.scoreboard} to {_nbronline} (un code pour afficher le nombre de personnes en ligne)
  4. JDM

    Déconnexion, affichage invoulu

    command /team [<text>] [<player>]: trigger: if arg 1 is "Blue": set {Equipe::%arg-player%} to "Blue" set arg-player tab name to "&9%arg-player%" #FLECHE add 1 to {Fleche.Blue.NB} set {Fleche.Blue.%{Fleche.Blue.NB}%} to arg-player send "&9%arg-player%&f est désormais dans l'équipe &9Bleue" command /reset: trigger: clear {Equipe::*} set {Fleche.Blue.NB} to 0 clear {Fleche.Blue.1} clear {Fleche.Blue.2} clear {Fleche.Blue.3} clear {Fleche.Blue.4} send "&2&lOK ! :)" command /info: trigger: send "%{Fleche.Blue.NB}%" send "%{Fleche.Blue.1}%" send "%{Fleche.Blue.2}%" every 1 seconds: make all players execute command "/timermaj" command /timermaj: trigger: display board named "" to player set name of sidebar of player to " &3Jeu &bI " set score " " in sidebar of player to 5 #===== On rajoute mon code ici =====# set {_equipe} to {Equipe::%player%} #On récupère l équipe du joueur loop {Fleche.%{_equipe}%.NB} times: #On loop autant de fois qu il y a de joueurs dans l équipe set {_player} to {Fleche.Blue.%loop-number%} #On récupère le joueur "loopé" {_player} is not player #Si le joueur "loopé" n est pas le joueur qui actualise son scoreboard {_player} is online #Si la personne est bien en ligne set {_coordx1} to x-position of player #On récupère diverses infos set {_coordx2} to x-position of {_player} set {_distx} to {_coordx2}-{_coordx1} set {_coordz1} to z-position of player set {_coordz2} to z-position of {_player} set {_distz} to {_coordz2}-{_coordz1} set {_distxz} to sqrt of ({_distx}^2+{_distz}^2) set {_cosangle} to {_distx} / {_distxz} set {_sinangle} to {_distz} / {_distxz} if distance between player and {_player} is less than or equal to 50: #Ton morceau de code set {_fleche.color} to "&b&l" else if distance between player and {_player}is more than or equal to 50: #J ai modifié le nombre car ne prenait pas en compte de 50 à 100 set {_fleche.color} to "&9&l" else if distance between player and {_player} is more than or equal to 200: set {_fleche.color} to "&c&l" else if distance between player and {_player} is more than or equal to 350: set {_fleche.color} to "&4&l" if {_cosangle} is between -1 and -0.7: #On attribue une valeur à chaque direction (0=N, 1=E, 2=S, 3=O) set {_direction} to 3 else if {_cosangle} is between 0.7 and 1: set {_direction} to 1 else if {_sinangle} is between 0.7 and 1: set {_direction} to 2 else: set {_direction} to 0 if horizontal facing of player is east: #On met un décalage en fonction de la direction du joueur remove 1 from {_direction} else if horizontal facing of player is south: remove 2 from {_direction} else if horizontal facing of player is west: remove 3 from {_direction} if {_direction} is smaller than 0: add 4 to {_direction} if {_direction} is 0: #On attribue une flèche set {_fleche} to "^" else if {_direction} is 1: set {_fleche} to ">" else if {_direction} is 2: set {_fleche} to "v" else if {_direction} is 3: set {_fleche} to "<" set score "%{_player}% %{_fleche.color}%%{_fleche}%" in sidebar of player to loop-number #On affiche la flèche avec le joueur approprié
  5. JDM

    Déconnexion, affichage invoulu

    Bah le "display board named "" to player" (l. 35 du pastebin fourni par isharo) permet d'effacer le scoreboard, et après on rajoute un à un pour chaque joueur "loopé" (dans la boucle) le score qui correspond à son "identifiant" (Fleche.Blue.%ID%), et en nom "JDM >" par exemple (ou "Izychiel ^", etc). Et comme à chaque fois ça loope tous les joueurs de la team, ça actualise tout le monde
  6. JDM

    Déconnexion, affichage invoulu

    Moi y a un truc qui me gêne dans ton skript, c'est que tu fais en sorte que chaque joueur, chaque seconde, fasse /timermaj , or tu gères les deux d'un coup ... Moi ce que je ferai, c'est (à partir de la ligne 42 jusqu'à la fin du script): set {_equipe} to {Equipe::%player%} #On récupère l équipe du joueur loop {Fleche.%{_equipe}%.NB} times: #On loop autant de fois qu il y a de joueurs dans l équipe set {_player} to {Fleche.Blue.%loop-number%} #On récupère le joueur "loopé" {_player} is not player #Si le joueur "loopé" n est pas le joueur qui actualise son scoreboard {_player} is online #Si la personne est bien en ligne set {_coordx1} to x-position of player #On récupère diverses infos set {_coordx2} to x-position of {_player} set {_distx} to {_coordx2}-{_coordx1} set {_coordz1} to z-position of player set {_coordz2} to z-position of {_player} set {_distz} to {_coordz2}-{_coordz1} set {_distxz} to sqrt of ({_distx}^2+{_distz}^2) set {_cosangle} to {_distx} / {_distxz} set {_sinangle} to {_distz} / {_distxz} if distance between player and {_player} is less than or equal to 50: #Ton morceau de code set {_fleche.color} to "&b&l" else if distance between player and {_player}is more than or equal to 50: #J ai modifié le nombre car ne prenait pas en compte de 50 à 100 set {_fleche.color} to "&9&l" else if distance between player and {_player} is more than or equal to 200: set {_fleche.color} to "&c&l" else if distance between player and {_player} is more than or equal to 350: set {_fleche.color} to "&4&l" if {_cosangle} is between -1 and -0.7: #On attribue une valeur à chaque direction (0=N, 1=E, 2=S, 3=O) set {_direction} to 3 else if {_cosangle} is between 0.7 and 1: set {_direction} to 1 else if {_sinangle} is between 0.7 and 1: set {_direction} to 2 else: set {_direction} to 0 if horizontal facing of player is east: #On met un décalage en fonction de la direction du joueur remove 1 from {_direction} else if horizontal facing of player is south: remove 2 from {_direction} else if horizontal facing of player is west: remove 3 from {_direction} if {_direction} is smaller than 0: add 4 to {_direction} if {_direction} is 0: #On attribue une flèche set {_fleche} to "^" else if {_direction} is 1: set {_fleche} to ">" else if {_direction} is 2: set {_fleche} to "v" else if {_direction} is 3: set {_fleche} to "<" set score "%{_player}% %{_fleche.color}%%{_fleche}%" in sidebar of player to loop-number #On affiche la flèche avec le joueur approprié Voilà, là encore c'est sujet à test mais ça devrait marcher. Si tu as un problème ou une interrogation sur le code, hésite pas à demander ! (j'ai conscience que j'ai fais plus que résoudre le problème demandé mais j'avais du mal à repartir de ton code précédent)
  7. JDM

    Couleur persistante

    set {_lettres::*} to split {_message} at "" set {_miseenforme} to false set {_couleur} to "F" set {_souligne} to "" set {_barre} to "" set {_gras} to "" set {_italique} to "" loop {_lettres::*}: if loop-value is "§": set {_miseenforme} to true else if {_miseenforme} is true: set {_miseenforme} to false if "0123456789ABCDEFabcdef" contains loop-value: set {_couleur} to loop-value set {_souligne} to "" set {_barre} to "" set {_gras} to "" set {_italique} to "" else if "Nn" contains loop-value: set {_souligne} to "§n" else if "Ll" contains loop-value: set {_gras} to "§l" else if "Oo" contains loop-value: set {_italique} to "§o" else if "Mm" contains loop-value: set {_barre} to "§m" set {_message} to "XXXX #ITEM §%{_couleur}%%{_souligne}%%{_gras}%%{_italique}%%{_barre}% XXXXX" Code à tester ^^
  8. JDM

    Envoyer un message à une variable.

    Oui enfin c'était un exemple, en gros tu peux mettre un pseudo considéré comme du texte en tant que joueur. Par exemple, lors de beta-test sur des events qui n'ont pas de joueurs propres (ex : reload), tu peux faire : send "Code de test" to "TON PSEUDO" parsed as player
  9. JDM

    Couleur persistante

    set {_message} to "§7§oJe vend #ITEM à 8000PO" set {_couleur} to the first 2 characters of {_message} set {_message} to "§7§oJe vend #ITEM%{_couleur}% à 8000PO" La première ligne est pas obligatoire, c'est juste pour tester avec {_message} défini ^^
  10. JDM

    Envoyer un message à une variable.

    Sinon tu peux faire, dans le cas d'une variable qui contient un texte : send "&a%player%&7 vous défie en duel." to "%arg 2%" parsed as player En gros "parsed as player", ça veut dire "en considérant que c'est un joueur" ^^
  11. JDM

    Récup la tête d'un joueur comme linaris

    Je veux pas déprimer mais on peut lire ici que la fonction a été enlevée y a un bout de temps :/
  12. Non justement car il était voulu dans un premier temps uniquement la distance sur le plan X-Z (sans prendre en compte l'altitude) ^^
  13. set {_coordx1} to x-position of player set {_coordx2} to x-position of {player2} set {_distx} to {_coordx2}-{_coordx1} set {_coordz1} to z-position of player set {_coordz2} to z-position of {player2} set {_distz} to {_coordz2}-{_coordz1} --On récupère les coordonnées du vecteur Joueur1->Joueur2 set {_distxz} to sqrt of ({_distx}^2+{_distz}^2) -- Norme du vecteur set {_cosangle} to {_distx} / {_distxz} set {_sinangle} to {_distz} / {_distxz} if {_cosangle} is between -1 and -0.7: send "Direction O !" else if {_cosangle} is between 0.7 and 1: send "Direction E !" else if {_sinangle} is between 0.7 and 1: send "Direction S !" else: send "Direction N !" Ca devrait marcher pour les 4 directions ^^
  14. J'ai un code expérimental (non-testé) à proposer. Là aussi, je pense pas avoir fait dans la dentelle ^^' : set {_coordx1} to x-position of player set {_coordx2} to x-position of {player2} set {_distx} to {_coordx2}-{_coordx1} set {_coordz1} to z-position of player set {_coordz2} to z-position of {player2} set {_distz} to {_coordz2}-{_coordz1} --On récupère les coordonnées du vecteur Joueur1->Joueur2 set {_distxz} to sqrt of ({_distx}^2+{_distz}^2) -- Norme du vecteur set {_cosangle} to {_distx} / {_distxz} set {_sinangle} to {_distz} / {_distxz} if {_cosangle} is between -1 and -0.33: if {_sinangle} is between -1 and -0.33: send "Direction NO !" else if {_sinangle} is between -0.33 and 0.33: send "Direction O !" else: send "Direction SO !" else if {_cosangle} is between -0.33 and 0.33: if {_sinangle} is between -1 and -0.33: send "Direction N !" else if {_sinangle} is between -0.33 and 0.33: send "Direction X !" else: send "Direction S !" else: if {_sinangle} is between -1 and -0.33: send "Direction NE !" else if {_sinangle} is between -0.33 and 0.33: send "Direction E !" else: send "Direction SE !" Comment ça marche ? Pour ceux que ça intéresse, j'utilise la trigonométrie (cosinus et sinus sur le cercle trigonométrique) pour déterminer un encadrement de l'angle entre les deux joueurs. Je te laisse ajuster le message des directions pour indiquer une belle flèche, éventuellement inverser quelques directions (j'ai mis ces directions car elles me semblaient logique mais je pense que quelques ajustements devraient être nécessaires).
  15. Alors pour ton premier problème (tenir compte uniquement du X/Z), je peux te conseiller Pythagore, qui te permet d'obtenir la distance sur un plan 2D : set {_coordx1} to x-position of player set {_coordx2} to x-position of {player2} set {_distx} to {_coordx2} - {_coordx1} set {_coordz1} to z-position of player set {_coordz2} to z-position of {player2} set {_distz} to {_coordz2} - {_coordz1} set {_distxz} to sqrt of ({_distx}^2 + {_distz}^2) Et du coup tu obtiens la distance entre les deux joueurs en prenant juste compte de X et de Z. (quand tu incorpores ce code dans ton script, oublie pas l'incrémentation ^^) Pour la flèche, je réfléchis encore ^^
  16. JDM

    Probleme kit

    il ne faut pas que tu mettes "permission message" (cela n'est valable qu'au tout début de la commande, c'est inapproprié dans la commande que tu proposes). Pour afficher un message d'erreur, tu dois utiliser un else, comme indiqué plus haut. Respecte également l'indentation !
  17. JDM

    Probleme kit

    A mon avis, cela se ferait de cette manière : command /kit <text>: trigger: if arg 1 is "voleur": if player has permission "kit.voleur": --Tout le tralala d'équipement et de give send "&aTu as reçu le kit voleur !" else: send "&4Tu n'es pas un voleur !" else if arg 1 is "gardien": if player has permission "kit.gardien": --Tout le tralala d'équipement et de give send "&aTu as reçu le kit gardien !" else: send "&4Tu n'es pas un gardien !"
  18. JDM

    Help

    Pour plus d'optimisation et d'élégance, tu peux faire : command /start: trigger: loop 10 times: broadcast "Le Jeu commence dans %11 - loop-number% secondes !" wait 1 second broadcast "C'est parti !" (l'avantage est que tu peux facilement changer le temps entre chaque message, le nombre de secondes, si tu veux changer le message, etc)
  19. L'inconvénient du "wait 30 seconds", c'est que si le serveur crash au milieu, la suite ne sera jamais exécuté, ou si le joueur déco entre temps, ou même s'il se tp ... Pour plus de sécurité, je ferai ça comme ça : on death of player: set {respawn.world.%victim%} to world of victim set {respawn.gamemode.%victim%} to gamemode of victim heal victim set {respawn.temps.%victim%} to now execute command "gamemode spectator %victim%" wait 30 seconds teleport victim to spawn of {world.%victim%} execute command "gamemode %{gamemode.%victim%}% %victim%" clear {respawn.temps.%player%} on teleport: if {respawn.temps.%player%} is set: if difference between {respawn.temps.%player%} and now is smaller than 30 seconds: send "&4 > Tu viens de mourir ! Attend encore &c%difference between {respawn.temps.%player%} and now%&4 pour respawn !" cancel event on join: if {respawn.temps.%player%} is set: if difference between {respawn.temps.%player%} and now is smaller than 30 seconds: set {_dif} to difference between {respawn.temps.%player%} and now set {_dif2} to 30 seconds remove {_dif} from {_dif2} wait {_dif2} teleport victim to spawn of {world.%victim%} execute command "gamemode %{gamemode.%victim%}% %victim%" clear {respawn.temps.%player%} else: teleport victim to spawn of {world.%victim%} execute command "gamemode %{gamemode.%victim%}% %victim%" clear {respawn.temps.%player%} (ce code n'a pas été testé, à manipuler avec des pincettes !)
×
×
  • 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.