Tutoriel [Skript] ENORME Tuto! Créez des plugins sans Java!

Nashoba04

Développeur
21 Décembre 2013
87
22
111
31
Tu peux annuler les dégâts d'un objet avec ce skript:
Code:
on damage:
    if attacker tool is OBJET:
        cancel event
Ou si tu veux juste réduire les dégâts:
Code:
on damage:
    if attacker tool is OBJET:
        set damage to NOMBRE DE DOMMAGE
Et pour ajouter un temps entre chaque utilisation tu vas devoir utiliser une variable qui enregistre la date au moment de l'utilisation et tester si la différence de temps entre maintenant et la variable et plus grande que le temps entre chaque utilisation
Exemple:
Code:
on rightclick holding stick:
    if difference between {stick.cooldown.%uuid of player%} and now is smaller than 1 minute:
        send "&cVous devez attendre 1 minute avant de pouvoir réutiliser le baton"
    else:
        set {stick.cooldown.%uuid of player%} to now
        #Tes Actions
 

Nashoba04

Développeur
21 Décembre 2013
87
22
111
31
Pour supprimer la variable qui contient une location (ou autre) tu fais:
clear {nom.de.la.variable}
 

Lougs

Nouveau
5 Avril 2015
20
0
4
21
Bonjour :)

Je recherche un skript pour que dans la tablist on voit son grade ainsi que son pseudo (exemple: [Modérateur] Lougs), pour les grades j'utilise permissions ex. J'ai mis ce skript là avec l'addons skrayfall
Code:
on join:
    If player has the permission "modo.use":
        set player tab name to "&9[Modérateur] %player%"
    If player has the permission "codeur.use":
        set player tab name to "&6[Codeur] %player%"
    If player has the permission "joueur.use":
        set player tab name to "&e[&6Joueur&e] %player%"
    If player has the permission "builder.use":
        set player tab name to "&2[Builder] %player%"
    If player has the permission "Fondateur.use":
        set player tab name to "&4[Fondateur] %player%"
    If player has the permission "Fondateur.use":
        set player tab name to "&4[You&ftubeur&4] %player%"
    If player has the permission "admin.use":
        set player tab name to "&c[Administrateur] %player%"
Le problème c'est que dans mon grade modérateur j'ai bien mis la permission modo.use mais cela ne fait rien.
Code:
  Moderateur:
    inheritance:
    - Seigneur
    permissions:
    - essentials.ban
    - essentials.kick
    - essentials.rules
    - essentials.kit.tools
    - essentials.warp
    - essentials.nick
    - essentials.save
    - essentials.warp
    - essentials.warplist
    - essentials.whois
    - essentials.compass
    - worldguard.god
    - worldedit.navigation.*
    - modo.use
Merci :)
 

Baptmix100

Mineur de charbon
27 Août 2015
51
0
26
18
Salut l'ami dis moi ça te dirait de m aider ? Si tu veux bien mon skype : baptiste60610

Je suis fondateur d une société et j en ai mare de tout coder tout seul voilà j attends ton invitation
 

Nashoba04

Développeur
21 Décembre 2013
87
22
111
31
@Lougs

Ce Skript marche très bien avec le plugin de base:

Code:
on join:
    if player has the permission "modo.use":
        set the player's tablist name to "&9[Modérateur] %player%"
    if player has the permission "codeur.use":
        set the player's tablist name to "&6[Codeur] %player%"
    if player has the permission "joueur.use":
        set the player's tablist name to "&e[&6Joueur&e] %player%"
    if player has the permission "builder.use":
        set the player's tablist name to "&2[Builder] %player%"
    if player has the permission "Fondateur.use":
        set the player's tablist name to "&4[Fondateur] %player%"
    if player has the permission "Fondateur.use":
        set the player's tablist name to "&4[You&ftubeur&4] %player%"
    if player has the permission "admin.use":
        set the player's tablist name to "&c[Administrateur] %player%"
Par contre je te conseille de faire attention au inheritance, car si pour le modo tu lui met l'inheritance du groupe joueur, il aura la permission "joueur.use" et donc le plugin va d'abord tester:
Il est modo? Oui
Il est codeur? Non
Il est Joueur? Oui
...

