Aller au contenu

McLincoln2

Membre
  • Compteur de contenus

    90
  • Inscription

  • Dernière visite

  • Jours gagnés

    8
  • Crédits

    10 [Faire un don]

Tout ce qui a été posté par McLincoln2

  1. McLincoln2

    An internal error...

    Le nom de certains de tes coffres sont surement trop long.
  2. McLincoln2

    Scoreboards

    McLincoln2 updated Scoreboards with a new update entry: Variables Read the rest of this update entry...
  3. McLincoln2

    Scoreboards

    McLincoln2 submitted a new resource: [plain]Scoreboards[/plain] - [plain]Créer, éditer, afficher, vos scoreboards deviendra facile.[/plain] Requis: Skript 2.2, SkStuff, TuSKe et SkRayFall. [font=Trebuchet... Read more about this resource...
  4. Futur script de scoreboard (infinité de scoreboard, lignes configurable, actualisation en ticks, pouvoir changer de scoreboard, gui global).
  5. McLincoln2

    Mon API Skript-mc

    Tu aurais un exemple d'utilisation ou simplement la syntaxe ?
  6. Un skript regroupant plus de 500 têtes répartis en 9 catégories en 94 lignes, ça intéresse quelqu'un ?
  7. McLincoln2

    BuildSK

    McLincoln2 submitted a new resource: [plain]BuildSK[/plain] - [plain]Simplifier la vie des buildeurs[/plain] Dépendances: ■ TuSKe [***] ■ SkStuff [***] ■ Skellett... Read more about this resource...
  8. Remplace "cancel event" par "stop".
  9. Cet algorithme va permettre de récupérer les chunks autour d'un joueur ou d'une position. all (chunk|land)s in [a ]rectangle of %number% by %number% around (%player%|%location%) Pour mieux comprendre, on a ceci: [ATTACH=full]7943[/ATTACH] Dans notre expression ci-dessus nos valeurs sont bien stockées. Exemple d'utilisation de l'expression: loop all lands in a rectangle of arg 1 by arg 2 around player: loop all lands in a rectangle of arg 1 by arg 2 around location of player: Pour changer de chunk on ajoute 16 à la coordonnée X ou Z du joueur visé. Dans cet algorithme on va se placer dans un coin puis remonter jusqu'en haut. get plural expression all (chunk|land)s in [a ]rectangle of %number% by %number% around (%player%|%location%): set {_x} to (rounded down x-coordinate of expression 3)+0.5-16*(expression 1) set {_z} to (rounded down z-coordinate of expression 3)+0.5-16*(expression 2) loop (1+2*(expression 1)) times: set {_z2} to {_z} loop (1+2*(expression 2)) times: set {_chunk} to chunk at block at location ({_x}, 1, {_z2}) in world world of expression-3 add {_chunk} to {_chunks::*} add 16 to {_z2} add 16 to {_x} return {_chunks::*} Résultat: command /chunks [<number=1>] [<number=1>]: trigger: loop all lands in a rectangle of arg 1 by arg 2 around player: if "%loop-value%" is "%chunk at player%": broadcast "§a%loop-value%" else: broadcast "%loop-value%" Lors de l'exécution de la commande /chunks 1 1 on a: Le chunk lors de l'action est bien trouvé et on aura toujours autant de chunk avant et après (ici = 4)
  10. Bonjour, je poste la solution ici: Premièrement vous allez avoir besoin de skript-mirror Merci à @AlexLew pour son tutoriel. Ce script contient de nouvelles expressions. loop all registered uuid loop all registered players player with registered uuid %string% Ces expressions vont chercher des informations dans un fichier stockant "UUID et PSEUDO" de tous les joueurs se connectant sur votre serveur dans le but de pouvoir chercher les joueurs s'étant déjà connecté mais ne l'étant pas. Vous pouvez configurer la taille de la première page, des pages suivantes et du "mini" classement affiché sur les pages autre que la première. options: firstpagesize: 10 sizepage: 7 topsize: 4 Ce script s'applique dans le cas ou votre variable est enregistrée sur l'uuid comme '{navaria_money.%player's uuid%}'. Pour appliquer le script à votre variable il faut dans le cas ci-dessus faire ceci options: variable: navaria_money. En mettant tout ce qui précède %player's uuid%. Voilà le code.[spoiler=Plutôt court] options: firstpagesize: 10 sizepage: 7 topsize: 4 variable: navaria_money. # Permet d'avoir les UUID de tous les joueurs get plural expression all [registered] uuid: set {_uuid::*} to configuration section "registered" get of "Server/registered.yml" return {_uuid::*} # Permet d'avoir les PSEUDOS de tous les joueurs get plural expression all (offline players|registered players): loop all registered uuid: set {_p} to single value "registered.%loop-value%" get of "Server/registered.yml" add {_p} to {_players::*} return {_players::*} # Permet de retrouver un joueur avec son UUID get expression player with [registered] uuid %string%: set {_p} to single value "registered.%expression-1%" get of "Server/registered.yml" return "%{_p}%" join: loop all registered uuid: if loop-value is uuid of player: if single value "registered.%uuid of player%" get of "Server/registered.yml" is "%player%": stop set "registered.%uuid of player%" to "%player%" in yaml file "Server/registered.yml" command /balancetop [<integer = 1>]: aliases: /baltop trigger: loop all registered uuid: set {_copy::%loop-value%} to "%{{@variable}%loop-value%}%" # Stockage des données (montant, uuid) ensuite pour récupérer le joueur 'player with registered uuid loop-value' et non loop-index # Tri des données par ordre croissant while size of {_copy::*} is not 0: loop {_copy::*}: if {_maxv} is not set: set {_maxv} to loop-value parsed as number set {_maxi} to loop-index else if loop-value parsed as number is bigger or equal to {_maxv}: set {_maxv} to loop-value parsed as number set {_maxi} to loop-index add {_maxv} to {_value::*} add {_maxi} to {_index::*} do [clear {_copy::%{_maxi}%}]->[clear {_maxv}]->[clear {_maxi}] # Condition pour savoir si le rangement a bugué if size of {_value::*} is equal to (size of {_value::*} + size of {_index::*}) / 2: if argument is 1: set {_min} to 1 set {_max} to {@firstpagesize} else: set {_min} to 1 + {@firstpagesize} + {@sizepage}*arg - 2*{@sizepage} set {_max} to 1 + {@firstpagesize} + {@sizepage}*arg - {@sizepage} loop all numbers between {_min} and {_max}: if {_ok} is not set: if "%{_value::%loop-number%}%" is not "<none>": set {_ok} to true send "§f§m-----------------§f Page %arg% §f§m-----------------" to sender send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender else: send "§cLa page demandée n'a pas pu être affichée." to sender stop else if {_ok} is true: if "%{_value::%loop-number%}%" is not "<none>": send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender if argument is not 1: send "" to sender loop all numbers between 1 and {@topsize}: send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender execute console command "/tellraw %sender% {text:""Clique ici pour afficher la page suivante"",clickEvent:{action:run_command,value:""/baltop %arg + 1%""},hoverEvent:{action:show_text,value:""Clic""}}" else: send "§cLa page demandée n'a pas pu être affichée." to sender Cas d'utilisation: 16 joueurs enregistrés Bonne utilisation. (pti like)
  11. Je vais te faire ça.
  12. McLincoln2

    Faire flotter un objet

    A testé :eek: En vrai, s'ils le disent c'est que c'est vrai.
  13. McLincoln2

    Faire flotter un objet

    Ces données sont en ticks, en secondes ? Si c'est en seconde, il faut 546 heures pour récupérer l'item, je pense que c'est suffisant :p
  14. Tutoriel pour faire un bon système de page posté.
  15. Je vais passer par une fonction mais il est possible de faire la même chose avec une commande function Page(page: number,joueur: player) Valeurs des options: {_page} : la page que l'on souhaite affichée {_joueur} : le joueur à qui on affiche la page Je note Y la hauteur que l'on dispose et X la quantité à afficher. X : number Y : number Dans notre fonction Page il faut logiquement saisir une page existante. Je note nP, le nombre de page existante. nP = rounded up (X / (Y * 9)) On aura une valeur de {_page} variant de 1 à nP, première condition de notre code trouvée function Page(page: number,joueur: player): if check [{_page} is bigger than 0]->[{_page} is smaller or equal to rounded up (X / (Y * 9))]: Admettons nos éléments X sont stockés dans une liste. Il faut donc afficher seulement les bons éléments et ne pas dépasser dans notre inventaire. Pour cela on doit définir un intervalle avec comme bornes les limites à dépasser et à ne pas dépasser: set {_index} to 0 # à chaque nouvelle boucle on ajoute 1 loop {notreliste::*}: # code non dévoilé add 1 to {_index} On aura donc comme borne [{_page} * (Y * 9) - Y * 9 ; {_page} * Y * 9[ Exemple avec une hauteur de 4 et une page de 3: [3 * (5 * 9) - 5 * 9 ; 3 * 5 * 9[ [90 ; 135[ 5 * 9 = 45 135 - 90 = 45 Ajout des conditions dans notre fonction: function Page(page: number,joueur: player): if check [{_page} is bigger than 0]->[{_page} is smaller or equal to rounded up (X / (Y * 9))]: set {_index} to 0 loop {notreliste::*}: if {_index} >= {_page} * (Y * 9) - Y * 9: if {_index} < {_page} * Y * 9: # create a gui slot {_index} - (Y * 9)*({_page} - 1} of {_joueur} ... add 1 to {_index} Bonus: Faire des items pour changer les pages: Condition pour savoir si la page {_page} n'est pas la dernière pas: if rounded up (size of {notreliste::*} / (Y * 9 - 9)) is bigger than {_page}: Condition pour savoir si la page {_page} est la dernière: if rounded up (size of {notreliste::*} / (Y * 9 - 9)) is equal to {_page}: Condition pour savoir si il y a plus d'une page disponible: if rounded up (size of {notreliste::*} / (Y * 9 - 9)) is bigger than 1: On intègre cela dans notre code et c'est terminé, vous pouvez bien sûr ajouter des conditions si vous le souhaitez, ceci est juste le minimum pour avoir un système de page fonctionnel: Code entier:[spoiler=Ouvrir] function Page(page: number,joueur: player): if check [{_page} is bigger than 0]->[{_page} is smaller or equal to rounded up (X / (Y * 9))]: set {_index} to 0 loop {notreliste::*}: if {_index} >= {_page} * (Y * 9) - Y * 9: if {_index} < {_page} * Y * 9: # create a gui slot {_index} - (Y * 9)*({_page} - 1} of {_joueur} ... add 1 to {_index} if rounded up (size of {notreliste::*} / (Y * 9 - 9)) is bigger than {_page}: set {_next} to {_page} + 1 # create a gui slot <slot> of {_joueur} with <item> to run function Page({_next}, sender) else if rounded up (size of {notreliste::*} / (Y * 9 - 9)) is equal to {_page}: if rounded up (size of {notreliste::*} / (Y * 9 - 9)) is not 1: # create a gui slot <slot> of {_joueur} with <item> to run function Page(1, sender) Code pour tester: function Page(page: number,joueur: player): if check [{_page} > 0]->[{_page} is smaller or equal to rounded up (size of {var::*} / (5 * 9))]: if inventory name of current inventory of {_joueur} is not "§cPage %{_page}%/%rounded up (size of {var::*} / (5 * 9))%": open virtual chest inventory with size 6 named "§cPage %{_page}%/%rounded up (size of {var::*} / (5 * 9))%" to {_joueur} wait 3 ticks set {_index} to 0 loop {var::*}: if {_index} >= {_page} * (5 * 9) - 5 * 9: if {_index} < {_page} * 5 * 9: create a gui slot {_index} - (5 * 9) * ({_page} - 1) of {_joueur} with "%loop-value%" parsed as number of stone to do Nothing add 1 to {_index} if rounded up (size of {var::*} / (5 * 9 - 9)) is bigger than {_page}: set {_next} to {_page} + 1 create a gui slot 45 of {_joueur} with paper to run function Page({_next}, {_joueur}) else if rounded up (size of {var::*} / (5 * 9 - 9)) is not 1: create a gui slot 45 of {_joueur} with paper to run function Page(1, {_joueur}) command /var: trigger: loop a random integer between 123 and 321 times: add a random integer between 0 and 9 to {var::*} command /menu: trigger: Page(1, sender) command /clearvar: trigger: size of {var::*} is not 0 clear {var::*}
  16. J'ai fais cela toute à l'heure ca peut t'intéresser, surement:[spoiler=Code] options: cmd_money: /money start: 30 page_size: 8 first join: if {money::%uuid of player%} is not set: execute console command "{@cmd_money} create %player%" else: if "%{money::%uuid of player%}%" is not "%player%": set {money::%uuid of player%} to "%player%" send "§bTransfert de votre ancien compte bancaire." to player join: if {money::%uuid of player%} is not set: execute console command "{@cmd_money} create %player%" else: if "%{money::%uuid of player%}%" is not "%player%": set {money::%uuid of player%} to "%player%" send "§bTransfert de votre ancien compte bancaire." to player command {@cmd_money} [<text>] [<text>] [<text>]: trigger: if argument 1 is "help" or "h" or "?": if argument 2 parsed as number is set: add "§b{@cmd_money} h,help,?§3 [page=1]§f affiche l'aide" to {_commands::*} add "§b{@cmd_money} create§3 <uuid>§f créer un compte." to {_commands::*} add "§b{@cmd_money} del,delete§3 <uuid>§f supprimer un compte." to {_commands::*} add "§b{@cmd_money} give/take/set§3 <uuid> <amount>§f faire varier le montant d'un compte." to {_commands::*} add "§b{@cmd_money}§3 <uuid=you>§f voir l'argent d'un joueur." to {_commands::*} add "§b{@cmd_money} top§3 [page=1]§f voir le classement." to {_commands::*} if argument 2 parsed as number is bigger than 0: if argument 2 parsed as number is smaller or equal to rounded up (size of {_commands::*} / {@page_size}): send "§8§m-------------------------%nl%§8Page %argument 2 parsed as number%/%rounded up (size of {_commands::*} / {@page_size})%" to sender loop {_commands::*}: send "%loop-value%" to sender send "§8§m-------------------------" to sender else: send "§cErreur: La page demandée n'a pas pu être affichée." to sender else: send "§cErreur: La page demandée n'a pas pu être affichée." to sender else: execute sender command "{@cmd_money} ? 1" else if argument 1 is "create": if argument 2 parsed as player is set: execute sender command "{@cmd_money} create %uuid of argument 2 parsed as player%" else if argument 2 is set: loop all players: if "%uuid of loop-player%" is "%argument 2%": set {_found} to "%loop-player%" exit loop if {_found} is set: if {money::%argument 2%} is not set: set {money::%argument 2%} to "%{_found}%" if {money::%argument 2%::value} is not set: set {money::%argument 2%::value} to {@start} send "§bCréation du compte:§3 %{_found}% --> {@start}$%nl%§bChemin d'accès:§f %argument 2%" to sender and "%{_found}%" parsed as player else: send "§cErreur: Ce compte bancaire existe déjà." to sender else: send "§cErreur: Aucun joueur connecté n'est associé à cet UUID." to sender else: send "§cErreur: {@cmd_money} h,help,? [page=1] pour afficher l'aide." to sender else if argument 1 is "del" or "delete": if argument 2 is set: if "%argument 2%" parsed as offline player is online: if {money::%uuid of argument 2 parsed as offline player%} is set: clear {money::%uuid of argument 2 parsed as offline player%::value} clear {money::%uuid of argument 2 parsed as offline player%} send "§bSuppression du compte bancaire§3 %argument 2%§b effecutée.%nl%§bAncien chemin:§f %uuid of argument 2 parsed as offline player%" to sender and argument 2 parsed as offline player else: send "§cErreur: Ce compte bancaire n'existe pas." to sender else: loop {money::*}: if "%loop-value%" is "%argument 2 parsed as offline player%": set {_found} to "%loop-index%" exit loop if {_found} is set: clear {money::%uuid of argument 2 parsed as offline player%::value} clear {money::%uuid of argument 2 parsed as offline player%} send "§bSuppression du compte bancaire§3 %argument 2%§b effecutée.%nl%§bAncien chemin:§f %uuid of argument 2 parsed as offline player%" to sender else: send "§cErreur: Ce compte bancaire n'existe pas." to sender else: send "§cErreur: {@cmd_money} h,help,? [page=1] pour afficher l'aide." to sender else if argument 1 is "take" or "give" or "set": if argument 2 is set: if argument 3 parsed as number is set: loop {money::*}: if "%loop-value%" is "%argument 2 parsed as offline player%": set {_found} to "%loop-index%" exit loop if {_found} is set: if argument 1 is "take": if {money::%uuid of argument 2 parsed as offline player%::value} is bigger or equal to argument 3 parsed as number: set {_money} to argument 3 parsed as number * -1 else if argument 1 is "give": set {_money} to argument 3 parsed as number if argument 1 is "take" or "give": if "%sender%" is not "%argument 2%": send "§bNouveau montant du joueur§3 %argument 2%§b:§3 %{money::%uuid of argument 2 parsed as offline player%::value} + {_money}%$%nl%§f%{_money}%$" to sender and argument 2 parsed as player else: send "§bNouveau montant du joueur§3 %argument 2%§b:§3 %{money::%uuid of argument 2 parsed as offline player%::value} + {_money}%$%nl%§f%{_money}%$" to sender set {money::%uuid of argument 2 parsed as offline player%::value} to {money::%uuid of argument 2 parsed as offline player%::value} + {_money} else if argument 3 parsed as number is bigger or equal to 0: if "%sender%" is not "%argument 2%": send "§bNouveau montant du joueur§3 %argument 2%§b:§3 %argument 3 parsed as number%$" to sender and argument 2 parsed as player else: send "§bNouveau montant du joueur§3 %argument 2%§b:§3 %argument 3 parsed as number%$" to sender set {money::%uuid of argument 2 parsed as offline player%::value} to argument 3 parsed as number else: send "§cErreur: Un compte bancaire ne peut être négatif." to sender else: send "§cErreur: Ce compte bancaire n'existe pas." to sender else: send "§cErreur: {@cmd_money} h,help,? [page=1] pour afficher l'aide." to sender else: send "§cErreur: {@cmd_money} h,help,? [page=1] pour afficher l'aide." to sender else if argument 1 is "top": if argument 2 parsed as number is set: if argument 2 parsed as number is bigger than 0: if argument 2 parsed as number is smaller or equal to rounded up (size of {money::*} / {@page_size}): loop {money::*}: set {_liste::%loop-value%} to {money::%loop-index%::value} while size of {_liste::*} is not 0: loop {_liste::*}: if {_max} is not set: set {_max} to loop-value set {_index} to loop-index else if loop-value is bigger or equal to {_max}: set {_max} to loop-value set {_index} to loop-index clear {_liste::%{_index}%} add {_max} to {_value::*} add {_index} to {_account::*} do [clear {_max}]->[clear {_index}] set {_index} to 0 send "§8§m-------------------------%nl%§8Page %argument 2 parsed as number%/%rounded up (size of {money::*} / {@page_size})%" to sender loop size of {money::*} times: if {_index} >= argument 2 parsed as number * {@page_size} - {@page_size}: if {_index} < argument 2 parsed as number * {@page_size}: set {_checked} to {_index} + 1 send "§b##%{_checked}% - %{_account::%{_checked}%}%:§f %{_value::%{_checked}%}%$" to sender else: exit loop add 1 to {_index} send "§8§m-------------------------" to sender else: send "§cErreur: La page demandée n'a pas pu être affichée." to sender else: send "§cErreur: La page demandée n'a pas pu être affichée." to sender else: execute sender command "{@cmd_money} %argument 1% 1" else if argument 1 is not set: execute sender command "{@cmd_money} %player%" else: loop {money::*}: if "%{money::%uuid of argument 1 parsed as offline player%}%" is "%argument 1%": set {_found} to loop-index exit loop if {_found} is set: send "§bArgent de§3 %argument 1%§b:§f %{money::%uuid of argument 1 parsed as offline player%::value}%$" to sender else: send "§cErreur: Ce compte bancaire n'existe pas." to sender Code testé et fonctionnel, bonne journée.
  17. Si ça peut t'aider à faire un shop, je t'invite à télécharger mon script "virtualshop.sk": [Contenu masqué] Lis bien la description pour comprendre comment configurer le script. Bonne journée.
  18. click: if "%targeted block%" is "emerald block": if distance between targeted block and player is smaller than 3: send "§cVous êtes passer en Zombie" to player Ici, il faut être à moins de 3 blocs pour passer en mode zombie.
  19. McLincoln2

    Push un joueur

    Pour changer le message quand un joueur rejoint le serveur, il faut: on join: set join message to "message" on first join: set join message to "message" Cordialement, McLincoln2
  20. McLincoln2

    Push un joueur

    Si tu veux pousser le joueur dans sa direction, tu peux faire ça: push player in direction of player with force 1 Cordialement, McLincoln2
  21. Un skript pour enregistrer des sessions de minages pour les rejouer après ça tente quelqu'un ?
  22. set message to "%{_C}%%{_T}%."
  23. McLincoln2

    inscriptions

    on first join: add 1 to {new.joueurs}
×
×
  • 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.