Script de téléportation vers un marqueur

Le langage des scripts.
Avatar du membre
Nayos
Moddeur aspirant
Moddeur aspirant
Messages : 580

Script de téléportation vers un marqueur

Message par Nayos »

Bonjour.

Après avoir lu le tuto sur le wiki CK, je me suis tourné vers vous, confrères moddeurs ain de répondre a une de mes questions :

Comment ajouter un mapmarker a la map de skyrim et l'utiliser dans un script ?

Je m'explique. Pour les besoins d'un mod, j'aimerais rajouter des markers de spawn du PJ dans un certains nombres de lieux de la map de skyrim, et que suite a une condition particulière, le PJ se retrouve téléporté dans l'un de ces endroit de manière aléatoire. Donc, je me demandais comment rajouter des maps markers de téléport dans skyrim.

Cordialement

Nayos
Modifié en dernier par Nayos le 06 déc. 2013, 03:02, modifié 3 fois.
NE CLIQUE PAS !
► Afficher le texte
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Création de map marker et utilisation dans les scripts

Message par Gerauld »

Tu ajoutes des marqueurs style heading marker là où tu veux que le perso soit téléporté et tu utilises un moveto dans ton script.
Tu peux t'inspirer de ceci :
http://www.confrerie-des-traducteurs.fr ... 8&start=10
Avatar du membre
Nayos
Moddeur aspirant
Moddeur aspirant
Messages : 580

Re: Création de map marker et utilisation dans les scripts

Message par Nayos »

Gerauld a écrit :Tu ajoutes des marqueurs style heading marker là où tu veux que le perso soit téléporté et tu utilises un moveto dans ton script.
Tu peux t'inspirer de ceci :
http://www.confrerie-des-traducteurs.fr ... 8&start=10
Merci Gerauld pour lien, je vois comment l'utiliser en script. Par contre, je vois toujours pas comment placer les map markers, ne les trouvant pas dans la liste des markers du CK (Je pensais les trouver dans WorldObject/activator/marker, mais j'ai pas l'impression que ce soit la :embaras:)

EDIT : J'ai trouvé les marker heading, cependant, pas moyen de les ajouter a la cell view, ca veut pas grrrr :colère:

Question toute bête : un marker heading a t'il besoin d'un map marker a coté ?
NE CLIQUE PAS !
► Afficher le texte
Avatar du membre
Dragoteryx
Confrère
Messages : 72

Re: Création de map marker et utilisation dans les scripts

Message par Dragoteryx »

Bah tu vas dans *All, puis tu cherches MapMarker. Quand tu l'as trouvé tu le places ;).
Modifié en dernier par Dragoteryx le 20 juin 2015, 18:47, modifié 4 fois.
Raison : Passage d'un disciple.
Lorsque la Tour enneigée est démolie, sans roi, maculée de sang.
Le Dévoreur de mondes s'éveille et la roue tourne vers le dernier Enfant de dragon.
Avatar du membre
Nayos
Moddeur aspirant
Moddeur aspirant
Messages : 580

Re: Création de map marker et utilisation dans les scripts

Message par Nayos »

Dragoteryx a écrit :Bah tu vas dans *All, puis tu cherche MapMarker. Quand tu la trouvé tu le place ;).

Oui je sais ça, mais je sais pas pourquoi, mon CK refuse que je les ajoutent à la map. Va comprendre.
Modifié en dernier par Nayos le 20 juin 2015, 18:47, modifié 4 fois.
Raison : Passage d'un disciple.
NE CLIQUE PAS !
► Afficher le texte
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Création de map marker et utilisation dans les scripts

Message par Gerauld »

Tout d'abord, confirme moi que tu n'as pas activé le version control sur ton CK (le mode permettant de fusionner des esp dans un esm). S'il est activé, tu ne peux toucher aux objets existants.

Tu n'as pas besoin de map marker pour téléporter le perso dans un endroit. Un simple marqueur placé dans une cell suffit. Tu peux même ne pas ajouter de marqueur et téléporter le perso vers un objet de la CELL.
Ensuite, il faut que ton script contienne une propriété de type objectreference remplie avec l'ID du marqueur (ou de l'objet) où tu veux envoyer ton personnage.
Ensuite, il suffit d'utiliser l'instruction moveto sur le personnage en prenant comme ccible l'objet qui est dans ta propriété.
Si la propriété n'est pas remplie, il ne se passera pas grand chose.
Tu peux aussi envoyer le perso vers un objet de la CELL puis utiliser un setposition pour le placer aux coordonnées exactes du point visé.
Avatar du membre
Nayos
Moddeur aspirant
Moddeur aspirant
Messages : 580

Re: Création de map marker et utilisation dans les scripts

Message par Nayos »

Non c'est bon, j'avais juste masqué les map markers, du coup, je ne pouvais pas les voir.

Par contre, après avoir réussi à placer les markers heading, le script réalisé ne fonctionne pas

► Afficher le texte
NE CLIQUE PAS !
► Afficher le texte
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Création de map marker et utilisation dans les scripts

Message par Gerauld »

