Aller au contenu
  • 0

Question

Posté(e) (modifié)

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_Sympa

4 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Il y a 16 heures, Enrique45210 a dit :

Tu as block explosion pour damage cause

Bonjour @Enrique45210 !

Comme je l'expliquais dans mon post, aucun autre "damage cause" ne reconnait l'explosion. Le "block explosion" ne fonctionne malheureusement pas, je pense que c'est du au fait que je créer une explosion via Skript.

create safe explosion of force 2 at location of projectile

 

  • 0
Posté(e) (modifié)

Je t'avoue ne pas pouvoir faire de essaie tout de suite.

Salut, le projectile que tu lances et une entité. Ce qui veut dire que tu peux lui attribué directement un variable propre (par exemple: {tavariable::%spawned entity%}).
Et par conséquent, quand le joueur est hit par ce projectile tu peux récupérer le pseudo et l'attaquant et le stocker dans une variable (par exemple: {attacker::%victim%}).

Maintenant, hors cela récupérer les victimes de ta safe explosion je n'ai pas trop d'idée.
Peut être récupérer les joueurs présent dans un rayon de 3*3 par rapport au lieu ou le projectile à atterrit et donc leurs setup pareil une variable avec le pseudo de l'attacker.

En espérant t'avoir un peu aider. Bonne journée/soirée 🙂

Modifié par Nam2Syy
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.