Type du skript : Récupérer la personne qui a lancé la grenade
Description du script :
Bonjour à tous !
J'ai créer un mini-jeux PvP sur mon serveur, ça se passe sur une map dédiée.
Les joueurs sont répartis en 2 équipes (rouge et bleu) et se font give automatiquement un arc, des flèches et 2 boules de neige qui font office de grenade. Mon Skript fonctionne très bien mais j'ai un souci avec les grenades.
En effet, il y a un compteur d'éliminations et de morts. Quand les éliminations sont faites à l'arc, le compteur fonctionne mais lorsque l'élimination est faite avec une grenade, je ne peux pas récupérer le joueur qui a lancé la grenade pour lui rajouter 1 élimination.
Voici le code que j'utilise pour la grenade :
on right click with snowball:
if event-item's name is "&c&lGrenade":
cancel event
shoot a snowball at speed 1
remove 1 snowball from player
on projectile hit:
if projectile is snowball: # named "&c&lGrenade" ne fonctionne pas
wait 1 seconds
create safe explosion of force 2 at location of projectile
loop all living entities in radius 4 around location of projectile:
damage loop-entity by 4
Et voici l'évènement "on death" pour le compteur d'éliminations et de morts :
on death:
clear drops
clear victim's inventory
if victim is in "hide_and_kill":
if damage cause is unknown:
set death message to ""
broadcast "&7%victim%&r s'est fait explosé" in "hide_and_kill"
#----------- Ne fonctionne pas -----------
add 1 to {hk.death::%victim's uuid%}
add 1 to {hk.kill::%attacker's uuid%}
#----------- /Ne fonctionne pas -----------
else if damage cause is projectile:
set death message to ""
broadcast "&7%attacker%&r a shooté &7%victim%" in "hide_and_kill"
add 1 to {hk.death::%victim's uuid%}
add 1 to {hk.kill::%attacker's uuid%}
else if damage cause is attack:
set death message to ""
broadcast "&7%attacker%&r a tapé &7%victim%" in "hide_and_kill"
add 1 to {hk.death::%victim's uuid%}
add 1 to {hk.kill::%attacker's uuid%}
Comme vous le voyez, j'utilise le damage cause "unknown" pour la grenade car aucun autre ne reconnait l'explosion.
Comment puis-je récupérer le joueur qui à lancé la grenade afin de mettre correctement le compteur d'éliminations à jour ?
PS : Dans l'évènement "on projectile hit", je ne peux pas lui demander si le projectile a bien le nom ""&c&lGrenade". Du coup, l'explosion se fait aussi avec les boules de neige normales. Une possibilité ?
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
Mec_Sympa
Version de Minecraft : 1.18.2
Version de Skript : 2.6.3
Addons utilisés: SkQuery, SkRayFall, script-db, SkBee
Type du skript : Récupérer la personne qui a lancé la grenade
Description du script :
Bonjour à tous !
J'ai créer un mini-jeux PvP sur mon serveur, ça se passe sur une map dédiée.
Les joueurs sont répartis en 2 équipes (rouge et bleu) et se font give automatiquement un arc, des flèches et 2 boules de neige qui font office de grenade. Mon Skript fonctionne très bien mais j'ai un souci avec les grenades.
En effet, il y a un compteur d'éliminations et de morts. Quand les éliminations sont faites à l'arc, le compteur fonctionne mais lorsque l'élimination est faite avec une grenade, je ne peux pas récupérer le joueur qui a lancé la grenade pour lui rajouter 1 élimination.
Voici le code que j'utilise pour la grenade :
on right click with snowball: if event-item's name is "&c&lGrenade": cancel event shoot a snowball at speed 1 remove 1 snowball from player on projectile hit: if projectile is snowball: # named "&c&lGrenade" ne fonctionne pas wait 1 seconds create safe explosion of force 2 at location of projectile loop all living entities in radius 4 around location of projectile: damage loop-entity by 4
Et voici l'évènement "on death" pour le compteur d'éliminations et de morts :
on death: clear drops clear victim's inventory if victim is in "hide_and_kill": if damage cause is unknown: set death message to "" broadcast "&7%victim%&r s'est fait explosé" in "hide_and_kill" #----------- Ne fonctionne pas ----------- add 1 to {hk.death::%victim's uuid%} add 1 to {hk.kill::%attacker's uuid%} #----------- /Ne fonctionne pas ----------- else if damage cause is projectile: set death message to "" broadcast "&7%attacker%&r a shooté &7%victim%" in "hide_and_kill" add 1 to {hk.death::%victim's uuid%} add 1 to {hk.kill::%attacker's uuid%} else if damage cause is attack: set death message to "" broadcast "&7%attacker%&r a tapé &7%victim%" in "hide_and_kill" add 1 to {hk.death::%victim's uuid%} add 1 to {hk.kill::%attacker's uuid%}
Comme vous le voyez, j'utilise le damage cause "unknown" pour la grenade car aucun autre ne reconnait l'explosion.
Comment puis-je récupérer le joueur qui à lancé la grenade afin de mettre correctement le compteur d'éliminations à jour ?
PS : Dans l'évènement "on projectile hit", je ne peux pas lui demander si le projectile a bien le nom ""&c&lGrenade". Du coup, l'explosion se fait aussi avec les boules de neige normales. Une possibilité ?
Merci à tous pour votre aide !
Modifié par Mec_Sympa4 réponses à cette question
Messages recommandés