Pourquoi passer par une propriété de type referencealias pour le joueur?
"Actor property playerref auto" te permet d'accéder directement au joueur (en plus la propriété se remplit automatiquement en auto-fill (si tu ne remplis pas les propriétés, rien ne se passera. Assures-toi d'avoir relier chaque propriété à l'objet concerné.). Tu as directement un objet de type actor pointant sur le joueur.
Tu remplaceras donc tes "player" par "playerref".

Ensuite, pour voir si le script déclenche ou non, tu peux placer des notifications lors des tests. Cela permet de ne pas travailler à l'aveugle.
par exemple :
debug.notification(Healthpercentage) affichera en haut à gauche la valeur au moment considéré.
Tu peux placer un debug.notification("Perso frappé") après l'event onhit() pour voir s'il déclenche. L'affichage des valeurs ainsi qu'une notification après chaque if pour voir s'il déclenche.
Cela permettra d'isoler la partie de script fautive.
Au fait, Healthdamage = ( Player.GetBaseAV("health"))*0.01*0 donnera toujours 0, utilité?
Hors-sujet
Sujet déplacé dans la section "Scripts".
Modifié en dernier par Gerauld le 20 juin 2015, 18:47, modifié 4 fois.
Raison : Édition incolore.
Avatar du membre
Nayos
Moddeur aspirant
Moddeur aspirant
Messages : 580

Re: Création de map marker et utilisation dans les scripts

Message par Nayos »

Gerauld a écrit :Pourquoi passer par une propriété de type referencealias pour le joueur?
"Actor property playerref auto" te permet d'accéder directement au joueur (en plus la propriété se remplit automatiquement en auto-fill (si tu ne remplis pas les propriétés, rien ne se passera. Assures-toi d'avoir relier chaque propriété à l'objet concerné.). Tu as directement un objet de type actor pointant sur le joueur.
Tu remplaceras donc tes "player" par "playerref".
C'est Ced qui m'a donné cette technique, et n'en connaissant pas d'autre, bah je l'ai utilisé :embaras:

Gerauld a écrit :Ensuite, pour voir si le script déclenche ou non, tu peux placer des notifications lors des tests. Cela permet de ne pas travailler à l'aveugle.
par exemple :
debug.notification(Healthpercentage) affichera en haut à gauche la valeur au moment considéré.
Tu peux placer un debug.notification("Perso frappé") après l'event onhit() pour voir s'il déclenche. L'affichage des valeurs ainsi qu'une notification après chaque if pour voir s'il déclenche.
Cela permettra d'isoler la partie de script fautive.
c'est ce que je comptais faire.
Gerauld a écrit :Au fait, Healthdamage = ( Player.GetBaseAV("health"))*0.01*0 donnera toujours 0, utilité?
Pour cette partie, c'est le seul moyen que j'ai trouvé afin de pouvoir utiliser l'event onHit, car sinon dans mon fragment de script, j'ai remarqué n'utiliser aucune variable du onHit, et du coup il refusait de compiler. et plutôt que d'augmenter les dégats subits par le PJ, je me suis dis que j'allais mettre les dégats du onHit 0. (c'est pas très classe, mais c'est le seul moyen que j'ai trouvé :/)
Modifié en dernier par Nayos le 12 août 2013, 16:43, modifié 1 fois.
NE CLIQUE PAS !
► Afficher le texte
Avatar du membre
Gerauld
Confrère
Messages : 2439

Re: Création de map marker et utilisation dans les scripts

Message par Gerauld »

Un peu de lecture pour les scripts :
A LIRE - QUELQUES EXPLICATIONS SUR LES SCRIPTS

Le 1er post parle, entre autres, de "actor property playerref auto".
Le 2ème post parle des "events" en général.
Le 3ème posts des "states"
Nayos a écrit :
Gerauld a écrit :Au fait, Healthdamage = ( Player.GetBaseAV("health"))*0.01*0 donnera toujours 0, utilité?
Pour cette partie, c'est le seul moyen que j'ai trouvé afin de pouvoir utiliser l'event onHit, car sinon dans mon fragment de script, j'ai remarqué n'utiliser aucune variable du onHit, et du coup il refusait de compiler. et plutôt que d'augmenter les dégats subits par le PJ, je me suis dis que j'allais mettre les dégats du onHit 0. (c'est pas très classe, mais c'est le seul moyen que j'ai trouvé :/)
J'espère, en voyant le terme fragment, que tu n'as pas placé ce bout de script dans un fragment de quête ou un fragment de dialogue mais bien sur un referencealias placé sur le joueur... Normalement oui.
Tu n'est pas obligé d'utiliser quoi que ce soit dans un event pour qu'il compile.

A LIRE SUR LA SYNTAXE DES EVENTS

Il suffit juste que la ligne d'event soit correcte pour qu'il compile. Inutile d'utiliser une des variables où sont stockés les données liées à l'event dans l'event pour compiler. Aucune obligation d'utiliser quoi que ce soit. On mettre juste une notification dans un event onhit() et il compilera.
Si jamais en retirant les bouts inutiles, ton script ne compile pas, postes ici les termes exacts donnés par le compileur lors de l'échec de compilation (avec la liste des erreurs). Ce sera le seul moyen de voir exactement pourquoi le script ne compile pas et de le corriger.
Il faudra également poster le script tel qu'il est au moment de la tentative de compilation.
Répondre

Retourner vers « Entraide sur les scripts »