Nenfëa Auxiliaire ArchipelModeur
Nombre de messages : 34 Age : 40 Date d'inscription : 04/04/2007
| Sujet: [Avancé] Détecter le plus proche PNJ Dim 15 Avr 2007, 18:05 | |
| Type de script : --- Effet magique/Quête --- (difficulté avancée) Utilité : ces scripts permettent de récupérer l'ID de l'acteur le plus proche du joueur dans un certain rayon. Mode d'emploi :- Spoiler:
Le script de quête doit être attaché à une quête bidon - dans l'exemple, la quête se nomme "nen_detect" qui ne sert qu'à simuler mémoriser la référence de l'acteur le plus proche. Vous devez créer un sort de zone, lui aussi bidon, qui a en "Script effect" le script d'effet magique. Ce sort doit avoir comme portée la distance maximale au delà de laquelle on ne cherchera plus de PNJs "proches".
Pour obtenir la référence du plus proche acteur, vous devez alors lancer le sort sur le joueur. Dès qu'il touchera un PNJ, sa référence sera mémorisée dans la variable PNJ de votre quête. Pour lancer le sort, utilisez ces lignes de code : - Code:
-
player.Cast ID_DU_SORT player Cette méthode ne marchera qu'une fois. Pour détecter à nouveau le PNJ le plus proche, pensez à remettre la variable PNJ à zéro. Explications :- Spoiler:
Lorsqu'un objet est touché par un effet magique contenant un "Script effect", le bloc ScriptEffectStart de ce script est activé sur la cible du sort. Celà signifie que la fonction GetSelf permet de récupérer la référence de la cible : il ne reste plus qu'à la mémoriser dans la variable PNJ. - Code:
-
; Script d'effet magique permettant de détecter si l'objet touché et bien un acteur et dans ce cas, de le mémoriser si c'est le premier touché
Scn nen_detect_magic_effect
Begin ScriptEffectStart ; Quand le sort touche une cible... if ( nen_detect.PNJ == 0 ) ; ... si on n'a pas encore trouvé l'acteur le plus proche... if ( IsActor ) ; ... et que l'objet touché est bien un acteur... Set nen_detect.PNJ to GetSelf ; ... on mémorise la référence de l'objet touché. endif endif End - Code:
-
; Script de quête mémorisant la référence de l'acteur le plus proche
Scn nen_detect_quest
Ref PNJ | |
|