Et donc ton modo aura la dernière condition qui aura réussi pour lui.
Et puis je vois une erreur d'inattention, le grade Youtubeur à besoin de la même permission qu'un fondateur.

Pour éviter ce problème d'inheritance, je te conseille de faire les conditions avec les grades dans l'ordre décroissant et avec un "else if":

Code:
on join:
    if player has the permission "Fondateur.use":
        set the player's tablist name to "&4[Fondateur] %player%"
    else if player has the permission "admin.use":
        set the player's tablist name to "&c[Administrateur] %player%"
    else if player has the permission "modo.use":
        set the player's tablist name to "&9[Modérateur] %player%"
    else if player has the permission "codeur.use":
        set the player's tablist name to "&6[Codeur] %player%"
    else if player has the permission "Fondateur.use":
        set the player's tablist name to "&4[You&ftubeur&4] %player%"
    else if player has the permission "builder.use":
        set the player's tablist name to "&2[Builder] %player%"
    else if player has the permission "joueur.use":
        set the player's tablist name to "&e[&6Joueur&e] %player%"
 

Matdark2

Couteau Suisse humoriste
6 Août 2015
98
3
70
20
bonjour me servant beaucoup de ce tuto j'aurais une question:
comment détécter un joueur sur une location?
j'ai tenter ça mais je pense qu'avec beaucoup de joueur ça risquerait de faire chuter les fps (meme si tout seul ça marche)

command /setboost:
permission: setboost.sk
trigger:
set {boost} to targeted block
message "&a&lBoost &ainstallé"

command /removeboost:
permission: setboost.sk
trigger:
clear {boost}
message "&c&lBoost &csupprimé"


on any move:
apply speed 6 to all players in radius 1 of block at {boost} for 1 second
 

Nashoba04

Développeur
21 Décembre 2013
87
22
111
31
Tu pourrais mettre un évenement "every 5 ticks" (tous les quarts de seconde car 1 secondes vaut 20 ticks). Après je vois pas grand chose d'autre
 

Matdark2

Couteau Suisse humoriste
6 Août 2015
98
3
70
20
bonjour je cherchait a creer plusieur variables de location sans vraiment les creer par elle meme (tu vas comprendre ne t'inquiete pas)
J'aimerais creer plusieurs spawn dans un jeu sans définir vraiment le nombre possible de spawn:

Voici la commande que je voudrais changer:

command /setspawn1 <name>:
description: défini le spawn 1 de l'arene %arg-1%
trigger:
set {spawn1.%arg-1%} to the player location

voila toujours est il que je trouverais ça long de copier coller cette ligne en augmentant le nombre a chaque fois... est il possible, en jeu d'en creer a l'infini avec par exemple:

command /setspawn <name>:
description: défini un point de spawn de l'arene %arg-1%
trigger:
set {spawn.%arg-1%}

et donc faire cette commande autant de fois que l'on veut pour avoir plusieurs spawn?
 

Nashoba04

Développeur
21 Décembre 2013
87
22
111
31
Tu devrais créer une boucle qui test toutes les variables jusqu'à en trouver "vide". Voici un exemple de Skript:

Code:
command /setspawn <text>:
    description: défini un point de spawn de l'arene
    trigger:
        while {_fin} is not true:
            add 1 to {_loop}
            if {spawn.%argument 1%.%{_loop}%} is not set:
                set {_fin} to true
        set {spawn.%argument 1%.%{_loop}%} to player's location
        add {spawn.%argument 1%.%{_loop}%} to {spawn.list.%argument 1%::*} #Qui te permettra ensuite d'avoir une liste des spawn, pour téléporter aléatoirement ou au contraire, téléporter au début du jeu des joueurs à des spawns différents (si s'en ai un)
        send "&aSpawn défini avec l'id %{_loop}%" to player
        loop {spawn.list.%argument 1%::*}: #Utile si à un moment tu supprime des spawn
            add 1 to {_nb}
        send "&aIl y a en tout %{_nb}% point de spawn pour l'arène %argument 1%" to player