Aller au contenu
  • 0

Forcer un joueur à regarder dans la direction d'une entité


Question

Posté(e)

Bonjour,

Je cherche à faire regarder un joueur vers une entité ou une coordonnées (dans une variable). Est-ce possible ?

Quelque chose comme:

make player look at entity

(Cette ligne n'existe pas)

Merci d'avance pour toute aide.

 

Je suis en version 1.8.8 de skript. Cordialement.

4 réponses à cette question

Messages recommandés

  • 0
Posté(e)

tu peux faire regarder une autre entité autre qu'un joueur comme ceci:

function makeLook(e: living entity, loc: location):
    set {_xD} to {_loc}'s x location - {_e}'s x location
    set {_yD} to {_loc}'s y location - {_e}'s y location
    set {_zD} to {_loc}'s z location - {_e}'s z location
    set {_yaw} to atan2({_xD}, {_zD}) - 90
    
    set {_adj2} to ({_xD}*{_xD}) + ({_zD}*{_zD})
    set {_parallel} to sqrt({_adj2})
    set {_pitch} to atan2({_yD}, {_parallel}) - 90
    add "{Rotation:[%{_yaw}%f, %{_pitch}%f]}" to NBT of {_e}  

Mais il n'est pas possible de faire ceci pour un joueur. Le seule moyen de changer la rotation d'un joueur est de lui appliquer une téléportation. ( Mais si le joueur est dans un véhicule, le téléporter le fera descendre du véhicule ). De plus, appliquer une téléportation à un joueur dans une boucle de moins de 3 ticks est plutôt bugué si le joueur tente de bouger.

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

tu peux faire regarder une autre entité autre qu'un joueur comme ceci:


function makeLook(e: living entity, loc: location):
    set {_xD} to {_loc}'s x location - {_e}'s x location
    set {_yD} to {_loc}'s y location - {_e}'s y location
    set {_zD} to {_loc}'s z location - {_e}'s z location
    set {_yaw} to atan2({_xD}, {_zD}) - 90
    
    set {_adj2} to ({_xD}*{_xD}) + ({_zD}*{_zD})
    set {_parallel} to sqrt({_adj2})
    set {_pitch} to atan2({_yD}, {_parallel}) - 90
    add "{Rotation:[%{_yaw}%f, %{_pitch}%f]}" to NBT of {_e}  

Mais il n'est pas possible de faire ceci pour un joueur. Le seule moyen de changer la rotation d'un joueur est de lui appliquer une téléportation. ( Mais si le joueur est dans un véhicule, le téléporter le fera descendre du véhicule ). De plus, appliquer une téléportation à un joueur dans une boucle de moins de 3 ticks est plutôt bugué si le joueur tente de bouger.

Salut, merci, effectivement cela marche mais c'est pour le joueur que j'avais besoin, or, on m'a donné une solution sur le forum anglais, je la donne ici pour les autres. Pour empêcher le mouvement d'un joueur, on peut utiliser l'event on any movement.

	on damage:
     set {_yaw} to yaw of attacker
    set {_pitch} to pitch of attacker
    set {_location} to location of victim 
    set {_yaw} to {_yaw} * -1
    set {_pitch} to {_pitch} * -1
    if "%{_yaw}%" contains ".":
        set {_yaw} to "%{_yaw}%" parsed as number
    else:
        set {_yaw} to "%{_yaw}%.001" parsed as number
    if "%{_pitch}%" contains ".":
        set {_pitch} to "%{_pitch}%" parsed as number
    else:
        set {_pitch} to "%{_pitch}%.001" parsed as number
    set {_location}'s yaw to {_yaw}
    set {_location}'s pitch to {_pitch}
    teleport victim to {_location}

 

C'est appliqué sur un event on damage, mais j'en avais besoin sur un 'on entity target'. Merci encore pour ton aide.

Cordialement, Uri'

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