Aller au contenu
  • 0

HeadShot


Question

Posté(e)

Version minecraft: 1.7.10

Version Skript: 2.1.2

Addons: SkQuery - SkRayFall - SkMorkaz

 

Bonjour,

 

J'ai fais des recherches mais rien ne correspondait.

Je souhaite detecter quand un joueur ce prend un headshot.

 

Merci

 

Kriiista

13 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Version minecraft: 1.7.10

Version Skript: 2.1.2

Addons: SkQuery - SkRayFall - SkMorkaz

 

Bonjour,

 

J'ai fais des recherches mais rien ne correspondait.

Je souhaite detecter quand un joueur ce prend un headshot.

 

Merci

 

Kriiista

 

Essaye :

If player's head y-coordinate is projectile's y-coordinate:

absolument pas sur que ça marche, j'ai trouvé ça autre part.

  • 0
Posté(e)
Essaye :
If player's head y-coordinate is ptojectile's y-coordinate:

absolument pas sur que ça marche, j'ai trouvé ça autre part.

Oui je vois d'où tu l'as pris, t'as même fait la même erreur "ptojectile's". Et non ça ne marche pas, sa be reconnait pas la condition.

 

PS: Quand je dis que j'ai déjà fais des recherches c'est que j'en ai fais xD

  • 0
Posté(e)
Oui je vois d'où tu l'as pris, t'as même fait la même erreur "ptojectile's". Et non ça ne marche pas, sa be reconnait pas la condition.

 

PS: Quand je dis que j'ai déjà fais des recherches c'est que j'en ai fais xD

 

Désoler, y'a tellement de personne qui disent qu'ils ont vraiment chercher mais don't il suffit de chercher 5s pour trouver la solution XD. Sinon bonne chance à toi...

  • 0
Posté(e)

Salut, après avoir vue ton poste j'ai essayer de trouver un moyen, je me suis un peu creusé la tête et j'ai codé ça, qui fonctionne pour moi x) J'espère donc qu'il fonctionne pour toi =)

 

on projectile hit: 
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           broadcast "C'est un Head-Shot"

 

Voilà, j'espère que ça t'ira ^^

  • 0
Posté(e)
Salut, après avoir vue ton poste j'ai essayer de trouver un moyen, je me suis un peu creusé la tête et j'ai codé ça, qui fonctionne pour moi x) J'espère donc qu'il fonctionne pour toi =)

 

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           broadcast "C'est un Head-Shot"

 

Voilà, j'espère que ça t'ira ^^

Merci j'essaie ça tout de suite !

 

 

 

[MESSAGE FUSIONNE]

 

 

Salut, après avoir vue ton poste j'ai essayer de trouver un moyen, je me suis un peu creusé la tête et j'ai codé ça, qui fonctionne pour moi x) J'espère donc qu'il fonctionne pour toi =)

 

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           broadcast "C'est un Head-Shot"

 

Voilà, j'espère que ça t'ira ^^

OMG ça marche! Le seul et dernier problème, c'est que

Salut, après avoir vue ton poste j'ai essayer de trouver un moyen, je me suis un peu creusé la tête et j'ai codé ça, qui fonctionne pour moi x) J'espère donc qu'il fonctionne pour toi =)

 

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           broadcast "C'est un Head-Shot"

 

Voilà, j'espère que ça t'ira ^^

Ça fonctionne ! Le seul problème c'est que comme tu loop tout les joueurs, sa envoie "C'est un Head-Shot" <nombre de joueur sur le serveur> fois de suite. Donc s'il y a 2 joueurs sur le serveur, sa va broadcast 2 fois.

 

Comme je veux pas 'broadcast', je souhaite que sa l'envoie seulement à celui qui a tiré.

 

J'ai rien compris à ton code donc pourrais tu corrigé STP?

 

Kriiista

  • 0
Posté(e)

Et bien pour cela faut envoyer un message au shooter comme ceci:

 

on projectile hit: 
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           if loop-player is not shooter:
               set {headshoot.projectil} to true
   if {headshoot.projectil} is set:
       delete {headshoot.projectil}
       send "HeadShot" to shooter 

 

A la fin du message (send "HeadShot" to shooter), on rajoute "to shooter" pour afficher le message au tireur, et l'on se sert d'une variable pour éviter le spam du message car si l'on met le message à la fin du "loop all players:", il apparaîtra autant de fois qu'il y a de joueur =) Voilà, si tout est Ok n'oublie pas de mettre ton poste en résolue ^^

 

EDIT: J'ai oublié de mettre "If loop-player is not shooter" pour valider le Head-Shot x) Parce que bon ce serait quand même bizarre de pouvoir s'auto-Head Shot x)

  • J'aime 1
  • 0
