Script de téléportation vers un marqueur
Script de téléportation vers un marqueur
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
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
Re: Création de map marker et utilisation dans les scripts
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
Tu peux t'inspirer de ceci :
http://www.confrerie-des-traducteurs.fr ... 8&start=10
Re: Création de map marker et utilisation dans les scripts
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 laGerauld 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

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

Question toute bête : un marker heading a t'il besoin d'un map marker a coté ?
NE CLIQUE PAS !
► Afficher le texte
- Dragoteryx
- Confrère
- Messages : 72
Re: Création de map marker et utilisation dans les scripts
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.
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.
Le Dévoreur de mondes s'éveille et la roue tourne vers le dernier Enfant de dragon.
Re: Création de map marker et utilisation dans les scripts
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.
Raison : Passage d'un disciple.
NE CLIQUE PAS !
► Afficher le texte
Re: Création de map marker et utilisation dans les scripts
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é.
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é.
Re: Création de map marker et utilisation dans les scripts
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
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
Re: Création de map marker et utilisation dans les scripts
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é?
"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.
Raison : Édition incolore.
Re: Création de map marker et utilisation dans les scripts
C'est Ced qui m'a donné cette technique, et n'en connaissant pas d'autre, bah je l'ai utilisé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 ce que je comptais faire.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.
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é :/)Gerauld a écrit :Au fait, Healthdamage = ( Player.GetBaseAV("health"))*0.01*0 donnera toujours 0, utilité?
Modifié en dernier par Nayos le 12 août 2013, 16:43, modifié 1 fois.
NE CLIQUE PAS !
► Afficher le texte
Re: Création de map marker et utilisation dans les scripts
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"
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.
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"
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.Nayos a écrit :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é :/)Gerauld a écrit :Au fait, Healthdamage = ( Player.GetBaseAV("health"))*0.01*0 donnera toujours 0, utilité?
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.