Aller au contenu

Messages recommandés

Posté(e) (modifié)

Version de Minecraft : 1.7.10

Description du script :

Bonjour, Bonsoir ( tout dépend de l'heure 😛 )

J'aimerais un skript de freeze et d'unfreeze du style 

/freeze ( pseudo )

Sauf que je souhaite que le joueur se retrouve avec un bloc de glace sur la tête lorsqu'on le /freeze

Aucun des skript sur le forum ne correspond a mes attentes.

 

Je vous remercie d'avance pour votre aide 🙂

 

Bonne soirée ou journée ( tout dépend encore de l'heure 😛 )

( Edit : Si vous avez ' la flemme ' d'en faire un vous pouvez me conseillez des tutos ou autres ) 🙂

 

Modifié par Momoo
Posté(e)

Salut !

Je pense que le code peut potentiellement être optimisé mais j'ai essayé de penser un minimum au côté pratique, j'ai mis quelques commentaires qui, je pense, suffiront à te faire comprendre comment le code marche.

 

La commande /freeze admet un seul argument qui est un pseudo de joueur.

Si le joueur mentionné n'est pas encore freeze, cela va le freeze, puis ca va sauvegarder son casque actuellement porté dans une variable qui lui est propre, et pour finir va lui mettre un bloc de glace sur la tête.
Si le joueur est déjà freeze, alors la commande va l'unfreeze et lui restituer son casque initialement porté.

Si le joueur freezed essaye de faire le moindre mouvement, celui-ci sera annulé. (À noter que si le joueur est dans les airs, cela le figera en lévitation)

Pour prévenir de potentiel bug ou autre, j'ai mis qu'après un reload (du skript, pas forcément du serveur) tous les joueurs sont unfreeze.

 

J'ai aussi fait une courte vidéo qui montre le rendu en jeu, il est évidemment possible pour toi de facilement modifier le code (par exemple envoyer un message au joueur pour le prévenir qu'il vient d'être freeze/unfreeze)

https://www.youtube.com/watch?v=eXDzlPu8lVI

command /freeze [<player>]:
    permission: sk.freeze
    trigger:
        if arg 1 is not set:
            send "&b&lFreeze | &fIl faut entrer le pseudo d'un joueur"
        else:
            # Si le joueur n'est pas encore freeze
            if {%arg-1%::freezed} is false:
                set {%arg-1%::freezed} to true
                send "&b&lFreeze | &fLe joueur (&b%arg-1%&f) a bien ete freeze"

                # Pour permettre au joueur de récupérer son casque après le freeze
                set {%arg-1%::saved-helmet} to player's helmet
                set helmet of arg 1 to ice

            # Si le joueur est actuellement freeze
            else if {%arg-1%::freezed} is true:
                set {%arg-1%::freezed} to false
                send "&b&lFreeze | &fLe joueur (&b%arg-1%&f) a bien ete unfreeze"

                # Là on vérifie si il avait déjà un casque qu'on a save
                if {%arg-1%::saved-helmet} is set:
                    # Alors on le lui rend
                    set helmet of arg 1 to {%arg-1%::saved-helmet}
                else:
                    delete player's helmet

on load:
    loop all players:
        set {%loop-value%::freezed} to false

        # Même chose que pour le defreeze, c'est pour restituer les potentiels casques
        if {%loop-value%::saved-helmet} is set:
            set helmet of loop-value to {%loop-value%::saved-helmet}

on any movement:
    if {%player%::freezed} is true:
        cancel event

 

Bonne journée ! 😄

freeze.sk

  • J'aime 1
  • Oui 1
Posté(e)

Désolé du temps de réponse, je n'etait pas trop disponible, mais merci pour ton plugin et ta réponse rapide !

 

Bonne journée 🙂

 

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.