Version de Minecraft : 1.15.2 Version de Skript : 2.4.1
Addons utilisés:Skelett & SkQuery
Type du skript : Script de commandes successives avec annulation d'événements en cas de déconnexion du joueur cible.
Description du script :
Bonjour,
Étant actuellement au développement d'un serveur jeu de rôle Minecraft, je me permets aujourd'hui de solliciter de l'aide sur ce forum en ce qui concerne la réalisation d'un script, sur lequel je rencontre un souci en particulier.
Je m'explique. Ce script a pour objectif de faire s'exécuter plusieurs commandes pour notamment emprisonner le joueur cible (défini tel que « arg-1 »), ainsi que de lui affecter plusieurs effets de potion, textes...
Ayant effectué plusieurs essais - notamment avec quelques cobayes car je suis un peu sadique - je me suis aperçu par la suite que les commandes s'exécutaient même après la déconnexion du joueur.
Ainsi, lorsque ce dernier revient sur le serveur, les événements reliés à la commande s'affectent toujours sur ce dernier.
À l'issue de nombreuses recherche effectuées, et plusieurs tests orchestrés, je constate malencontreusement que malgré tous mes essais, je ne parviens pas à empêcher ces mêmes commandes de s'exécuter après déco / reco.
Voici le script en question :
command /malus [<text>] [<player>]:
trigger:
if player doesn't have permission "malus.execute":
message "&5Vous n'avez pas assez de puissance afin d'accomplir cette/ces action(s)."
stop trigger
if arg 1 is not "danger" or "prison":
message "Mauvaise commande, veuillez choisir entre prison / danger."
stop trigger
if arg 1 is "danger":
if arg 2 is not set:
message "&5Veuillez choisir une cible."
stop trigger
if arg 1 and arg 2 are set:
message "&cLe danger rôde autour de vous. Vous n'êtes pas en sécurité !" to arg 2
message "&7Message envoyé à la cible : &cLe danger rôde autour de vous. Vous n'êtes plus en sécurité ! &7(%arg-2%&7)" to player
wait 20 ticks
play sound "block.bell.resonate" to arg 2
execute console command "/effect give %arg-2% minecraft:blindness 60 1 true"
wait 200 ticks
execute console command "/effect give %arg-2% minecraft:nausea 10 1 true"
wait 60 ticks
execute console command "/effect give %arg-2% minecraft:slowness 30 1 true"
wait 60 ticks
play sound "entity.ender_dragon.growl" to arg 2
wait 200 ticks
ignite arg 2 for 10 seconds
if arg 1 is "prison":
if arg 2 is not set:
message "&5Veuillez choisir une cible."
stop trigger
if arg 1 and arg 2 are set:
{malus.%arg-1%} is false:
stop trigger
broadcast "Echec (test)"
{malus.%arg-1%} is true:
message "&cVous sentez que vous n'êtes pas seul. Quelque chose, ou quelqu'un, vous observe. Vous vous sentez mal à l'aise... vous commencez à paniquer." to arg 2
message "&7Message envoyé à la cible : &cVous sentez que vous n'êtes pas seul. Quelque chose, ou quelqu'un, vous observe. Vous vous sentez mal à l'aise... vous commencez à paniquer." to player
wait 200 ticks
execute console command "/effect give %arg-2% minecraft:nausea 15 2 true"
execute console command "/effect give %arg-2% minecraft:blindness 999 2 true"
wait 200 ticks
execute console command "/effect give %arg-2% minecraft:hunger 5 10 true"
wait 60 ticks
send title "&8..." to arg 2 for 3 seconds
execute console command "/sudo %arg-2% me est mal en point..."
wait 100 ticks
send title "&4Vous êtes observé." to arg 2 for 3 seconds
execute console command "/effect give %arg-2% minecraft:instant_health 5"
execute console command "/strike %arg-2%"
wait 20 ticks
execute console command "/strike %arg-2%"
wait 100 ticks
execute console command "/jail %arg-2% cellule1 2m"
wait 20 ticks
set {_num} to 0
loop 36 times:
set {lastinv::%arg-2%::%{_num}%} to slot {_num} of arg 2's inventory
add 1 to {_num}
set {lastinv::helm::%arg-2%} to arg 2's helmet
set {lastinv::chest::%arg-2%} to arg 2's chestplate
set {lastinv::legs::%arg-2%} to arg 2's legging
set {lastinv::boots::%arg-2%} to arg 2's boots
wait 20 ticks
clear arg 2's inventory
wait 20 ticks
execute console command "/playsound minecraft:block.anvil.land master %arg-2% 0 0 0 2 0.1 1"
wait 200 ticks
message "&aIls font... quelque chose... que se passe-t-il ?" to arg 2
wait 100 ticks
message "&aEst-ce un mauvais rêve ? Je suis... perdu..." to arg 2
wait 160 ticks
message "&aJe... je ne me sens pas très bien..." to arg 2
wait 200 ticks
execute console command "/sudo %arg-2% c:Hé ! laissez-moi sortir !"
wait 160 ticks
execute console command "/sudo %arg-2% c:Il y a quelqu'un ? Hé ho ?"
wait 160 ticks
execute console command "/sudo %arg-2% c:C'est pas drôle, hein ! Allez bordel ! Laissez-moi sortir, là, maintenant !"
wait 100 ticks
message "&aIls ne me laisseront pas sortir décidément... que ce que ?" to arg 2
wait 80 ticks
execute console command "/effect give %arg-2% minecraft:poison 20 1"
execute console command "/effect give %arg-2% minecraft:confusion 20 1 true"
message "&aBordel, je me suis fait empoisonn..." to arg 2
wait 200 ticks
execute console command "/unjail %arg-2%"
wait 20 ticks
set {_num} to 0
loop 36 times:
set slot {_num} of arg 2's inventory to {lastinv::%arg-2%::%{_num}%}
add 1 to {_num}
set arg 2's helmet to {lastinv::helm::%arg-2%}
set arg 2's chestplate to {lastinv::chest::%arg-2%}
set arg 2's leggings to {lastinv::legs::%arg-2%}
set arg 2's boots to {lastinv::boots::%arg-2%}
wait 20 ticks
execute console command "/effect clear %arg-2%"
on join:
{malus.%player%} is true:
set {malus.%player%} to false
wait 2 second
execute console command "/mv tp %player% world"
broadcast "&2[&5Action avortée&2] &5Vous avez fui durant une action scénaristique."
clear {malus.%player%}
Ici, j'ai voulu tenter d'assigner la donnée {malus.%arg 1%} en true si le joueur ne se déconnecte pas, ce qui permet aux commandes suivantes d'avoir lieu.
Si le joueur se déconnecte, et revient lors de « on join », je souhaiterai alors que la donnée en question puisse me permettre de faire s'exécuter les commandes présentes à partir de « execute console command "/mv tp %player% world" » pour faire cesser le /malus.
Je précise au passage que j'ai débuté Skript il y a de cela quelques jours seulement. J'émets ici cette requête du fait simple que je risque d'avoir à me servir de ce type de commande de manière assez régulière, et afin d'empêcher tout abus ou bug de la part des joueurs, il me faudrait être en mesure de corriger ce code.
Je remercie d'avance toute personne pouvant éventuellement m'assister dans cette démarche.
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.
Question
Liock
Version de Minecraft : 1.15.2
Version de Skript : 2.4.1
Addons utilisés: Skelett & SkQuery
Type du skript : Script de commandes successives avec annulation d'événements en cas de déconnexion du joueur cible.
Description du script :
Bonjour,
Étant actuellement au développement d'un serveur jeu de rôle Minecraft, je me permets aujourd'hui de solliciter de l'aide sur ce forum en ce qui concerne la réalisation d'un script, sur lequel je rencontre un souci en particulier.
Je m'explique. Ce script a pour objectif de faire s'exécuter plusieurs commandes pour notamment emprisonner le joueur cible (défini tel que « arg-1 »), ainsi que de lui affecter plusieurs effets de potion, textes...
Ayant effectué plusieurs essais - notamment avec quelques cobayes car je suis un peu sadique - je me suis aperçu par la suite que les commandes s'exécutaient même après la déconnexion du joueur.
Ainsi, lorsque ce dernier revient sur le serveur, les événements reliés à la commande s'affectent toujours sur ce dernier.
À l'issue de nombreuses recherche effectuées, et plusieurs tests orchestrés, je constate malencontreusement que malgré tous mes essais, je ne parviens pas à empêcher ces mêmes commandes de s'exécuter après déco / reco.
Voici le script en question :
Ici, j'ai voulu tenter d'assigner la donnée {malus.%arg 1%} en true si le joueur ne se déconnecte pas, ce qui permet aux commandes suivantes d'avoir lieu.
Si le joueur se déconnecte, et revient lors de « on join », je souhaiterai alors que la donnée en question puisse me permettre de faire s'exécuter les commandes présentes à partir de « execute console command "/mv tp %player% world" » pour faire cesser le /malus.
Je précise au passage que j'ai débuté Skript il y a de cela quelques jours seulement. J'émets ici cette requête du fait simple que je risque d'avoir à me servir de ce type de commande de manière assez régulière, et afin d'empêcher tout abus ou bug de la part des joueurs, il me faudrait être en mesure de corriger ce code.
Je remercie d'avance toute personne pouvant éventuellement m'assister dans cette démarche.
22 réponses à cette question
Messages recommandés