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 !