Posté(e)
Et bien pour cela faut envoyer un message au shooter comme ceci:

 

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           if loop-player is not shooter:
               set {headshoot.projectil} to true
   if {headshoot.projectil} is set:
       delete {headshoot.projectil}
       send "HeadShot" to shooter

 

A la fin du message (send "HeadShot" to shooter), on rajoute "to shooter" pour afficher le message au tireur, et l'on se sert d'une variable pour éviter le spam du message car si l'on met le message à la fin du "loop all players:", il apparaîtra autant de fois qu'il y a de joueur =) Voilà, si tout est Ok n'oublie pas de mettre ton poste en résolue ^^

 

EDIT: J'ai oublié de mettre "If loop-player is not shooter" pour valider le Head-Shot x) Parce que bon ce serait quand même bizarre de pouvoir s'auto-Head Shot x)

Merci sa fonctionne à merveille !

 

 

[MESSAGE FUSIONNE]

Et bien pour cela faut envoyer un message au shooter comme ceci:

 

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           if loop-player is not shooter:
               set {headshoot.projectil} to true
   if {headshoot.projectil} is set:
       delete {headshoot.projectil}
       send "HeadShot" to shooter

 

A la fin du message (send "HeadShot" to shooter), on rajoute "to shooter" pour afficher le message au tireur, et l'on se sert d'une variable pour éviter le spam du message car si l'on met le message à la fin du "loop all players:", il apparaîtra autant de fois qu'il y a de joueur =) Voilà, si tout est Ok n'oublie pas de mettre ton poste en résolue ^^

 

EDIT: J'ai oublié de mettre "If loop-player is not shooter" pour valider le Head-Shot x) Parce que bon ce serait quand même bizarre de pouvoir s'auto-Head Shot x)

Et bein je ne comprend pas, j'ai juste reload les skript et maintenant ça ne marche plus. Il n'y a plus de message.

  • 0
Posté(e)

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           if loop-player is not shooter:
               set {headshoot.projectil} to true
   if {headshoot.projectil} is set:
       delete {headshoot.projectil}
       send "HeadShot" to shooter

 

J'ai mis ce code dans un skript vide (il y a seulement ce code) et j'ai désactivé tout les autres skripts.

Quand je fais un HeadShot, les prochaines ne marche pas.

  • 0
Posté(e)

Oki alors lorsque quelque chose comme ça ne fonctionne pas, tu rajoute un 'else" derrière chaque condition pour voir d'où vient le problème, ce qui donne:

 

on projectile hit: 
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           if loop-player is not shooter:
               set {headshoot.projectil} to true
           else:
               send "Else 2 =)"
       else:
           send "Else 1 =)"
   if {headshoot.projectil} is set:
       delete {headshoot.projectil}
       send "HeadShot" to shooter 
   else:
       send "Else 3 =)"

 

Ensuite tu mes des HeadShot et tu regarde ce qu'il te dit dans le chat, si par exemple, le message qui apparaît est "Else 2", alors on sait que le soucis vient du "if loop-player is not shooter", donc mes plusieurs Head-Shot et dis-moi quel message apparaît dans le chat =)

  • J'aime 1
  • 0
Posté(e)
Oki alors lorsque quelque chose comme ça ne fonctionne pas, tu rajoute un 'else" derrière chaque condition pour voir d'où vient le problème, ce qui donne:

 

on projectile hit:
   set {location.projectil} to location of projectile
   loop all players:
       set {_loc.loop-player.hit} to location of loop-player
       add 1.5 to y location of {_loc.loop-player.hit}
       set {_loc2.loop-player.hit} to location of loop-player
       add 2 to y location of {_loc2.loop-player.hit}
       if y location of {location.projectil} is between y location of {_loc.loop-player.hit} and y location of {_loc2.loop-player.hit}:
           if loop-player is not shooter:
               set {headshoot.projectil} to true
           else:
               send "Else 2 =)"
       else:
           send "Else 1 =)"
   if {headshoot.projectil} is set:
       delete {headshoot.projectil}
       send "HeadShot" to shooter
   else:
       send "Else 3 =)"

 

Ensuite tu mes des HeadShot et tu regarde ce qu'il te dit dans le chat, si par exemple, le message qui apparaît est "Else 2", alors on sait que le soucis vient du "if loop-player is not shooter", donc mes plusieurs Head-Shot et dis-moi quel message apparaît dans le chat =)

Tout d'abord, rien ne s'affichais, j'ai donc remplasser <send "3"> par <message "3" to shooter> pour les trois nombres.

Après le 3 sait afficher !

 

EDIT: Le 3 ET le 2 sait afficher ! Quand je headshot pas il y a le "3". quand je headshot il y a le "2" "2" "3".

 

Quand je headshot, voici le chat:

 

2

2

3

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.